我的游戏有4种不同的风格(DemoARM,DemoX86,FullARM,FullX86)和标准的两种变体(调试/发布)。
该游戏使用Google Play登录和实时多人游戏服务。
在Google Play开发者控制台中,我有3个应用程序链接到游戏;调试,演示发布和完整发布。调试应用程序使用调试证书进行签名,因此需要不同的OAUTH应用程序ID。
我最初想过通过使用gradle将资源(不使用硬编码值)注入清单来解决这个问题...所以我的清单看起来像这样
<meta-data
android:name="com.google.android.gms.games.APP_ID"
android:value="${gmsID}" />
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
我的build.gradle看起来像这样
defaultConfig {
applicationId "xxx"
manifestPlaceholders = [ gmsID:"@string/google_app_id_debug"]
minSdkVersion 17
targetSdkVersion 17
versionCode 1
versionName 'Alpha 1'
}
buildTypes {
release {
minifyEnabled false
manifestPlaceholders = [ gmsID:"@string/google_app_id_release"]
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
这有效,因为它生成了一个与正确资源相关联的清单。但似乎Google服务的硬编码需要&#34; app_id&#34;作为资源名称,所以当我尝试使用构建的应用程序登录时,我收到错误配置的消息...