我有一个iOS应用更新到最新的SDK8.3,我使用的是最新版本的Xcode。我的应用程序使用libtiff将图像(PNG格式)转换为TIFF格式。我遇到的问题是我需要向App Store提交一个新版本,并且需要包含64位架构。我项目中的libtiff库很旧,我必须更新到最新版本。
我从官方下载站点(ftp.remotesensing.org)下载了libtiff 4.0.3,但我无法为所需的架构构建它,我收到错误。我读过this post但是有点过时了,我认为Apple改变了Xcode 6中的工具链,与Xcode 5或Xcode 4相比。
我不是gcc / llvm工具链的专家,我在这里有点迷失。我只需要在我的Xcode项目中使用tiff库并成功编译它。我自己试图建立这个库,但它只是为OS X而构建,我需要iOS。
关于iOS中TIFF的文档很少,我更喜欢使用PNG,但出于商业原因,我需要使用TIFF。有没有人成功地将libtiff编译成胖二进制文件以包含5个必需的体系结构(i386,x86_64,arm64,armv7,armv7s)?
我只需要tiff转换但没有jpg压缩,所以我猜我不需要jpeg库。
答案 0 :(得分:2)
我有类似的问题,但幸运的是我找到了Github project。只需按照说明操作即可构建库。首先构建libjpg因为是生命的依赖。
使用终端并转到已下载项目的文件夹,在我的情况下是liftiff-ios-master
,并按此顺序运行这两个脚本。
./build-jpg.sh
./build-tiff.sh
在liftiff-ios-master/dependencies
文件夹中完成后,您会找到两个文件夹,include
和lib
以及所有必需的文件。
在Xcode中只需将以下文件复制到项目中(这些只是libtiff
的必要文件,除非需要jpeg压缩支持,否则无需复制jpeg库文件):
并验证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