[TOC]
BuglyHotfix 提供两种集成方式供开发者选择:
BuglyHotfix iOS SDK 最低兼容 iOS 系统版本 iOS 7.0
在工程的Podfile
里面添加以下代码:
pod 'BuglyHotfix'
保存并执行pod install
,然后用后缀为.xcworkspace
的文件打开工程。
注意:
命令行下执行pod search BuglyHotfix
,如无法搜索到或搜索到的BuglyHotfix
不是最新的版本,请先执行pod repo update
更新本地的 spec-repositories 。
关于
CocoaPods
的更多信息请查看 CocoaPods官方网站。
BuglyHotfix.framework
文件到Xcode工程内(请勾选Copy items if needed
选项)SystemConfiguration.framework
Security.framework
JavascriptCore.framework
libz.tbd
libc++.tbd
在工程的AppDelegate.m
文件导入头文件
#import <BuglyHotfix/Bugly.h>
如果是Swift
工程,请在对应bridging-header.h
中导入
在工程AppDelegate.m
的application:didFinishLaunchingWithOptions:
方法中初始化BuglyHotfix,示例代码如下:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[Bugly startWithAppId:@"此处替换为你的AppId"
#ifdef DEBUG
developmentDevice:YES
#endif
config:nil];
return YES;
}
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
#if DEBUG
Bugly.start(withAppId: "900001055",
developmentDevice: true,
config: nil)
#else
Bugly.start(withAppId: "900001055",
developmentDevice: false,
config: nil)
#endif
return true
}
补丁编写规则参见: JSPatch
将补丁文件main.js
拖拽到工程内;
开启 BuglyConfig 中的热更新本地调试模式;
BuglyConfig *config = [[BuglyConfig alloc] init];
config.hotfixDebugMode = YES;
[Bugly startWithAppId:appId
#ifdef DEBUG
developmentDevice:YES
#endif
config:config];
main.js
文件压缩成zip
,点击 Bugly 平台 热更新
功能的发布新补丁
(热更新
菜单在应用升级
模块下)
弹出新建补丁窗口
选择目标版本(即应用版本)及开发设备,其它按默认值进行下发。
注意:这里的版本列表只显示集成了 BuglyHotfix SDK 的应用版本
main.js
,关闭 BuglyConfig 中的热更新本地调试模式 BuglyConfig *config = [[BuglyConfig alloc] init];
config.hotfixDebugMode = NO;
config.debugMode = YES;
[Bugly startWithAppId:kBuglyAppId
#ifdef DEBUG
developmentDevice:YES
#endif
config:config];
[Bugly][Info] Hotfix: evaluated script [version: 1]
点击 Bugly 平台上对应补丁的编辑
按钮,按需选择全量设备
或自定义
规则进行正式下发。
把所需的 JSPatch 扩展导入到工程后,修改扩展的.h
头文件
#import "JPEngine.h"`
更改为
#import <BuglyHotfix/JPEngine.h>
如 JPDispatch.h
#import <Foundation/Foundation.h>
#import "JPEngine.h"
@interface JPDispatch : JPExtension
@end
修改为
#import <Foundation/Foundation.h>
#import <BuglyHotfix/JPEngine.h>
@interface JPDispatch : JPExtension
@end
为了能保持原编写的 JSPatch 脚本的兼容性,Bugly 没有改变原有符号,所以遇到冲突情况,请移除项目中已有的 JSPatch 文件。
请把 mian.js 压缩成 zip 再进行上传。
目标版本列表只显示集成了 BuglyHotfix SDK 的应用版本,所以如果没有出现请尝试集成SDK后先运行一下App,然后再刷新页面尝试上传。
可以通过下述 SDK 提供的 API 发起查询补丁更新请求
+ (void)hotfixCheckUpdate;
可以通过下述 SDK 提供的 API 查询当前生效的补丁信息,如打开了测试本地 js,则无相关信息
+ (NSDictionary *)currentHotfixPatchInfo;
返回的结构如下:
{
@"patchVersion":"补丁版本号",
@"patchDesc":"补丁备注信息",
@"patchUpdateTime":"补丁更新时间"
}
为了保障补丁下载速度,所有的补丁都是通过 CDN 下发,所以在 iOS 9 以上需要配置允许使用 HTTP 协议通讯,步骤如下:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>