2015-07-10 90 views
2

直到我升級到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 

我所做的事情至今

  1. 對於項目和莢項目兩個:構建設置> C++標準庫=的libstdC++(原本是的libC++)
  2. 幾次莢deintegrate &的& RM * .lock & &吊艙安裝

回答

1

我已經遇到此問題,以及 - 在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。