Xcode Testflight 验证错误 ITMS-90778 NDEF 被禁止

CH *_*ing 8 xcode nfc ios ndef swift

我正在尝试将我的应用程序上传到使用CoreNFC (NDEF) 的 TestFlight

不幸的是,我在(SDK 版本 13 和 13.1)中的 Testflight Validate 部分收到了错误消息。

我已经试过了:Xcode 11 beta can't upload app to TestFlight

但它会失去 NDEF 功能:https : //stackoverflow.com/a/58128365/5588637

错误消息:核心 nfc 框架的权利无效 sdk 版本 13.0 和 min OS 版本 13.0 与权利 'com. 苹果开发者NFC。Readersession 格式,因为 NDEF 被禁止
在此处输入图片说明

sou*_*rav 14

以下对我有用。

  1. 转到您的应用程序权利文件(如果您没有任何环境设置或对权利文件名进行更改,则主要是 .entitlement)
  2. 删除除“NFC 标签特定数据协议”以外的所有 NFC 权利 在此处输入图片说明

  3. 最后你的权利文件应该有这样的东西

	<key>com.apple.developer.nfc.readersession.formats</key>
	<array>
		<string>TAG</string>
	</array>
Run Code Online (Sandbox Code Playgroud)
在此处输入图片说明

  1. 清理您的项目,然后再次尝试上传到应用商店。

希望能帮助到你 :)

  • 我已经测试了应用程序,它在开发和生产/应用程序商店构建中都运行良好。建议:请在 TestFlight 中测试您的构建,以检查每个案例是否按预期工作,然后发布到应用商店。 (2认同)

Chr*_*ris 11

好吧,经过多次闲逛,这对我有用(我的用例是我正在扫描 NDEF 标签):

是的,这是违反直觉的,但可悲的事实是:如果您想扫描 NDEF 标签,则必须从权利中删除“NDEF”(这可能是苹果的一个错误,稍后会解决,从 Xcode 12.5 开始这是准确的)

  • 从 .entitlements 文件中删除 NDEF,因此它仅包含以下内容:

      <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
      <plist version="1.0">
      <dict>
          <key>com.apple.developer.nfc.readersession.formats</key>
          <array>
              <string>TAG</string>
          </array>
      </dict>
      </plist>
    
    Run Code Online (Sandbox Code Playgroud)
  • 将以下内容添加到 info.plist 中:

      <key>NFCReaderUsageDescription</key>
      <string>This app would like to use NFC for some reason.</string>
    
    Run Code Online (Sandbox Code Playgroud)
  • 无需将“NFC 标签读取器会话的 ISO7816 应用程序标识符”添加到 info.plist

  • 使用如下代码读取 NDEF 标签:

      session = NFCNDEFReaderSession(delegate: self, queue: .main, invalidateAfterFirstRead: true)
      session?.alertMessage = "Please hold your tag up against the the rear side of your iPhone, next to the camera."
      session?.begin()
    
    Run Code Online (Sandbox Code Playgroud)


小智 10

我已经解决了 iOS 13 TAG 授权问题,并且 NDEF 被禁止:

  1. 从权利中删除“NFC 数据交换格式”行。 权利
  2. 添加到 info.plist“NFC 标签读取器会话的 ISO7816 应用程序标识符”,项目 0 的值应为“com.apple.developer.nfc.readersession.iso7816.select-identifiers”

附上几张图片。

信息.plist

  • Apple 的 CoreNFC 文档中哪里提到了这一点?解决方案很好,我只是很生气苹果在他们的示例代码中不经意地提到了这些。 (2认同)