iOS OneID SDK集成

iOS OneID SDK集成

使用Xcode15的开发者请注意:
由于Xcode15在target<12下会存在Network.framework Crash问题。
解决方案一:用户需要升级使用GTCommonSDK 3.1.0.0+, SDK新增在Info.plist中添加GT_MinimumOSVersion字段,填写当前app的target值。对应的通知扩展的Info.plist也需要同样的修改。
解决方案二:修改target>=12。 苹果官网明确Xcode15最低支持iOS12+。

版本更新说明

1.0.0.0版本更新注意:

  • 由于Xcode15在target<12下会存在Network.framework Crash问题,SDK新增在Info.plist中添加GT_MinimumOSVersion字段,填写当前app的target值。

1.1. CocoaPods 集成(推荐)

  • 使用时需要新建一个名为 Podfile 的文件,如下格式,将依赖的库名字依次列在文件中即可:
target 'OneID' do
    platform :ios, "12.0"
    pod 'GTCommonSDK'
    pod 'OneID'
end

注意:
需要集成GTCommonSDK 3.1.5.0及以上版本。
需要集成ZXSDK 3.2.5.39379及以上版本。
pod GTCommonSDK会默认依赖ZXSDK,开发者需要注意一下ZXSDK的版本号。

  • 将编辑好的 Podfile 文件放到你的项目根目录中,执行如下命令即可:
$ cd "<path/to/project>"
$ pod install

1.2. 手动集成

1.2.1. 导入 SDK

  • SdkLib目录拷贝到项目工程目录下,导入SdkLib文件夹:

1.2.2. 库引用检查

  • 在导入时,Xcode正常情况下会自动添加引用,但是偶尔也会不添加,注意检查下图中的引用路径,如果报错找不到库或者头文件,一般都是下面的引用没有添加,请在$(inherited)下面添加你的framwork路径。

1.2.3. 添加系统依赖库

  • 在项目设置中添加以下系统库支持:
libc++.tbd
libz.**tbd**
libsqlite3.tbd
libresolv.tbd
Security.framework
MobileCoreServices.framework
SystemConfiguration.framework
CFNetwork.framework
CoreTelephony.framework
CoreLocation.framework
AdSupport.framework(如果需要采集idfa请添加此库并按照苹果要求进行申请)

1.2.4. 设置 Other Linker Flags

找到主工程的 target -> Build Setting -> Linking -> Other Linker Flags,在$(inherited)下面添加 -ObjC

配置权限

在此之外,您还可以配置以下可选权限,以便使用地理位置等相关的标签和特征,如居住城市标签等用于人群圈选和画像洞察,为精细化运营提供必要数据支撑。

可在项目的Info.plist中配置如下:


  <!-- 允许访问网络 -->
  <key>NSAppTransportSecurity</key>
  <dict>
  <key>NSAllowsArbitraryLoads</key>
  <true/>
  </dict>

  <!-- 卓信ID -->
    <key>ZX_CHANNEL_ID</key>
    <string>C01-GEztJH0JLdBC</string>

  <!-- IDFA -->
  <key>NSUserTrackingUsageDescription</key>
  <string>请求IDFA描述</string>

  <!-- 定位相关 -->
  <key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
  <string>根据业务需要,始终允许访问位置信息</string>
  <key>NSLocationAlwaysUsageDescription</key>
  <string>根据业务需要,始终允许访问位置信息</string>
  <key>NSLocationUsageDescription</key>
  <string>根据业务需要,永不允许访问位置信息</string>
  <key>NSLocationWhenInUseUsageDescription</key>
  <string>根据业务需要,使用应用期间允许访问位置信息</string>

集成代码

2.1. 初始化启动接口

接口描述:

启动OneID SDK

接口定义:

/**
 初始化启动接口

 @param appId 开发者中心生成的 appId
 */
[OneID startSdkWithAppId:@"appId" delegate:self];

接口说明:

AppDelegate didFinishLaunchingWithOptions 方法中:通过平台分配的 APPID 启动统计 SDK。

参数 参数说明
appId 应用标识 APPID

接口示例:

#import <OneID/OneID.h>
#define kGcAppId @"xxxxxxx"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // 启动OneID SDK
  [OneID startSdkWithAppId:kGcAppId delegate:self];
   return YES;
 }

2.2. 接收id

接口描述:

SDK默认不打印信息,发布版本时请关闭debug模式,以免影响性能。

接口示例:

/// SDK启动成功返回OneID信息
- (void)OneIDFetch:(NSDictionary *)info error:(NSError *)error {
    /*
     info内容示例:
     "oneAID": "I-xxxxxxxxfae28cfc4c63708xxxxxxxx", //其中oneAID前缀 I-表示是iOS系统
     "requestId": "xxx"
    */
    NSLog(@"OneIDFetch:%@ error:%@", info, error);
}

文档中心搜索

技术
咨询

微信扫一扫

随时联系技术支持

在线
咨询