本文介绍如何使用手动集成方式接入性能分析服务的iOS SDK。
iOS SDK接入可采用Pod集成和手动集成2种方式。推荐使用Pod集成方式接入性能分析服务,可大幅简化接入操作。
如需使用Pod集成方式接入性能分析服务的iOS SDK,操作方法请参见iOS SDK接入(Pod集成)。
前提条件
已创建项目和应用。具体操作请参见创建项目和应用。
已设置上报网络数据的URL过滤。具体操作请参见设置URL过滤。
已下载应用的配置文件。具体操作请参见下载配置文件。
iOS配置文件:
AliyunEmasServices-Info.plist
重要确认下载最新版配置文件,其中须包含
appmonitor.rsaSecret
字段。已下载性能分析的SDK包,并确认包文件完整。具体操作请参见下载SDK。
SDK包文件(24个)列表如下:
AliAPMInterface.framework
AlicloudAPM.framework
AlicloudHAUtil.framework
AliCloudNetworkMonitor.framework
AlicloudUtils.framework
AliHACore.framework
AliHADataHub4iOS.framework
AliHADataHubAssembler.framework
AliHADeviceEvaluation.framework
AliHALogEngine.framework
AliHAMemoryMonitor.framework
AliHAMethodTrace.framework
AliHAPerformanceMonitor.framework
AliHAProtocol.framework
AliHASecurity.framework
AliRemoteDebugInterface.framework
BizErrorReporter4iOS.framework
EMASRest.framework
JDYThreadTrace.framework
TBJSONModel.framework
TBRest.framework
UTDID.framework
UTMini.framework
ZipArchive.framework
使用限制
仅支持iOS 8.0及以上的App。
接入概述
通过iOS SDK接入性能分析服务的操作步骤如下:
准备
下载性能分析服务相关开源库文件,包括:
添加依赖
1:在Xcode中,将SDK目录中的framework文件拖入Target目录,在弹出框勾选Copy items if needed选项。
2:相同方式引入开源库文件:
FBAllocationTracker
FBMemoryProfiler
FBRetainCycleDetector
rcd_fishhook
rcd_fishhook
在FBRetainCycleDetector
工程目录下。
3:打开Build Phases > Link Binary With Libraries,添加Xcode自带的公共包文件:
libc++.tbd
SystemConfiguration.framework
4:打开Build Phases > Compile Sources,为下列文件添加Compiler Flags:-fno-objc-arc
FBAssociationManager.mm
FBBlockStrongRelationDetector.m
FBBlockStrongLayout.m
FBClassStrongLayoutHelpers.m
NSObject+FBAllocationTracker.mm
FBAllocationTrackerNSZombieSupport.mm
接入服务
1:将iOS配置文件AliyunEmasServices-Info.plist
拷贝至项目根目录。
iOS配置文件的获取方式请参见前提条件。
2:在AppDelegate.m
文件的application:didFinishLaunchingWithOptions
方法中初始化SDK。
引入头文件:
#import <AlicloudAPM/AlicloudAPMProvider.h>
#import <AlicloudHAUtil/AlicloudHAProvider.h>
添加代码段:
NSString *appVersion = @"xxx"; //配置项
NSString *channel = @"xxx"; //配置项
NSString *nick = @"xxx"; //配置项
[[AlicloudAPMProvider alloc] autoInitWithAppVersion:appVersion channel:channel nick:nick];
[AlicloudHAProvider start];
配置说明如下:
配置项 | 说明 |
---|---|
appVersion | 用于指定App的版本,上报至服务端,进行版本区分。 【数据类型】字符串 【格式要求】自定义 【取值范围】任意长度 说明 该参数值将在控制台显示为下拉列表选项,建议短小凝练。 【是否必选】是 【是否可为空】否 【默认值】无 【大小写敏感】是。例如,vx.x和Vx.x不是一个版本。 【字符类型】英文大小写、数字。 说明 该参数不支持中文字符、特殊字符。 【示例】 |
channel | 用于指定渠道标识,上报至服务端,进行渠道区分。 【数据类型】字符串 【取值范围】任意长度 【是否必选】是 【是否可为空】否 【默认值】无 【字符类型】英文大小写、数字。 说明 该参数不支持中文字符、特殊字符。 【示例】 |
nick | 用于指定用户昵称,上报至服务端,进行用户区分。后续可能依据该参数,进行数据检索。 【数据类型】字符串 【取值范围】任意长度 【是否必选】是 【是否可为空】否 【默认值】无 【字符类型】英文大小写、数字。 说明 该参数不支持中文字符、特殊字符。 【命名规范】自定义 【示例】 |
推荐使用autoInitWithAppVersion
接口接入服务,可自动导入应用配置。如需使用initWithAppKey
接口接入服务,需手动配置appKey
/secret
/appmonitor.rsaSecret
参数。
打开iOS配置文件,查询参数取值:
参数 | 配置文件字段 | 说明 |
---|---|---|
appKey | emas.appKey | App标识。 |
secret | emas.appSecret | App认证信息。 |
appmonitor.rsaSecret | appmonitor.rsaSecret | 移动监控公钥。 |
编译
1:在项目的Build Setting
中,将Allow Non-modular Includes In Framework Modules
设置为YES
。
2:执行编译。
编译过程中如出现
duplicate symbol
类型错误,确认本地依赖与CocoaPods管理的依赖是否重复;如是,则删除本地依赖。如同时使用其他阿里云产品,可能会因为依赖中存在UTDID冲突,造成编译失败。解决办法请参见SDK UTDID冲突解决方案。
样例代码
性能分析服务iOS SDK接入工程样例请参见Demo工程。