检测应用程序的阶段(alpha、beta 或生产)

2024-04-28

我正在使用 cordova 开发一个 android 应用程序,我希望使用三个给定的阶段来逐步发布它:

  • IT 测试的 Alpha
  • 合作伙伴测试版
  • 为其他人生产

但是,我正在使用 mixpanel 来跟踪一些用户输入。 Mixpanel 需要一个令牌才能工作,我有 2 个,一个用于测试版,另一个用于生产,它加载了mixpanel.init("token1")当应用程序启动时。

目前,我构建了一个没有定义在 alpha 中运行的令牌的 apk,然后我构建了另一个带有 token1 的 apk 以在 beta 中运行,稍后又构建了另一个带有 token2 的 apk 以在 prod 中运行。它有效,但很痛苦。

我希望使用promoteGoogle Play 开发者控制台中的选项,因此我可以构建一个 apk(自动),在需要时升级为 beta/prod,并知道它处于哪个阶段,因此它相应地使用令牌。

是否可以?如果没有,是否有更好的方法使其发挥作用?

TL;DR想要知道应用程序正在运行哪个阶段(alpha/beta/prod),因此它相应地使用令牌变量。


我不确定这是否有帮助,但是您是否使用 build.gradle 来制作不同的产品口味?您可以使其在每种类型的构建中生成具有不同最终常量的类。

因此,对于您的产品构建,您可以执行以下操作:

prod {  
applicationId "zuul.com.android"
buildConfigField 'String', 'HOST', '"http://api.zuul.com"'
buildConfigField 'String', 'FLAVOR', '"prod"'
buildConfigField "boolean", "REPORT_CRASHES", "true"
}

结果是这样的:

BuildConfig.HOST  
BuildConfig.FLAVOR  
BuildConfig.REPORT_CRASHES  

然后你就可以拥有一个用于开发版、测试版或其他用途的版本。

查看这些链接:

http://blog.brainattica.com/how-to-work-with-flavors-on-android/ http://blog.brainattica.com/how-to-work-with-flavours-on-android/

一次部署多个构建变体 - Android studio gradle https://stackoverflow.com/questions/24648470/deploying-multiple-build-variants-at-a-time-android-studio-gradle

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检测应用程序的阶段(alpha、beta 或生产) 的相关文章

  • Kotlin 中的单例类

    我想知道如何在 Kotlin 中创建一个单例类 以便我的 Util 类在每次应用程序执行时仅实例化一次 但是 当我将 Java 类转换为 kotlin 时 生成了以下代码 它是否正确 companion object private var
  • Android 6 getAccountName() 缺少 android.permission.GET_ACCOUNTS

    在 Android 6 设备上运行时出现以下异常 java lang SecurityException Missing android permission GET ACCOUNTS 这看起来像是一个相当简单的例外 但对我来说并非如此 我
  • Android SSL 无对等证书

    我有一个例外 没有同行证书 当我询问谷歌时 我得到了解决方案 我信任所有证书 但这个问题的答案是 它是不安全的 所以我给班级打电话 HostnameVerifier hostnameVerifier org apache http conn
  • InflateException:二进制 XML 文件行 #8:膨胀类 ImageView 时出错

    我知道还有其他问题也问同样的事情 我已经看过其中的大部分了 大多数答案都涉及内存错误 我看不出如何ImageView只加载一个小图标 24x24 像素 可以做出类似这样的东西 但我想在这里发布堆栈跟踪 也许其他人可以识别我无法识别的东西并帮
  • Flutter - 当用户移动到其他(预览)屏幕时如何正确暂停相机?

    我需要pause当我移动到导航树上的另一个屏幕以节省电池和性能时相机 我尝试过了dispose cameraController 但 flutter 从另一个屏幕返回时不会重新初始化状态 但这很明显 我使用相机的主要代码 override
  • 在 CollapsingToolbarLayout 中设置 minHeight 没有任何效果

    我目前使用 CollapsingToolbarLayout 遇到的主要问题是 无论我尝试什么 工具栏的 minHeight 属性都没有任何效果 我想要的结果是这样的 CollapsingToolbarLayout 具有一定的展开高度和一定的
  • Onclick 不会在 CardView 上触发

    我有一个OnClickListener on a CardView 仅当我点击内容之外的区域 TextViews ImageViews 时 侦听器才起作用 我的内部也有一个线性布局CardView 我希望当我点击屏幕上的任意位置时它就能工作
  • Android、AdMob:AdMob 广告刷新会破坏帧速率

    我正在开发一款游戏 并且进展顺利 不过 我确实对 AdMob 广告刷新有一些疑问 每次刷新广告或绘制广告的不同方面时 我的帧速率都会急剧下降 几乎使游戏无法玩 这是我用于加载广告的内容 ad new AdView this AdSize B
  • 无法在 Android 模拟器上使用 ART

    我只是想在我的模拟器上尝试 android 4 4 的 ART 我所做的是创建一个模拟器 选择设备为 Nexus 7 目标为 Android 4 4 RAM 512 然后我启动模拟器并加载它 然后我进入开发者选项并选择运行时作为 ART 设
  • Android 6.0 缺乏访问相机服务的权限

    我在 Android 6 0 中使用 Camera2API 我在Android 5 0中没有报错 然而 当我在 Android 6 0 中使用我的代码时 我遇到了问题 问题是有时我可以成功打开相机并拍照 但有时相机打不开 出现错误 java
  • 使用 firebase 按最新消息对聊天列表进行排序

    我不知道为什么我陷入了一个问题chatList不按最后一条消息时间或最新消息排序 我尝试过存储timestamp在数据库中和订单子依据时间戳 但它仍然不起作用 不起作用意味着列表不会在每条消息后排序 并继续将列表显示为在第一条消息后排序 看
  • Android React-Native 中 MainActivity 不存在错误

    所以我收到 MainActivity 不存在错误 这可能是因为我将包和应用程序重命名为bomber to Bomber并将 appId 更改为com bomber to cool bomber android 我检查了 AndroidMan
  • 膨胀类片段 InflateException 二进制 XML 文件时出错

    我正在使用 Material Design 和 NavigationDrawer 布局等设计我的第一个应用程序 但我遇到了一个问题 该应用程序非常简单 它只显示文本 并且基于 Android Studio 中提供的模板 尝试启动我的应用程序
  • 无法在cordova项目中安装插件

    我面临一个大问题 Unable to install the phonegap plugins在我的科尔多瓦项目中 实际上昨天它仍然工作正常 现在 每当我尝试在我的 cordova 项目中使用 CLI 添加任何 cordova 插件时 我收
  • 在Android中绘制圆角矩形

    我已经发现这个问题 https stackoverflow com questions 5618402 how to draw rounded rectangle in android ui解决方案是这段代码
  • 无法仅在控制台中启动 androidstudio

    你好 我的问题是下一个 我下载了Android Studio如果我去 路径 android studio bin 我执行studio sh 我收到以下错误 No JDK found Please validate either STUDIO
  • DialogFragment在Android中的位置

    我有一个DialogFragment显示一个View就像弹出屏幕一样 窗口始终出现在屏幕中间 有没有办法设置位置DialogFragment窗户 我已经查看了但还没有找到任何东西 尝试这样的事情 Override public View o
  • Android 和 iPhone 应用程序可以使用同一个 Facebook 应用程序 ID 吗?

    我有两个具有相同名称和相同功能的应用程序 一款在安卓市场 一款在应用商店 目前仅通过 iPhone 应用程序 您可以使用我创建的 Facebook 应用程序将您的分数发布到 Facebook 墙上 我的问题是我可以使用相同的 Android
  • 如何从耳机插孔获取电力?

    我的问题是是否有人知道如何创建一个可以通过设备的耳机插孔发送电荷的 Android 应用程序 就像这个视频中那样 该视频展示了一款 iPhone 应用程序 可控制插入耳机插孔的 LED 我想知道如何访问该设备来发送电信号 抱歉我的英语不是我
  • 如何为 Android Q 打开具有特定专辑或文件夹的默认图库应用程序?

    我尝试打开图库中的特定文件夹 如下代码所示 但它对我不起作用 并且出现错误无法找到物品 fun openDirectoryInGallery context Context directory String val intent Inten

随机推荐

  • 如何通过 Xcode 4 的组织者提交应用程序?我收到错误

    我安装了 Xcode 4 认为它与 Xcode 3 类似 但现在我无法使用组织器将我的二进制文件发送到 App Store 我认为这是执行此操作的正确方法 有人让它正常工作吗 不确定我需要更新什么设置 我得到的只是一条 无效的二进制 消息
  • WebSocket 和负载平衡是瓶颈吗?

    当有一堆充当 WebSocket 无人机的系统和这些无人机前面的负载均衡器时 当 WebSocket 请求进入 LB 时 它会选择一个 WebSocket 无人机 并建立 WebSocket 我在 ELB 上使用 AWS ELB tcp S
  • 自动创建 Visual C++ 故障转储

    有没有办法在应用程序崩溃时 在 Windows 操作系统上 自动创建故障转储文件 就像我可以使用附加的 Visual Studio 调试器进行保存一样 也就是说 我希望能够使用自动创建的故障转储文件在 Visual Studio 中调试我的
  • 什么是排列索引?

    我正在阅读 加速 C 我不明白练习 5 1 设计并实现一个程序 根据以下输入生成排列索引 排列索引是其中每个短语由短语中的每个单词索引的索引 The quick brown fox jumped over the fence The qui
  • 命令绑定到 ViewModel,并在 View 中使用确认逻辑

    寻找最优雅的解决方案将按钮命令绑定到 ViewModel ICommand 属性 同时允许在视图中进行确认 我想做的事 仅允许用户在应该时单击按钮 单击按钮时 要求确认 如果确认 则在 ViewModel 中进行工作 否则取消 不要破坏MV
  • 有没有办法向 JavaScript 对象添加元数据?

    我想将元数据的键值对添加到任意 JavaScript 对象 此元数据不应影响不知道元数据的代码 这意味着例如 JSON stringify obj JSON stringify obj WithMetaData key value 元数据感
  • 导致:org.eclipse.jgit.api.errors.RefNotFoundException:Ref master 无法解析

    我正在尝试Spring Boot 2 4 2 RELEASE并正在发展config server对于我的微服务项目 以下是我迄今为止开发的代码 配置服务器应用程序 java SpringBootApplication EnableConfi
  • 如何从谷歌分析中删除网站

    我是谷歌分析上多个网站的管理员 我可以删除其中一些吗 如果是 怎么办 你们中的许多人建议我删除我的个人资料 所以我的疑问是 1 我是多个项目的管理员 我只想删除其中一些 2 如果我删除我的个人资料 我会丢失所有物品吗 这是截至 2013 年
  • 了解elasticsearch如何在内部存储日期

    我想了解 ES 如何在其索引内部存储日期值 它会转换为 UTC 吗 我有一个日期类型的字段 t 这是映射 t type date 现在 当我向 ES 插入 添加文档时 它如何存储在索引中 t 1427700477165 从 Date now
  • FB.logout() - 无访问令牌 - “以不同用户身份登录”

    这个问题与这个问题相关 在没有访问令牌的情况下调用 FB logout https stackoverflow com questions 8430474 fb logout called without an access token 1
  • 即使在 virtualenv 激活后,python 也指向全局安装

    有点奇怪 我激活了虚拟环境python仍然指向全局安装 which python usr bin python source virtualenv bin activate virtualenv which python usr bin p
  • 在无序列表中的项目后面添加管道分隔符,除非该项目是一行中的最后一个

    是否可以设置此 html 的样式 ul li Dogs li li Cats li li Lions li li Tigers li li Zebras li li Giraffes li li Bears li li Hippopotam
  • 在同一 Jenkins 项目的后期重用工件

    我有一个 Jenkins 管道 其构建步骤有一个archiveArtifacts命令 构建步骤之后是单元测试 集成测试和部署 在部署步骤中 我想使用其中一个工件 我以为我可以在构建步骤生成它的同一个地方找到它 但显然archiveArtif
  • 如何将格式化的电子邮件地址解析为显示名称和电子邮件地址?

    给定电子邮件地址 Jim 电子邮件受保护 gt 如果我尝试将其传递给 MailAddress 我会得到异常 指定的字符串不符合电子邮件地址所需的格式 如何将此地址解析为显示名称 Jim 和电子邮件地址 电子邮件受保护 cdn cgi l e
  • 如何停止 IntelliJ 搜索传入的 SVN 更改?

    我的 IntelliJ IDE 12 1 4 定期搜索连接的 SVN 存储库中的传入更改 当我第一次安装 IntelliJ 时 不会自动搜索这些传入更改 如果我没记错的话 我必须单击 更改 选项卡中 传入 子选项卡中的刷新按钮并设置一些选项
  • Azure DevOps/Pipeline IP 随机变化,因此由于防火墙规则,我无法使用 Azure SQL 数据库

    Azure DevOps Pipeline IP 随机变化 因此由于防火墙规则 我无法使用 Azure SQL 数据库 这种情况下的解决办法是什么 在连接数据库之前 您可以根据代理的当前 IP 创建防火墙规则 如下所示 task Azure
  • PHP MySQL 检查表是否有主键

    我将查询 MySQL 服务器来检查表是否有主键 就像是 if mysql send SELECT TABLE table HAS PRIMARY KEY TRUE do stuff here SHOW INDEXES FROM TABLE
  • 在 Windows Phone 8 中设置广告

    我发现了一些对类似问题的零散回复 主要是 Windows Phone 7 但我想发布一个包含 Windows Phone 8 广告的所有要求的答案 我在 Windows Phone 8 中设置广告时遇到了一些问题 每次运行模拟器时 我都会遇
  • mysql_insert_id 带更新

    执行下面的查询后 我使用 PHP 函数mysql insert id 它总是给我0 UPDATE tbl training types SET fld serial serial no fld name training name fld
  • 检测应用程序的阶段(alpha、beta 或生产)

    我正在使用 cordova 开发一个 android 应用程序 我希望使用三个给定的阶段来逐步发布它 IT 测试的 Alpha 合作伙伴测试版 为其他人生产 但是 我正在使用 mixpanel 来跟踪一些用户输入 Mixpanel 需要一个