快速集成 iOS 版 IPC SDK

更新时间:2022-03-03 07:30:36下载pdf

iOS 版 IPC SDK 依赖 智慧安防 App SDK 中用户管理,设备配网,家庭管理,设备管理等部分,在此基础上实现了智能摄像机设备的功能。

SDK 最低支持系统版本 9.0。开发 App 时,IPC 设备不支持云开发方案,您需要同时使用 IPC SDK 和智慧安防 App SDK。

模块说明

模块 说明
TuyaSmartActivatorKit 设备配网 SDK
TuyaSmartCameraKit 涂鸦智能摄像机垂直化功能 SDK

TuyaSmartCameraKit 不只是一个单独的库,还会依赖到其他基础功能支撑的库,请参考 SDK 架构

环境设置

SDK 集成

Podfile 文件中添加以下内容:

platform :ios, '9.0'

target 'your_target_name' do

  pod "TuyaSmartActivatorKit"
	pod "TuyaSmartCameraKit"
	# pod "TuyaSmartCameraT"

end

如果您需要支持 p2p 1.0 的设备,需要增加 pod "TuyaSmartCameraT", 然后在项目根目录下执行pod update命令。

CocoaPods 的使用请参考 CocoaPods Guides

权限设置

IPC SDK 需要使用到相册访问权限和麦克风使用权限,请确保您的项目中添加了下面两个权限的使用说明,否则在录制/截图和对讲时,会造成 App 崩溃。

// 需要在info.plist 文件中添加以下权限
Privacy - Microphone Usage Description
Privacy - Photo Library Additions Usage Description

初始化 SDK

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

  2. 准备工作中下载的安全图片导入到工程根目录,重命名为t_s.bmp,并加入「项目设置 => Target => Build Phases => Copy Bundle Resources」中。

  3. 在项目的PrefixHeader.pch文件添加以下内容(Swift 项目可以添加在xxx_Bridging-Header.h桥接文件中)。

    #import <TuyaSmartBaseKit/TuyaSmartBaseKit.h>
    #import <TuyaSmartActivatorKit/TuyaSmartActivatorKit.h>
    #import <TuyaSmartCameraKit/TuyaSmartCameraKit.h>
    
  4. 打开AppDelegate.m文件,在[AppDelegate application:didFinishLaunchingWithOptions:]方法中,使用在涂鸦开发者平台上,App 对应的 App KeyApp Secret 初始化 SDK。

    Objective-C:

    [[TuyaSmartSDK sharedInstance] startWithAppKey:<#your_app_key#> secretKey:<#your_secret_key#>];
    

    Swift:

    TuyaSmartSDK.sharedInstance()?.start(withAppKey: <#your_app_key#>, secretKey: <#your_secret_key#>)
    

至此,涂鸦智能 App SDK 已经成功激活,可以开始 App 开发了。

Main 函数适配

视频出流成功后,将 App 退到后台,停留一段时间再回前台,可能会造成app崩溃,错误原因:Terminated due to signal 13

为了防止该崩溃的发生,请在项目中添加以下代码:

Objective-C :
main.m

int main(int argc, char * argv[]) {
    @autoreleasepool {

        struct sigaction sa;
        sa.sa_handler = SIG_IGN;
        sigemptyset(&sa.sa_mask);
        sa.sa_flags = 0;

        if (sigaction(SIGPIPE, &sa, NULL) < 0) {
            perror("cannot ignore SIGPIPE");
            return -1;
        }

        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}

Swift:
AppDelegate.swift

let handler: @convention(c) (Int32) -> () = { sig in
        // handle the signal somehow
        print("error", sig)
    }
    
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        
        signal(SIGPIPE, handler)
        return true
    }

开启 Debug 模式

在开发的过程中可以开启 Debug 模式,打印一些日志用于分析问题。

Objective-C:

#ifdef DEBUG
    [[TuyaSmartSDK sharedInstance] setDebugMode:YES];
#else
#endif

Swift:

#if DEBUG
   TuyaSmartSDK.sharedInstance()?.debugMode = true
#else
#endif

在开发过程中,涂鸦建议您使用真机调试。如果使用模拟器调试,可能导致部分功能无法正常使用。

运行 Demo App

Demo App 请访问 IPC SDK Demo 仓库。参考 智能生活App SDK Demo App 的简介,将 BundleIdAppKeyAppSecret、安全图片配置正确。

IPC SDK Demo App 在智能生活 App SDK Demo App 的功能基础上,增加了 IPC 设备的控制面板模块。

  • 直播页面:IPC 设备的 P2P 连接流程,实时视频播放,视频录制、截图、对讲等功能。

  • 回放页面:设备存储卡中视频片段的获取与播放,时间轴组件的使用。

  • 云存储页面:云存储服务的开通,状态判断,云存储视频和云存储事件的获取与播放。

  • 消息页面:告警事件的获取与展示。

  • 设置页面:IPC 设备标准 DP 功能点的使用。

    快速集成 iOS 版 IPC SDK 快速集成 iOS 版 IPC SDK 快速集成 iOS 版 IPC SDK快速集成 iOS 版 IPC SDK