全部产品

SDK接入文档

前提条件

  • 已在云码渠道平台注册账号,获取渠道ID。

  • 已在云码渠道平台已创建媒体,获取媒体ID。

使用限制

  • iOS >= iOS 9.0

  • SDK编译环境 Xcode 12

  • framework架构 : x86_64 armv7 arm64

样例代码

阿里云云码iOS SDK接入工程样例参见云码iOS Demo

集成步骤

  1. 添加依赖

    1. 手动添加依赖

      1. 解压下载好的SDK包,在Xcode中,把SDK包目录中的framework拖入对应Target下即可,在弹出框勾选Copy items if needed

        AlicloudCloudCode.framework
        UTDID.framework
      2. 配置Objc

        iOS端集成SDK时需要做-ObjC配置,即应用的 TARGETS -> Build Settings -> Linking -> Other Linker Flags ,需添加上 -ObjC 这个属性。

    2. Pod 集成

      1. 指定Master仓库和阿里云仓库。

        source 'https://github.com/CocoaPods/Specs.git'
        source 'https://github.com/aliyun/aliyun-specs.git'
      2. 添加依赖

        pod 'AlicloudCloudCode', '~> x.x.x'
        说明

        ~>为模糊指定版本号方式,~> 1.19.2.4表明引用版本位于1.19.2.4 <= version < 1.20.0之间的最新版本SDK,用户可参考 Podfile Syntax Reference,根据项目需要指定SDK版本。

  2. 引入头文件

    #import <AlicloudCloudCode/AliCloudCodeAdSDK.h>
  3. 配置Objc

    iOS端集成SDK时需要做 -ObjC 配置 ,即应用的 TARGETS -> Build Settings -> Linking -> Other Linker Flags ,需添加上 -ObjC 这个属性,否则推送服务无法正常使用。

    Other Linker Flags中设定链接器参数-ObjC,加载二进制文件时,会将 Objective-C 类和 Category 一并载入 ,若工程依赖多个三方库 ,将所有 Category 一并加载后可能发生冲突,可以使用 -force_load 单独载入指定二进制文件,配置如下 :

    -force_load<framework_path>/AlicloudCloudCode.framework/AlicloudCloudCode
  4. SDK初始化配置

    设置渠道ID、媒体ID

    /// AliCloudCodeAdSDK.h
    /// 渠道ID
    /// @param channelId 渠道ID
    /// @param mediaID 媒体ID
    + (void)setChannelID:(NSString *)channelId mediaID:(NSString *)mediaID;
    
    /// 配置渠道ID 媒体ID
    [AliCloudCodeAdSDK setChannelID:@"渠道ID" mediaID:@"媒体ID"];

    SDK初始化

    /// AliCloudCodeAdSDK.h
    /// SDK 初始化
    /// @param callBack 初始化状态回调
    + (void)sdkInit:(void (^)(BOOL isSuccess, NSError * _Nullable error))callBack;
    
    /// 初始化SDK
    [AliCloudCodeAdSDK sdkInit:^(BOOL isSuccess, NSError *error) {
            if (isSuccess) {
                //SDK 初始化成功
            } else {
                //SDK 初始化失败
                NSLog(@"失败原因:%@", error.description);
            } 
    }];
    

注意事项

iOS14 针对IDFA获取做了改变。需要适配ATT,获取IDFA前需要设置 App Tracking Transparency的跟踪权限,若用户拒绝则获取的IDFA 将无效。

  • 适配ATT

    • 编译环境Xcode12及以上版本

    • Info.plist,添加 NSUserTrackingUsageDescription 字段和自定义文案描述

      <key>NSUserTrackingUsageDescription</key>
      <string>idfa申请文案</string>
    • 获取IDFA

       if (@available(iOS 14, *)) {
              ATTrackingManagerAuthorizationStatus status = ATTrackingManager.trackingAuthorizationStatus;
              switch (status) {
                  case ATTrackingManagerAuthorizationStatusDenied:
                  {
                      NSLog(@"用户拒绝");
                  }
                      break;
                  case ATTrackingManagerAuthorizationStatusAuthorized:
                  {
                      NSLog(@"用户允许");
                  }
                      break;
                  case ATTrackingManagerAuthorizationStatusNotDetermined:
                  {
                      NSLog(@"用户未做选择或未弹窗");
                      //申请权限后获取idfa
                      [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
                             NSLog(@"获取权限后的后续操作");
                      }];
                  }
                      break;
                  default:
                      break;
              }
          } else {
              // Fallback on earlier versions
              if ([ASIdentifierManager.sharedManager isAdvertisingTrackingEnabled]) {
                  //获取IDFA
              } else {
                  NSLog(@"用户禁止IDFA获取");
              }
         }