tencent cloud

Tencent Cloud Super App as a Service

Release Notes and Announcements
Announcement: Tencent Cloud Mini Program Platform Renamed to Tencent Cloud Super App as a Service on January 2, 2025
Console Updates
Android SDK Updates
iOS SDK Updates
Flutter SDK Updates
IDE Updates
Base Library Updates
Product Introduction
Overview
Strengths
Use Cases
Purchase Guide
Billing Overview
Pay-As-You-Go Billing
Renewal Guide
Service Suspension Instructions
Getting Started
Plan Management
Overview
Console Account Management
Storage Configuration
Acceleration Configuration
Branding Configurations
Platform Features
Console Login
Users and Permission System
Mini Program Management
Mini Game Management
Superapp Management
Commercialization
Platform Management
User Management
Team Management
Operations Management
Security Center
Code Integration Guide
Getting Demo and SDK
Android
iOS
Flutter
Superapp Server
GUID Generation Rules
Mini Program Development Guide
Mini Program Introduction and Development Environment
Mini Program Code Composition
Guide
Framework
Components
API
Server Backend
JS SDK
Base Library
IDE Operation Instructions
Mini Game Development Guide
Guide
API
Server Backend
Practice Tutorial
Mini Program Login Practical Tutorial
Mini Program Subscription Message Practical Tutorial
Payment Practical Tutorial
Ad Integration Practical Tutorial
Mini Game Subscription Message Practical Tutorial
API Documentation
History
Introduction
API Category
Making API Requests
Operation Management APIs
User Management APIs
Team Management APIs
Sensitive API-Related APIs
Role Management APIs
Platform Management APIs
Other Console APIs
Mini Program or Mini Game APIs
Management-Sensitive APIs
Global Domain Management APIs
Superapp APIs
Data Types
Agreements
Service Level Agreement
Data Processing and Security Agreement
SDK Privacy Policy Module
SDK Data Processing and Security Agreement Module

iOS FAQs

PDF
Focus Mode
Font Size
Last updated: 2026-03-20 17:56:26

Common issues on integration

The minimum requirements for integrating the SDK

The mini program SDK supports iOS 9 and above. Systems below iOS 9 are not supported.

Crash issues on iOS 12 and earlier devices after compiling with Xcode 15 and later versions

Add -Wl, -ld_classic to the project compilation options.




Installation package size increases after integrating the SDK

The SDK adopts an approach with core library and extension libraries, allowing users to integrate the SDK based on their needs. When only the core library is integrated, the installation package size increases by approximately 4 MB.

Common issues on usage

Mini program fails to start

There may be several reasons for this:
Incorrect configuration file path: If the configuration file is in a subdirectory, you need to include the directory path, for example: server/tcsas-ios-configurations.json.
Modification of configuration file: You cannot modify the contents of the mini program configuration file; otherwise, the mini program will not function properly.
Mismatch in bundleId: The bundleId in the configuration file must match the superapp's bundleId. Otherwise, the superapp will fail to run, as the bundleId is validated during initialization.


Is it possible to completely hide the navigation bar on a mini program page? If so, how can it be achieved?

Yes.
Mini programs on platforms such as WeChat, Alipay, and Baidu offer two values for navigationStyle: default and custom. The mini program SDK expands on this by adding an additional value, hide, resulting in three values: default, custom, and hide.
To hide the navigation bar on a specific page, simply set navigationStyle to hide.

How to set the conditions for canary release?

Superapp developers can set the conditions through methods provided by the SDK.
GUID
The GUID is a unique device ID provided by the SDK. It is generated after the superapp is installed and remains unchanged while the superapp exists. If the superapp is deleted and reinstalled, a new GUID will be generated. Use the following method to obtain the GUID in the superapp:
// Get the GUID information of the current device

- (NSString *)getGuid;

NSString *guid = [[TMFMiniAppSDKManager sharedInstance] getGuid]
Customize device ID
The SDK provides an API that allows the superapp to set the current device ID for matching canary release conditions in the console. The custom device ID is set in the superapp during the initialization of the SDK. Sample code:
TMAServerConfig *config = [[TMAServerConfig alloc] initWithFile:filePath];
config.customizedUDID = @"customizedUDID_xxxxxxxx";
[[TMFMiniAppSDKManager sharedInstance] setConfiguration:config];
Set user ID
The SDK provides an API that allows the superapp to set the currently logged-in user ID for matching canary release conditions in the console.
// Report user ID. An empty parameter will trigger the unbinding of the currently logged-in ID from the superapp.

// @param customizedUserID Custom user ID
- (void)updateCustomizedUserID:(nullable NSString *)customizedUserID;
[[TMFMiniAppSDKManager sharedInstance] updateCustomizedUserID:@"abc123"];

Is it possible to report data to third-party services?

Yes, it supports reporting mini program data to any services. For details, refer to Log and Event Reporting .

Does the mini program support data isolation for different logged-in users?

Yes.
The SDK supports isolated storage of mini program data based on different logged-in users, ensuring data protection and preventing business logic confusion. Developers need to implement the return of the AppUID in the proxy, and the SDK will perform data storage based on the AppUID.
/**
* @brief Get the current account ID in the superapp. Generally, it is the uin or openid.
*
* Note: Returning nil may cause certain caches within the SDK to become invalid. If the user is not logged in, you can provide a device ID to prevent cache invalidation.
*/

- (NSString *_Nonnull)getAppUID;

How can parameters be passed when opening a mini program?

Parameters can be passed by specifying the paramsStr parameter when opening the mini program:
[[TMFMiniAppSDKManager sharedInstance] startUpMiniAppWithAppID:@"mpbz0uqwzddj5zbt" scene:TMAEntrySceneNone firstPage:nil paramsStr:@"a=1&b=2" parentVC:self completion:^(NSError * _Nullable err) {

}];
The parameters passed during opening the mini program can be retrieved in the extendData field of wx.getEnterOptionsSync:


Common issues on debugging

How to debug a mini program?

After integrating the mini program SDK, once the mini program is running in Xcode (superapps packaged with the develop profile can also be viewed in Safari on the computer), you can open Safari on your computer, navigate to the Develop option in the toolbar, and select the running simulator or real device. From there, you can choose the list of pages opened by the mini program. Select the currently open page to review elements, and view network calls and some logs.
Due to system restrictions, the inspectable must be enabled in iOS 16.4 and later versions to support development mode in Safari. This can be achieved by implementing the relevant API in the proxy class and returning YES.
// In iOS 16.4 and later versions, whether inspectable is enabled determines whether development and debugging via Safari are supported.

- (BOOL)inspectableEnabled;

How to enable the vConsole?

In the development and preview versions of the mini program, you can enable the vConsole via the capsule button to view vConsole information. In the released version of the mini program, you must call wx.setEnableDebug in the mini program to enable the vConsole.

How to troubleshoot when the mini program fails to open?

When opening the mini program, the error code and error description can be retrieved from the mini program callback API. The error description includes the traceId of the current request. Save the error description to facilitate troubleshooting.


Compatibility between SDK and base library versions

Both the SDK and base library follow a forward-compatible design during version upgrades, meaning different versions are generally compatible with each other—only newly added features may not work properly. To minimize functional differences, when the SDK fetches the base library from the backend, it by default only matches base library versions with the same first two version numbers.For example, an SDK version 2.2.x can only fetch base libraries in the 2.2.x series; an SDK version 2.3.x can only fetch 2.3.x series base libraries. Therefore, for on-premise deployment customers, if the SDK is upgraded across major versions (e.g., from 2.2.x to 2.3.x), the base library must also be upgraded accordingly in the backend (to the matching 2.3.x version). Otherwise, the SDK will fail to fetch the base library, causing the mini program to fail to start.



Help and Support

Was this page helpful?

Help us improve! Rate your documentation experience in 5 mins.

Feedback