2017-12-23 9 views
0

Ich verwende die CocoaAsyncSocket Bibliothek für eine Anwendung, die ich schreibe. Wenn ich es auf meinem eigenen Gerät kompiliere und laufe, gibt es kein Problem und Xcode kann CocoaAsyncSocket finden.Xcode findet CocoaPods Modul nicht

Allerdings, wenn ich versuche zu archivieren wird es nicht kompilieren und ich bekomme die Fehlermeldung, dass das Modul CocoaAsyncSocket nicht gefunden werden kann.

Ich habe festgestellt, dass es etwas mit den verschiedenen Architekturen zu tun hat. Wenn ich für mein eigenes Gerät baue ist es das einzige Gebäude für "arm64" und wenn ich sein Gebäude für arm64, armv7 und armv7s archiviere. Wenn ich die Buildeinstellungen für die Archivierung ändere, um nur für arm64 zu bauen, kann ich archivieren. Aber natürlich möchte ich es für alle Architekturen bauen können. Bild unten zeigt Einstellungen für wenn es nur Gebäude für arm64 (in meinem Fall);

Build Active Architecture Only: Yes

enter image description here

Hat sonst noch jemand erfahrenen ähnliche Probleme mit dieser Bibliothek oder anderen Cocoapod Bibliotheken?

Antwort

1

Viele Entwickler haben die bevorstehende 64-Bit-Zukunft angenommen, aber nicht alle Third-Party-Bibliotheken unterstützen diese Architektur bereits, einschließlich derjenigen, die über CocoaPods installierbar sind.

Trotz der fehlenden universellen 64-Bit-Unterstützung zwischen Drittanbieter-Pods enthält CocoaPods immer noch die arm64-Architektur (über ARCHS_STANDARD_INCLUDING_64_BIT) in den Build-Einstellungen der generierten Ziele. Dies kann zu Problemen führen, wenn die Abhängigkeiten Ihrer App arm64 nicht unterstützen oder Sie nur aus anderen Gründen für armv7 und armv7s erstellen möchten.

Sie beheben können diese fügen Sie einfach den folgenden auf den Grund Ihres Podfile die ARCHS Build ARCHS_STANDARD Einstellung zurückzukehren:

# Remove 64-bit build architecture from Pods targets 
post_install do |installer| 
    installer.project.targets.each do |target| 
    target.build_configurations.each do |configuration| 
     target.build_settings(configuration.name)['ARCHS'] = '$(ARCHS_STANDARD_32_BIT)' 
    end 
    end 
end 

Hinweis:

CocoaPods Troubleshooting Guide empfiehlt Anpassung der Debug-Einstellung in Ihrer Xcode-Projekt, anstatt nur die Build Active Architecture des Pods zu ändern. Solange sie übereinstimmen, scheint es das Problem zu beheben.

  1. die Schoten Projekt auswählen
  2. ändern Bauen Aktiv Architektur nur von Ja auf Nein.

Oder

Sie können versuchen, cocoapods in Ihrem Terminal Aktualisierung Befehl:

gem update cocoapods

Wenn es danach nicht funktioniert, gehen Sie in Ihren Arbeitsbereich, klicken Sie auf das Pod-Projekt, wählen Sie alle Pod-Ziele und setzen Sie Architekturen auf (armv7 armv7s arm64).

Verwandte Themen