Swift 2 / iOS 9 – 找不到libz.dylib

我在我的新的Swift 2.0项目中使用了一些外部代码,在早期版本中需要“libz.dylib”。 更新到新的XCode /新的SDK。

XCode现在无法导入libz.dylib并引发一些错误

未定义的符号体系结构i386:“_deflate”,引用自:GAAGompressionUtil gai_dataByCompressingBytes:length:compressionLevel: (GAICompressionUtil.o)“ deflateInit2 ”,引用来自:+ GAICompressionUtil(“ GAICompressionUtil ”)中的引用来自于:“GAICompressionUtil gai_dataByCompressingBytes:length:compressionLevel:mode:] in libGoogleAnalyticsServices.a(GAICompressionUtil.o)”_inflate“ libGoogleAnalyticsServices.a(GAICompressionUtil.o)“inflateInit2”中的引用自:+ GAICompressionUtil gai_dataByInflatingBytes:length:isRawData: [GAICompressionUtil gai_dataByInflatingBytes:length:isRawData:] in libGoogleAnalyticsServices.a(GAICompressionUtil.o)ld:symbol( s)找不到i386体系结构clang:错误:linker命令失败,退出代码1(使用-v查看调用)

当在“构build阶段”设置中查看可用包时,我可以find“libz.tbd”,这似乎是libz.dylib的替代品。 当导入这个库链接错误保持不变,但我得到这个额外的警告:

警告:跳过文件'/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.0.sdk/usr/lib/libz.tbd'(意外的文件types'文本'in框架和图书馆build设阶段)

任何想法该怎么办?

我有同样的问题。 我find了一些方法。

  1. 进入build立阶段>链接二进制文件> +>添加其他
  2. 一旦进入文件select窗口,执行“CMD”+ Shift + G(转到文件夹)并键入/ usr / lib /
  3. 从/ usr / lib你可以添加:libz.dylib和更多…
  4. 编译并玩得开心

libz.dylib现在可以在苹果开发者论坛的 libz.tbd 引用下find:

对于那些好奇的人来说,.tbd文件是新的“基于文本的存根库”,它提供了一个在SDK中使用的存根库更加紧凑的版本,并有助于显着减less下载大小。

希望更多的文档即将推出。

编辑

为了澄清它,我会引用Guitz回答更新的内容

  1. 进入build立阶段>链接二进制文件> +>添加其他
  2. 一旦进入文件select窗口,执行“CMD”+ Shift + G(转到文件夹)并键入/ usr / lib /
  3. 从/用户/ lib你可以添加: libz.tbd和更多…
  4. 编译并玩得开心

从链接的二进制阶段中删除所有dynamic库(dylib)。 它会自己find这些库。

我有这个问题在objective-c project.ios9.1,xcode7.1

1.转到目标>build立阶段>与馆藏链接二进制> +

2.selectlibz.tbd并添加它

它为我工作

libz.dylib是Zlib的dynamic库,你可以从这里安装Zlib http://zlib.net/

您可以从位置添加libz.1.dylib:/ usr / lib /

  1. 进入build立阶段>链接二进制文件> +>添加其他
  2. 一旦进入文件select窗口,请执行CMD + Shift + G(转到文件夹)并键入/ usr / lib /
  3. 从/ user / lib你可以添加:libz.1.dylib

它为我工作。

您也可以通过添加参数-lz在“ 生成设置 中从“其他链接器标志”添加-lz

我必须这么做,因为使用从/ usr / lib引用库的方法,当我将应用程序部署到我们的testing者时,.dylib库无法parsing并导致应用程序在启动时崩溃。

同时你可以使用以前的SDK。 这是我对libsqlite3的回答:

https://stackoverflow.com/a/30981161/627794

编辑:(链接内容添加)

打开terminal,键入(更改为所需的库,例如libz)

 locate libsqlite3.dylib 

你会发现这样的几个文件:

 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/lib/libsqlite3.dylib /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/libsqlite3.dylib 

转到您的项目设置 – >构build阶段 – >与二进制文件链接。 点击+添加两个文件,然后Add Other 。 点击Cmd-Shift-G ,复制粘贴文件path。 点击Open

如果使用macports安装sqlite3,请在“生成设置”中的“库searchpath”中删除/opt/local/lib

Interesting Posts