iOS SDK接入(手动集成)

本文介绍如何使用手动集成方式接入性能分析服务的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. 准备:下载开源库文件。

  2. 添加依赖:采用手动方式集成SDK。

  3. 接入服务:接入服务。

  4. 编译:修改编译设置。

准备

下载性能分析服务相关开源库文件,包括:

  • FBAllocationTracker:下载

  • FBMemoryProfiler:下载

  • FBRetainCycleDetector:下载

添加依赖

1:在Xcode中,将SDK目录中的framework文件拖入Target目录,在弹出框勾选Copy items if needed选项。

2:相同方式引入开源库文件:

  • FBAllocationTracker

  • FBMemoryProfiler

  • FBRetainCycleDetector

  • rcd_fishhook

说明

rcd_fishhookFBRetainCycleDetector工程目录下。

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不是一个版本。

【字符类型】英文大小写、数字。

说明

该参数不支持中文字符、特殊字符。

【示例】NSString *appVersion = @"2.3";

channel

用于指定渠道标识,上报至服务端,进行渠道区分。

【数据类型】字符串

【取值范围】任意长度

【是否必选】是

【是否可为空】否

【默认值】无

【字符类型】英文大小写、数字。

说明

该参数不支持中文字符、特殊字符。

【示例】NSString *channel = @"appstore";

nick

用于指定用户昵称,上报至服务端,进行用户区分。后续可能依据该参数,进行数据检索。

【数据类型】字符串

【取值范围】任意长度

【是否必选】是

【是否可为空】否

【默认值】无

【字符类型】英文大小写、数字。

说明

该参数不支持中文字符、特殊字符。

【命名规范】自定义

【示例】NSString *nick = @"john";

说明

推荐使用autoInitWithAppVersion接口接入服务,可自动导入应用配置。如需使用initWithAppKey接口接入服务,需手动配置appKey/secret/appmonitor.rsaSecret参数。

打开iOS配置文件,查询参数取值:

参数

配置文件字段

说明

appKey

emas.appKey

App标识。

secret

emas.appSecret

App认证信息。

appmonitor.rsaSecret

appmonitor.rsaSecret

移动监控公钥。

8E1483EC-CB20-45B3-BB90-12F43F4D7B4B 4980B820-8EB2-4997-A31F-0DA569260B3E

编译

1:在项目的Build Setting中,将Allow Non-modular Includes In Framework Modules设置为YES

编译设置

2:执行编译。

说明

  • 编译过程中如出现duplicate symbol类型错误,确认本地依赖与CocoaPods管理的依赖是否重复;如是,则删除本地依赖。

  • 如同时使用其他阿里云产品,可能会因为依赖中存在UTDID冲突,造成编译失败。解决办法请参见SDK UTDID冲突解决方案

样例代码

性能分析服务iOS SDK接入工程样例请参见Demo工程