iOS SDK接入(手动集成)

本文介绍如何使用手动集成方式接入性能分析服务的iOS SDK。

说明

iOS SDK接入可采用Pod集成和手动集成2种方式。推荐使用Pod集成方式接入性能分析服务,可大幅简化接入操作。Pod集成方式接入操作,请参见iOS SDK接入(Pod集成)

前提条件

  • 已下载iOS配置文件。具体操作,请参见快速入门:创建监控任务

    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。

步骤一:下载相关开源库文件

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

步骤二:添加依赖

  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拷贝至项目根目录。

  2. AppDelegate.m文件的application:didFinishLaunchingWithOptions方法中初始化SDK。引入头文件:

    #import <AlicloudAPM/AlicloudAPMProvider.h>
    #import <AlicloudHAUtil/AlicloudHAProvider.h>

    添加代码段:

    NSString *appVersion = @"xxx";  //指定App的版本。
    NSString *channel = @"xxx";  //指定渠道标识。
    NSString *nick = @"xxx";  //指定用户昵称。后续可依据该参数,进行数据检索。
    [[AlicloudAPMProvider alloc] autoInitWithAppVersion:appVersion channel:channel nick:nick];
    [AlicloudHAProvider start];
    说明

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

步骤四:编译

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

  2. 执行编译。

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

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

样例代码

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

阿里云首页 应用实时监控服务 相关技术圈