2015-07-10 2 views
2

До тех пор, пока я не обновился до XCode 6.4, проект работал нормально, но после обновления я сварил сбой сборки в zipzap.XCode 6.4 breaks Project с зависимостью zipzap

Использование CocoaPod 0.37.2

стручок 'ZipZap', '~> 8.0'

Linked библиотеки и фреймворки = 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 & & гт * .lock & & стручок установить

ответ

1

Я испытал эту проблему, а также - podspec ZipZap обновлено потери ряда флагов компилятора в процессе:

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

Путь я решил это в моем проекте был восстановить флаги компилятора (которые присутствовали перед обновлением) следующим образом :

  • Перейдите к проекту стручков в вашем рабочем пространстве
  • Выберите Бобы-ZipZap цель
  • Выберите вкладку Построить Phases
  • Разверните раздел Источники Compile
  • Выберите все файлы Objective-C++ (с расширением .mm) - удерживая клавишу CMD, чтобы выбрать несколько файлов
  • Добавьте флаги компилятора: -fno-ObjC-исключения -fno-исключений -std = C++ 11 -stdlib = LibC++ -DOS_OBJECT_USE_OBJC = 0
  • Выбрать все файлы Objective-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.

В качестве альтернативы вы можете откат к ZipZap 8.0.3 в своем подфайле.

Смежные вопросы