iOS开发-闪退问题-解决之前上架的 App 在 iOS 9 会闪退问题

最新更新:(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
时间: 2025-01-03 19:36:28

iOS开发-闪退问题-解决之前上架的 App 在 iOS 9 会闪退问题的相关文章

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

解决之前上架的 App 在 iOS 9 会闪退问题 (更新:已有 Hotfix) 最新更新:(2015.10.02) 开发环境: Delphi 10 Seattle OS X El Capitan v10.11 需使用下列 HotfixID: 30398, PAServer Hotfix for Delphi, C++Builder and RAD Studio 10 Seattle Xcode v7.0.1 iOS SDK v9.0 真机测试(以下机种皆不闪退): iPhone 3GS v6.

Xamarin iOS开发实战第1章使用C#编写第一个iOS应用程序

Xamarin iOS开发实战第1章使用C#编写第一个iOS应用程序 C#原本是用来编写Windows以及Windows Phone的应用程序.自从Xamarin问世后,C#的作用就发生了很大的变化.它不仅可以编写关于Windows以及Windowsx Phone的应用程序,还可以编写iOS.Android的应用程序.本章将讲解如何使用C#编写一个简单的iOS应用程序.本文选自<Xamarin iOS开发实战> 1.1初识Xamarin Xamarin是一个跨平台的开发框架.Xamarin的产

黑马程序员-Xcode离线帮助文档的安装 ios开发-开发文档安装 isa指针 superclass指针 ios系统分四层:

Xcode离线帮助文档的安装 ios开发-开发文档安装 iOS开发肯定离不开开发文档,苹果有在线帮助文档,xCode其实可以下载模拟器文档和iOS8.1文档的,不过下载的速度实在不敢恭维,而且比较头疼的是不显示下载进度条的,苹果的开发文档都是放在)/应用程序/Xcode.app/Contents/Developer/Documentation/DocSets路径下,该路径下可以看到三个文件,xCode 6.1文档(com.apple.ADC_Reference_Library.Developer

【iOS开发-61】更换plist资源后,运行程序iOS模拟器仍然显示上一次数据的样子,怎么解决?

(1)情形介绍 --我们先导入一个plist文件做项目,模拟运行查看效果. --删除plist,替换一个新的plist,CMD+R模拟运行,发现程序界面显示的还是上一次的数据. (2)原因 是因为第一次模拟运行时,已经生成了一个"沙盒",所有资源也都保存在这个沙盒中了(如果在用户手机中,相当于数据已经下载到用户手机里了).这个时候,我们尽管替换了,但是沙盒中得数据仍然是上一次的数据. (3)解决思路:清除上一次留下的数据,然后重新加载新的数据plist.(建议2步走) --先在模拟器中

iOS 开发学习之 User Interface(1)APP 生命周期

一,APP 生命周期 OC的学习在Fundation框架下,UI阶段的学习在触摸层(Cocoa Touch Layer)下的UIKit框架下(Cocoa:是OS X 和iOS 操作系统的程序运行环境). 应用程序入口 *** main函数: int UIApplicationMain(int argc,char *argv[], NSString *principalClassName,NSString *delegateClassName); // argc, argv 由main函数传递给U

iOS开发总结(A1)- 第二个小APP开发告一段落,希望和上次一样顺利通过苹果审核,今后几天对这次开发过程作一总结

1. 何时使用delegate 与 block: 2. block 造成的retain cycle: 3. 慎用NSMutable..., 可能不经意间修改了数据 4. Addressbook 框架(iOS9后换成了contact框架,貌似更好用) 5. custom table view cell 6. UITableViewRowAction 7. UIActivityViewController,及UIAlertController 8. 再次确认viewcontroller生命周期,vi

【iOS开发-115】静态库的制作以及第三方框架iOS Universal Framework,DEBUG和RELEASE

(1)概念介绍 --我们平时在项目中用的最多的就是开源的第三方库,这种库是开源的,我们不仅能用,还能查看源代码甚至可以修改源代码. --与开源库对应的就是闭源,闭源库分为动态库和静态库.动态库就是.dylib或者.framework结尾的文件.就是苹果官方提供给我们用的那些库.开发者不能在项目中使用自制的动态库,否则无法上传到APPStore. --所以,对于闭源库,我们主要讨论的是静态库.静态库的样子就是用户拿到的文件有很多头文件.h+资源包+编译过的一个二进制文件.a(.framework)

[IOS开发] Cocos2d-x2.2使用Admob插屏广告教程(一):iOS篇

?1.版别 Cocos2d-x 2.2    GoogleAdMobAdsSdkiOS-6.5.1 2.导入 2.1导入头文件和.a文件 并在Librabry Search Paths中添加.a文件的路径 2.2导入所需iOS构造 AdSupport.framework    StoreKit.framework    AudioToolbox.framework    MediaPlayer.framework    MessageUI.framework    SystemConfigura

iOS开发- 打包ipa,让别人设备安装你的App

一般在接外包的时候, 通常第三方需要安装你的app进行测试(这时候你的app肯定是还没传到app store之前). 这种情况下,如果是企业账号就好办了, 随便安装.. 但是个人开发者账号呢? 如果他的机子不是开发测试的 直接装包的, 那么可以通过导出一个ipa供他安装.当然,你必须知道别人设备的udid. 具体做法: 1. 登录开发者中心.https://developer.apple.com 2.添加对方设备到你的Devices中. 注意, 需要知道对方的udid. 3.申请一个App ID