如何在设备/模拟器上模拟 AppStore 更新过程

Posted

技术标签:

【中文标题】如何在设备/模拟器上模拟 AppStore 更新过程【英文标题】:How to simulate the AppStore update process on device/simulator 【发布时间】:2013-06-04 12:29:29 【问题描述】:

我们最近在 App Store 中提交了现有应用程序的更新版本。但是我们从其中一位用户那里收到了一个问题,称该应用程序在更新后无法正常运行。那么为了复制相同的内容,复制的步骤是什么,以便我可以分析问题?

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

要在之前将 yoru 更新版本推送到 AppStore 来模拟这种情况,您可以:

    从应用商店下载旧版应用

    在同一设备上从 XCode 运行应用程序的更新版本。

在幕后发生的事情是,您的应用将以类似于 Appstore 的方式进行更新。您的应用程序将部分更新,而您的文档文件夹将保持不变。 (通常会导致问题)

此解决方案更好,因为它可以让您在之前检查问题并将更新推送到 Appstore。

【讨论】:

问题是App Store中已经有更新版本了:( 我的解决方案仍然代表未来的更新。告诉用户删除应用程序并重新安装。如果问题仍然存在,则问题很可能与更新过程无关,而是与代码本身有关。 更新完成后操作系统是否会重新启动应用程序? 还有更多关于 UserDefults 的内容?即使在应用程序更新后也会保留这些内容吗?请让我知道,因为我不知道这个过程。感谢广告:) 应用不会重新启动,但会在更新后保存NSUserDefaults。如果对您有帮助,请采纳答案。【参考方案2】:

是的,我得到了很多。该解决方案有点烦人,但您需要保留您提交的 IPA 的历史记录,以便您可以通过 iTunes(而不是模拟器)将其放在手机上,然后在您的设备上运行您的代码,在您的设备上放置一个断点应用程序委托中的 applicationDidFinishLaunching 处理程序,并从那里开始跟踪。您应该能够在您的管理器中找到上次提交时的旧应用商店版本,或者查看您的 SVN/GIT 历史记录并查看标记为您的发布版本的版本。

【讨论】:

【参考方案3】:

过去在我身上发生过很多次,我测试了一个新版本,一切看起来都很好,但是当我提交更新并获得批准时,用户开始抱怨崩溃或丢失数据。

这就是我解决问题的方式。

    (这是最重要的一步)您需要在实际的 Apple 设备上安装旧代码或旧二进制文件。 (实体版 iPhone / iPad)

    现在转到 iTunes 并安装您的新更新。

    将您的物理 iPhone / iPad 连接到您的计算机,启动 Xcode 并开始调试它。

注意:有很多次情况在模拟器中运行良好,但在实际设备上出现故障。在真实的东西上测试你的代码总是很重要的,因为那是用户将要使用的东西。

【讨论】:

我更喜欢在将更新发送给苹果之前检查新版本中的错误和故障。检查我的答案。【参考方案4】:

只需在您的设备上安装应用商店中的应用版本,然后将更新的版本安装到您​​的设备上。您可以在安装新版本时使用 Xcode 进行调试。

【讨论】:

以上是关于如何在设备/模拟器上模拟 AppStore 更新过程的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 模拟器上从 AppStore 注销

仪器在模拟器上发现泄漏,但在设备上没有

应用商店更新后应用崩溃

更新位置,而后台应用程序在模拟器上工作但不在设备上(iOS 9)

iOS App Receipt Validation - 调试时模拟器和设备上缺少收据

核心数据 NSFetchedResultsController 在设备上执行 batchUpadate 后未更新,但在模拟器上正常