介绍iOS SDK Level 7及之前版本中各SDK的初始化。

获取iOS安全图片

  1. 进入自有品牌App页面。
  2. 选择应用包的版本(测试版或正式版)。
  3. 单击iOS对应的下载安全图片
    下载安全图片,文件名为yw_1222_07e8.jpg获取安全图片
  4. 将安全图片放到工程根目录中。
    安全图片位置ios
  5. 打开xcode工具,将安全图片拖至xcodeproj根目录下。
  6. 设置iOS工程的Bundle Identifier。
    iOS端为了安全性,工程的Bundle Identifier与创建自有App时输入的bundleID(包名)要保持一致。bundleID包名

API通道SDK

在初始化SDK前,需要先集成安全图片,再参照下面的示例代码初始化SDK。

#import <IMSApiClient/IMSApiClient.h>

//指定 API 通道服务器域名和环境
[IMSConfiguration initWithHost:@"api.link.aliyun.com" serverEnv:IMSServerRelease];
// 海外环境,请参照如下设置
//[IMSConfiguration initWithHost:@"api-iot.ap-southeast-1.aliyuncs.com" serverEnv:IMSServerRelease];     

长连接通道SDK

长连接通道SDK依赖API通道。在API通道初始化成功后,参照下面的示例代码初始化该SDK。

#import <IMSApiClient/IMSApiClient.h>
#import <AlinkAppExpress/LKAppExpress.h>

IMSConfiguration * imsconfig = [IMSConfiguration sharedInstance];
LKAEConnectConfig * config = [LKAEConnectConfig new];
config.appKey = imsconfig.appKey;
config.authCode = imsconfig.authCode;
// 指定长连接服务器地址。 (默认不填,SDK会使用默认的地址及端口。默认为国内华东节点。不要带 "协议://",如果置为空,底层通道会使用默认的地址)
config.server = @""
// 开启动态选择Host功能。 (默认 NO,海外环境请设置为 YES。此功能前提为 config.server 不特殊指定。)
config.autoSelectChannelHost = NO;
[[LKAppExpress sharedInstance]startConnect:config connectListener:self];// self 需要实现 LKAppExpConnectListener 接口

通道建连接结果,会在初始化API传入的LKAppExpConnectListener实例中抛出。请在建连接成功后再使用下文描述的各种API,否则调用API会失败。

账号及用户SDK

SDK集成使用Pod集成,添加完依赖后需要将ALBBOpenAccountUI.framework中的“xib”格式的文件放置到主工程目录下。账号和用户SDK依赖API通道SDK。在API通道初始化成功后,再参照下面的示例代码初始化该SDK。

// 引入头文件
#import <IMSApiClient/IMSConfiguration.h>
#import <ALBBOpenAccountCloud/ALBBOpenAccountSDK.h>

ALBBOpenAccountSDK *accountSDK = [ALBBOpenAccountSDK sharedInstance];
// 设置安全图片authCode
IMSConfiguration *conf = [IMSConfiguration sharedInstance];
[accountSDK setSecGuardImagePostfix:conf.authCode];
// 设置账号服务器环境,默认为线上环境
[accountSDK setTaeSDKEnvironment:TaeSDKEnvironmentRelease];
// 设置账号服务器域名;如果是线上环境,可以不设置域名;
[accountSDK setGwHost:@"sdk.openaccount.aliyun.com"];
//如果需要切换到海外环境,请执行下面setDefaultOAHost方法,默认为大陆环境
//[accountSDK setGwHost:@"sgp-sdk.openaccount.aliyun.com"];
// 打开调试日志
//[accountSDK setDebugLogOpen:YES];

// 初始化
[accountSDK asyncInit:^{
  // 初始化成功
} failure:^(NSError *error) {
  // 初始化失败
}];

移动应用推送SDK

移动应用推送SDK依赖API通道SDK。在API通道初始化成功后,再参照下面的示例代码初始化该SDK。

#import <CloudPushSDK/CloudPushSDK.h>
#import <IMSApiClient/IMSConfiguration.h> 

- (void)initCloudPush {   
    //authCode设置 
    [CloudPushSDK setAuthCode:[[IMSConfiguration sharedInstance] authCode]];
    // 基于无线保镖初始化
    [CloudPushSDK asyncInitWithSecurity:^(CloudPushCallbackResult *res) {
        if (res.success) {
            NSLog(@"Push SDK init with security box success, deviceId: %@", [CloudPushSDK
 getDeviceId]);
         } else {
            NSLog(@"Push SDK init with security box failed, error: %@", res.error); }
         }];
}

BoneMobile容器SDK

BoneMobile容器SDK依赖API通道SDK,完成API通道的初始化后,再参照下面的示例代码初始化该SDK。

#import <IMSBoneKit/IMSBoneConfiguration.h>

IMSBoneConfiguration *configuration = [IMSBoneConfiguration sharedInstance];
configuration.pluginEnvironment = IMSBonePluginEnvironmentRelease;

在发布资源变更以前,可以把pluginEnvironment切换到开发环境来测试插件变更的效果。测试通过后,单击发布按钮,插件的变更才会发布到生产环境。

身份认证SDK

身份认证SDK依赖API通道SDK和账号SDK,完成相应的初始化后,再参照下面的示例代码初始化该SDK。

// 引入头文件
#import <IMSApiClient/IMSApiClient.h>
#import <IMSAccount/IMSAccountService.h>
#import <IMSAuthentication/IMSAuthentication.h>

IMSAccountService *accountService = [IMSAccountService sharedService];
// sessionProvider 需要开发者实现遵守IMSAccountProtocol协议的class 实例 
accountService.sessionProvider = (id<IMSAccountProtocol>)sessionProvider;
[IMSCredentialManager initWithAccountProtocol:accountService.sessionProvider];
IMSIoTAuthentication *iotAuthDelegate = [[IMSIoTAuthentication alloc] initWithCredentialManager:IMSCredentialManager.sharedManager];
[IMSRequestClient registerDelegate:iotAuthDelegate forAuthenticationType:IMSAuthenticationTypeIoT];
            

配网SDK

配网SDK自身不涉及初始化,但配网SDK依赖API通道SDK,因此需要完成API通道初始化才能使用。

物模型SDK

此功能模块依赖API通道SDK、长连接通道SDK。使用前请先初始化这两个SDK。再参照下面的示例代码初始化该SDK。

#import <IMSThingCapability/IMSThingCapability.h>

[kIMSThingManager startLocalAcceleration]; //初始化只需要添加此一行代码即可,此处会启动
// 本地通信加速能力.
// 当不再需要使用本地通信能力时,可调用下边接口停止
// [kIMSThingManager stopLocalAcceleration];