web-dev-qa-db-fra.com

Erreur "'application partagée' n'est pas disponible sur iOS (App Extension) ...." lors de la compilation après la mise à jour.

Salut avoir un projets (y compris l'extension de l'application) en utilisant des cocoapods. (avec la bibliothèque Parse, Bolts, etc.).

Tout fonctionnait bien avant (en utilisant la bibliothèque bolts 1.1.5), mais lorsque j’ai exécuté une mise à jour du module (Bolts 1.2.0), j’obtiens maintenant quelques erreurs:

"/ Volumes/projet 2/Pods/Boulons/Boulons/iOS/BFAppLinkNavigation.m: 100: 29: 'sharedApplication' est indisponible: non disponible sur iOS (App Extension) - Utilisez des solutions basées sur le contrôleur de vue, le cas échéant."

Aucune idée sur la façon de résoudre ça?

8
Franck

Les cocoapodes sont très utiles (j'en suis sûr), mais ils sont conçus pour fonctionner avec des applications et non avec des extensions d'applications. En fin de compte, vous perdez le contrôle des fonctionnalités qu'ils introduisent lors d'une mise à jour. bibliothèques que vous utilisez, en fonction des API qu’elles utilisent.

Dans le cas de Bolts 1.2.0, il a évidemment été décidé d'utiliser sharedApplication, le rendant ainsi impropre à une utilisation dans une extension d'application.

Vous devrez donc commencer à utiliser les bibliothèques sous forme source, en utilisant peut-être git submodule pour chacune d’entre elles, ce qui vous permettra de les mettre à jour lors de la mise à jour en amont.

2
trojanfoe

C’est un problème lié aux paramètres des projets Cocoapods

Vous pouvez probablement trouver la réponse ici

UIApplication.sharedApplication non disponible

2
Jibeex

Il suffit de se référer à cela, ce qui vous aidera:

https://github.com/AFNetworking/AFNetworking/issues/2119

1
Paradise

J'ai corrigé cela en rétrogradant les cocoapodes à 0.35.2

Si vous avez une solution plus propre, je suis ouvert!

0
Franck

Certaines API ne sont pas disponibles pour les extensions d'application

Utilisation d'un framework intégré pour partager le code

Assurez-vous que votre infrastructure intégrée ne contient pas d'API indisponibles pour les extensions d'application, comme décrit dans Certaines API ne sont pas disponibles pour les extensions d'application. Si votre infrastructure personnalisée contient de telles API, vous pouvez y accéder en toute sécurité à partir de votre application contenante, mais ne pouvez pas partager ce code avec les extensions contenues de cette application. L'App Store rejette toute extension d'application liée à de tels frameworks ou utilisant des API indisponibles.

Requiert uniquement l'API AppExtension-Safe. Tout est réglé sur OUI. La valeur par défaut est NO. En réglant ceci sur NO, l'erreur a disparu.

Cible -> Paramètres de construction -> Requérir uniquement l'API AppExtension-Safe -> NON

0
Ashish