编译libtiff for iOS项目以包含64位体系结构

我有一个iOS应用程序更新到最新的SDK8.3,我正在使用最新版本的Xcode。 我的应用程序使用libtiff将图像(PNG格式)转换为TIFF格式。 我遇到的问题是我需要向App Store提交一个新的修订版本,并需要合并64位体系结构。 我的项目中的libtiff库是旧的,我必须更新到最新版本。

我从官方下载网站(ftp.remotesensing.org)下载了libtiff 4.0.3,但无法构build所需的体系结构,但出现错误。 我已经阅读这篇文章,但是有点过时了,我认为苹果改变了Xcode 6的工具链相比,Xcode 5或Xcode 4。

我不是gcc / llvm工具链的专家,我在这里有点失落。 我只需要在我的Xcode项目中的TIFF库,并成功地编译它。 我试图build立自己的库,但它只为OS X生成,我需要iOS。

关于iOS中的TIFF的文档是稀缺的,我宁愿使用PNG,但出于商业原因,我需要使用TIFF。 有没有人成功地将libtiff编译为fat二进制文件来包含5个所需的体系结构(i386,x86_64,arm64,armv7,armv7s)?

我只需要tiff转换,但没有jpg压缩,所以我猜我不需要jpeg库。

我有类似的问题,但幸运的是我find了这个Github项目 。 只要按照说明和build立图书馆。 首先build立libjpg是因为是一个依赖的liftiff。

使用terminal,并进入下载项目的文件夹,在我的情况下是liftiff-ios-master ,并按此顺序运行这两个脚本。

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

一旦在liftiff-ios-master/dependencies文件夹中完成,您将会find两个文件夹, includelib以及所有必需的文件。

在Xcode中,只需将以下文件复制到您的项目中(这些只是libtiff的必要文件,除非需要jpeg压缩支持,否则不需要复制jpeg库文件):

libtiff文件

并validationliftiff.a已添加到您的目标中“ Build Phases选项卡的“ Link Binary With Libraries部分。

在你的.h或者.m文件中只包含这个:

 #import <tiffio.h> 

编译并运行。 确保Build Settings的设置Architectures设置为Standard architectures (armv7, arm64)

要validationliftiff.a是否具有所有需要的体系结构,请在其文件夹和terminal中使用:

 $ 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