web-dev-qa-db-fra.com

--resource-rules est obsolète dans mac os x> = 10.10

J'ai essayé de démissionner de mon fichier ipa avec le nouveau profil de provisioning sous Mac Os 10.10 avec l'application iResign, mais le message d'avertissement suivant s'affiche: "Avertissement: --resource-rules est obsolète dans Mac OS X> = 10.10".

Qu'est-ce que je devrais faire maintenant?

68
hiennv92

J'ai trouvé solution de contournement: si vous exécutez l'application iResign à partir de XCode - vous résignerez l'application sans problème (un avertissement apparaîtra dans la console au lieu de la fenêtre contextuelle). Mais si vous fermez XCode et lancez l'application seule, alors popup sera de retour!

BTW: bug trouvé :) La condition

if (systemVersionFloat < 10.9f)

Est cassé pour Yosemite 10.10. Drôle.

Merci,

6
Sergey Kopanev

Cliquez sur votre projet> Cibles> Sélectionnez votre cible> Paramètres de construction>

Code Signing Resource Rules Path

et ajouter :

$(SDKROOT)/ResourceRules.plist

enter image description here

153
Danut Pralea

Depuis Xcode 7, le Code Signing Resource Rules Path paramètre de construction doit être laissé vide, sinon cet avertissement est généré.

Note technique TN2206 ) == fournit les détails:

Règles de ressources

Les systèmes antérieurs à OS X Mavericks v10.9 ont documenté une fonctionnalité de signature (--resource-rules) permettant de contrôler les fichiers d'un paquet devant être scellés par une signature de code. Cette fonctionnalité est devenue obsolète pour Mavericks. Les signatures de code faites dans Mavericks et plus tard scellent toujours tous les fichiers dans un paquet; il n'est plus nécessaire de spécifier explicitement cela. Cela signifie également que le paramètre de construction Chemin de règles de ressources de signature de code dans Xcode ne doit plus être utilisé et doit être laissé vide.

Il n'est donc plus possible d'exclure des parties d'un paquet de la signature. Les paquets doivent être traités en lecture seule une fois qu'ils ont été signés.

24

Après Xcode 7, les solutions précédentes ne fonctionnaient plus. Rishi Goel en a signalé un nouveau (in https://stackoverflow.com/a/32762413/2252465 )

  1. Supprimer CODE_SIGN_RESOURCE_RULES_PATH=$(SDKROOT)/ResourceRules.plist
  2. Trouvez le /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/PackageApplication script et le mettre à jour.
    Recherchez les lignes contenant le code suivant dans le script

    my @codesign_args = ("/usr/bin/codesign", "--force", "--preserve-metadata=identifier,entitlements,resource-rules",
                      "--sign", $opt{sign},
                      "--resource-rules=$destApp/ResourceRules.plist");
    

    changez le en:

    my @codesign_args = ("/usr/bin/codesign", "--force", "--preserve-metadata=identifier,entitlements",
                      "--sign", $opt{sign});
    
10
Rodrigo Pinto

Essayez d'ajouter les arguments ci-dessous dans la commande xcodebuild.

-sdk iphoneos CODE_SIGN_RESOURCE_RULES_PATH='$(SDKROOT)/ResourceRules.plist' 
4
Chintan Prajapati

Si vous démissionnez de l'application en utilisant un terminal, vous pouvez même omettre resource-rules lors de la signature du code, car il n’est pas nécessaire de spécifier en externe quelle ressource signer et laquelle ne pas signer. Maintenant, il est obligatoire de signer toutes les ressources du paquet.

Pour quitter l'application à l'aide d'un terminal, vous pouvez suivre les étapes ci-dessous:

unzip MyApp.ipa

rm -rf Payload/MyApp.app/_CodeSignature/

cp ~/Desktop/MyAdHoc.mobileprovision Payload/MyApp.app/embedded.mobileprovision 

codesign -f -s "iPhone Distribution: Code signing Certificate for Enterprise or Ad-hoc app" Payload/MyApp.app

Zip -qr MyApp_Resigned.ipa Payload/
2
technerd

Je viens d'ouvrir mon application iOS existante dans Xcode 7 GM (à partir de Xcode 6.4) et j'ai vu cet avertissement concernant la dépréciation.

Il est intéressant de noter que les réponses et les commentaires demandent de mettre à jour le "chemin des règles de ressources de signature de code" et qu'ils font également référence aux applications Mac.

Dans mon cas, le projet avait cette clé et cette valeur déjà définies par défaut (je ne les ai jamais définies). L'avertissement concerne également les règles de ressources devenues obsolètes.

Pour moi, la suppression de la valeur du 'Chemin des règles de ressources de signature de code' a supprimé l'avertissement. Je n'ai pas soumis de nouvelle construction de cette façon, donc il se peut que je doive revenir et mettre à jour cette réponse.

Je pensais juste que c’était intéressant que ma réponse soit à l’opposé de ce que tous les autres voyaient.

1
Chad Pavliska

Si vous commentez les deux paramètres --resource-rules de la liste des arguments, où l'application iResign appelle la tâche codesign, vous n'avez pas besoin de modifier les paramètres de construction du projet pour le projet de l'application.

Je n'aime pas l'idée de devoir modifier les paramètres de construction de chaque projet sur lequel je souhaite travailler, afin que je puisse le démissionner.

J'ai reconstruit l'outil de démission et je l'ai copié dans mon répertoire Applications, de sorte que je n'ai pas à l'ouvrir dans Xcode.

0
Sheamus