Ecco una buona soluzione che ho trovato: Static Libs With Support to iOS 5 and Arm64
Modificato:
La soluzione è quella di costruire architetture differenti separati poi li legano con lipo, utilizzando riga di comando (o Rakefile).
prima costruire il file binario con il braccio utilizzando 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'
Si noti che è necessario impostare IPHONEOS_DEPLOYMENT_TARGET = '5.0' e archi = 'armv7s ARMv7', si consiglia di impostare costruire e di prodotto dirs per fare le cose più chiaro, date un'occhiata a Build Setting Reference per maggiori dettagli su cosa significhi questo flag.
accumulo successivo di 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'
nota la differenza su archi e IPHONEOS_DEPLOYMENT_TARGET. Abbiamo anche bisogno di costruire per il simulatore, in questo caso, dobbiamo cambiare l'SDK per iphonesimulator7.0 e costruire in due fasi prima per i386:
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'
Ora la parte difficile! Se si modifica l'ARCHES in x86_86 in base all'impostazione Xcode, si otterrà un errore del tipo: "x86_64 non è un arco valido". Per evitare questo basta aggiungere VALID_ARCHS = 'x86_64':
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'
Infine non ci resta che creare un binario di grasso con tutti i 5 architetture:
lipo -create './build-arm/libStaticLibDemo.a' './build-arm64/libStaticLibDemo.a' './build-i386/libStaticLibDemo.a' './build-x86_64/libStaticLibDemo.a' -output 'libStaticLibDemo.a'
L'autore ha creato un esempio di lavoro di questo, è può ottenere: https://github.com/diogot/StaticLibDemo
ecco il link al post: Static Libs With Support to iOS 5 and Arm64
Tutti i crediti vanno a Diogo Tridapalli.
Scusate, ho dimenticato di dire che ho bisogno di costruire questo non usando Xcode ma compilando direttamente una libreria unix tradizionale. Sto modificando la mia risposta per riflettere questo fatto. –