XCode 6.4以zipzap依赖性打破了Project

时间:2015-07-10 19:17:26

标签: ios7 xcode6 cocoapods zipzap

直到我升级到XCode 6.4,该项目工作正常,但升级后我已经将构建失败归结为zipzap。

  

使用CocoaPod 0.37.2

     

pod'zipzap','〜> 8.0'

     

链接的框架和库= libz.1.2.5.dylib

     

定位iOS 7.0 +

构建失败

Undefined symbols for architecture arm64:
  "___cxa_begin_catch", referenced from:
      ___clang_call_terminate in libPods-Ally-zipzap.a(ZZArchive.o)
  "std::terminate()", referenced from:
      ___clang_call_terminate in libPods-Ally-zipzap.a(ZZArchive.o)
  "___gxx_personality_v0", referenced from:
      +[ZZArchive archiveWithURL:error:] in libPods-Ally-zipzap.a(ZZArchive.o)
      +[ZZArchive archiveWithData:error:] in libPods-Ally-zipzap.a(ZZArchive.o)
      -[ZZArchive initWithURL:options:error:] in libPods-Ally-zipzap.a(ZZArchive.o)
      -[ZZArchive initWithData:options:error:] in libPods-Ally-zipzap.a(ZZArchive.o)
      -[ZZArchive initWithChannel:options:error:] in libPods-Ally-zipzap.a(ZZArchive.o)
      -[ZZArchive loadCanMiss:error:] in libPods-Ally-zipzap.a(ZZArchive.o)
      -[ZZArchive updateEntries:error:] in libPods-Ally-zipzap.a(ZZArchive.o)
      ...
ld: symbol(s) not found for architecture arm64

到目前为止我做过的事情

  1. 对于Project和Pods项目:Build Settings> C ++标准库= libstdc ++(最初是libc ++)
  2. 几次pod deintegrate&& rm * .lock&& pod install

1 个答案:

答案 0 :(得分:1)

我也遇到过这个问题 - ZipZap podspec已经更新,在此过程中丢失了许多编译器标志:

https://github.com/pixelglow/ZipZap/commit/0e4e6aa885196640ca86462c6748e68a50c66ee9

我在项目中解决这个问题的方法是恢复编译器标志(在更新之前存在),如下所示:

  • 导航到工作区中的Pods项目
  • 选择Pods-zipzap目标
  • 选择Build Phases选项卡
  • 展开“编译源”部分
  • 选择所有Objective-C ++文件(扩展名为.mm) - 按住CMD键选择多个文件
  • 添加编译器标志:-fno-objc-exceptions -fno-exceptions -std = c ++ 11 -stdlib = libc ++ -DOS_OBJECT_USE_OBJC = 0
  • 选择除Pods-zipzap-dummy.m
  • 之外的所有Objective-C文件(.m)
  • 添加编译器标志:-fno-objc-exceptions -std = c99 -DOS_OBJECT_USE_OBJC = 0
  • 选择一个C ++文件(.cpp)
  • 添加编译器标志:-fno-exceptions -std = c ++ 11 -stdlib = libc ++ -DOS_OBJECT_USE_OBJC = 0

如果您有测试目标,则可能还需要在其中添加相同的标记。一切顺利,你现在应该能够再次建立。

[更新]:将Cocoapod升级到版本0.38.0也将解决错误,但目前ZipZap 8.0.4可能会导致编译错误 - 请参阅https://github.com/pixelglow/ZipZap/issues/105

或者,您可以在Podfile中回滚到ZipZap 8.0.3。