解决之前上架的 App 在 iOS 9 会闪退问题 (更新:已有 Hotfix)

时间:2024-06-06 10:37:26

最新更新:(2015.10.02)

开发环境:

真机测试(以下机种皆不闪退):

  • iPhone 3GS v6.1.2 (32 bit)
  • iPhone 4 v7.1.2 (32 bit)
  • iPhone 4S v9.0 (32 bit)
  • iPhone 5S v8.4.1 (64 bit)
  • iPad 2 mini v9.0 (64 bit)

※ 使用上面的配置,及 EMB 官方提供的 Hotfix,真机皆没有问题,下面的闪退问题可以略过了。


问题一:iOS 9 于 2015/09/16 开放下载了,但之前使用 Delphi(XE8 或之前的版) 开发上架的 App 皆会闪退,无法运行在 iOS 9。

问题二:使用 Delphi 10 Seattle + Xcode 7.0 + iOS SDK 9.0 发布到 iOS 9 的真机没有问题,但发布到 iOS 6~8 的机子会闪退

为了解决以上问题,可以参考下列方法:

1. 使用 Delphi 10 Seattle 重新上架:

开发环境:

  • Delphi 10 Seattle
  • Xcode 7.0
  • iOS SDK 8.4(这个是关键,一定要用 SDK 8.4 才不会闪退)

真机测试(以下机种皆不闪退):

    • iPhone 3GS v6.1.2 (32 bit)
    • iPhone 4 v7.1.2 (32 bit)
    • iPhone 4S v9.0 (32 bit)
    • iPhone 5S v8.4.1 (64 bit)
    • iPad 2 mini v9.0 (64 bit)

2. 使用 XE8 重新上架:

开发环境:

  • Delphi XE8 update 1
  • Xcode 6.4
  • iOS SDK 8.4

修改源码:

真机测试(以下机种皆不闪退):

  • iPhone 3GS v6.1.2 (32 bit)
  • iPhone 4 v7.1.2 (32 bit)
  • iPhone 4S v9.0 (32 bit)
  • iPhone 5S v8.4.1 (64 bit)
  • iPad 2 mini v9.0 (64 bit)

赶快重新上架新版 App 吧。

追加整理,依版本整理如下(2015.09.23):

  • Xcode 7.0 + SDK 8.4
    • XE8 + iOS 6 = 正常
    • XE8 + iOS 7 = 正常
    • XE8 + iOS 8 = 正常
    • XE8 + iOS 9 = 正常
  • Xcode 6.4 + SDK 8.4
    • XE8 + iOS 6 = 正常
    • XE8 + iOS 7 = 正常
    • XE8 + iOS 8 = 正常
    • XE8 + iOS 9 = 闪退(使用官方修复文件,不闪退)
  • Xcode 7.0 + SDK 9.0
    • D10 + iOS 6 = 闪退
    • D10 + iOS 7 = 闪退
    • D10 + iOS 8 = 退
    • D10 + iOS 9 = 正常

官方 QC 讨论:

https://quality.embarcadero.com/browse/RSP-12324

官方 Apple Xcode 各版本下載位置:

https://developer.apple.com/downloads/

  • OS X El Capitan