首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >区分市场apk和调试apk

区分市场apk和调试apk
EN

Stack Overflow用户
提问于 2011-01-12 13:36:03
回答 4查看 949关注 0票数 3

有两个API,一个用于QA(测试和调试),另一个用于Production

我需要运行用于调试的api (我们使用eclipse创建)和Production api,当我们在不更改代码的情况下创建market apk时。有没有办法用代码检查当前正在运行的是debug apk还是market apk。或者任何我可以在清单中设置的东西

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-01-12 20:15:57

这就是Ant可以帮助你的地方。我总是使用Eclipse构建调试版本,然后使用Ant构建发布版本,这主要是因为我需要为每个版本使用不同的Google Maps API密钥。我有两个版本的main.xml,即debugmain.xml和releasemain.xml。我已经修改了build.xml中的发布目标,并添加了两个额外的目标:

代码语言:javascript
复制
<target name="check-release_main">
    <available file="${layout.dir}/releasemain.xml" property="releasemain.present" />
</target>


<target name="-copy-rel-main" depends="check-release_main" if="releasemain.present">
    <echo message="Hit copy rel main" />
    <copy file="${layout.dir}/releasemain.xml" tofile="${layout.dir}/main.xml" overwrite="true"/>
</target>

我将发布目标的依赖项更改为依赖copy-rel-main:

代码语言:javascript
复制
<target name="release" depends="clean, -copy-rel-main....... 

在发布目标的最后,复制了main.xml的调试版本以将main.xml重写回调试版本

代码语言:javascript
复制
    ......
    <echo message="Copying the debugmain.xml back to main.xml" />
    <echo message="ALWAYS LEFT IN DEBUG FROR ECLIPSE" />
    <copy file="${layout.dir}/debugmain.xml" tofile="${layout.dir}/main.xml" overwrite="true" />

</target>

您可以调整您的版本,以便在其中一个元素中包含一些可识别的文本或颜色,以表示设备上运行的是哪个版本

票数 1
EN

Stack Overflow用户

发布于 2011-01-12 14:08:48

在对应用程序进行签名时,可以在调试模式下对其进行签名。当您准备好发布时,您可以更改签名。下面是来自谷歌文档Signing Your Application的更多信息

票数 1
EN

Stack Overflow用户

发布于 2011-01-12 14:18:14

您可以将布尔值与字符串一起存储在XML文件中:

代码语言:javascript
复制
<resources>
  <bool name="debug">true</bool>
</resources>

然后在代码中使用this.getResources().getBoolean(R.debug) (其中this是一个活动或其他上下文)访问它。在大多数情况下保持为true,然后在发布时将其设置为false

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4665652

复制
相关文章

相似问题

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