Ошибка iPhone JSON после обновления до Xcode 4 и iOS 4.3 - PullRequest
1 голос
/ 12 марта 2011

Я только что обновился до Xcode 4 и iOS 4.3, но теперь, когда я пытаюсь собрать / запустить свой проект, он возвращает следующую ошибку JSON SDK:

ld: warning: ignoring file /var/folders/OV/OVQ5LuaPFY4lW0L0a9jdRk+++TI/-Caches-/com.apple.Xcode.501/CompositeSDKs/iphoneos-iPhoneOS4.3-dqtvoenrseczxwakgamuhnlmhcbu/usr/local/lib/libjson.a, file was built for archive which is not the architecture being linked (armv7)
Undefined symbols for architecture armv7:
  "_OBJC_CLASS_$_SBJSON", referenced from:
      objc-class-ref in Neighbourhoods.o
      objc-class-ref in StreetLevel.o
      ...
ld: symbol(s) not found for architecture armv7
collect2: ld returned 1 exit status

После обновления до Xcode 4 теперь кажетсяпытаться собрать для релиза, тогда как в старых версиях я считаю, что он собирался для отладки, но я не могу понять, где я могу это изменить.

У меня установлен JSON SDK под ~/ Library / SDKs /

SDK был добавлен в раздел Дополнительные SDK для выпуска и отладки.Я также позаботился о том, чтобы следующие «другие флаги компоновщика» также были добавлены в релиз и отладку: «-all_load -ObjC -ljson».

После проверки / добавления всего этого он все равно не будетbuild.

Кто-нибудь может пролить свет на эту проблему?

Ответы [ 3 ]

1 голос
/ 13 марта 2011

У меня была такая же ошибка при сборке сторонней библиотеки, когда под 4.2.6 она раньше не жаловалась. Откройте проект библиотеки, перейдите в меню «Проект -> Изменить настройки проекта -> вкладка« Сборка »и посмотрите« Архитектура ».

В подпунктах "Архитектура" и "Действительные архитектуры" проверьте, что они содержат ссылку на "armv7". Если нет, вам придется выбрать / добавить его.

Сделайте то же самое для вашей активной цели: меню «Проект -> Изменить активную цель -> Построить».

После внесения изменений выполните сборку заново, и у вас не должно быть ошибок компоновщика.

1 голос
/ 13 марта 2011

Я не уверен, почему в итоге он перестал работать после обновления, но теперь я удалил SDK и просто добавил исходный код в проект, не идеально, но он работает.

0 голосов
/ 14 марта 2011

У меня был рабочий проект, который не смог связать после перехода на SDK 4.3 после обновления Xcode 4. Я удалил ARM7 из целевой архитектуры, оставив только ARM6, и это исправило его. Выстрел в темноте, но, возможно, другие могут также использовать этот обходной путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...