webentwicklung-frage-antwort-db.com.de

Anwendungslader: FEHLER ITMS-90502

Ich versuche, ein neues Build in TestFlight hochzuladen, aber der Anwendungslader gibt den folgenden Fehler aus:

FEHLER ITMS-90502: "Ungültiges Bundle. Apps, die nur den arm64 Slice enthalten, müssen auch 'arm64' in der Liste von UIRequiredDeviceCapabilities in Info.plist enthalten."

Wenn ich wie vorgeschlagen arm64 zu UIRequiredDeviceCapabilities hinzufüge, erhalte ich eine weitere Fehlermeldung:

FEHLER ITMS-90098: "Dieses Bundle ist ungültig. Der Schlüssel UIRequiredDeviceCapabilities enthält den Wert 'arm64', der mit dem MinimumOSVersion-Wert von '8.0' inkompatibel ist."

Ich bin nicht sicher, was dieses Problem verursacht und warum das Paket nur die arm64-Architektur enthält. Ich habe die Projekteinstellungen überprüft und sie scheinen andere Architekturen zu enthalten. ARCHS (Architekturen) ist auf Standard architectures (armv7, arm64) gesetzt, VALID_ARCHS (Gültige Architekturen) ist auf arm64 armv7 armv7s gesetzt.

Es ist schon eine Weile her, seit ich versucht habe, den letzten Build hochzuladen (~ 1 Monat). Hat eines der Updates von Apple etwas kaputt gemacht? (Ich habe seitdem definitiv keine Architektureinstellungen mehr berührt, das einzige, was hinzugefügt wurde, war UIBackgroundModes = remote-notification). Oder gibt es einen anderen Grund für diesen Fehler?

26

Egal, habe das Problem gefunden. Die Konfiguration, die ich zum Erstellen des Archivs verwendete, hatte Build Active Architecture Only auf Yes gesetzt. Wie dumm von mir.

38

Ich habe den gleichen Fehler ein paar Monate nach diesem Posting getroffen. Ich habe dieses Posting bei Google gefunden, und falls andere hierher kommen, gibt es einen anderen Grund für den ITMS 90502-Fehler (Konsens ist, dass dies eine neue Anforderung im Zeitraum von Ende Oktober/Anfang November 2015 ist).

Wenn Sie andere Frameworks in Ihre App aufnehmen, müssen diese auch die erforderliche 'arm64'-Gerätefunktion enthalten. Das muss in der Info.plist sein:

<key>UIRequiredDeviceCapabilities</key>
<array>
    <string>arm64</string>
</array>
12

Wenn Sie Cocoapods verwenden, müssen Sie zu jeder Abhängigkeit den Schlüssel 'UIRequiredDeviceCapabilities' hinzufügen. Fügen Sie diese Post-Installation Ihrer Pod-Datei hinzu.

post_install do |installer|
    installer.pods_project.targets.each do |target|
        plist_buddy = "/usr/libexec/PlistBuddy"
        plist = "Pods/Target Support Files/#{target}/Info.plist"

        puts "Add armv7 to #{target} to make it pass iTC verification."

        `#{plist_buddy} -c "Add UIRequiredDeviceCapabilities array" "#{plist}"`
        `#{plist_buddy} -c "Add UIRequiredDeviceCapabilities:0 string armv7" "#{plist}"`
    end
end
10

Ich habe diesen ERROR-ITMS 90502-Fehler behoben.

Wenn Sie Active Architecture Only auf YES setzen, wird jedoch derselbe Fehler angezeigt.

Wenn sich Ihr Telefon jedoch mit dem Mac verbinden kann, trennen Sie die Verbindung und laden Sie sie hoch.

In meinem Fall gelöst!

6
June-Gyu Bae

Wenn sich das Implementierungsziel Ihres Ziels auf iOS 11.0 oder höher befindet, muss arm64 in Ihrem info.plist vorhanden sein. Das Erstellen eines neuen Projekts in Xcode 9.x fügt nur armv7 unter UIRequiredDeviceCapabilities hinzu und scheint ein Fehler zu sein.

Aktualisieren Sie den UIRequiredDeviceCapabilities-Schlüssel Ihres info.plist in:

<key>UIRequiredDeviceCapabilities</key>
<array>
    <string>arm64</string>
</array>
5
Daniel Storm

Ich hatte dieses Problem mit Xamarin und endete mit dieser Frage.

Für mich bestand die Lösung darin, sicherzustellen, dass beim Erstellen der Anwendung keine Debug-Symbole enthalten sind.

Klicken Sie in Xamarin Studio mit der rechten Maustaste auf das Projekt -> Optionen. Wählen Sie "Compiler" unter der Überschrift "Build". Überprüfen Sie die Dropdown-Liste "Debug-Informationen".

Reinigen, neu aufbauen, neu verpacken und erneut hochladen, und es hat funktioniert.

2
GregHNZ

Ein anderer Weg: 

1 - Trennen Sie alle Testgeräte von Ihrem Mac.  

2 - Archiv.

Das Problem, das Sie erwähnen, ist nur aufgetreten, als ich versucht hatte, zu archivieren, während mein iPhone verbunden war. 

Wenn Sie bei getrennter Archivierung archivieren, wird dieses Problem behoben.

2
Catarino

Nur wenn in letzter Zeit jemand anderes mit diesem Problem beim Erstellen für iOS 11 und höher beschäftigt ist, wird dieser Schlüssel für die App und auch für alle Erweiterungen in der App benötigt. Es ist jedoch nicht notwendig, es in irgendeinem Rahmen zu haben.

2
Daniel Tull

Ich hatte das gleiche Problem mit Xamarin

alles, was ich tat, um das Problem zu ändern, änderte den Build-Typ in Release| iPhone, während Sie ein echtes Gerät anschließen 

ich hoffe das hilft

1
Mina Fawzy

das funktioniert für mich ..

<key>UIRequiredDeviceCapabilities</key>
<array>
    <string>armv7</string>
</array>
1
MAhipal Singh

In meinem Fall hatte ich einen: ERROR ITMS-90503 Mit Arm64 alleine (ohne 'nur') im UIRequiredDeviceCapabilities-Schlüssel

Und: Die Archivierung im "Debug" -Modus hat für mich funktioniert

In meinem Fall löste sich das Problem in Visual Studio für Mac darin, ARMv7 + ARM64 im ios-Optionsfeld festzulegen.

0
Hugo S.