web-dev-qa-db-fra.com

Xcode 10, application Swift 4 avec CoreNFC en révision sur iOS 12

Mon application créée pour iOS soumise à Appstoreconnect est rejetée car elle se bloque au lancement dans le processus de révision.

Mon application utilise Framework CoreNFC . Donc, cette application est compatible avec les appareils iPhone 7, 8, X .. avec iOS 11 ou supérieur. L'application a été testée par moi sur un périphérique physique et fonctionne correctement. Le lancement sur des simulateurs était également satisfaisant (les fonctions NFC ne fonctionnaient pas, mais l'application ne se bloquait pas).

Crashlog contient des informations où je peux voir que la structure CoreNFC n'a pas été chargée lors de leur lancement:

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

J'ai essayé d'incorporer le cadre CoreNFC à l'onglet Général de l'application - Fichiers binaires incorporés, mais cela me donne des erreurs de construction, donc je ne suis pas sûr que ce soit possible.

Donc mes questions sont:

  • Est-il possible d'intégrer le framework CoreNFC dans la section Binaires incorporés de Xcode?
  • Est-il possible de vérifier si le périphérique prend en charge ce cadre avant de le charger?

Toute aide ou solution de contournement serait très appréciée.

7
d324223

Allez à Paramètres du projet -> Général -> Cadres et bibliothèques liés

Ajouter CoreNFC.framework avec le statut facultatif

9
Nikhil Patel

J'ai eu le même problème avec mon NFC Reader. Il semble qu'iOS12 n'inclut pas CoreNFC pour les appareils plus anciens (iPhone 6s, SE et plus anciens).

J'ai réussi à le réparer avec des vérifications de périphérique. Si un ancien appareil essaie d'ouvrir l'application, je montre un storyboard complètement différent avec un message d'erreur indiquant que l'appareil n'est pas pris en charge.

Pour voir un exemple, voici un lien vers l'application: https://iTunes.Apple.com/us/app/nfc-reader-for-iphone/id1249686798

2
Nico S.

Dans mon cas, nous ne pouvions pas nous limiter aux appareils avec NFC, car nous avions téléchargé la version d'origine de l'application sans cette exigence et Apple ne vous permettait pas d'ajouter de nouvelles restrictions pour les nouvelles versions d'applications qui n'existaient pas. dans les versions précédentes.

Chargement d'une nouvelle version avec CoreNFC.framework sous Paramètres du projet -> Général -> Cadres et bibliothèques liés pendant que je tape ceci et mettrai à jour ce commentaire dès que nous saurons si cela a fonctionné ou non.

edit cela a fonctionné. :)

1
James Tice