web-dev-qa-db-fra.com

Nouveaux avertissements dans iOS 9: "tout le bitcode sera supprimé"

J'ai ce nouvel avertissement concernant Google Framework dans mon application:

(null): URGENT: tout le bitcode sera supprimé car '/ Utilisateurs/monnom/Bibliothèque/Documents mobiles/com ~ Apple ~ CloudDocs/NomDossier/appname/GoogleMobileAds.framework/GoogleMobileAds (GADSlot + AdEvents.o) a été construit sans bitcode. . Vous devez le reconstruire avec le bitcode activé (paramètre Xcode ENABLE_BITCODE), obtenir une bibliothèque mise à jour du fournisseur ou désactiver le bitcode pour cette cible. Remarque: ce sera une erreur dans le futur.

Xcode 7 me donne environ 204 avertissements à propos de ce même concept, et je ne pouvais pas me débrouiller avec cela. De plus, j'ai un problème pour accéder au réseau depuis mon application. C'est l'erreur de la zone de débogage:

-canOpenURL: Echec de l'URL: "Kindle: // home" - Erreur: "Cette application n'est pas autorisée à interroger le système Kindle"

Tous ces problèmes n'étaient pas présents dans iOS 8.

385
C.Farrugia

Votre bibliothèque a été compilée sans bitcode, mais l'option bitcode est activée dans les paramètres de votre projet. Dites NO à Enable Bitcode dans vos paramètres de construction cibles et dans les paramètres de construction de la bibliothèque pour supprimer les avertissements.

Pour ceux qui se demandent si l'activation du bitcode est requise:

Pour les applications iOS, bitcode est la valeur par défaut, mais est facultatif. Pour les applications watchOS et tvOS, le bitcode est requis. Si vous fournissez un code binaire, toutes les applications et les infrastructures du groupe d'applications (toutes les cibles du projet) doivent inclure un code binaire.

https://help.Apple.com/xcode/mac/current/#/devbbdc5ce4f

1021
Zia

Après Xcode 7, l'option bitcode sera activée par défaut. Si votre bibliothèque a été compilée sans bitcode, mais que l'option bitcode est activée dans les paramètres de votre projet, vous pouvez:

  1. Mettez à jour votre bibliothèque avec du code bit,
  2. Dites NON à Activez le bitcode dans votre cible Configurez les paramètres .

Enter image description here

Et les paramètres de construction de la bibliothèque pour supprimer les avertissements.

Pour plus d'informations, voir documentation de bitcode dans la bibliothèque du développeur .

Et WWDC 2015 Session 102: "Etat des plateformes de l'Union"

Enter image description here

110
ElonChan

Dans mon cas pour éviter ce problème:

  1. Assurez-vous que vous avez affaire à Xcode 7 , PAS à des versions plus basses. Dans la version inférieure, ce drapeau n'existe pas.

  2. Configuration: Projet> Paramètres de construction> Tout> Options de construction> Activer le bitcode = NO

enter image description here

La méthode canOpenUrl est modifiée dans iOS 9 (pour des raisons de confidentialité) et n'est plus libre de l'être. Votre fournisseur de bannières vérifie les applications installées afin de ne pas afficher de bannières pour une application déjà installée.

Cela donne toutes les instructions du journal comme

-canOpenURL: Echec de l'URL: "Kindle: // home" - Erreur: "Cette application n'est pas autorisée à interroger le système Kindle"

Les fournisseurs doivent mettre à jour leur logique pour cela.

Si vous devez rechercher des applications installées/des modèles disponibles, vous devez les ajouter à votre fichier info.plist.

Ajoutez la clé 'LSApplicationQueriesSchemes' à votre plist sous forme de tableau. Ajoutez ensuite des chaînes dans ce tableau, comme "Kindle".

Bien sûr, ce n'est pas vraiment une option pour les bannières (car elles sont dynamiques), mais vous pouvez toujours interroger de cette manière vos propres applications ou des applications spécifiques telles que Twitter et Facebook.

Documentation de la méthode canOpenUrl: canOpenUrl:

Documentation sur la clé LSApplicationQueriesSchemes

15
Saren Inden

Si vous utilisez CocoaPods et que vous souhaitez désactiver le code binaire pour toutes les bibliothèques, utilisez la commande suivante dans le fichier podfile.

post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['ENABLE_BITCODE'] = 'NO'
        end
    end
end
12
Eike

Clause de non-responsabilité: elle est destinée aux utilisateurs prenant en charge un workflow intégration continue nécessitant un processus automatisé. Si vous ne le faites pas, veuillez utiliser Xcode comme décrit dans Réponse de Javier .

Cela a fonctionné pour moi de définir ENABLE_BITCODE = NO via la ligne de commande:

find . -name *project.pbxproj | xargs sed -i -e 's/\(GCC_VERSION = "";\)/\1\ ENABLE_BITCODE = NO;/g'

Notez que ceci est susceptible d’être instable sur toutes les versions de Xcode. Il a été testé avec Xcode 7.0.1 et dans le cadre d'un projet Cordova 4.0.

8
miraculixx

Pour résoudre les problèmes liés à l’échec de canOpenURL. Ceci est dû à la nouvelle fonctionnalité de sécurité du transport d'application dans iOS9.

Lisez cet article pour résoudre ce problème http://discoverpioneer.com/blog/2015/09/18/updating-facebook-integration-for-ios-9/

2
Phil