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

Conversion of an iOS app to 64 bit causes crash on app launch

我正在尝试将应用程序从 32 位应用程序转换为 64 位应用程序。我遇到过 TestFlight beta 测试人员的应用程序立即崩溃的问题,在崩溃可以记录到 TestFlight(或现在,iTunes 连接)之前。应用程序启动屏幕显示片刻,然后显示黑屏并关闭应用程序.

如果我让用户回到 32 位版本,他们不会有任何问题,他们的用户默认值和核心数据都完好无损。

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

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

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

原来我用的是32位的iPod调试!我不知道为什么我之前没有检查过这个,而是使用这个问题的代码:

Determine if iOS device is 32- or 64-bit

我发现我原以为是 64 位的 iPod 实际上是 32 位的。就这样...

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