如何使用 CocoaPods 将智能生活 App SDK iOS 版快速集成到项目中
Posted IoT砖家涂拉拉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用 CocoaPods 将智能生活 App SDK iOS 版快速集成到项目中相关的知识,希望对你有一定的参考价值。
本文将为大家介绍如何使用 CocoaPods 将涂鸦智能生活 App SDK ios 版快速集成到项目中。注意:SDK 要求 iOS 版本不低于 11.0。
集成 SDK
使用 CocoaPods 集成
-
更新 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
命令进行集成。
初始化 SDK
-
打开项目设置,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。
配置 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 模式
在开发的过程中可以开启 Debug 模式,打印日志用于分析问题。
Objc:
#ifdef DEBUG
[[TuyaSmartSDK sharedInstance] setDebugMode:YES];
#else
#endif
Swift:
#if DEBUG
TuyaSmartSDK.sharedInstance()?.debugMode = true
#else
#endif
语言设置
接口返回的错误信息与文案等,将会根据工程所支持的多语言和用户手机的当前语言来显示。如果想要支持某种语言,可以在工程中的 Localization 中添加想要支持的语言。
演示工程主要介绍了 SDK 开发流程,以及一些简单的业务逻辑。在开发 App 之前,建议先按照本文完成演示工程的操作。
配置 Widget 工程
-
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
- 开启 AppGroups 权限
- 在 SDK 初始化前,给 SDK 设置 AppGroups Name
- 因为 AppGroups 只有付费开发者账号才能创建权限,所以免费开发者账号不能调试 Widget 应用
-
配置安全图片和用 AppKey、AppSecret 初始化 SDK
-
在用 AppKey 初始化 SDK 前设置 AppGroupName
[TuyaSmartSDK sharedInstance].appGroupId = APP_GROUP_NAME; [[TuyaSmartSDK sharedInstance] startWithAppKey:SDK_APPKEY secretKey:SDK_APPSECRET];
使用 SDK
- 在主工程中设置当前
homeId
。 - 使用
TuyaSmartDeviceModel.switchDp
判断设备是否支持快捷开关。 - 需要在
viewWillAppear
中判断是否在主工程中切换了账号和房间,如果切换了需要刷新数据。
Demo App
准备 Demo
在准备工作阶段(准备工作具体操作步骤请参考我之前的文章:准备工作操作步骤),可以获取 iOS 版本 SDK 的 AppKey
、 AppSecret
、安全图片。
集成 SDK 时请确认 BundleId
、AppKey
、AppSecret
、安全图片是否与涂鸦 IoT 开发平台上的信息一致,任意一个不匹配会导致 SDK 无法使用。
Demo 概述
演示工程提供了 Swift 与 Objective-C 的版本,下面来说说如何获取 Swift 示例 与 Objective-C 示例的演示工程。
先决条件:
- Xcode 12.0 及更高版本
- iOS 12 及更高版本
Swift 示例演示工程:
- 本示例中涂鸦 iOS 智能生活 App SDK 通过 CocoaPods 等依赖分发。如果没有安装 CocoaPods,请先运行以下命令安装 CocoaPods:
sudo gem install cocoapods
pod setup
- 复制或下载此示例,将目录更改为包含Podfile的目录,然后运行以下命令:
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 示例演示工程:
- 本示例中涂鸦 iOS 智能生活 App SDK 通过 CocoaPods 等依赖分发。如果没有安装 CocoaPods,请先运行以下命令安装 CocoaPods:
sudo gem install cocoapods
pod setup
- 复制或下载此示例,将目录更改为包含Podfile的目录,然后运行以下命令:
pod install
- 此示例要求拥有 涂鸦IoT开发平台 的一对密钥和一个ecurity image,可以在 获取密钥 的标签下找到 AppKey、AppSecret 和 security image。
- 打开
TuyaAppSDKSample-iOS-ObjC.xcworkspace
为您生成的 pod。 - 在AppKey.h文件中填写 AppKey 和 AppSecret 。
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 开发平台 上的信息一致,任意一个不匹配都将校验失败。具体请按照 我写的 准备工作 一文中的步骤来进行检查。
以上是关于如何使用 CocoaPods 将智能生活 App SDK iOS 版快速集成到项目中的主要内容,如果未能解决你的问题,请参考以下文章