Wie um zu überprüfen, ob ein Rahmen ist BITCODE unterstützt Xcode7
Vom Xcode-7 es wurde das gemeinsame problem, dass third-party-frameworks unterstützen sollte Bitcode. Wir können auch deaktivieren Sie den BITCODE von Einstellung ENABLE_BITCODE, um NICHT in den Build-Einstellungen. Aber ich will nicht, um Sie auszuschalten, vielmehr will ich alle meine konvertieren Rahmenbedingungen zu BITCODE kompatibel.
So, wie um zu prüfen, ob ein Rahmen ist BITCODE kompatibel abgesehen vom kompilieren der framework in Xcode. Manchmal Xcode Fehler geben für BITCODE Kompatibilität für ein framework verlassen die anderen, obwohl Sie nicht haben BITCODE unterstützen.
Gibt es eine tool/command line-check?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vom das Apple-Entwickler-Forum Diskussion, Benutzer dshirley und bwilson empfehlen die Verwendung von Kommandozeilen-tools
otool
undgrep
um zu überprüfen, ob bitcode Abschnitte vorhanden sind.oder
Ausführen des oben genannten Befehls, wenn die Bibliothek enthält bitcode sehen Sie
segname __LLVM
Ausgabe.$ otool -l MyFramework.framework/Versions/A/MyFramework | grep __LLVM
, woMyFramework
ist die Bibliothek (ohne die Dateiendung). Für mehr Informationen zu den Rahmen-directory-Strukturen, check outVersions
- Verzeichnis? Ist es nicht ein muss für eine framewoek?otool -arch arm64 -l MyFramework.framework/Versions/A/MyFramework | grep LLVM
Akzeptierte Antwort legt nahe, dass Sie tun sollen
grep __LLVM
aber ich würde lieber machen dieseda gibt es verschiedene
__LLVM
Segmente und nicht alle diese zeigen die Anwesenheit von Bitcode. Hier ist ein Beispiel:Anwesenheit des
__cmdline
Abschnitt nicht zeigen, dass Bitcode ist vorhanden, aber es würde auch gefunden werden, wenn Sie nur auf der Suche nach__LLVM
.Ich habe beobachtet, dass __bitcode Abschnitt ist nur für statische Libs und nicht für den dynamischen libs. So, Lösung ist den nachstehenden Befehl.
Manchmal haben wir auch mit fat-binaries otool nicht geben kann __LLVM-Segmenten, obwohl Sie vorhanden sind. Sie können den folgenden Befehl verwenden, für jene Fälle,
können Sie versuchen, diese Befehle:
und