XCode 6.4打破项目与zipzap依赖
问题描述:
直到我升级到XCode 6.4项目工作正常,但升级后,我已经建立失败zipzap煮沸。XCode 6.4打破项目与zipzap依赖
使用CocoaPod 0.37.2
荚 '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
我所做的事情至今
- 对于项目和荚项目两个:构建设置> C++标准库=的libstdC++(原本是的libC++)
- 几次荚deintegrate &的& RM * .lock & &吊舱安装
答
我已经遇到此问题,以及 - 在ZipZap podspec已经更新失去在这个过程中的一些编译器标志:
https://github.com/pixelglow/ZipZap/commit/0e4e6aa885196640ca86462c6748e68a50c66ee9
我解决了这个在我的项目是恢复编译器标志(即是更新之前存在)如下方式:
- 浏览到您的工作空间荚项目
- 选择豆荚,zipzap目标
- 选择构建阶段选项卡
- 展开编译源代码部分
- 选择所有的Objective-C++文件(扩展名为.mm) - 按住CMD键选择多个文件
- 添加编译器标志:-fno-objc-例外-fno-例外-std = C++ 11 -stdlib = libc的++ -DOS_OBJECT_USE_OBJC = 0
- 选择所有目标C文件(.M)除了豆荚-zipzap-dummy.m
- 添加编译器标记:-fno-objc的例外-std = c99 -DOS_OBJECT_USE_OBJC = 0
- 选择一个C++文件(.cpp)
- 添加编译器标志:-fno-exceptions -std = C++ 11 - stdlib = libC++ -DOS_OBJECT_USE_OBJC = 0
如果你有一个测试目标,你可能还需要在那里添加相同的标志。一切都很好,你现在应该能够再次建立。
[更新]:将Cocoapods升级到版本0.38.0也将解决错误,但可能导致当前使用ZipZap 8.0.4编译错误 - 请参阅https://github.com/pixelglow/ZipZap/issues/105。
或者,您可以回滚到Podfile中的ZipZap 8.0.3。