繁体   English   中英

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

[英]Detect if mobile app was installed from Production Track or Beta Track in AppStore/Play Store

我有一个适用于AndroidiOS的移动应用程序,它们都是使用 Xamarin 构建的。

Android - 该应用程序被上传到Beta Track上的 Play 商店,一旦测试完成,它就会被提升为Production Track

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

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

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

我想要完成的是当应用程序从生产跟踪/应用商店安装然后连接到生产服务端点时,当应用程序从其他任何地方安装时(即 Beta 跟踪/试飞)然后使用 Beta 服务。

我目前正在做的是,当应用程序打开时,用户可以选择在 2 之间进行选择。当涉及到生产版本时,我从用户那里删除了这个选择,只是将应用程序 go 设为生产。 我希望根据用户安装应用程序的位置做出选择。

明确地说,这样做的目的是构建一个可用于 Beta 和 Production 的单个 APK/IPA 应用程序。

更新 - 有一些有趣的建议使用 API 根据版本号重新路由 web 服务调用,但这些仍然涉及为应用程序的 Beta 和生产版本构建单独的 APK 文件(这不能解决问题)。 至于我试图通过 Detecting installs from the Beta Track 来完成什么,看起来这目前是不可能的。

对你来说可能有点晚了,但这个答案仍然可以帮助其他人......

可以在 iOS 上找到安装源,如下所示:

#if DEBUG
    // XCODE INSTALL
#else
    NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL];
    NSString *receiptURLString = [receiptURL path];
    BOOL isRunningTestFlightBeta =  ([receiptURLString rangeOfString:@"sandboxReceipt"].location != NSNotFound);
    if (isRunningTestFlightBeta) {
        // TESTFLIGHT INSTALL
    }
    else {
        // STORE INSTALL
    }
#endif

不过,我仍然没有 Android 的答案。

我相信目前是不可能的。 但是,如果您想针对两个不同的域集 API 测试相同的 android 构建,则可以使用content provider方法。 您可以创建一个管理员/实用程序类型的应用程序,它将通过使用content providers程序传递/更新您原始应用程序中的域。

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

我希望根据用户安装应用程序的位置做出选择。

这是一个很好的问题。

一般情况下,我们不需要直接从应用程序或测试地点知道用户安装在哪里。我们可以使用版本跟踪来知道用户首先安装了哪个版本。然后从版本号我们可以知道安装在哪里。

也许你会怀疑为什么能知道。 是的,你的怀疑是正常的。 但我想说它其实可以知道安装在哪里。 这取决于您在开发应用程序时如何设计版本代码。

例如:如果定义一个发布版本代码为1.0 ,定义一个测试版本代码为1.0.1 发布发布版本时,只有一个点,否则版本代码中将有两个点。 运行应用程序时,您可以通过此规则检查版本安装位置。 这条规则并不总是与示例相同。 您可以在应用程序中自定义定义您的规则。

最后,获取版本代码可以using Xamarin.Essentials来实现:

var currentVersion = VersionTracking.CurrentVersion;

此外, VersionTracking还可以从应用程序中获取其他信息,请查看此文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM