tencent cloud

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 将无法正常拉取基础库,进而导致小程序启动失败。


帮助和支持

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

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

文档反馈