Last Updated on : 2024-08-26 08:15:23download
This topic describes how to use CocoaPods to quickly integrate Tuya Smart Life App SDK for iOS into your project. The SDK requires iOS 9.0 or later.
t_s.bmp
from your project, and get the app key information for v5.0 from the Tuya Developer Platform.Log in to the Tuya Developer Platform.
Select the required SDKs or UI BizBundles of v5.x.x.
If a legacy SDK version has been used, you can click the button in the top right corner to switch between the legacy and new versions.
Select the required SDKs or BizBundles and build your SDK.
After the build is finished, download the SDK to be integrated.
Extract ios_core_sdk.tar.gz
and get the following important files:
Build
: stores the security SDK exclusive to your app. This file is as important as the app key information. Keep the file properly and do not disclose the information in it.ThingSmartCryption.podspec
: used to reference and integrate with App SDK v5.0.We recommend that you store both files at a sibling directory as podfile
, so they can be referenced easily during subsequent development.
ThingSmartBusinessExtensionKit
is an advanced encapsulation of ThingSmartHomeKit
. It not only includes all the features of ThingSmartHomeKit
, but also offers additional convenient capabilities. Therefore, we highly recommend using ThingSmartBusinessExtensionKit
.
Update CocoaPods to the latest version. For more information about CocoaPods, see CocoaPods Guides.
Add the following code block to the Podfile
:
source 'https://github.com/tuya/tuya-pod-specs.git'
platform :ios, '11.0'
target 'Your_Project_Name' do
# Build and get ThingSmartCryption from the Tuya Developer Platform (platform.tuya.com).
# After the official edition is purchased, rebuild the SDK on the Tuya Developer Platform and integrate it into your project.
# The dot slash (./) notation represents that the files that are obtained after ios_core_sdk.tar.gz is extracted are put at a sibling directory as podfile.
# To use another directory, change the path to your desired directory.
pod "ThingSmartCryption", :path =>'./'
pod "ThingSmartHomeKit"
# ThingSmartBusinessExtensionKit not only includes all the features of ThingSmartHomeKit, but also offers additional convenient capabilities.
pod "ThingSmartBusinessExtensionKit"
end
target 'Your_Extension_Target_Name' do
# Regarding all extension targets, as long as ThingSmartHomeKit is imported, ThingSmartCryption must be imported too.
pod "ThingSmartCryption", :path =>'./'
pod "ThingSmartHomeKit"
# ThingSmartBusinessExtensionKit not only includes all the features of ThingSmartHomeKit, but also offers additional convenient capabilities.
pod "ThingSmartBusinessExtensionKit"
end
If your app contains extension targets
, such as Siri and Widgets, make sure the Podfile
is configured correctly.
In the root directory of your project, run pod update
.
Choose Target > General to open the project settings, and modify Bundle Identifier
to the iOS Bundle ID of the app that is registered on the Tuya Developer Platform.
Add the following content to the PrefixHeader.pch
file:
#import <ThingSmartHomeKit/ThingSmartKit.h>
Add the following content to the bridging header file xxx_Bridging-Header.h
for a Swift project:
#import <ThingSmartHomeKit/ThingSmartKit.h>
If you have integrated the ThingSmartBusinessExtensionKit
component, you can import the following header file:
#import <ThingSmartBusinessExtensionKit/ThingSmartBusinessExtensionKit.h>
For Swift projects, you can add the following to your xxx_Bridging-Header.h
bridging header file:
#import <ThingSmartBusinessExtensionKit/ThingSmartBusinessExtensionKit.h>
Open the AppDelegate.m
file and initialize the SDK in [AppDelegate application:didFinishLaunchingWithOptions:]
.
- (void)startWithAppKey:(NSString *)appKey secretKey:(NSString *)secretKey;
Parameters
Parameter | Description | Source |
---|---|---|
appKey | The credential information exclusive to the app. | Go to Tuya Developer Platform > Details page of your SDK-based app, select the desired app, and then click the Get Key tab |
secretKey | The secret key of the app. | Go to Tuya Developer Platform > Details page of your SDK-based app, select the desired app, and then click the Get Key tab |
bundleId | The Bundle ID for iOS. | Go to Tuya Developer Platform > Details page of your SDK-based app, select the desired app, and then find Bundle ID for iOS |
Sample code
Objective-C:
[[ThingSmartSDK sharedInstance] startWithAppKey:<#your_app_key#> secretKey:<#your_secret_key#>];
Swift:
ThingSmartSDK.sharedInstance()?.start(withAppKey: <#your_app_key#>, secretKey: <#your_secret_key#>)
After the app launches, call loadConfig
to configure the BizBundle SDK.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[ThingSmartBusinessExtensionConfig setupConfig];
return YES;
}
Now, you are ready for app development. To learn how to get started with ThingSmartBusinessExtensionKit
, refer to the BizBundle SDK Development Tutorial.
During the development, you can enable the debug mode and print logs for troubleshooting.
Objective-C:
#ifdef DEBUG
[[ThingSmartSDK sharedInstance] setDebugMode:YES];
#else
#endif
Swift:
#if DEBUG
ThingSmartSDK.sharedInstance()?.debugMode = true
#else
#endif
The returned error messages and other UI text are displayed in languages as configured in the multilingual settings of your project and users’ mobile phone system languages. To support a certain language, add it to Localization of your project.
In the following example, a demo app is used to describe the process of app development with the App SDK. Before the development of your app, we recommend that you run the demo app.
Perform the following steps:
Modify the Podfile
.
target 'Your_Extension_Target_Name' do
# 1. Regarding all extension targets, as long as ThingSmartHomeKit is imported, ThingSmartCryption must be imported too.
# 2. Build and get ThingSmartCryption from the Tuya Developer Platform (platform.tuya.com).
# After the official edition is purchased, rebuild the SDK on the Tuya Developer Platform and integrate it into your project.
# The dot slash (./) notation represents that the files that are obtained after ios_core_sdk.tar.gz is extracted are put in a sibling directory as podfile.
# To use another directory, change the path to your desired directory.
pod "ThingSmartCryption", :path =>'./'
pod "ThingSmartHomeKit"
end
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
Target
and import components or SDKs into Target
as needed.ThingSmartCryption
must be imported together with the SDK.Configure AppGroups
.
AppGroups
.App Groups Name
for the SDK.AppGroups
. Therefore, free developer accounts cannot be used to debug widget applications.Configure the AppKey
and AppSecret
to initialize the SDK.
Before the SDK is initialized with AppKey
, set the App Groups Name
.
[ThingSmartSDK sharedInstance].appGroupId = APP_GROUP_NAME;
[[ThingSmartSDK sharedInstance] startWithAppKey:SDK_APPKEY secretKey:SDK_APPSECRET];
The demo app that is created in the sample project of Smart Life App SDK is used for reference only. Do not use the demo app for commercial purposes. For more information, see Tuya Development Service Agreement.
In the Preparation topic, get the AppKey
and AppSecret
for iOS.
Make sure that BundleId
, AppKey
, and AppSecret
are consistent with those used on the Tuya Developer Platform. Any mismatch will cause the SDK development app to fail.
If the SDK is switched from v5.0 to another version, you must change the key information to that of the target version. The way the SDK is integrated is changed accordingly.
The demo app is coded in Swift and Objective-C. You can get the sample in Swift and sample in Objective-C on GitHub. The following features are supported:
User registration and login
User management
Home management
Wi-Fi Easy Connect (EZ) mode and access point (AP) mode
Device Control
Problem: When an API request is made, an error message is returned in the following response:
{
"success" : false,
"errorCode" : "SING_VALIDATE_FALED",
"status" : "error",
"errorMsg" : "Permission Verification Failed",
"t" : 1583208740059
}
Solution: Make sure that BundleId, AppKey, and AppSecret are consistent with those used on the Tuya Developer Platform. Any mismatch will cause the authentication to fail. For more information, see Preparation.
Note: After you purchase the official edition, rebuild the SDK and replace the key information with the new one on the Tuya Developer Platform.
Is this page helpful?
YesFeedbackIs this page helpful?
YesFeedback