Вот хорошее решение, которое я нашел: Static Libs With Support to iOS 5 and Arm64
Отредактировано:
Решение состоит в том, чтобы создать различные архитектуры разделенных затем связать их с помощью липо, с помощью командной строки (или Rakefile).
Сначала создайте двоичный файл с рукой, используя 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'
Заметьте, что вы должны установить IPHONEOS_DEPLOYMENT_TARGET = «5,0» и арки = «ARMv7 armv7s», рекомендуется установить сборки и продукт каталоги, чтобы сделать вещи более ясны, ознакомьтесь с инструкцией по настройке сборки для более подробной информации о том, что означают эти флаги.
Следующая сборка для 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'
Обратите внимание на разницу в сводах и IPHONEOS_DEPLOYMENT_TARGET. Нам также необходимо построить для симулятора, в этом случае мы должны изменить, чтобы iphonesimulator7.0 SDK и построить в два этапа первого для 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'
Теперь сложная часть! Если вы просто измените ARCHS на x86_86 в зависимости от вашего параметра Xcode, вы получите сообщение об ошибке: «x86_64 не является допустимой дугой». Чтобы избежать этого просто добавьте 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'
Наконец, мы просто должны создать жир двоичный файл со всеми 5 архитектур:
lipo -create './build-arm/libStaticLibDemo.a' './build-arm64/libStaticLibDemo.a' './build-i386/libStaticLibDemo.a' './build-x86_64/libStaticLibDemo.a' -output 'libStaticLibDemo.a'
Автор создал рабочий пример этого, вы можно получить: https://github.com/diogot/StaticLibDemo
Вот ссылка на этот пост: Static Libs With Support to iOS 5 and Arm64
Все кредиты переданы Diogo Tridapalli.
Извините, я забыл упомянуть, что мне нужно построить это, не используя Xcode, но компилируя непосредственно традиционную библиотеку unix. Я редактирую свой ответ, чтобы отразить этот факт. –