将iOS应用程序转换为64位会导致应用程序启动时崩溃

时间:2015-03-07 22:38:31

标签: ios objective-c crash 64-bit arm64

我正在尝试将应用从32位应用转换为64位。我遇到过TestFlight beta测试人员的问题'应用程序启动屏幕显示片刻,然后显示黑屏,应用程序关闭。应用程序启动屏幕显示片刻,然后显示黑屏,应用程序关闭。应用程序启动屏幕显示片刻,然后显示黑屏,应用程序关闭。

如果我让用户重新使用32位版本,他们就不会遇到任何问题,他们的用户默认设置和核心数据也完好无损。

不仅没有记录崩溃,而且当从XCode运行应用程序时,这个问题也不会发生。我已经能够通过从TestFlight下载旧版本的应用程序,加载旧的应用程序容器,然后升级到64位版本来复制该问题几次。我没有能够调试这个问题,因为我还没有能够在XCode中复制它。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

在构建设置下,尝试将调试的优化级别切换到与发布相同的设置,然后尝试重建以进行调试。

记得在发现问题时切换回来,使用发布类型设置进行开发非常令人沮丧。

答案 1 :(得分:1)

事实证明我使用的是32位iPod进行调试!我不知道为什么我之前没有检查过,但是使用了这个问题的代码:

Determine if iOS device is 32- or 64-bit

我发现我的iPod,我假设是64位,实际上是32位。所以它... ...

问题本身发生在应用程序启动期间,在MPMediaPlaylists与内部数据库同步时使用其持久性ID,这些ID似乎以32位与64位不同的方式处理或存储。