2013-10-03 7 views
8

Ich bin kürzlich auf ein ziemlich seltsames Problem mit Xcode gestoßen, das auftritt, wenn ich ein IPA baue und versuche, es zu installieren, habe ich versucht mit Xcode, iTunes und iPhone-Konfigurationsprogramm installieren, die alle den gleichen FehlerInstallation von IPA führt zu einem Fehler "Eine signierte Ressource wurde hinzugefügt, geändert oder gelöscht"

A signed resource has been added, modified, or deleted. 

gebe ich erfolgreich die App auf meinem Handy debuggen können XCode verwenden, ist es nur, wenn ich versuche, ein IPA ich den Fehler sehen zu installieren.

Ich habe versucht, die IPA Entpacken und das Co-Design Validierungstool ausgeführt wird, die die folgende Antwort wirft:

a sealed resource is missing or invalid In architecture: armv7 
resource missing: 
/Users/dev1/Documents/PoleTester.app/Settings.bundle/._Root.plist 

Dies führte mich an der Settings.bundle Datei zu suchen und sicherzustellen, dass es in dem enthalten ist wird baue, was es ist. Interessanterweise, wenn ich die Settings.bundle-Datei entferne, eine IPA erstelle und versuche, sie auf meinem iPhone zu installieren, ist die Installation erfolgreich, jedoch nutzlos, da ich die Settings.bundle-Datei mit der App installieren muss.

Weitere Untersuchungen an einigen meiner früheren XCode-Projekte haben gezeigt, dass ich mit der Datei Settings.bundle eine IPA erstellen und erfolgreich installieren kann. Allerdings, wenn ich eine einfache Änderung an der Settings.bundle Datei, wie das Hinzufügen oder Entfernen einer Zeile machen, ein IPA bauen und dann versuchen, es zu installieren, erhalte ich die

"A signed resource has been added, modified, or deleted" error. 

ich ein bisschen ein bin Verlust, was diesen Fehler verursacht und warum die Datei Settings.bundle die Installation fehlschlägt.

Hat jemand diesen Fehler vor oder möglicherweise etwas Licht auf, was verursacht es gesehen?

Ich verwende Xcode 4.6.3 und ein iPhone 4 läuft iOS 6.1.3.

Antwort

2

Es ist ein bisschen spät, aber ich lief heute genau das gleiche Problem mit Xcode 5.0.1.

Nach https://developer.apple.com/library/ios/technotes/tn2318/index.html, „die Ressource fehlt: my.app/ *..“ Fehler verursacht werden könnten:

Die Datei mit dem Präfix „._“ ist eine AppleDouble- Datei betrachtet, und es kann Ergebnis durch Kopieren des unkomprimierten Xcode-Projektordners auf eine nicht mit HFS + formatierte Festplatte. Die AppleDouble-Dateien müssen mit dem Befehl 'dot_clean' entfernt werden. Der Xcode-Projektordner ist das Argument für dot_clean, wie unten dargestellt.

Schritte Ich habe dieses Problem zu beheben:

  1. Schließen Xcode
  2. Run "dot_clean/path/to/My_Xcode_Project" im Terminal
  3. öffnen Xcode wieder und machen einen neuen Build

Seltsamerweise scheinen die meisten dieser _ * Dateien keine Probleme zu verursachen außer denen in Settings.bundle (Fast jede Datei in meinem Verzeichnis hatte eine, aber nur eine Nachdem ich Settings.bundle hinzugefügt habe, konnte die IPA nicht installiert werden.

19

Saubere Build Folder (⌘⌥⇧-K) hat dies für mich 3 von 3 mal gelöst.

+12

Möchten Sie wissen, was großartig ist? Ich muss dies mit jedem Build in xcode 6b5 tun. – mmr

+0

@mmr Für was es wert ist, fand ich, dass, wenn ich auf einem Gerät mit iOS 8 testen, dies die ganze Zeit passiert. Aber es passiert nicht beim Testen auf einem Gerät mit iOS 7. Neugierig, wenn Sie ein Widget in Ihrer App haben? – Awesomeness

+0

@ Awesomeness-- Das ist der Grund, warum ich die Beta verwende, ja. Ich denke, dass es immer noch ein bisschen Arbeit gibt, Widgets gut in Projekte zu integrieren. Warum würde ein Widget jemals anders als die Haupt-App signiert sein? – mmr

3

Ich lief gerade in dieses Problem mit Xcode 6 Beta 6 Installation auf meinem iPhone 5 mit iOS 8 Beta 5. Die App, die ich baue verwendet eine Today-Erweiterung (alias Widget).

Es scheint, dass das Problem davon herrührt, dass ich keine Abhängigkeiten richtig eingerichtet habe. Ich habe ein Framework von Dritten (Alamofire) als Teil des Projekts als eine Abhängigkeit des Gesamtprojekts eingerichtet, aber nicht als eine Abhängigkeit des heutigen Widgets. Ich könnte gut bauen, aber bei der Installation auf dem Gerät würde ich diese "signierte Ressource wurde ..." Fehler bekommen.

Durch das Hinzufügen von Alamofire als eine Abhängigkeit des Today-Widgets wurde das Problem behoben.

1

In meinem Fall geholfen, was einen Bash-Skript in Build-Phasen Hinzufügen (kurz vor „kompilieren Quellen“):

find ~/Library/Developer/Xcode/DerivedData -name "YouAppName.appex" | xargs -I % find % -type f -maxdepth 1 | xargs rm 

Was dieses Skript tut, ist appex dir (zB Vermögen der Dateien im Projekt zu reinigen), aber Unterverzeichnisse (zB kompiliertes Storyboard) hinterlassen. In der Tat ist die Verwendung dieses Skripts während der Erstellung viel schneller auszuführen als die vollständige Bereinigung des Projekts.

Verwandte Themen