Xcode 4.6 Неопределенные символы для архитектуры armv7 связаны со статической библиотекой

В настоящее время я столкнулся с проблемой после того, как обновил свой xcode до версии 4.6.

В начале у меня было много ошибок при линковке. С помощью других постов я могу их решить. Однако новые проблемы всегда возникают всякий раз, когда я решаю предыдущую.

Прямо сейчас я застреваю на «Неопределенные символы для архитектуры armv7», когда пытаюсь собрать игру на устройствах с режимом выпуска (режимы выпуска и отладки работают для симулятора, а режим отладки работает для устройств). Я уже исследовал эту проблему в Интернете, но ни одно из решений не помогло решить мою ситуацию. Вот почему я хочу начать новый пост.

Объясню ситуацию подробнее:

  1. Все ошибки происходят при вызове методов в библиотеках.
  2. мои библиотеки прекрасно работали с архитектурой armv7 до (xcode 4.5)
  3. Текущее значение для архитектуры в файле проекта — «Стандартная (armv7, armv7s)».
  4. Текущее значение для текущей архитектуры: «armv7 armv7s armv6».

Это пример ошибки:

Хотя я показал только ошибки, связанные с libReceiptVerification.multi.a, на самом деле ошибки случаются и в других библиотеках.

//*************< /em> Из этой строки **************

Неопределенные символы для архитектуры armv7:

«_OBJC_CLASS_$_NSMutableOrderedSet», на который ссылается: objc-class-ref в libarclite_iphoneos.a(arclite.o)

"_CFStringCreateWithBytes", на который ссылается: -[JKSerializer serializeObject:options:encodeOption:block:delegate:selector:error:] в libReceiptVerification.multi.a(JSONKit.o) _jk_cachedObjects в libReceiptVerification.multi.a(JSONKit.o)

"_CFStringCreateWithBytesNoCopy", на который ссылается: -[JKSerializer serializeObject:options:encodeOption:block:delegate:selector:error:] в libReceiptVerification.multi.a(JSONKit.o)

"_CFDataSetLength", ссылка из: __NSStringObjectFromJSONString в libReceiptVerification.multi.a(JSONKit.o)

// *************< /em>** Заканчивается здесь ***********

Итак, кто-нибудь что-нибудь знает об этой проблеме? Заранее благодарны за Вашу помощь.


person Christina_Infinidy    schedule 20.02.2013    source источник


Ответы (2)


У меня такая же проблема Решается установкой

Implicitly link Objective-C Runtime Support to NO

Вы можете найти его в Project->Build Settings->Apple LLVM Compiler 4.2-Language.

Или найдите Implicitly link Objective-C Runtime Support в проекте->Настройки сборки.

person Harshal Chaudhari    schedule 07.03.2014

Проверьте цели библиотеки для libarclite, JSONKit и всего остального и убедитесь, что они также имеют идентичные значения архитектуры, установленные для их сборок Release.

Кроме того, для целей выпуска установлен флажок «Создать только активную архитектуру».

person Michael Dautermann    schedule 20.02.2013
comment
Спасибо за ваш ответ :) Build Active Architecture Only уже НЕТ для режима выпуска. И все цели установлены с одинаковыми значениями. Проблема все еще возникает. - person Christina_Infinidy; 20.02.2013
comment
Вы также сделали проект чистым и перезапустили Xcode для хорошей меры? - person Michael Dautermann; 20.02.2013
comment
Ах да, я чистил сборку перед публикацией. Я не только перезапустил xcode, но и перезапустил Mac. :( Пока не повезло... - person Christina_Infinidy; 20.02.2013