首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为android清单中的调试或发布模式分离XML行

为android清单中的调试或发布模式分离XML行
EN

Stack Overflow用户
提问于 2013-12-13 15:33:09
回答 1查看 3.2K关注 0票数 10

我的Android清单在调试和发布时使用不同的值。

区分每种构建类型的值的最简单方法是什么?

调试时:

代码语言:javascript
复制
    <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="my-lovely-debug-api-key" />

释放时:

代码语言:javascript
复制
    <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="my-lovely-release-api-key" />

蒂娅。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-19 16:39:54

注意,如果您使用默认eclipse构建,那么它可能在Eclipse中使用了一个特殊配置的'Ant‘模块。您可以通过检查eclipse/Prefs中的“Window/Preferences/Ant”部分来检查Eclipse/Ant的协调程度.

一种解决方案是使Eclipse/Ant的协作更加明确,以便“build.xml”文件成为项目的一部分(项目级别的构建文件,而不是在构建时从$SDK/ROOT文件夹复制的默认文件)。

请参阅这里并阅读这里底部的注释,以更好地了解如何使用项目级别的“build.xml”文件。

一旦你消化了,下面的解决方案就更有意义了.

--解决方案--

按以下方式修改发行版和“build.xml”文件的调试部分:

代码语言:javascript
复制
  <!-- **************** 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键的属性值和其他.

代码语言:javascript
复制
# 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中,该资源xml是构建中“复制”命令的目标.

代码语言:javascript
复制
 'config/strings.xml'  

<string name="default_value_parse_key_appId">@CONFIG.API@</string>
<string name="default_value_parse_key_rest">@CONFIG.REST@</string>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20570204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档