11

Couldn't find any information regarding this... if I launch a SKStoreProductViewController instance from within my app, feeding it the iTunes URL of that app, does it allow for app updates? In other words I'd like to have an "Update" button within my app that shows a SKStoreProductViewController and allows the user to update the app from there.

This is hard to verify as SKStoreProductViewController is running a "sandboxed" version of the App Store, and that I'm not sure what determines whether it shows the "Open" or "Update" button.

4

4 回答 4

6

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

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

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

通过更新当前应用程序

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

在此处输入图像描述

于 2013-03-20T17:14:28.820 回答
2

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

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

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

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

应用更新失败

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

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

于 2017-08-10T17:56:35.070 回答
1

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

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

于 2013-10-07T10:52:45.027 回答
0

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

在此处输入图像描述

于 2013-03-20T16:58:48.907 回答