Xcode 10,带有CoreNFC的Swift 4应用在iOS 12上发生崩溃

时间:2018-09-28 21:02:46

标签: ios swift xcode

为iOS创建并提交给Appstoreconnect的我的应用因在审核过程中启动时崩溃而被拒绝。

我的应用程序使用 CoreNFC框架。因此,此应用程序与具有iOS 11或更高版本的iPhone 7、8,X ..设备兼容。我在物理设备上对App进行了测试,效果很好。在模拟器上也可以正常启动(NFC功能不起作用,但应用程序没有崩溃)。

崩溃日志包含的信息使我可以看到CoreNFC框架在启动时未加载:

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note:  EXC_CORPSE_NOTIFY
Termination Description: DYLD, Library not loaded: /System/Library/Frameworks/CoreNFC.framework/CoreNFC | Referenced from: /var/containers/Bundle/Application/223F146A-DF69-43CC-89A1-CFDF323ACB45/SharpEnd NFC Scanner.app/SharpEnd NFC Scanner | Reason: image not found

我试图将CoreNFC框架嵌入到应用程序的“常规”选项卡-“嵌入式二进制文件”中,但这会给我带来构建错误,因此我不确定是否有可能。

所以我的问题是:

  • 是否可以在Xcode的Embedded Binaries部分中嵌入CoreNFC框架?
  • 是否可以在加载设备之前检查设备是否支持此框架?

任何帮助或解决方法将不胜感激。

3 个答案:

答案 0 :(得分:12)

转到 项目设置->常规->链接的框架和库

添加状态为可选的CoreNFC.framework

答案 1 :(得分:4)

我的NFC阅读器遇到了同样的问题。看来iOS12不包含适用于旧设备(iPhone 6s,SE和旧版本)的CoreNFC。

我设法通过设备检查来修复它。如果旧设备试图打开该应用,我会显示一个完全不同的故事板,并显示一条错误消息,表明该设备不受支持。

要查看示例,以下是该应用程序的链接:https://itunes.apple.com/us/app/nfc-reader-for-iphone/id1249686798

答案 2 :(得分:1)

就我而言,我们不能只限于具有NFC的设备,因为我们上传了没有该要求的应用程序的原始版本,并且Apple不允许您为不存在该版本的应用程序的新版本添加新的限制。以前的版本。

在项目设置->常规->链接的框架和库下,使用CoreNFC.framework上载新版本,同时键入此内容,并在知道它是否起作用后会立即更新此注释。

edit 有效。 :)