Shake iOS SDK
适用于iOS应用的错误和崩溃报告SDK。
特性
特性 | 可用 |
---|---|
错误报告 | |
崩溃报告 | |
用户 |
要求
- iOS 12.0+
安装Shake
Cocoapods
尚未使用Cocoapods?请遵循他们的简短安装指南,然后在项目的根目录下运行pod init
。
接下来,将 Shake 添加到你的 Podfile
中。
Objective-C
pod 'Shake'
Swift
use_frameworks!
pod 'Shake'
然后,在终端中运行pod install
命令。
由于在使用pod install
时,CocoaPods可能不会始终下载SDK的最新版本,建议在安装完成后或您想更新Shake时,也运行pod update Shake
。
Swift Package Manager
选择文件 > Swift 包 > 添加包依赖
当提示时,输入Shake仓库url
https://github.com/shakebugs/shake-ios
选择适当的克隆细节,并可选地指定确切的Shake版本或分支。
点击完成
将Shake包添加到您的项目中。
注意:Shake作为二进制框架分发。在真实设备上运行应用时,会有一个关于SPM对二进制包签名的已知问题(SR-13343),在Xcode 12.2测试版本3中已经修复。
临时解决方案
选择您的应用目标,并在构建阶段
中添加一个新的复制文件阶段
。确保将目标改为框架
文件夹。然后添加一个新的运行脚本阶段
,粘贴以下脚本以强制使用您的身份对框架进行深度签名。
find "${CODESIGNING_FOLDER_PATH}" -name '*.framework' -print0 | while read -d $'\0' framework
do
codesign --force --deep --sign "${EXPANDED_CODE_SIGN_IDENTITY}" --preserve-metadata=identifier,entitlements --timestamp=none "${framework}"
done
手动
访问Shake iOS SDK的GitHub仓库,点击绿色克隆按钮,然后下载ZIP文件。Shake文件夹将被下载到您的计算机上 —— 将Shake.framework文件夹拖放到您的项目中。然后在Xcode的通用选项卡中为Shake.framework选择“嵌入和签名”;框架、库和嵌入内容(适用于Xcode 11,Xcode 12)。
注意:由于没有使用像CocoaPods这样的依赖项管理器,您将无法使用简单的pod update Shake
命令始终将Shake SDK的最新版本拉入您的应用程序。相反,您将必须重复上述段落中描述的第一步。
初始化Shake
在您的AppDelegate的didFinishLaunchingWithOptions
回调中初始化Shake。使用从您的工坊设置中获取的实际值替换你的-api-client-id
和你的-api-client-secret
。
Objective-C
在你的 AppDelegate.m
#import "AppDelegate.h"
@import Shake;
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[SHKShake startWithClientId:@"your-api-client-id" clientSecret:@"your-api-client-secret"];
return YES;
}
@end
Swift
import UIKit
import Shake
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
Shake.start(clientId: "your-api-client-id", clientSecret: "your-api-client-secret")
return true
}
}
注意:Shake的一些功能使用swizzling,为了避免任何swizzling冲突,我们建议在初始化所有其他框架之前调用Shake.start()
。
构建和运行
在菜单栏中选择 产品 > 运行。这次运行将自动根据您的app bundle ID将您的应用添加到您的 Shake Dashboard。