为我们的 Beta 测试人员启用的功能,发布如何删除

Posted

技术标签:

【中文标题】为我们的 Beta 测试人员启用的功能,发布如何删除【英文标题】:Features Enabled For Our Beta Testers, Release How to Remove 【发布时间】:2013-07-18 15:54:31 【问题描述】:

我们有一个活动菜单,允许 Beta 用户在多个测试/暂存数据库/REST 服务器之间切换。在发布时,我想删除这个菜单甚至不被看到。我不希望代码中的变量必须手动修改。我希望我们的 CI 为我做这件事。只是不确定动态构建以删除它的最佳方法。我正在考虑在清单中添加 debuggable,然后当 Jenkins 构建它以进行发布时,它将 manifest debuggable 更改为 false ,这反过来代码将对用户隐藏菜单。这是最好的方法还是有更好的方法? (也许在清单中使用 testOnly?)

【问题讨论】:

【参考方案1】:

目前我在清单中使用 debuggable 属性,该属性最初没有在文件中设置,因为 Eclipse 对此不满意。然后在我的 ant 脚本中,我创建了一个 custom_rules.xml,在其中我根据目标手动设置清单中的属性,如果发布则为 false,如果调试版本为 true。

<target name="-set-debug-files" depends="-set-mode-check">
.....
    <!-- alter the app manifest to reflect the testing state -->
    <property name="match.start" value="android:debuggable="/>
    <property name="match.end" value=">"/>
    <replaceregexp file="AndroidManifest.xml"
               match="$match.start.*$match.end"
               replace="$match.start&quot;true&quot;$match.end">
    </replaceregexp>

    <echo level="info">$ant.project.name 
        setting manifest debug state to true</echo>
</target>

<target name="-set-release-mode" depends="-set-mode-check">
......
    <property name="match.start" value="android:debuggable="/>
    <property name="match.end" value=">"/>
    <replaceregexp file="AndroidManifest.xml"
               match="$match.start.*$match.end"
               replace="$match.start&quot;false&quot;$match.end">
    </replaceregexp>

    <echo level="info">$ant.project.name 
         setting manifest debug state to false</echo>

</target>

然后在我放置在自定义应用程序类中的代码中,我创建了一个可以在我的活动中引用的静态。

DEBUG = (getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0;

然后当我需要隐藏/显示我使用的东西时:

if (MyApplication.DEBUGGABLE) 
    ...show stuff
 else 
    ...hide stuff

【讨论】:

以上是关于为我们的 Beta 测试人员启用的功能,发布如何删除的主要内容,如果未能解决你的问题,请参考以下文章

TestFlight Beta 测试——我们能否为不同的 1000 名外部测试人员提供同一应用程序的多个版本

如何为 beta 测试人员打包 SC 仪器?

Android 应用程序,让 beta 测试人员免费访问专业版

外部测试人员提交错误(Beta App Review)。 Apple Pay 的权利

通过 crashlytics beta 为应用添加更多 beta 测试人员

如何禁用 TestFlight Beta 测试?