tencent cloud

腾讯云超级应用服务

动态与公告
【2025年1月2日】关于腾讯云小程序平台更名为腾讯云超级应用服务的公告
控制台更新动态
Android SDK 更新动态
iOS SDK 更新动态
Flutter 更新动态
IDE 更新动态
基础库更新动态
产品简介
产品概述
产品优势
应用场景
购买指南
计费概述
按量计费(后付费)
续费指引
停服说明
快速入门
套餐管理
概述
控制台账号管理
存储配置
加速配置
品牌化配置
平台功能
控制台登录
用户和权限体系
小程序管理
小游戏管理
应用管理
商业化
平台管理
用户管理
团队管理
运营管理
安全中心
代码接入指引
Demo 及 SDK 获取
Android
iOS
Flutter
App 服务端接入指南
GUID 生成规则
小程序开发指南
小程序介绍与开发环境
小程序代码组成
指南
框架
组件
API
服务端
JS SDK
基础库
IDE 使用指南
小游戏开发指南
指南
API
服务端
实践教程
小程序登录实践教程
小程序订阅消息实践教程
支付相关实践教程
广告接入实践教程
小游戏订阅消息实践教程
相关协议
数据处理和安全协议

iOS SDK 常见问题

PDF
聚焦模式
字号
最后更新时间: 2026-03-20 17:56:26

集成时常见问题

集成 SDK 的最低配置是什么?

小程序 SDK 支持 iOS 9 以及 iOS 9以上,低于 iOS 9的系统版本不支持。

Xcode 15 以上版本编译后,在 iOS 12及以下设备上出现崩溃问题

在项目编译选项中添加 -Wl,-ld_classic 配置。




集成 SDK 后对安装包的大小有什么影响

SDK 使用核心库和扩展库的方式,方便使用者根据自己的需要来集成 SDK,在只集成核心库的情况下,对整体安装包的大小影响在4M 左右。

使用时常见问题

小程序启动失败排查

小程序启动失败,可能有如下几种原因:
原因一:配置文件路径错误,如果配置文件在子目录下需要追加目录路径,例如:server/tcsas-ios-configurations.json。
原因二:不允许修改小程序配置文件内容,否则小程序无法正常运行。
原因三:配置文件中的 bundleid 必须与 superapp 的 bundleid 保持一致,否则 superapp 运行失败,因为初始化时会校验配置文件中的 bundleid。


是否支持小程序某页面完全隐藏导航栏?如果支持,该如何实现?

答:支持。
像微信、支付宝、百度等小程序的 navigationStyle有 default/custom 两个值,小程序 SDK 在此基础上,新增了一个 hide,即有 default/custom/hide 三个值。
所以在需要隐藏导航栏的页面,设置 navigationStyle 为 hide 即可。

如何设置灰度发布条件?

Superapp 开发者可以通过 SDK 提供的方法设置,方便在灰度推送等场景下使用。
GUID
GUID 是 SDK 提供的唯一设备 ID,在 superapp 安装后生成,在 superapp 存在期间不会发生变化,当 superapp 被删除重新安装后,会重新生成一个新的GUID,superapp 中获取 GUID 的方法如下:
// 获取当前设备的 guid 信息
// Get the GUID information of the current device
- (NSString *)getGuid;

NSString *guid = [[TMFMiniAppSDKManager sharedInstance] getGuid]
自定义设备 ID
SDK 提供接口,可以允许 superapp 设定当前设备 ID,用于在控制台上进行灰度条件的匹配,superapp 中设置自定义设备 ID 是在 SDK 初始化时进行,参考代码如下:
TMAServerConfig *config = [[TMAServerConfig alloc] initWithFile:filePath];
config.customizedUDID = @"customizedUDID_xxxxxxxx";
[[TMFMiniAppSDKManager sharedInstance] setConfiguration:config];
设置用户 ID
SDK 提供接口,允许 superapp 设置当前登录的用户账号,用于在控制台上进行灰度条件的匹配。
// 上报用户ID,如果参数为空 则视为解绑
// Report user ID,If the parameter is empty, it will be regarded as unbinding
// @param customizedUserID 用户自定义 user ID - customized user ID
- (void)updateCustomizedUserID:(nullable NSString *)customizedUserID;
[[TMFMiniAppSDKManager sharedInstance] updateCustomizedUserID:@"abc123"];

是否支持数据上报时上报到三方服务?

支持 Superapp 将小程序数据上报到任意服务,详细可参见日志与事件上报 部分。

小程序是否支持不同登录用户的数据隔离?

支持。
SDK 支持小程序的数据根据不同的登录用户进行隔离存储,进行数据保护及避免业务逻辑的混乱,需要开发者在代理中实现返回AppUID,SDK 根据 AppUID 进行数据存储。
/**
* @brief 获取 superapp 的当前用户账号标识,一般填 uin 或 openid - Get the current user account ID of the SDK host platform, usually fill in uin or openid
*
* 注意:返回 nil 会导致 SDK 内某些缓存失效。如果没有登录,可以填个设备号 id 来避免缓存失效 - Note: Returning nil will cause some caches in the SDK to become invalid. If you are not logged in, you can fill in the device ID to avoid cache failure.
*/

- (NSString *_Nonnull)getAppUID;

小程序打开时如何传递参数?

打开小程序时可以通过指定 paramsStr 参数:
[[TMFMiniAppSDKManager sharedInstance] startUpMiniAppWithAppID:@"mpbz0uqwzddj5zbt" scene:TMAEntrySceneNone firstPage:nil paramsStr:@"a=1&b=2" parentVC:self completion:^(NSError * _Nullable err) {

}];
在小程序中可以在 wx.getEnterOptionsSync 的 extendData 字段获取打开时传入的参数:


调试相关

如何调试小程序?

在集成小程序 SDK 后,Xcode 运行起小程序后(使用 develop profile 打包的应用也可以使用电脑 Safari 查看),可以打开电脑 Safari,然后在工具栏开发 中,选中运行的模拟器或者真机设备,就可以选择小程序打开的页面列表,选中当前打开的页面,就可以审核页面元素、查看网络调用,以及一些 log 日志等。
在 iOS 16.4后,因为系统限制,需要打开 inspectable 才能支持进行 Safari 开发模式,可以在代理类中实现相关接口,返回 YES。
// ios16.4后是否开启 inspectable,可以通过 safari 进行开发调试
// Whether to enable inspectable after ios16.4, you can develop and debug through safari
- (BOOL)inspectableEnabled;

如何开启 vConsole?

开发版与预览版小程序支持通过胶囊菜单打开调试开关查看 vConsole 信息,正式版本小程序无法打开 vConsole,需要小程序内部通过调用 wx.setEnableDebug 来打开 vConsole。

小程序打开异常时如何排查?

打开小程序时,可在小程序回调接口中获取错误代码及错误描述,错误描述中包含当前请求的 traceId,建议使用方保存该错误信息,方便进行问题排查。


SDK 与基础库不同版本之间兼容性说明

SDK 与基础库在版本升级时均遵循向前兼容设计,理论上各版本间可相互兼容,仅新增能力无法正常使用。为避免功能差异过大,SDK 从后台拉取基础库时,默认仅匹配版本号前两位一致的基础库版本:例如 SDK 版本为 2.2.x 时,仅可拉取 2.2.x 系列基础库;SDK 版本为 2.3.x 时,仅可拉取 2.3.x 系列基础库。因此针对私有化部署客户,若对 SDK 进行大版本升级(如从 2.2.x 升级至 2.3.x),需同步在后台将基础库升级至对应的 2.3.x 版本;否则 SDK 将无法正常拉取基础库,进而导致小程序启动失败。


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈