Hier ist eine gute Lösung, die ich gefunden: Static Libs With Support to iOS 5 and Arm64
Edited:
Die Lösung wird dann binden sie getrennt unterschiedliche Architekturen bauen Lipo Verwendung von Befehlszeile (oder Rakefile).
Zunächst baut die Binärdatei mit Arm mit xcodebuild:
xcodebuild -project 'StaticLibDemo.xcodeproj' -configuration 'Release' -sdk 'iphoneos7.0' clean build ARCHS='armv7 armv7s' IPHONEOS_DEPLOYMENT_TARGET='5.0' TARGET_BUILD_DIR='./build-arm' BUILT_PRODUCTS_DIR='./build-arm'
Beachten Sie, dass IPHONEOS_DEPLOYMENT_TARGET = ‚5.0‘ und ARCHS = ‚ARMv7 armv7s‘ gesetzt sind, wird empfohlen, dirs zu bauen und ein Produkt zu setzen, um die Dinge zu machen Sehen Sie sich Build Setting Reference genauer an, was diese Flags bedeuten.
nächste Build für arm64:
xcodebuild -project 'StaticLibDemo.xcodeproj' -configuration 'Release' -sdk 'iphoneos7.0' clean build ARCHS='arm64' IPHONEOS_DEPLOYMENT_TARGET='7.0' TARGET_BUILD_DIR='./build-arm64' BUILT_PRODUCTS_DIR='./build-arm64'
Beachten Sie den Unterschied auf ARCHS und IPHONEOS_DEPLOYMENT_TARGET. Wir brauchen auch für Simulator zu bauen, in diesem Fall müssen wir die sdk ändern in zwei Schritten zunächst für i386 iphonesimulator7.0 und bauen:
xcodebuild -project 'StaticLibDemo.xcodeproj' -configuration 'Release' -sdk 'iphonesimulator7.0' clean build ARCHS='i386' IPHONEOS_DEPLOYMENT_TARGET='5.0' TARGET_BUILD_DIR='./build-i386' BUILT_PRODUCTS_DIR='./build-i386'
Jetzt kommt der schwierige Teil! Wenn Sie je nach Xcode-Einstellung einfach den ARCHS in x86_86 ändern, erhalten Sie einen Fehler wie: "x86_64 ist kein gültiger Arch". Um dies zu vermeiden nur VALID_ARCHS = ‚x86_64‘ hinzufügen:
xcodebuild -project 'StaticLibDemo.xcodeproj' -configuration 'Release' -sdk 'iphonesimulator7.0' clean build ARCHS='x86_64' VALID_ARCHS='x86_64' IPHONEOS_DEPLOYMENT_TARGET='7.0' TARGET_BUILD_DIR='./build-x86_64' BUILT_PRODUCTS_DIR='./build-x86_64'
Schließlich müssen wir schaffen nur einen fetten binär mit allen 5-Architekturen:
lipo -create './build-arm/libStaticLibDemo.a' './build-arm64/libStaticLibDemo.a' './build-i386/libStaticLibDemo.a' './build-x86_64/libStaticLibDemo.a' -output 'libStaticLibDemo.a'
Der Autor ein funktionierendes Beispiel dafür geschaffen, Sie es bekommen kann: Static Libs With Support to iOS 5 and Arm64
:
https://github.com/diogot/StaticLibDemo
Hier ist der Link zum Beitrag ist
Alle Credits gehen an Diogo Tridapalli.
Entschuldigung, ich habe vergessen zu erwähnen, dass ich dies nicht mit Xcode erstellen, sondern direkt eine traditionelle Unix-Bibliothek kompilieren muss. Ich bearbeite meine Antwort, um diese Tatsache widerzuspiegeln. –