如何使用 CocoaPods 将智能生活 App SDK iOS 版快速集成到项目中

Posted IoT砖家涂拉拉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用 CocoaPods 将智能生活 App SDK iOS 版快速集成到项目中相关的知识,希望对你有一定的参考价值。

本文将为大家介绍如何使用 CocoaPods 将涂鸦智能生活 App SDK ios 版快速集成到项目中。注意:SDK 要求 iOS 版本不低于 11.0。

集成 SDK

使用 CocoaPods 集成

  1. 更新 CocoaPods 至最新版本(CocoaPods 的使用可参考 CocoaPods 官方文档)。

  2. 在 Podfile 文件中添加以下内容:

    source 'https://github.com/tuya/tuya-pod-specs.git'
    platform :ios, '11.0'
    
    target 'Your_Project_Name' do
        pod "TuyaSmartHomeKit"
    end
    
  3. 在项目根目录下,执行 pod update 命令进行集成。

初始化 SDK

  1. 打开项目设置,Target > General,修改 Bundle Identifier 为 涂鸦 IoT 开发平台 对应的 iOS 包名。

  2. 导入安全图片到工程根目录,重命名为 t_s.bmp,并加入 项目设置 > Target > Build Phases > Copy Bundle Resources 中。

  3. 在项目的PrefixHeader.pch文件添加以下内容。

    #import <TuyaSmartHomeKit/TuyaSmartKit.h>
    

    Swift 项目可以在 xxx_Bridging-Header.h 桥接文件中添加以下内容。

    #import <TuyaSmartHomeKit/TuyaSmartKit.h>
    
  4. 打开 AppDelegate.m 文件,在 [AppDelegate application:didFinishLaunchingWithOptions:] 方法中初始化 SDK。

配置 SDK

- (void)startWithAppKey:(NSString *)appKey secretKey:(NSString *)secretKey;

参数说明

参数说明
appKeyApp key
secretKeyApp 密钥 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 时请确认 BundleIdAppKeyAppSecret、安全图片是否与涂鸦 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 版快速集成到项目中的主要内容,如果未能解决你的问题,请参考以下文章

如何快速实现移动 App 对智能设备的连接和控制,打造丰富的智能生活场景?

如何将安卓版智能生活 App SDK 集成到开发环境中?

智能生活 App SDK 如何实现设备控制

将Cocoapods与App Extension一起使用

智能生活 App SDK 开发入门教程

智能生活 App SDK 开发入门教程内附代码段