将iOS项目迁移到XCode 7.3.1(模拟器和iPad)后链接错误


  • 我在我较旧的优胜美地机上有一个iOS-App Swift项目,它可以正常工作。
  • 我有一个新的Mac运行的" El Capitan",带有XCode 7.3.1
  • 我只需复制即可将项目迁移到新机器:项目文件夹,所有外部库和框架,导入的配置配置文件和键
  • 在将所有库引用到新文件夹结构之后,我的项目不再有语法错误。

现在我构建了该项目,并收到以下错误:

Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_SSZipArchive", referenced from:
      type metadata accessor for __ObjC.SSZipArchive in ViewController.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我不知道如何分析这个问题,这就是为什么我在这里问。有帮助吗?

我添加了一个小型项目,用于以Xcode 7.3.1重现错误:https://drive.google.com/open?id=0bztzuiiauzqketnrqtzkdgxrunm它是一个邮政编码,可以将其解压缩到桌面上。(ssarchivetest是rootfolder)

update

尝试在iPad上运行时,我会遇到相同的错误,但引用架构ARM64:

Undefined symbols for architecture arm64:
  "_OBJC_CLASS_$_SSZipArchive", referenced from:
      type metadata accessor for __ObjC.SSZipArchive in ViewController.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

更新2我到目前为止所做的工作

我到目前为止所做的事情: - 从Xcode-> Window-> Project-删除的派生数据 -> DELETE ... - 通过下载最新来源并替换我在运行项目中已经有的所有内容,从Git中更新了SSZIPARCARTIVE。

更新3个小项目添加

我添加了一个小型项目,用于以Xcode 7.3.1重现错误:https://drive.google.com/open?id=0bztzuiiauzqketnrqtzkdgxrunm它是一个邮政编码,可以将其解压缩到桌面上。(ssarchivetest是rootfolder)

我解决了问题。简化添加zlib.tbd在链接库中解决了问题。

我也有同样的问题。解决方案是将所有 *.c文件(从minizip和AES文件夹)添加到目标 ->构建阶段 ->编译源。

您正在使用项目中的ssziparchive。如果您使用Cocoapods安装它,请更新podfile。

打开终端窗口,进入您的项目文件夹并运行

pod update