实际上,我的原始代码适用于 Xcode 5.0.2,也非常适合发送到 App Store,即:
objc_msgSend(self.target, self.successAction, category);
此行会导致 Xcode5.1 beta5 崩溃。我找到了修复崩溃的解决方案: SudzC ARC 版本 - objc_msgSend 调用导致 EXC_BAD_ACCESS 使用 64 位架构
// solution
id (*response)(id, SEL, id) = (id (*)(id, SEL, id)) objc_msgSend;
response(self.target, self.successAction, category);
在使用推荐的解决方案时,我使用 Xcode 5 或 Xcode5.1beta 在设备(iPhone 5s)或模拟器(32 位或 64 位)上进行测试完全没有问题。Build Settings 中的架构设置是 Xcode 5 中的“Standard architectures (armv7, armv7s)”和“Standard architectures (armv7, armv7s, arm64)”。
不过,我的新版应用程序今天已准备好在 App Store 上销售。它在安装的每台设备(iPhone 5s、5、4s)上崩溃(根据 Crashlytics 报告)。由于我没有使用 Xcode(构建到真实设备)导致崩溃,因此在 Apple 审查之前我不知道我是否解决了问题。