android - 检测移动应用程序是否是从 AppStore/Play Store 中的 Production Track 或 Beta Track 安装的

标签 android ios xamarin xamarin.forms

我有一个适用于 AndroidiOS 的移动应用,两者都是使用 Xamarin 构建的。

Android - 该应用会上传到 Beta 轨道 上的 Play 商店,测试完成后,就会升级到生产轨道

iOS - 测试完成后,应用程序将上传到 Test Flight,在 AppStoreConnect 中创建新版本,构建版本设置为当前处于测试飞行状态的应用程序,并且然后准备出售(因此会显示在 Apple AppStore 中)。

有没有办法在移动应用程序中检测该应用程序是否是从 Play 商店(适用于 Android)中的 Beta Track 或 Production Track 安装的。对于 iOS 来说,检测应用程序是从试飞还是从 App Store 安装的?

我还有移动应用程序连接到的 2 个不同的 WCF Web 服务,一个是 Beta 服务,另一个是 Production 服务,这些端点都硬编码在应用程序中。

我想要完成的是,当应用程序从 Production Track/App Store 安装,然后连接到 Production 服务端点时,当应用程序从其他任何地方(即 Beta Track/Test Flight)安装时,然后使用 Beta服务。

我目前正在做的是,当应用程序打开时,用户可以在两者之间进行选择。当涉及到进行生产版本时,我从用户中删除了这个选择,只是让应用程序仅进入生产阶段。我希望根据用户安装应用程序的位置进行选择。

需要明确的是,这样做的目的是构建一个可用于测试版和生产版的单一 APK/IPA 应用。

更新 - 有一些有趣的建议,使用 API 根据版本号重新路由 Web 服务调用,但这些仍然涉及为应用程序的 Beta 和 Production 版本构建单独的 APK 文件(这并不能解决问题)。至于我试图通过“检测来自 Beta 轨道的安装”来完成的任务,目前看来这是不可能的。

最佳答案

我认为目前还不可能。但是,如果您想针对两个不同域的 API 集测试相同的 Android 版本,您可以使用 contentprovider 方法。您可以创建一个管理/实用程序类型的应用程序,它将通过使用内容提供商来传递/更新原始应用程序中的域。

我在我的一款产品中遵循了相同的做法,它真的很酷。

关于android - 检测移动应用程序是否是从 AppStore/Play Store 中的 Production Track 或 Beta Track 安装的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58373945/

相关文章:

ios - 在 Sprite-Kit 中滚动 Tilemap(JSTileMap 故障)

Android - 'SQLite.SQLiteConnection' 的类型初始值设定项引发异常。 ---> 系统.DllNotFoundException : e_sqlite3

android - MvvmCross:Android应用程序属性

android - Actionbar 列表导航宽度 - 换行内容

java - Android - 将 MediaMuxer 与 MediaExtractor 和 PCM 流一起使用会导致视频帧损坏

android - `doInBackground()` 不接受类型为 void 的 `AsyncTask`?

php - 如何使用 Postman 将对象上传到 Firebase Storage 进行测试?

ios - swift 2 警告 : Passing 2 arguments to a callee as a single tuple value is deprecated

ios - 用于查看特定内存地址处人类可读值的 LLDB 命令

android - MvvmCross Android - ViewModel 从未被垃圾收集