接入 iOS

本文介绍了将 mPaaS 国际化能力接入 iOS 客户端过程中的注意事项。

如果您的应用有国际化需求,请执行如下操作。

  • 多语言适配 (英/法/俄)

  • 检查接入的组件

    检查接入的组件,部分组件依赖的高德 SDK 或热修复组件可能无法通过 App Store 的审核,需要替换或移除相关 SDK 或组件,以及部分三方 SDK 可能会向中国大陆发送数据,可以根据需求决定是否移除相关组件。

多语言适配

多语言支持

英语

自 mPaaS iOS 10.2.3.64 基线起,mPaaS iOS SDK 已整体适配多语言 - 英语环境,将基线升级到 10.2.3.64 以上版本后即可使用;如果您使用的是小程序新容器,请将基线升级到 cp_change_15200851.55 及以上版本。

法语/俄语

如果还需要支持法语/俄语环境, 请搜索群号 41708565 加入钉钉群或 提交工单 联系 mPaaS 技术支持人员获取对应的语言包并检查翻译结果,将相应的语言包文件放到工程的 Languages.bundle 文件中。

多语言设置

默认跟随系统语言

  1. 在工程中添加 Languages.bundle.zip 来设置当前 App 支持的语言。

  2. 在应用启动完成时,初始化多语言框架。

    //#import <mPaas/APLanguage.h>
    [APLanguageSetting sharedSetting];

获取 App 当前语言

通过以下方式获取 App 当前语言。

NSString *currentLanguage = [APLanguageSetting currentLanguage].name;

修改 App 当前语言

  1. 在工程的 Languages.bundle 中,可查看当前 App 支持的语言,可通过以下方式修改 App 当前语言。

    [APLanguageSetting setCurrentLanguageWithName:@"en"];
  2. 若集成了离线包或小程序组件,请在初始化容器时,增加 Language/enuserAgnet

    [MPNebulaAdapterInterface shareInstance].nebulaUserAgent = @"mPaaS/Portal Language/en";
  3. 开启离线包或小程序默认报错页的开关,设置 h5_mpaas_error_pagetrue

    设置开关的方法请参考 接入小程序的注意事项

    - (NSDictionary *)nebulaCustomConfig
    {
        return @{@"h5_mpaas_error_page":@"YES"};
    }

检查接入的组件

高德定位 & 地图

高德定位和地图 SDK 部分版本无法通过 App Store 审核,请检查您的应用是否接入 mPaaS_AMap,如有接入需手动移除相关依赖。

移除高德 SDK 依赖

  1. 安装 cocoapods-mPaaS 插件。

    sh <(curl -s http://mpaas-ios.oss-cn-hangzhou.aliyuncs.com/cocoapods/installmPaaSCocoaPodsPlugin.sh)
  2. 重新运行命令更新本地基线:pod mpaas update 10.2.3

  3. 使用 mPaaS_pod 命令之前,在 Podfile 中引入 remove_pod "mPaaS_AMap"

  4. 去除高德组件库后,使用 pod install 命令重新拉取。

热修复

由于 App Store 禁止应用动态下发可执行的代码文件,接入热修复可能会导致您的应用存在拒审风险,推荐不接入热修复组件。

三方 SDK 数据发送

mPaaS SDK 中引入的三方 SDK 可能会向设立于中国大陆的服务器发送请求,如不希望您的应用向中国大陆发送数据,请您检查并确保未引入以下组件:

  • 分享 mPaaS_Share

  • 优酷播放器 mPaaS_TinyApp_Player

并将对应的 mPaaS 组件名从 Podfile 文件中删除。