Frage

Vor kurzem habe ich begonnen, Testfälle für eine alte statische Bibliothek zu schreiben.Ich habe die Bibliothek auf Xcode 5 geladen. Da die statische Bibliothek alt ist, muss ich TestProject manuell mit Test Target hinzufügen.

Wenn ich „Produkt -> Test“ versuche, wird der Emulator gestartet und die Konsole zeigt den folgenden Fehler an

Das Testpaket at /xxx/xxx/xxx/staticliBtest.xctest konnte nicht geladen werden, da ein unerwarteter Fehler aufgetreten ist:Fehlerdomäne = NSCOCOArordomain -Code = 3587 "Das Bundle" staticLiBtest.xctest "konnte nicht geladen werden, da es beschädigt oder die erforderlichen Ressourcen fehlen." (dlopen_preflight (/xxx/xxxx/xxx/debug-iphonesimulator/staticliBtest.xctest/staticLiBtests):kein passendes Bild gefunden.Habe Folgendes gefunden:

Ich habe keine Ahnung, warum dieser Fehler auftritt.

Wir freuen uns sehr über jede Hilfe, die Ihnen dabei hilft, die richtige Richtung zu finden.

War es hilfreich?

Lösung 4

Ich habe die Antwort von mir gefunden.

Ihre Build-Einstellungen -> Architekturen sollten für Bibliotheks- und Testprojekte gleich sein

Architekturen -> Architekturen= Standradarchitekturen (Armv7, Armv7s, Arm64) $ (Archs_standard)

Die Verknüpfung Ihres Testprojekts -> Mach-O-Typ sollte Bündel sein

Verknüpfung -> Mach-O-Typ= Bündel

Erstellen und ausführen Tests.Das ist es

Andere Tipps

Wenn andere Leser diesen Fehler erhalten und Sie Carthage zum Hinzufügen eines Frameworks verwenden, stellen Sie sicher, dass Copy Files Phase ist mit Ziel:Rahmenwerke.

Adding frameworks from Carthage

Wenn Sie die Frameworks versehentlich zu a hinzufügen Copy Files Phase mit einem anderen Ziel (außer Frameworks) oder Copy Bundle Resources, führt dies auch zur Fehlermeldung „Beschädigtes/ungültiges Bundle“.

Ich hatte ein ähnliches Problem.Für mich war das Problem ein Einheitsprüfungsrahmen, das ein dynamischer Rahmen war, aber nicht auf das Xktest-Bündel kopierte.

Die Lösung bestand darin, ein "Kopierdateien" -Phase-Phase zu meinem Einheitstest-Ziel hinzuzufügen, das Ziel auf "Frameworks" einstellen und mein Framework als Eingabedatei hinzufügen.

Ich konnte dieses Problem beheben, indem Sie die Host-Anwendung für das Testziel festlegen: Host-Anwendung

Für mich war dieses Problem auf die Einstellung "iOS-Bereitstellungsziel", die in meinem Testziel unterschiedlich ist als meine Haupt-App.Sobald ich sie gleich gemacht habe, ging das Problem weg.

Überprüfen Sie, ob Sie vergessen haben, Ihr Testziel in Ihr hinzuzufügen Podfile:

target 'MyProject' do

  # Add test target
  target 'MyProjectTests' do
    inherit! :search_paths
  end

  pod 'SomePodLibrary'

end

Die Bündel-UITESTS konnten nicht geladen werden, da es beschädigt ist oder die erforderlichen Ressourcen fehlen.Versuchen Sie, das Bündel erneut zu installieren

Überprüfen Sie, ob alle Ihre Ziele dieselbe iOS-Version verwenden: Build-Einstellungen -> IOS-Bereitstellungsziel

Ausschalten der Pod-Konfiguration für das Testziel, das das Problem für mich behoben hat, hatte es etwas mit der Pod-Konfiguration, die mit ihm verwaltet.

Für mich hatten wir nur Cloudkit-Berechtigungen eingeschaltet.Aus irgendeinem Grund, der das Gebäude brach.

hatte ein ähnliches Problem:

frameworka imports frameWewb

framework-tests importiert auch frameware

Was das Problem gelöst hat, bestand darin, alle Referenzen auf frameworkb in frameworka-tests zu entfernen

framework-tests Importierungen Importierungen framewb und läuft fein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top