wake-up-neo.com

--resource-rules ist in mac os x> = 10.10 veraltet

Ich habe versucht, meine ipa-Datei mit dem neuen Bereitstellungsprofil auf Mac OS 10.10 mit der iResign-App zurückzunehmen, habe jedoch die folgende Warnung erhalten: "Warnung: --Ressourcenregeln sind in Mac OS X> = 10.10 veraltet.".

Was sollte ich jetzt tun?

68
hiennv92

Ich fand Workaround: Wenn Sie die iResign-App über XCode ausführen, werden Sie die App ohne Probleme schließen (Warnung wird in der Konsole anstelle von Popup angezeigt). Wenn Sie jedoch XCode schließen und die App alleine ausführen, wird das Popup-Fenster wieder angezeigt.

Übrigens: Fehler gefunden :) Der Zustand

if (systemVersionFloat < 10.9f)

Ist für Yosemite 10.10 kaputt. Lustig.

Vielen Dank,

6
Sergey Kopanev

Klicken Sie auf Ihr Projekt> Ziele> Wählen Sie Ihr Ziel> Build-Einstellungen>

Code Signing Resource Rules Path

und füge hinzu:

$(SDKROOT)/ResourceRules.plist

enter image description here

153
Danut Pralea

Seit Xcode 7 ist das Code Signing Resource Rules Path Build-Einstellung muss leer bleiben, sonst wird diese Warnung erzeugt.

Technical Note TN2206 liefert die Details:

Ressourcenregeln

Systeme vor OS X Mavericks 10.9 haben eine Signaturfunktion (--resource-rules) dokumentiert, mit der gesteuert werden kann, welche Dateien in einem Bundle durch eine Codesignatur versiegelt werden sollen. Diese Funktion wurde für Mavericks überholt. In Mavericks erstellte Codesignaturen versiegeln später immer alle Dateien in einem Bündel. es besteht keine Notwendigkeit mehr, dies explizit anzugeben. Dies bedeutet auch, dass die Einstellung zum Erstellen des Codesignaturressourcen-Regelpfads in Xcode nicht mehr verwendet und leer gelassen werden sollte.

Es ist somit nicht mehr möglich, Teile eines Bündels von der Signatur auszuschließen. Bundles sollten nach dem Signieren als schreibgeschützt behandelt werden.

24

Nach Xcode 7 funktionierten die vorherigen Lösungen nicht mehr. Ein neuer wurde von Rishi Goel gezeigt (in https://stackoverflow.com/a/32762413/2252465 )

  1. CODE_SIGN_RESOURCE_RULES_PATH=$(SDKROOT)/ResourceRules.plist entfernen
  2. Finde das /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/PackageApplication Skript und aktualisieren Sie es.
    Suchen Sie die Zeilen mit dem folgenden Code im Skript

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

    ändere es in:

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

Versuchen Sie, im Befehl xcodebuild die folgenden Argumente hinzuzufügen.

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

Wenn Sie die App mit dem Terminal beenden, können Sie sogar resource-rules Weglassen, während Sie die Code-Signatur durchführen, da Sie nicht extern angeben müssen, welche Ressource signiert werden soll und welche nicht. Jetzt müssen alle Ressourcen im Paket signiert werden.

Um die App über das Terminal zu beenden, gehen Sie wie folgt vor:

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

Ich habe gerade meine vorhandene iOS-App in Xcode 7 GM (ab Xcode 6.4)) geöffnet und diese Warnung zur Nichtbeachtung gesehen.

Es ist interessant, dass Antworten und Kommentare sagen, dass der "Code Signing Resource Rules Path" aktualisiert werden soll, und sie verweisen auch auf Mac-Apps.

In meinem Fall hatte das Projekt diesen Schlüssel und diesen Wert bereits als Standard festgelegt (ich habe ihn nie festgelegt). Die Warnung bezieht sich auch auf veraltete Ressourcenregeln.

Für mich wurde die Warnung durch Löschen des Werts des "Code Signing Resource Rules Path" entfernt. Ich habe auf diese Weise keinen neuen Build eingereicht, daher muss ich möglicherweise zurückkehren und diese Antwort aktualisieren.

Ich fand es nur interessant, dass meine Antwort dem entgegengesetzt ist, was alle anderen sahen.

1
Chad Pavliska

Wenn Sie die beiden Parameter --resource-rules aus der Argumentliste auskommentieren, in der die iResign-App die Codesign-Aufgabe aufruft, müssen Sie die Projekterstellungseinstellungen für das Projekt der App nicht ändern.

Ich mag es nicht, die Build-Einstellungen für jedes Projekt ändern zu müssen, mit dem ich arbeiten möchte, nur damit ich es zurücktreten kann.

Ich habe das Resign-Tool neu erstellt und in mein Anwendungsverzeichnis kopiert, damit ich es nicht in Xcode öffnen muss.

0
Sheamus