6

I am trying to distribute my app to TestFlight, and currently my app requires iOS 13 as well as NFC access.

I do not intend to release my app until iOS 13 comes out of beta, however I would like my QA team to be able to test it.

I can build and archive the app from Xcode 11 beta, however if I try to upload it I get the following errors:

App Store Connect Operation Error
ERROR ITMS-90087: "Unsupported Architectures. The executable for myappsname.app/Frameworks/SomeNFCFrameworkIWrote.framework contains unsupported architectures '[x86_64]'."

App Store Connect Operation Error
ERROR ITMS-90778: "Invalid entitlement for core nfc framework. The sdk version '13.0' and min OS version '13.0' are not compatible for the entitlement '{com.apple.developer.nfc.readersession.formats}' because '{NDEF is disallowed}'."

App Store Connect Operation Error
ERROR ITMS-90209: "Invalid Segment Alignment. The app binary at 'myappsname.app/Frameworks/SomeNFCFrameworkIWrote.framework/SomeNFCFrameworkIWrote' does not have proper segment alignment. Try rebuilding the app with the latest Xcode version."

App Store Connect Operation Error
ERROR ITMS-90125: "The binary is invalid. The encryption info in the LC_ENCRYPTION_INFO load command is either missing or invalid, or the binary is already encrypted. This binary does not seem to have been built with Apple's linker."

The first one is one I could possibly be fixed by not using a framework that contains the iOS Simulator architecture, however the second one states that core NFC entitlements aren't allowed in iOS13 which doesn't make sense since they are ONLY allowed in iOS13. The third and fourth errors also don't make sense as I am using the latest Xcode (of course it is in beta) and it was built with apples linker.

I have also tried distributing for development but when I do that I just get IPA processing failed.

Is there any way to distribute my iOS 13 app for internal testing?


Update: After fixing the first issue I am now only getting this error (Same as the second one from above)

ERROR ITMS-90778: "Invalid entitlement for core nfc framework. The sdk version '13.0' and min OS version '13.0' are not compatible for the entitlement '{com.apple.developer.nfc.readersession.formats}' because '{NDEF is disallowed}'."
Quinn
  • 7,072
  • 7
  • 39
  • 61
  • Fix the first problem and see if the rest go away - you can't upload a build that includes x86 – Paulw11 Aug 16 '19 at 20:31
  • @Paulw11 updated question – Quinn Aug 16 '19 at 20:44
  • You might have to add `TAG` to that array in your plist. Try removing and re-adding the NFC capability in Xcode. – Paulw11 Aug 16 '19 at 20:50
  • @Paulw11 Not sure where you meant I should add `TAG`, I tried putting in in the `ISO7816 application identifiers for NFC Tag Reader Session` array, but that didn't help. Also tried removing and re-adding the capability with no luck :( – Quinn Aug 16 '19 at 20:58
  • That plist key is an array. It can contain TAG and NDEF – Paulw11 Aug 16 '19 at 22:16

2 Answers2

10

It looks like you trying to use a project generated by Xcode 10. Could you try this:

  1. Locate your Entitlements-Release.plist file. You can find the location here: "Signing -> Code Signing Entitlements". It's usually "App Name/Entitlements-Release.plist"

  2. Remove "NDEF" from Entitlements-Release.plist file.

enter image description here

  1. Archive & Upload
Yury Bushev
  • 642
  • 9
  • 25
  • My project was build with Xcode 11 not Xcode 10, Also the app I'm writing is an NDEF tag reader app, so I don't know if I want to remove that entitlement – Quinn Aug 30 '19 at 13:09
  • 1
    Hey, my app still able read NDEF tokens with only TAG in formats array. – Yury Bushev Aug 30 '19 at 17:42
  • 2
    Wow, just gave it a try and surprisingly it worked! Not sure why they wouldn't allow you to put that entitlement but then they still let you use NDEF tags... but oh well! – Quinn Aug 30 '19 at 19:19
1

i have tried the above solution, successfully passed upload app to TestFlight, But when tester download the apps in TestFlight, they get error. The reason seems to be because removed "NDEF" from Entitlements-Release.plist file.

enter image description here

CH Wing
  • 1,062
  • 1
  • 12
  • 21