本文将为大家介绍如何使用 CocoaPods 将涂鸦智能生活 App SDK iOS 版快速集成到项目中。注意:SDK 要求 iOS 版本不低于 11.0。
更新 CocoaPods 至最新版本(CocoaPods 的使用可参考 CocoaPods 官方文档)。
在 Podfile
文件中添加以下内容:
- source 'https://github.com/tuya/tuya-pod-specs.git'
- platform :ios, '11.0'
-
- target 'Your_Project_Name' do
- pod "TuyaSmartHomeKit"
- end
在项目根目录下,执行 pod update
命令进行集成。
打开项目设置,Target > General,修改 Bundle Identifier
为 涂鸦 IoT 开发平台 对应的 iOS 包名。
导入安全图片到工程根目录,重命名为 t_s.bmp
,并加入 项目设置 > Target > Build Phases > Copy Bundle Resources 中。
在项目的PrefixHeader.pch
文件添加以下内容。
#import <TuyaSmartHomeKit/TuyaSmartKit.h>
Swift 项目可以在 xxx_Bridging-Header.h
桥接文件中添加以下内容。
#import <TuyaSmartHomeKit/TuyaSmartKit.h>
打开 AppDelegate.m
文件,在 [AppDelegate application:didFinishLaunchingWithOptions:]
方法中初始化 SDK。
- (void)startWithAppKey:(NSString *)appKey secretKey:(NSString *)secretKey;
参数说明
参数 | 说明 |
---|---|
appKey | App key |
secretKey | App 密钥 key |
示例代码
Objc:
[[TuyaSmartSDK sharedInstance] startWithAppKey:<#your_app_key#> secretKey:<#your_secret_key#>];
Swift:
TuyaSmartSDK.sharedInstance()?.start(withAppKey: <#your_app_key#>, secretKey: <#your_secret_key#>)
至此,准备工作已经全部完毕。
在开发的过程中可以开启 Debug 模式,打印日志用于分析问题。
Objc:
- #ifdef DEBUG
- [[TuyaSmartSDK sharedInstance] setDebugMode:YES];
- #else
- #endif
Swift:
- #if DEBUG
- TuyaSmartSDK.sharedInstance()?.debugMode = true
- #else
- #endif
接口返回的错误信息与文案等,将会根据工程所支持的多语言和用户手机的当前语言来显示。如果想要支持某种语言,可以在工程中的 Localization 中添加想要支持的语言。
演示工程主要介绍了 SDK 开发流程,以及一些简单的业务逻辑。在开发 App 之前,建议先按照本文完成演示工程的操作。
Widget 创建步骤
修改 Podfile
- post_install do |installer|
- installer.pods_project.targets.each do |target|
- target.build_configurations.each do |config|
- config.build_settings['APPLICATION_EXTENSION_API_ONLY'] = 'NO'
- end
- end
- end
AppGroups
配置安全图片和用 AppKey、AppSecret 初始化 SDK
在用 AppKey 初始化 SDK 前设置 AppGroupName
- [TuyaSmartSDK sharedInstance].appGroupId = APP_GROUP_NAME;
- [[TuyaSmartSDK sharedInstance] startWithAppKey:SDK_APPKEY secretKey:SDK_APPSECRET];
homeId
。TuyaSmartDeviceModel.switchDp
判断设备是否支持快捷开关。viewWillAppear
中判断是否在主工程中切换了账号和房间,如果切换了需要刷新数据。在准备工作阶段(准备工作具体操作步骤请参考我之前的文章:准备工作操作步骤),可以获取 iOS 版本 SDK 的 AppKey
、 AppSecret
、安全图片。
集成 SDK 时请确认 BundleId
、AppKey
、AppSecret
、安全图片是否与涂鸦 IoT 开发平台上的信息一致,任意一个不匹配会导致 SDK 无法使用。
演示工程提供了 Swift 与 Objective-C 的版本,下面来说说如何获取 Swift 示例 与 Objective-C 示例的演示工程。
先决条件:
Swift 示例演示工程:
- sudo gem install cocoapods
- pod setup
pod install
此示例要求拥有 涂鸦IoT开发平台 的一对密钥和一个ecurity image,可以在 获取密钥 的标签下找到 AppKey、AppSecret 和 security image。
打开 TuyaAppSDKSample-iOS-Swift.xcworkspace
生成的 pod。
在 AppKey.swift 文件中填写 AppKey 和 AppSecret 。
- struct AppKey {
- static let appKey = "Your AppKey"
- static let secretKey = "Your SecretKey"
- }
t_s.bmp
,然后将其拖到工作区以与 处于同一级别Info.plist
。Objective-C 示例演示工程:
- sudo gem install cocoapods
- pod setup
pod install
TuyaAppSDKSample-iOS-ObjC.xcworkspace
为您生成的 pod。- struct AppKey {
- static let appKey = "Your AppKey"
- static let secretKey = "Your SecretKey"
- }
t_s.bmp
,然后将其拖到工作区以与 处于同一级别Info.plist
。工程主要包括了以下功能:
用户账号注册及登录
用户信息管理
家庭管理
Wi-Fi 快连和热点模式配网
设备控制
问题现象:API 请求提示以下签名错误。
- {
- "success" : false,
- "errorCode" : "SING_VALIDATE_FALED",
- "status" : "error",
- "errorMsg" : "Permission Verification Failed",
- "t" : 1583208740059
- }
解决办法:确认 BundleId、AppKey、AppSecret、安全图片是否与 涂鸦 IoT 开发平台 上的信息一致,任意一个不匹配都将校验失败。具体请按照 我写的 准备工作 一文中的步骤来进行检查。