我的Android清单在调试和释放时使用不同的值。
区分每种构建类型的值的最简单方法是什么?
调试时:
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="my-lovely-debug-api-key" />
发布时:
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="my-lovely-release-api-key" />
TIA。
答案 0 :(得分:1)
请注意,如果您使用的是默认的Eclipse构建,它可能会在eclipse中使用特殊配置的“Ant”模块。您可以通过选中eclipse / Prefs中的'Window / Preferences / Ant'部分来检查Eclipse / Ant协调的程度....
一个解决方案是更明确地,Eclipse / Ant的协作,以便'build.xml'文件是项目的一部分(项目级构建文件,而不是在构建时从$ SDK复制的默认文件) /根文件夹 )。
请参阅here并阅读底部here处的评论,以便更好地了解项目级别“build.xml”文件的使用方式。
一旦你消化了,下面的解决方案会更有意义......
<强> - 解决方案 - 强>
修改“build.xml”文件的Release和Debug部分,如下所示:
<!-- **************** Debug specific targets *************** -->
...
<target name="-set-debug-mode" depends="-setup">
...
<!-- API modify belo for build-typ -->
<copy file="config/strings.xml" todir="res/values">
<filterset>
<filter token="CONFIG.API" value="${config.db.api}"/>
<filter token="CONFIG.REST" value="${config.db.rest}"/>
</filterset>
</copy>
...
<!-- *************** Release specific targets ************** -->
...
<target name="-set-release-mode" depends="-set-mode-check">
...
<!-- API modify belo for build-typ -->
<copy file="config/strings.xml" todir="res/values">
<filterset>
<filter token="CONFIG.API" value="${config.db.api.prod}"/>
<filter token="CONFIG.REST" value="${config.db.rest.prod}"/>
</filterset>
</copy>
在根文件夹的'ant.properties'文件中,输入API密钥的属性值等等......
# API condition builds dev|prod in DB @parse.com
config.db.api=some_key_val
config.db.rest=some_k2_val
config.db.api.prod=some_k3_val
config.db.rest.prod=some_k4_val
并将其绑定在资源xml中,该资源是构建中“复制”命令的目标...
'config/strings.xml'
<string name="default_value_parse_key_appId">@CONFIG.API@</string>
<string name="default_value_parse_key_rest">@CONFIG.REST@</string>