web-dev-qa-db-fra.com

Échec de la signature du code binaire dans Xcode

J'ai mis à jour Xcode avec la dernière version et maintenant, lorsque j'essaie de compiler le projet, l'erreur "Signature de bitcode non valide" s'affiche, cependant, le bitcode de mon projet est désactivé. Comment puis-je le réparer? Que dois-je changer pour signer mon bitcode correctement?

Mon Podfile:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!

target 'MyProjectName' do

pod 'Realm'
pod 'CorePlot'
pod 'GoogleMaps'

end

J'ai déjà vérifié, tout va bien avec ça.

10

Je ne suis pas sûr si vous avez la même situation avec moi. Je n'ai ce problème que lorsque j'ai essayé de tester avec un appareil iPhone. Il s'avère que la configuration de débogage avec Build Active Architecture Only est définie sur NO. Après avoir réglé sur OUI, je peux tester avec mon iPhone .  enter image description here

31
Vincent

J'ai rencontré cette erreur, mais cela ne s'est produit que lors de la création d'un iPad iOS 10.3 (alors que je travaillais sur un iPhone iOS 10.3 et un iPad iOS 11.0, ainsi que sur tous les simulateurs iOS 10.3 et 11.0). Grâce à un processus d'élimination douloureux (et à la création d'un nouveau projet à partir de zéro), j'ai constaté que mes Cocoapod n'étaient pas en cause, pas plus que mes paramètres de signature de code, ni mon AppExtension, ni mes tests, ni mon "build pour architecture active uniquement" paramètre, ni aucun paramètre de construction lié au terme 'bitcode'.

Dans ma configuration, un projet C++ Xcode était imbriqué dans mon projet principal Swift/iOS Xcode. Etant donné qu'elle n'a jamais été conçue spécifiquement pour être utilisée dans iOS, la "cible de déploiement iOS" n'a jamais été définie (elle a été laissée sur "par défaut"). En le réglant explicitement à 10.3, cela a fonctionné sans plainte.

Paramètres de projet de l'application Nested C++ (définissez la cible de déploiement iOS sur la version iOS la plus basse prise en charge):

 Nested C++ app's project settings

Paramètres de cible de l'application Nested C++ (pour référence):

 Nested C++ app's target settings

7
Jamie Birch

Si vous utilisez un module, vérifiez la version de toutes les bibliothèques. Certaines bibliothèques ne prennent peut-être pas en charge la nouvelle version. Vous devez mettre à jour les fichiers de module pour cette bibliothèque.

3
Rajeev Singh

Dans mon cas, j'essayais de créer un appareil avec une version iOS inférieure à la cible de déploiement.

3
awph

Dans mon cas, un problème est survenu car j'utilisais une bibliothèque statique tierce avec des fichiers différents pour chaque architecture.

J'ai résolu le problème en supprimant les fichiers binaires d'architectures non valides ..__ Au lieu de cela, j'ai ajouté un fichier binaire multi-Arch FAT pour la bibliothèque statique tierce.

L'espoir aide

2
accfews

Ce genre de problème est apparu lorsque j'ai lié un nouveau projet de bibliothèque statique à mon espace de travail. Afin de le résoudre, j'ai essayé de définir NO mais pas de chance pour les paramètres Build Active Architecture Only et Bitcode de la bibliothèque. Ensuite, j'ai compris que la cible de déploiement de la bibliothèque était définie sur 11.0, car Xcode définissait la dernière valeur pour tous les nouveaux projets. Après avoir réglé le paramètre sur 5.0, le problème a été résolu.

2
Konstantin Dorogan

J'ai trouvé que mon problème concernait l'utilisation de 'Modules'.

Vient de désactiver les modules (j'ai dû mettre à jour certains fichiers d'en-tête), mais cela a résolu mon problème.

Activer les modules dans les paramètres

1
LowAmmo

Pour résoudre ce problème, la plupart des réponses recommandent une solution de contournement selon laquelle vous nettoyez votre espace de travail/projet Xcode, fermez Xcode, supprimez votre dossier Derived Data (conservé par défaut dans le répertoire racine de votre projet), puis rouvrez enfin votre projet.

Cependant, les étapes ci-dessus peuvent ne pas fonctionner pour vous. Ceci est un indice que votre structure de projet est en erreur.

Lorsque la représentation intermédiaire en bitcode de votre projet a été publiée avec iOS 9.0, il l'a été sous réserve que votre projet entier, y compris les dépendances, soit totalement d'accord pour utiliser ou non le bitcode. D'après mon expérience, il est essentiel de travailler avec tous vos Pods et Libraries/Frameworks inclus et de s'assurer qu'ils utilisent tous le même paramètre; soit oui ou non . Par défaut, cette sélection est oui .

Si une dépendance unique ne correspond pas au paramètre de code binaire souhaité, cette erreur peut être générée. 

Lors de la vérification de vos dépendances et de votre projet global, il est important de noter qu'il existe un paramètre Use Bitcode pour les paramètres les deux / Projet et Cible. Veillez donc à vérifier les deux perspectives des paramètres de construction.

1
Mapsy

Dans mon cas, le widget inclus dans le projet était à l'origine de l'erreur de bitcode. 

J'ai changé mon fichier pod à partir de ceci:

target "App" do
    pod 'A'
    pod 'B'
end

target "App Widget" do
    pod 'A'
end

pour ça:

target "App" do
    pod 'A'
    pod 'B'

    target "App Widget" do
        pod 'A'
    end
end
1
Micah Benn

Dans mon cas, la solution consistait à supprimer une bibliothèque c ++.

1
Oded Harth

Cette solution fonctionne pour moi. Commencez par essayer de supprimer tout le pod en utilisant la commande de terminal pod deintegrate , puis réinstallez-le en utilisant la commande de terminal pod install .

0
Ashish Kanani

Cibles -> Paramètres de construction -> Construire une architecture active uniquement

Debug -> YES Libérer -> NO à YES 

Je ne rencontre le même problème que lors de l'archivage de l'application.

Qui peut me dire la raison? Vous pouvez apprendre à tous les développeurs. C'est génial.

 enter image description here

0
jiexishede

Dans mon cas, j'utilise Cordova Project . Lors de sa construction avec Xcode, le problème était identique et résolu en supprimant et en ajoutant la plate-forme IOS.

cordova platform remove ios

cordova platform add ios
0

Si vous utilisez des cabosses de cacao, faites "pod update"

0
Kartik 123

J'ajoutais une bibliothèque statique. J'ai créé le fat binary de la même bibliothèque incluant toutes les architectures et inclus dans mon projet. Cela a résolu mon problème

0
sonali

Cela peut également se produire lors de la construction du simulateur si vous incluez un cadre construit pour ARM uniquement (et je suppose aussi l'inverse).

0
ion