2012-02-06 2 views
0

Я пытаюсь использовать MailCore в моем проекте, но я получаю эти ошибки:MailCore Ошибки IOS

Undefined symbols for architecture armv7: 
    "_MailCoreEnableLogging", referenced from: 
     -[ImapSync run] in ImapSync.o 
    "_OBJC_CLASS_$_CTCoreMessage", referenced from: 
     l_OBJC_$_CATEGORY_CTCoreMessage_$_CTCoreMessageBuisnessMail in CTCoreMessage+BuisnessMail.o 
    "_OBJC_IVAR_$_CTCoreMessage.myFields", referenced from: 
     -[CTCoreMessage(CTCoreMessageBuisnessMail) libetpanDateTime] in CTCoreMessage+BuisnessMail.o 
     -[CTCoreMessage(CTCoreMessageBuisnessMail) senderDate] in CTCoreMessage+BuisnessMail.o 
    "_OBJC_CLASS_$_CTCoreAccount", referenced from: 
     objc-class-ref in AttachmentDownloader.o 
     objc-class-ref in ImapSync.o 
    "_MailCoreDisableLogging", referenced from: 
     -[ImapSync run] in ImapSync.o 
    "_IfTrue_RaiseException", referenced from: 
     -[ImapFolderWorker fetchFrom:to:seqDelta:syncingNew:progressOffset:progressTotal:alreadySynced:] in ImapFolderWorker.o 
ld: symbol(s) not found for architecture armv7 

но все эти methodes есть, я могу видеть их в MailCoreProject!

Я надеюсь, что кто-то может мне помочь!

ответ

0

Во-первых, я бы проверить, добавили ли вы libMailCore-ios.a в свой список «Связанные структуры и библиотеки».

Если это так, то проблема может заключаться в том, что проект MailCore был скомпилирован для одного устройства, а ваш основной проект был скомпилирован для другого устройства. Например,

  • проект MailCore был составлен на тренажере ... символы MailCore были созданы для архитектуры x86
  • ваш главный проект был составлен для реального устройства IOS ... так линкер искал MailCore символы для ARMv7 архитектуры
  • Таким образом, компоновщик жаловался, символы для ARMv7 архитектуры не найден

Чтобы решить эту проблему, восстановить подпроект MailCore (наращивание чистым и строить) с тем же устройством (или же тренажером) как ваш основной проект.

0

Это может быть много вещей. Как вы добавили MailCore в свой проект? Как статическая библиотека?

Вам не хватает скомпилированных файлов для архитектуры armv7. Убедитесь, что он добавлен в «настройки сборки» в проекте MailCore, а затем попытайтесь его создать. Возможно, вы создали MailCore для симулятора, и теперь вы пытаетесь запустить его на устройстве. Они должны быть разделены.

Кроме того, вы должны быть уверены, что все библиотеки, которые MailCore использует, например libetpan, скомпилированы должным образом.

PS: добавление MailCore к вашему проекту - не простой процесс, но он того стоит. :)

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