本文档指导开发者完成阿里云移动监控iOS SDK的接入配置,包含SDK启动、构建、功能验证等核心流程。
一、前提条件
已完成EMAS应用创建并获取凭证
开发环境要求
Xcode 12.0+
iOS 10.0+
CocoaPods 1.12.0+
如已接入2.0.0以下版本的崩溃分析、性能分析和远程日志一个或者多个SDK的应用,可以按照文档《iOS SDK升级指南》完成移动监控SDK的升级工作
二、参考Demo
移动监控 iOS SDK接入工程样例请参见Demo工程(OC)或Demo工程(Swift)。
三、将SDK添加到您的应用
创建/修改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 'AlicloudApmAll', '~> 2.0.0' end
在Xcode项目的根目录中,定位并编辑Podfile文件,以添加AlicloudApmAll依赖项(执行
pod search AlicloudApmAll
命令,查询其最新版本)。如果根目录中没有Podfile文件,可以通过在终端中运行pod init
命令来创建一个新的Podfile。如果您的计算机上尚未安装CocoaPods,请先参考CocoaPods官网完成安装。执行安装命令:
pod repo update AliyunRepo pod install # 如果您尚未添加阿里云Cocoapods仓库,请先执行以下命令添加仓库 # pod repo add AliyunRepo https://github.com/aliyun/aliyun-specs.git
参考快速入门文档下载最新SDK包
解压并添加Framework:
将以下xcframework拖入工程
AlicloudAPM.xcframework
AlicloudApmAll.xcframework
AlicloudApmCore.xcframework
AlicloudApmCrashAnalysis.xcframework
AlicloudApmPerformance.xcframework
AlicloudApmRemoteLog.xcframework
AlicloudNetworkMonitor.xcframework
AlicloudTLog.xcframework
AliHACore.xcframework
AliHAMemoryMonitor.xcframework
AliHAPerformanceMonitor.xcframework
AliyunOSSiOS.framework
EMASRest.xcframework
FBRetainCycleDetector.xcframework
TRemoteDebugger.xcframework
UTDID.xcframework
详细操作步骤如下图所示。
相同方式引入开源库文件:
打开Build Phases > Link Binary With Libraries,添加Xcode自带的公共包文件:
libc++.tbd
libz.tbd
libresolv.tbd
CoreTelephony.framework
SystemConfiguration.framework
Xcode兼容性
使用较低版本的 Xcode 时,可能需要手动添加以下系统库以确保兼容性:
libz.tbd
libresolv.tbd
CoreTelephony.framework
SystemConfiguration.framework
链接设置
如果在运行时遇到问题,可以尝试在以下位置添加 -ObjC 参数:
打开项目设置。
导航到 TARGETS。
选择 Build Settings。
找到 Linking 部分。
在 Other Linker Flags 中添加 -ObjC。
四、使用SDK
1. 初始化
在AppDelegate
中完成初始化。示例代码如下:
#import "AlicloudApmCore/AlicloudApmCore.h"
#import "AlicloudApmCrashAnalysis/AlicloudApmCrashAnalysis.h"
#import "AlicloudApmPerformance/AlicloudApmPerformance.h"
#import "AlicloudApmRemoteLog/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头文件:
#import "AlicloudApmCore/AlicloudApmCore.h"
// 以下头文件分别对应崩溃分析、性能分析和远程日志,可按需引入
#import "AlicloudApmCrashAnalysis/AlicloudApmCrashAnalysis.h"
#import "AlicloudApmPerformance/AlicloudApmPerformance.h"
#import "AlicloudApmRemoteLog/AlicloudApmRemoteLog.h"
2. 编译
在项目的Build Setting中,将
Allow Non-modular Includes In Framework Modules
设置为YES
。执行编译。
编译过程中如出现
duplicate symbol
类型错误,确认本地依赖与CocoaPods管理的依赖是否重复;如是,则删除本地依赖。如同时使用其他阿里云产品,可能会因为依赖中存在UTDID冲突,造成编译失败。解决办法参见:SDK UTDID冲突解决方案。
五、接入验证
在真机或模拟器上运行应用后,请查看Xcode控制台输出,检查是否有类似以下日志信息:
[AlicloudApmCore] Started Successfully
[AlicloudApmSetting] Fetched Successfully
此日志表明SDK已成功启动,并且拉取配置成功。
六、扩展资料
- 本页导读 (0)
- 一、前提条件
- 二、参考Demo
- 三、将SDK添加到您的应用
- 四、使用SDK
- 1. 初始化
- 2. 编译
- 五、接入验证
- 六、扩展资料