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

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

最新更新:(2015.10.02)

开发环境:

  • Delphi 10 Seattle
  • OS X El Capitan v10.11
    • 需使用下列 Hotfix
      ID: 30398, PAServer Hotfix for Delphi, C++Builder and RAD Studio 10 Seattle
  • Xcode v7.0.1
  • iOS SDK v9.0

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

  • 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

修改源码:

  • 需依官方建议的方法,修改 XE8 的源码(如果不修改,会闪退):
    http://community.embarcadero.com/blogs/entry/workaround-steps-for-building-ios-32-bit-applications-for-ios-9-with-xe7-and-xe8

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

  • 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 = 正常

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