2017-04-03 3 views
4

J'ai mis à jour Xcode à la dernière version, et maintenant lorsque j'essaie de compiler le projet, j'obtiens une erreur "Invalid bitcode signature", mais le bitcode de mon projet est désactivé. Comment puis-je le réparer? Que dois-je changer pour signer mon bitcode correctement?Échec de signature de code binaire dans Xcode

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 

Je vérifie déjà, tout va bien avec elle.

+0

Données dérivées propres. – shallowThought

+0

Je l'ai fait d'abord, ne fonctionne pas –

+0

Nous avons besoin de plus d'informations. Je suspecte qu'une des dépendances utilisées cause le problème. – shallowThought

Répondre

3

Si vous utilisez un pod, veuillez vérifier la version de toutes les bibliothèques, certaines bibliothèques ne supportent pas la nouvelle version, vous devez mettre à jour les fichiers pod de cette bibliothèque.

24

Je ne suis pas sûr si vous avez la même situation avec moi. J'ai seulement ce problème quand 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 défini sur OUI, je peux tester avec mon iPhone. enter image description here

+0

Merci! Je me cognais la tête contre le mur avec XCode 8.3 et 8.3.1 tous se plaignant de "signature de bitcode invalide" jusqu'à ce que j'ai changé cela. – Josh

+0

Merci, j'ai essayé de résoudre ce problème depuis des lustres - j'ai désactivé le bitcode et cette erreur est apparue jusqu'à ce que je mette Build Active Architecture à YES – wheeliebin

+0

Mon sauveur! Héros sans chapeau! –

1

Pour mon cas, la solution supprimait une bibliothèque C++.

+0

Il est possible que la définition de la cible de déploiement iOS, plutôt que la suppression complète de la bibliothèque C++, aurait suffi: https://stackoverflow.com/a/46864401/5951226 –

1

J'ai trouvé que mon problème était lié à l'utilisation de 'Modules'.

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

Enable Modules In Settings

+0

Ne connaissez pas votre cas mais la désactivation des modules n'est pas une bonne idée – accfews

1

Dans mon cas, le widget inclus dans le projet a été à l'origine de l'erreur de code binaire.

j'ai changé mon fichier pod de ceci:

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

target "App Widget" do 
    pod 'A' 
end 

à ceci:

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

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

Dans mon cas, je tentais de construire pour un appareil avec une version iOS inférieure à la cible de déploiement .

2

Sur mon problème de cas est survenue à cause de j'utilisais une 3ème partie bibliothèque statique avec des fichiers différents pour chaque architecture

je fixe le problème en supprimant les binaires des architectures non valides. Au lieu de cela j'ai ajouté un multiarchitecture FAT binary pour la 3ème partie bibliothèque statique

L'espoir aide

4

j'ai vécu cette erreur, mais il est arrivé que lors de la construction d'un iOS 10.3 iPad (malgré un travail sur un iOS 10.3 iPhone un iPad iOS 11.0, et tous les simulateurs iOS 10.3 et 11.0). Grâce à un douloureux processus d'élimination (et à la création d'un nouveau projet), j'ai découvert que mes Cocoapods n'étaient pas fautifs, ni mes paramètres de signature de code, ni mon AppExtension, ni mes tests, ni mon 'build for active architecture' paramètre, ni aucun paramètre de construction lié au terme «bitcode».

Dans ma configuration, j'avais un projet C++ Xcode imbriqué dans mon projet Swift/iOS Xcode principal. Comme il n'a jamais été conçu spécifiquement pour une utilisation dans iOS, la "cible de déploiement iOS" n'a jamais été définie (elle est restée sur "par défaut"). En le mettant explicitement à 10.3, cela a fonctionné sans se plaindre.

Nested C++ paramètres du projet d'application (ensemble cible de déploiement iOS au plus bas iOS version vous soutenez):

Nested C++ app's project settings

Nested C++ paramètres cibles app (pour référence):

Nested C++ app's target settings

+1

Génial, tout a finalement fonctionné. Merci beaucoup. –

+0

@Jas_meet Heureux de pouvoir sauver quelqu'un d'autre de cette situation! Une des erreurs les plus dures que j'ai jamais eu à traquer (surtout vu la lenteur des temps de construction). –

+1

J'ai eu ce même problème ... projet travaillait sur un iPhone avec iOS 10.2 mais pas un avec 10.3.3. Je vous remercie! – spanndemic

1

Ce type de problème est apparu lorsque j'ai lié un nouveau projet de bibliothèque statique ect à mon espace de travail. Afin de le résoudre, j'ai essayé de mettre les paramètres Build Active Architecture Only et Bitcode de la bibliothèque sur NO, mais pas de chance. Ensuite, j'ai compris que la cible de déploiement de la bibliothèque était définie sur 11.0 alors que 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.

0

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

0

Dans mon cas, j'utilise Cordova Project. Tout en le construisant avec Xcode avait le même problème et résolu en supprimant et en ajoutant la plate-forme IOS.

cordova platform remove ios 

cordova platform add ios