Shake 17.0.0

Shake 17.0.0

Shake 维护。



Shake 17.0.0

  • Shake团队

Shake iOS SDK

适用于iOS应用的错误和崩溃报告SDK。

特性

特性 可用
错误报告
崩溃报告
用户

要求

  • iOS 12.0+

安装Shake

Cocoapods

npm version

尚未使用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

资源