Неопределенные символы для архитектуры i386: _OBJC_CLASS _ $ _ SKPSMTPMessage ", ссылка из: error - PullRequest
233 голосов
/ 08 августа 2011

Я импортировал фреймворк для отправки электронной почты из приложения в фоновом режиме, т.е. SKPSMTPMessage Фреймворк. Может кто-нибудь подсказать, почему ниже показана ошибка

Undefined symbols for architecture i386:

"_OBJC_CLASS_$_SKPSMTPMessage", referenced from:
  objc-class-ref in ConfirmController.o

"_kSKPSMTPPartContentTransferEncodingKey", referenced from:
  -[ConfirmController sendEmail] in ConfirmController.o

"_kSKPSMTPPartMessageKey", referenced from:
  -[ConfirmController sendEmail] in ConfirmController.o

"_kSKPSMTPPartContentTypeKey", referenced from:
  -[ConfirmController sendEmail] in ConfirmController.o

ld: symbol(s) not found for architecture i386
collect2: ld returned 1 exit status

Источник, из которого взяты рамки: -

Блокировка полей в MFMailComposeViewController

Обновление

Ответ. Просто перетащите папку над проектом и нажмите «Копировать». Вот он и выбирает флажок проекта и целевой флажок.

Ответы [ 34 ]

0 голосов
/ 11 марта 2014

В дополнение к тому, что сделал Аллан, добавив отсутствующие классы, я последовал решению @ emdog4 и добавил библиотеку Core Data, перейдя в раздел «Фазы сборки в XCode» и в разделе «Связать двоичные файлы с библиотеками», нажав на + и выбрав «CoreData»..фреймворк'.В этом разобралась моя ошибка

0 голосов
/ 21 января 2014

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

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

Не забудьте удалить любой MACRO, который вызывает файлы, которые вы уже удалили.

Спасибо :)

0 голосов
/ 13 октября 2013

Попробуйте удалить фреймворк, очистить проект, добавить его обратно и скомпилировать. Или же Удалите класс, который был добавлен xcode в исходный код компиляции, очистите проект, добавьте его обратно, затем соберите.

0 голосов
/ 11 сентября 2013

Вы можете получить этот тип ошибки, если добавите сторонние библиотеки в ваш проект, для которых требуются собственные фреймворки, не включенные в ваш проект.

Вам нужно заглянуть в файлы .h и .m вашего новогодобавьте библиотеку и посмотрите, какие фреймворки ей требуются, затем включите эти фреймворки в свой проект (Цель> Фазы сборки> Связать двоичные файлы с библиотеками).

...