2015-05-30 5 views
3

У меня есть приложение iOS, обновленное до последней версии SDK8.3, и я использую последнюю версию Xcode. Мое приложение использует libtiff для преобразования изображения (в формате PNG) в формат TIFF. Проблема заключается в том, что мне нужно представить новую версию в App Store и включить 64-битную архитектуру. Библиотека libtiff в моем проекте устарела, и мне нужно обновить ее до последней версии.Компилировать libtiff для iOS-проекта, чтобы включить 64-битную архитектуру

Я загрузил libtiff 4.0.3 с официального сайта загрузки (ftp.remotesensing.org), но я не могу его построить для необходимых архитектур, я получаю сообщение об ошибке. Я прочитал this post, но немного устарел, и я полагаю, что Apple изменила инструментальную цепочку в Xcode 6 по сравнению с Xcode 5 или Xcode 4.

Я не эксперт в gch/llvm toolchain, и я немного потерялся здесь , Мне просто нужна библиотека tiff в моем проекте Xcode и успешно скомпилировать ее. Я попытался создать библиотеку самостоятельно, но она строит только для OS X, и мне нужен iOS.

Документация о TIFF в iOS ограничена, и я бы предпочел использовать PNG, но по коммерческим причинам мне нужно использовать TIFF. Кто-нибудь успешно скомпилировал libtiff в жирную двоичную систему, чтобы включить 5 требуемых архитектур (i386, x86_64, arm64, armv7, armv7s)?

Мне нужно только преобразование tiff, но без сжатия jpg, поэтому я предполагаю, что мне не нужна библиотека jpeg.

ответ

2

У меня были подобные проблемы, но, к счастью, я нашел это Github project. Просто следуйте инструкциям и создайте библиотеки. Сначала создайте libjpg, потому что это зависимость от лифта.

Используйте терминал и перейдите в папку загруженного проекта, в моем случае - liftiff-ios-master, и запустите эти два сценария и в этом порядке.

./build-jpg.sh 
./build-tiff.sh 

После завершения в liftiff-ios-master/dependencies папке вы найдете две папки, include и lib со всеми необходимыми файлами.

В Xcode просто скопируйте следующие файлы в проекте (это только файлы, необходимые для libtiff, нет необходимости копировать библиотеки JPEG файлы, если нет необходимости в формате JPEG поддержки сжатия):

libtiff files

и убедитесь, что liftiff.a был добавлен в ваш раздел Link Binary With Libraries вкладки Build Phases в вашу цель.

В вашем .h или .m файл просто включить эту:

#import <tiffio.h> 

компилировать и запускать. Убедитесь, что установка Architectures вашего Build Settings установлен в Standard architectures (armv7, arm64)

Чтобы убедиться, что liftiff.a имеет все нужные архитектуры, в пределах своей папки и от терминала использования:

$ file libtiff.a 
libtiff.a: Mach-O universal binary with 5 architectures 
libtiff.a (for architecture armv7):  current ar archive random library 
libtiff.a (for architecture armv7s): current ar archive random library 
libtiff.a (for architecture i386):  current ar archive random library 
libtiff.a (for architecture x86_64): current ar archive random library 
libtiff.a (for architecture arm64):  current ar archive random library 
Смежные вопросы