iOS SDK动态库接入

本文档指导开发者完成阿里云移动监控iOS SDK动态库的接入配置,包含SDK启动、构建、功能验证等核心流程。

一、前提条件

  • 已完成EMAS应用创建并获取凭证

  • 开发环境要求

    • Xcode 12.0+

    • iOS 10.0+

    • CocoaPods 1.12.0+

二、参考Demo

说明

工程样例Demo使用Cocoapods集成的是静态库AlicloudApmAll,可以通过动态库AlicloudApmAllDylib替换,并在引入SDK头文件时,使用动态库模块名AlicloudApmAllDylib替换以下模块名:AlicloudApmCore/AlicloudApmCrashAnalysis/AlicloudApmPerformance/AlicloudApmRemoteLog,接口保持不变,如 #import "AlicloudApmCrashAnalysis/AlicloudApmCrashAnalysis.h"替换为 #import "AlicloudApmAllDylib/AlicloudApmCrashAnalysis.h"。

三、将SDK添加到您的应用

Cocoapods集成

  1. 创建/修改Podfile:

    source 'https://github.com/CocoaPods/Specs.git'
    source 'https://github.com/aliyun/aliyun-specs.git'
    
    platform :ios, '13.0'
    use_frameworks!
    
    target 'YourTarget' do
      pod 'AlicloudApmAllDylib', '~> 2.0.0'
    end
    说明

    Xcode项目的根目录中,定位并编辑Podfile文件,以添加AlicloudApmAllDylib依赖项(执行pod search AlicloudApmAllDylib命令,查询其最新版本)。如果根目录中没有Podfile文件,可以通过在终端中运行pod init命令来创建一个新的Podfile。如果您的计算机上尚未安装CocoaPods,请先参考CocoaPods官网完成安装。

  2. 执行安装命令:

    pod repo update AliyunRepo
    pod install
    
    # 如果您尚未添加阿里云Cocoapods仓库,请先执行以下命令添加仓库
    # pod repo add AliyunRepo https://github.com/aliyun/aliyun-specs.git

四、使用SDK

AppDelegate中完成初始化。示例代码如下:

#import "AlicloudApmAllDylib/AlicloudApmCore.h"
#import "AlicloudApmAllDylib/AlicloudApmCrashAnalysis.h"
#import "AlicloudApmAllDylib/AlicloudApmPerformance.h"
#import "AlicloudApmAllDylib/AlicloudApmRemoteLog.h"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    EAPMOptions *options = [[EAPMOptions alloc] initWithAppKey:@"您的AppKey"
                                                     appSecret:@"您的AppSecret"];
    options.appRsaSecret = @"您的AppRsaSecret";
    // 以下sdkComponents分别对应崩溃分析、性能分析和远程日志,可按需裁剪
    options.sdkComponents = @[[EAPMCrashAnalysis class], [EAPMPerformance class], [EAPMRemoteLog class]];
    
    [EAPMApm startWithOptions:options];
    
    return YES;
}
@end
class AppDelegate: UIResponder, UIApplicationDelegate {
    func application(_ application: UIApplication, 
                   didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        
        let options = EAPMOptions(
            appKey: "您的AppKey",
            appSecret: "您的AppSecret",
            // 以下sdkComponents分别对应崩溃分析、性能分析和远程日志,可按需裁剪
            sdkComponents: [CrashAnalysis.self, Performance.self, RemoteLog.self]
        )
        options.appRsaSecret = "您的AppRsaSecret"
        EAPMApm.start(options: options)
        
        return true
    }
}

对于使用Swift开发的应用,还需配置Bridging-Header.h文件,并在其中引入SDK头文件:

image

#import "AlicloudApmAllDylib/AlicloudApmCore.h"
// 以下头文件分别对应崩溃分析、性能分析和远程日志,可按需引入
#import "AlicloudApmAllDylib/AlicloudApmCrashAnalysis.h"
#import "AlicloudApmAllDylib/AlicloudApmPerformance.h"
#import "AlicloudApmAllDylib/AlicloudApmRemoteLog.h"

五、接入验证

  • 在真机或模拟器上运行应用后,请查看Xcode控制台输出,检查是否有类似以下日志信息:

[AlicloudApmCore] Started Successfully
[AlicloudApmSetting] Fetched Successfully

此日志表明SDK已成功启动,并且拉取配置成功。

六、扩展资料

说明

上述扩展资料是依据静态库AlicloudApmAll所编,使用动态库AlicloudApmAllDylib时,涉及引入SDK头文件的地方,请使用动态库模块名AlicloudApmAllDylib替换以下模块名:AlicloudApmCore/AlicloudApmCrashAnalysis/AlicloudApmPerformance/AlicloudApmRemoteLog,接口保持不变。