【问题标题】:Does SKStoreProductViewController allow to update app?SKStoreProductViewController 是否允许更新应用程序?
【发布时间】:2013-03-14 00:08:53
【问题描述】:

找不到与此相关的任何信息...如果我从我的应用程序中启动 SKStoreProductViewController 实例,并为其提供该应用程序的 iTunes URL,它是否允许应用程序更新?换句话说,我想在我的应用程序中有一个“更新”按钮,显示SKStoreProductViewController,并允许用户从那里更新应用程序。

这很难验证,因为SKStoreProductViewController 正在运行 App Store 的“沙盒”版本,而且我不确定是什么决定了它是否显示“打开”或“更新”按钮。

【问题讨论】:

    标签: iphone itunes storekit


    【解决方案1】:

    我可以验证更新确实在展示拥有的应用程序时显示,该应用程序也安装了更新。

    当然,它还会为您拥有但尚未安装的应用显示“安装”,并为已安装且最新的应用显示“打开”。

    这是在已发布的应用程序中使用生产代码,但我仍然无法在 Apple 的文档中找到任何验证。

    通过

    更新当前应用

    如果您尝试更新 SKStoreProductViewController 中当前打开的应用程序,它将在更高版本的 iOS 上引发错误,因为无法安装。相反,您应该打开应用商店 URL 以强制打开应用商店。 itms-apps://itunes.apple.com/app/apple-store/id375380948?mt=8

    【讨论】:

    • 这表明您可以从应用 A 中托管的 SKStoreProductViewController 更新应用 B。它仍然没有回答您是否也可以从应用 A 中托管的 SKStoreProductViewController 更新应用 A。跨度>
    • 明天上班时,我会截取一张屏幕截图,显示当前正在运行的应用程序的更新屏幕。它确实有效。我只是没有截屏。
    • 我检查了大楼里的每一台 iPad。我们显然对更新过于虔诚,所以我找不到需要更新来在同一个应用程序中截屏的人。在其他应用程序中为同一设备上的应用程序显示更新按钮的示例不计其数,但没有可记录的示例显示当前应用程序显示其自己的店面需要更新。
    • 我可以确保在下一次更新时获得屏幕截图,但肯定会超过 6 天。
    • 我确实理解怀疑。因为如果您在应用程序中点击更新,您正在更新会发生什么?更新时会关闭应用程序吗?它是否让您继续使用旧版本直到最后一秒?这肯定是一种奇怪的互动。
    【解决方案2】:

    这个问题已经有一段时间没有爱了,但似乎还没有完全解决。我将添加我发现的内容。

    这是我运行测试的方式。我们刚刚开发了我们的应用程序的第一个版本,并且在应用程序商店中没有发布。所以我所做的是我从应用商店中的另一个应用中获取了一个捆绑 ID,将其放入 Xcode 8.3 中的新应用中,并测试了此更新功能。我对以下问题感兴趣:应用程序 A 可以使用 SKStoreProductViewController 自行更新吗?

    1) iPhone 上的 iOS 10.3。我已经运行了测试,它在我进行的 6 次左右的试验中都有效。发生的情况是,当我从SKStoreProductViewController 中进行安装时,它会使我的应用程序崩溃(这并不奇怪——我正在通过“相同”应用程序安装——具有相同捆绑 ID 的应用程序),但安装继续进行。您会看到从应用商店下载应用的常规下载进度指示器。

    2) iPad 上的 iOS 11(iOS11,beta 5,我相信——内部版本号是 15A5341f)。尝试使用SKStoreProductViewController 进行更新(从应用程序 A 中更新应用程序 A)时,这不起作用。按下“更新”按钮后,我收到以下警报。我已经试过好几次了。该应用程序不会崩溃。它只是不下载“更新”。我不确定这是 iOS 测试版的典型情况,还是 SKStoreProductViewController 行为的变化。

    3) iOS 11,同一设备:但尝试从应用程序 A 中更新应用程序 B。我运行此测试以查看问题是否是我无法在测试版的 SKStoreProductViewController 内进行下载.这行得通。在这种情况下,我能够进行下载。

    一旦 iOS 11 发布,我将尝试报告测试 - 看看我的测试 2) 是否有效或保持不变。

    【讨论】:

      【解决方案3】:

      有趣的是,我为自己的应用尝试了相同的方法,通过检测应用的早期版本,我尝试在 SKStoreProductViewController 中显示我的应用 ID。 屏幕是可见的,更新按钮在那里,但是,单击更新,并且仍然保留在应用程序的上下文中,使 SKStore 抛出错误“此时无法下载”。 但是,我没有尝试在点击更新后立即退出应用程序应该可以工作

      可能是因为必须先退出应用程序才能执行更新?

      【讨论】:

      • 按下更新按钮时如何接收更新按钮点击事件。
      【解决方案4】:

      是的,我在一个测试应用程序中实现了SKStoreProductViewController,并加载了一个已经安装在我的设备上的应用程序。该课程显示“打开”按钮,当点击该按钮时,设备切换到另一个应用程序。我没有任何可用的应用程序更新,但类行为必须相同。随着按钮从“购买”变为“打开”,我们知道它的行为是动态的,并且可以进行应用更新。

      【讨论】:

      • +1 我刚刚截取了一个有更新的应用程序的新屏幕截图,它也可以在那里运行。
      • 这表明您可以从应用 A 中托管的 SKStoreProductViewController 更新应用 B。它仍然没有回答您是否也可以从应用 A 中托管的 SKStoreProductViewController 更新应用 A。跨度>
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-15
      相关资源
      最近更新 更多