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


69

Ich habe versucht, meine ipa-Datei mit einem neuen Bereitstellungsprofil auf Mac Os 10.10 mit der iResign-App zu kündigen, aber ich habe die folgende Warnung erhalten: "Warnung: --resource-rules ist in Mac OS X> = 10.10 veraltet".

Was sollte ich jetzt tun?


Welche Dateien schließen Sie vom Signieren aus?
Droppy

Ich habe eine IPA-Datei mit Development Cerfiticate, jetzt möchte ich sie in ein Enterprise Distribution Cerfiticate ändern. Ich habe die iResign-App verwendet, um unter Mac OS X 10.10 zurückzutreten, aber diese Warnung wird angezeigt.
hiennv92

Klingt nach einem Fehler iResign(was auch immer das ist) und Sie sollten die App wahrscheinlich stattdessen mit Xcode neu erstellen?
Droppy

Danke für deine Unterstützung. Aber einige meiner Freunde wissen nicht, wie man mit Xcode baut. Es ist besser, wenn sie die IPA-Datei mit ihrem Distributionszertifikat zurücktreten können. Ich werde vorschlagen, dass sie Mac OS 10.9.5 oder niedriger verwenden. Wie auch immer, vielen Dank
hiennv92

Antworten:


6

Ich fand Umgehung : Wenn Sie die iResign App von XCode laufen - dann wird zurücktreten Sie App ohne Probleme (Warnung erscheint in der Konsole statt Popup). Wenn Sie jedoch XCode schließen und die App alleine ausführen, wird das Popup wieder angezeigt!

Übrigens: Fehler gefunden :) Der Zustand

if (systemVersionFloat < 10.9f)

Ist für Yosemite 10.10 kaputt. Lustig.

Vielen Dank,


1
Vielen Dank! Das ist wirklich ein lustiger Fehler. Ich habe diesen Fehler kürzlich gefunden. Es gibt auch ein neues Update hier: github.com/maciekish/iReSign
hiennv92

Woher kommt der Zustand? Und wie soll ich diesen Zustand beheben?
Munmunbb

Dies sieht weniger nach einem Fehler aus als nach einer fest codierten Abwertung.
Lytic

153

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

Code Signing Resource Rules Path

und hinzufügen:

$(SDKROOT)/ResourceRules.plist

Geben Sie hier die Bildbeschreibung ein


11
Dies half mir, ein Problem zu lösen, das ich mit TestFlight hatte.
dfmuir

2
Ich sehe Code Signing Resource Rules Pathdort nicht ... Irgendwelche Ideen?
Georg

4
Dies schien Probleme gelöst zu haben, die ich mit TestFlight hatte
Joseph

5
Gehe zu Build SettingsGeorg und stelle sicher, dass du alle Level ausgewählt
hast

4
Dies löste mein Problem mit TestFlight für Mac beim Erstellen des IPA fehlgeschlagen. Es fühlt sich ehrlich an, als würde Apple langsam alles Gute an TestFlight töten. Ich dachte, es würde eine gute Sache sein, als sie ...
Cameron E

24

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

Technischer Hinweis TN2206 enthält die Details:

Ressourcenregeln

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

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


Gute Infos, obwohl dies das Gegenteil der Lösung der am höchsten
Mike Chamberlain

Ich denke, die Antwort mit der höchsten Bewertung war ab Xcode 6.x korrekt . Bei meinem Fall hat es nicht funktioniert.
Ricardo Sanchez-Saez

Die richtige Antwort muss ab XCode 7
carbonr

10

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

  1. Entfernen CODE_SIGN_RESOURCE_RULES_PATH=$(SDKROOT)/ResourceRules.plist
  2. Suchen Sie das /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/PackageApplicationSkript 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});
    

Das ist eigentlich die einzige Lösung, die funktioniert. Vielen Dank.
jimpic

Dies ist die Lösung meiner Meinung nach
Loukas


4

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

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

2

Wenn Sie die App über das Terminal zurücktreten, können Sie sie resource-rulesbeim Ausführen der Code-Signierung sogar weglassen , da nicht extern angegeben werden muss, welche Ressource signiert werden soll und welche nicht. Jetzt müssen alle Ressourcen im Paket signiert werden.

Um die App über das Terminal zu kündigen, können Sie die folgenden Schritte ausführen:

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/

1

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

Es ist interessant, dass Antworten und Kommentare den 'Pfad für Codesignatur-Ressourcenregeln' aktualisieren und auch auf Mac-Apps verweisen.

In meinem Fall hatte das Projekt diesen Schlüssel und Wert bereits standardmäßig festgelegt (ich habe ihn nie festgelegt). In der Warnung wird darauf hingewiesen, dass Ressourcenregeln ebenfalls veraltet sind.

Für mich wurde durch Löschen des Werts des Pfads "Codesignatur-Ressourcenregeln" die Warnung entfernt. Ich habe auf diese Weise keinen neuen Build eingereicht, daher muss ich möglicherweise zurückkommen und diese Antwort aktualisieren.

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


0

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

Ich mag die Idee 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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.