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


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

    集成 SDK

    使用 CocoaPods 集成

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

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

      1. source 'https://github.com/tuya/tuya-pod-specs.git'
      2. platform :ios, '11.0'
      3. target 'Your_Project_Name' do
      4. pod "TuyaSmartHomeKit"
      5. 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:

    1. #ifdef DEBUG
    2. [[TuyaSmartSDK sharedInstance] setDebugMode:YES];
    3. #else
    4. #endif

    Swift:

    1. #if DEBUG
    2. TuyaSmartSDK.sharedInstance()?.debugMode = true
    3. #else
    4. #endif

    语言设置

    接口返回的错误信息与文案等,将会根据工程所支持的多语言和用户手机的当前语言来显示。如果想要支持某种语言,可以在工程中的 Localization 中添加想要支持的语言。

    演示工程主要介绍了 SDK 开发流程,以及一些简单的业务逻辑。在开发 App 之前,建议先按照本文完成演示工程的操作。

    配置 Widget 工程

    • Widget 创建步骤

    • 修改 Podfile

      1. post_install do |installer|
      2. installer.pods_project.targets.each do |target|
      3. target.build_configurations.each do |config|
      4. config.build_settings['APPLICATION_EXTENSION_API_ONLY'] = 'NO'
      5. end
      6. end
      7. end
    • AppGroups

      • 开启 AppGroups 权限
      • 在 SDK 初始化前,给 SDK 设置 AppGroups Name
      • 因为 AppGroups 只有付费开发者账号才能创建权限,所以免费开发者账号不能调试 Widget 应用
    • 配置安全图片和用 AppKey、AppSecret 初始化 SDK

    • 在用 AppKey 初始化 SDK 前设置 AppGroupName

      1. [TuyaSmartSDK sharedInstance].appGroupId = APP_GROUP_NAME;
      2. [[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:
    1. sudo gem install cocoapods
    2. pod setup
    • 复制或下载此示例,将目录更改为包含Podfile的目录,然后运行以下命令:
    pod install
    • 此示例要求拥有 涂鸦IoT开发平台 的一对密钥和一个ecurity image,可以在 获取密钥 的标签下找到 AppKey、AppSecret 和 security image。

    • 打开 TuyaAppSDKSample-iOS-Swift.xcworkspace 生成的 pod。

    • 在 AppKey.swift 文件中填写 AppKey 和 AppSecret 。

    1. struct AppKey {
    2. static let appKey = "Your AppKey"
    3. static let secretKey = "Your SecretKey"
    4. }
    • 下载安全镜像,将其重命名为t_s.bmp,然后将其拖到工作区以与 处于同一级别Info.plist

    Objective-C 示例演示工程:

    • 本示例中涂鸦 iOS 智能生活 App SDK 通过​ CocoaPods​ 等依赖分发。如果没有安装 CocoaPods,请先运行以下命令安装 CocoaPods:
    1. sudo gem install cocoapods
    2. pod setup
    • 复制或下载此示例,将目录更改为包含Podfile的目录,然后运行以下命令:
    pod install
    • 此示例要求拥有 涂鸦IoT开发平台 的一对密钥和一个ecurity image,可以在 获取密钥 的标签下找到 AppKey、AppSecret 和 security image。
    • 打开TuyaAppSDKSample-iOS-ObjC.xcworkspace为您生成的 pod。
    • 在AppKey.h文件中填写 AppKey 和 AppSecret 。
    1. struct AppKey {
    2. static let appKey = "Your AppKey"
    3. static let secretKey = "Your SecretKey"
    4. }
    • 下载安全镜像,将其重命名为t_s.bmp,然后将其拖到工作区以与 处于同一级别Info.plist

     工程主要包括了以下功能:

    • 用户账号注册及登录

    • 用户信息管理

    • 家庭管理

    • Wi-Fi 快连和热点模式配网

    • 设备控制

    常见问题

    • 问题现象:API 请求提示以下签名错误。

      1. {
      2. "success" : false,
      3. "errorCode" : "SING_VALIDATE_FALED",
      4. "status" : "error",
      5. "errorMsg" : "Permission Verification Failed",
      6. "t" : 1583208740059
      7. }
    • 解决办法:确认 BundleId、AppKey、AppSecret、安全图片是否与 涂鸦 IoT 开发平台 上的信息一致,任意一个不匹配都将校验失败。具体请按照 我写的 准备工作 一文中的步骤来进行检查。

  • 相关阅读:
    eBPF Talk: 比 kprobe 更好的 trampoline
    PyCharm 这40个使用技巧真棒
    #成为 SQL 大师#groupby 中不能有聚合函数
    低代码维格云甘特视图入门教程
    五年数据库专家,深入剖析高性能MySQL架构系统,不来后悔一辈子
    2022年8月阿里最新修订发布Spring Cloud学习笔记 ,榜首当之无愧
    【深度学习】6-卷积过程中数据的结构变化
    如何在两个相关泛型类之间创建类似子类型的关系
    【Kubernetes系列】Kubernetes管理工具Kuboard的安装使用
    [附源码]Python计算机毕业设计Django基于web的羽毛球管理系统
  • 原文地址:https://blog.csdn.net/Ms_Smart/article/details/127664789