tencent cloud

文档反馈

iOS SDK 常见问题

最后更新时间:2024-10-18 10:48:42

    集成时常见问题

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

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

    XCode 15 上编译后,在 ios12 及以下设备上出现崩溃问题

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

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

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

    使用时常见问题

    小程序启动失败排查

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

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

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

    如何设置灰度发布条件?

    宿主应用开发者可以通过 SDK 提供的方法设置用户的属性信息(地区或者账号),方便在灰度推送等场景下使用。
    设置用户 ID
    // 上报用户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;
    设置位置信息
    // 上报位置信息
    // Report location information
    // @param country 国家 - country
    // @param province 省 - province
    // @param city 市 - city
    - (void)updateAreaInfoWithCountry:(nullable NSString *)country Province:(nullable NSString *)province City:(NSString *)city;
    [[TMFMiniAppSDKManager sharedInstance] updateCustomizedUserID:@"abc123"];
    [[TMFMiniAppSDKManager sharedInstance] updateAreaInfoWithCountry:@"中国" Province:@"北京市" City:@"朝阳区"];

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

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

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

    支持。
    TCMPP SDK 支持小程序的数据根据不同的登录用户进行隔离存储,进行数据保护及业务逻辑的混乱,需要开发者在代理中实现返回AppUID,SDK 根据 AppUID 进行数据存储。
    /**
    * @brief 获取SDK宿主平台的当前用户账号标识,一般填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 日志等。
    在 ios16.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。
    TCMPP SDK 也支持在 App 设置自动打开所有小程序的 vConsole 模式,需要在代理类中实现相关的接口。
    // 调试是否开启
    // Whether debugging is enabled
    - (BOOL)vConsoleEnabled;

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

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

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持