我和一些同事正在构建应用程序并使用git进行版本控制。
我们的应用程序使用了Google Maps Api,它根据SHA1证书生成唯一的api密钥。要使用地图,必须在清单中引用api密钥
....
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="api_key_goes_here"/>
</application>
我们每个人都根据个人计算机上的应用程序构建生成了我们自己的api密钥,但我们希望在我们的每台计算机上都有一个属性文件,而不是检查版本控制,它存储了我们独特的api密钥,所以每次从存储库中提取时,我们都不必手动更改清单中的api密钥。
这可能吗?我知道android studio中有属性文件,但我不知道如何使用它们,特别是在这种情况下。
编辑:
完整清单:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:name=".Application">
<activity android:name="com.misfiremedia.parseexperiment.app.DispatchActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.misfiremedia.parseexperiment.app.SignUpActivity">
</activity>
<activity
android:name="com.misfiremedia.parseexperiment.app.WelcomeActivity"
android:configChanges="orientation|keyboardHidden"/>
<activity
android:name=".EmailLogInActivity"
android:configChanges="orientation|keyboardHidden"/>
<activity
android:name="com.misfiremedia.parseexperiment.app.HomeActivity"
android:configChanges="orientation|keyboardHidden"/>
<activity
android:name="com.misfiremedia.parseexperiment.app.home.PostLocationActivity"
android:configChanges="orientation|keyboardHidden"/>
<activity
android:name=".NewPostActivity"
android:configChanges="orientation|keyboardHidden"/>
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version"/>
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="THIS_IS_THE_KEY_WE_NEEDED_TO_HAVE_DIFFERENT"/>
</application>
答案 0 :(得分:0)
在Android中有一个buildTypes概念,所以你可以创建三个buildTypes或你团队中需要多少个。
如下图所示,有一个,两个和三个,有三个不同的清单,每个清单都有不同的键。
现在团队成员可以选择他们各自的buildVariant和work,当有人从git中获取时,选择的buildVariant没有任何影响,它会维持选择。