动态环境切换指在客户端不重新打包的情况下,通过修改手机设置中环境选项,动态修改应用的环境信息。
动态环境切换功能仅支持在专有云环境下使用。
动态环境切换适用于开发阶段多套环境并存且频繁切换的场景。
采用动态环境切换时需要向应用写入新环境的环境配置文件。因此在采用该方式时,您需要为应用申请文件存储权限。
由于 mPaaS 安全验签机制的限制,更新环境配置信息会修改无线保镖验签 yw_1222.jpg 图片,因此动态切换环境有两个限制:
仅适用于开发阶段,上线前请注意删除对应的配置,否则 Release 包会报
RuntimeException异常。mPaaS 控制台需关闭网络请求验签开关,否则会因验签图片信息不对导致请求失败。

添加动态环境切换 SDK
添加依赖。
原生 AAR 接入方式下,在工程主 module 下面的
build.gradle配置文件中的dependencies中添加以下依赖:dependencies { ··· implementation 'com.mpaas.mocksettings:mocksettings-build:10.1.60a.1575@aar' ··· }Portal&Bundle 接入方式下,在 Portal 工程主 module 下面的
build.gradle配置文件中的dependencies中添加以下依赖:dependencies { ··· bundle 'com.mpaas.mocksettings:mocksettings-build:1.0.0.200421111458@jar' manifest 'com.mpaas.mocksettings:mocksettings-build:1.0.0.200421111458:AndroidManifest@xml' ··· }
使用 SDK。
原生 AAR 接入方式下,重写 Application 的
getPackageManager方法,替换PackageManager为MockSettingsPackageManager。private MockSettingsPackageManager mockSettingsPackageManager; @Override public PackageManager getPackageManager() { if (mockSettingsPackageManager == null) { mockSettingsPackageManager = new MockSettingsPackageManager(this, super.getPackageManager()); } return mockSettingsPackageManager; }Portal&Bundle 接入方式下,将 Portal 工程主 module 下的
AndroidManifest.xml中的application修改为:<application android:name="com.alipay.mobile.quinox.MockSettingsLauncherApplication" ··· > ··· </application>
添加以下权限并确保运行时已动态申请:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />编译 debug 包或在
AndroidManifest.xml中打开 debug 设置:<application android:debuggable="true" ··· > ··· </application>
动态切换
扫描二维码下载 mPaaS 设置 App。
安装完成后,显示 mPaaS 设置 App 的图标如下:
将 mPaaS 控制台下载的
config文件放入手机 SD 卡或内部存储中。添加环境。通过 mPaaS 设置 App 将
config文件添加到列表中。打开 mPaaS 设置 App。
点击 环境列表 页面底部的 添加环境配置文件。

找到要添加的环境配置文件。

依次将两个文件(正式环境和测试环境)添加至环境列表。

切换环境。
选择上图中的一个环境,点击 切换,将其选中为当前环境。

然后启动该环境所对应的 App,测试请求可正常发送,说明环境切换成功。

此时若切换到另一个环境,再重启前一个环境所对应的 App,由于新的环境内没有对应的 operationType,所以系统会报 3000 异常,这是已成功切换到另一个环境后的正常结果。




