配置应用程序id后缀
在您的应用程序 build.gradle 上进行以下配置,发布变体将使用com.example.myapp applicationId
,而调试变体将使用com.example.myapp.debug
android {
defaultConfig {
applicationId "com.example.myapp"
...
}
...
}
buildTypes {
debug {
applicationIdSuffix ".debug"
...
}
release {
...
}
...
}
配置多个 Firebase 帐户
如果您使用 Firebase,则需要两个 Firebase 帐户,一个用于生产,另一个用于开发。您必须在其自己的变体源集上为每个帐户配置 Google 服务 JSON:
- 发布源集上的生产 google-services.json:
app/src/release/google-services.json
- 发布源集上的开发 google-services.json:
app/src/debug/google-services.json
供应商当局
如果您已在AndroidManifest.xml
. 为避免此问题,一个好的做法是使用 applicationId 作为权限后缀。
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
</provider>
每个变体的自定义图标
如果您要在同一设备上安装多个变体,一个好主意是使用不同的应用程序图标,以便您可以在启动器上识别它们。您只需要设计一个调试应用程序图标并将其定位在src/debug/res/mipmap-xxhdpi-*
配置 FCM
现在您使用不同的 Firebase 帐户,如果您有 FCM(推送)服务器,则需要使用正确的凭据对其进行配置。注册带有调试应用程序的设备时,FCM 服务器需要将注册令牌与调试构建类型相关联。因此,在发送推送时,将使用 Firebase 调试凭据的令牌。因此,每次应用注册 FCM 令牌时,您都需要将构建类型发送到 FCM 服务器。
以下文章提供了有关此主题的更多信息:在同一设备上安装您的调试和发布变体