【问题标题】:Xcode 10, Swift 4 app with CoreNFC crashes in review on iOS 12Xcode 10,带有 CoreNFC 的 Swift 4 应用程序在 iOS 12 上崩溃
【发布时间】:2018-11-13 16:40:37
【问题描述】:

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

我的应用使用 CoreNFC 框架。因此,此应用程序与 iOS 11 或更高版本的 iPhone 7、8、X.. 设备兼容。我在物理设备上测试了应用程序,运行良好。在模拟器上启动也很好(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 框架?
  • 是否可以在加载之前检查设备是否支持该框架?

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

【问题讨论】:

标签: ios swift xcode


【解决方案1】:

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

添加状态可选的 CoreNFC.framework

【讨论】:

  • 是的,我想就是这样。我只是在装有 iOS 12 且没有 NFC 模块的物理设备上进行测试,并设法避免了崩溃。非常感谢!!
  • 但这没有任何意义,因为 Required device capabilities 中的标志 nfc 不允许在没有 NFC 模块的任何设备上启动此应用程序。所以这是 AppStore 审核错误,对吧?
  • 是的,你是对的,但如果该标志未在应用首次发布时添加,我们无法在另一个版本中添加它,为此我们必须上传一个全新的应用,以避免出现这种情况我们可以有可选的框架,如果设备不支持 nfc,它可以防止应用崩溃。
  • 这完全有道理,但我总是打开这个标志,但在更新时仍然遇到这个问题。将 CoreNFC 设置为可选,看看会发生什么。
  • 希望对您有所帮助
【解决方案2】:

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

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

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

【讨论】:

    【解决方案3】:

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

    在项目设置 -> 常规 -> 链接的框架和库下使用 CoreNFC.framework 上传新版本,同时我输入此内容,并在我们知道它是否有效后立即更新此评论。

    edit 成功了。 :)

    【讨论】:

      猜你喜欢
      • 2019-03-02
      • 2019-01-25
      • 2019-02-21
      • 2016-10-20
      • 2021-11-18
      • 1970-01-01
      • 2019-03-29
      • 1970-01-01
      • 2019-10-19
      相关资源
      最近更新 更多