Ошибка компоновщика при включении работы с фреймами? - PullRequest
2 голосов
/ 21 октября 2011

В моем приложении я использую частный каркас.

Файл каркаса, который есть в моем проекте.

Когда я запускаю приложение, у меня появляется ошибка компоновщика, показанная ниже.

Undefined symbols for architecture i386:
  "_OBJC_CLASS_$_MessageWebLayer", referenced from:
      objc-class-ref in MessageUIAppDelegate.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

На самом деле этот фреймворк работал хорошо в ios 3, но как только я меняю базовый sdk 5.0, выдает ошибку.MessageWebLayer - это имя файла заголовка.

*** EDIT1 ***

Когда я включаю частный фреймворк в пример проекта, он отлично работает как с iOS 3.2, так и с iOS 5.0.Но все же я получаю сообщение об ошибке в моем существующем проекте.


Но я нашел одну ссылку, если у кого-то есть подсказка. Хороший ответ, но не смог его получить

**** РЕДАКТИРОВАТЬ2 ** В первом ответе списка укажите, что Найти правильную сборку для вашего проекта?но как?Если я где-то смотрю его, там написано, что /Users/company/Library/Developer/Xcode/DerivedData/MyappUI-azodwyjwfonowicennduyclhdest/Build/Products/Debug-iphonesimulator/MyappUI.app/MyappUI нормальный i386 * 1039смысл наконец они написали i386?

это как-то связано с моей сборкой?

Ответы [ 2 ]

2 голосов
/ 21 октября 2011

Бит «символ (и) не найден для архитектуры i386» указывает на то, что у библиотеки нет двоичных файлов, совместимых с процессорами Intel на вашем Mac (как вы, вероятно, пытаетесь запустить на симуляторе). Скорее всего, они созданы для процессорных архитектур ARMv6 / ARMv7, которые используются для устройств iOS. Вам нужно найти правильную сборку для архитектуры i386 и иметь условные ссылки в зависимости от того, на какой платформе вы работаете. Или просто запустите его на устройстве.

1 голос
/ 21 октября 2011

Скорее всего, эта структура больше не включена или ее путь или имя были изменены.Поскольку он является частным, никто не должен его использовать, так как он не будет одобрен в AppStore.Частные фреймворки также не имеют общедоступной документации, и их следует избегать любой ценой, потому что Apple не будет оказывать им какую-либо поддержку и может менять ее по своему усмотрению, что могло бы быть в данном случае.

Чего вы пытаетесь достичь?Разве нет пути использования частных API?Разместите некоторый код, и, возможно, мы сможем вам помочь.

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