Добавление MailCore2 через Carthage с поддержкой Swift в Xcode

Пытаюсь быть таким же ванильным, как я могу здесь:

Новый проект->OS X->Приложение->Язык (Swift) Имя (MailCoreTest) Закрыть проект Добавьте Cartfile в корень проекта с одной строкой: github «MailCore/mailcore2» Запустите обновление carthage --platform macosx из корень проекта Получите пару предупреждений, но никаких реальных проблем:

/Users/theuser/Documents/XCode/MailCoreTest/Carthage/Checkouts/mailcore2/src/async/imap/MCIMAPAsyncSession.cpp:793:66: warning: 'gmailUserDisplayName' is deprecated [-Wdeprecated-declarations]
/Users/theuser/Documents/XCode/MailCoreTest/Carthage/Checkouts/mailcore2/src/async/imap/MCIMAPAsyncSession.cpp:793:66: warning: 'gmailUserDisplayName' is deprecated [-Wdeprecated-declarations]

Снова откройте проект в Xcode. На вкладке «Общие» настроек целевых приложений в разделе «Встроенные двоичные файлы» я перетаскиваю MailCore.framework, созданный Carthage. Я также добавляю dSYM в фазу копирования файлов каталога продуктов. На этом этапе приложение успешно строится, но когда я добавляю:

#import <MailCore/MailCore.h>
#import <MailCore/MCOConstants.h>

В файл Swift-Bridging-Header.h и добавить его в настройку сборки заголовка моста Objective-C. Я получаю множество ошибок сборки:

MailCoreTest Group
/Users/theuser/Documents/XCode/MailCoreTest/Carthage/Build/Mac/MailCore.framework/Headers/MCIndexSet.h
/Users/theuser/Documents/XCode/MailCoreTest/Carthage/Build/Mac/MailCore.framework/Headers/MCIndexSet.h:15:10: Include of non-modular header inside framework module 'MailCore.MCIndexSet'
/Users/theuser/Documents/XCode/MailCoreTest/<module-includes>
/Users/theuser/Documents/XCode/MailCoreTest/<module-includes>:1:1: Umbrella header for module 'MailCore' does not include header 'MCIMAPConnectOperation.h'
/Users/theuser/Documents/XCode/MailCoreTest/<module-includes>:1:1: Umbrella header for module 'MailCore' does not include header 'MCIMAPNoopOperation.h'
/Users/theuser/Documents/XCode/MailCoreTest/<module-includes>:1:1: Umbrella header for module 'MailCore' does not include header 'MCMainThread.h'
/Users/theuser/Documents/XCode/MailCoreTest/<module-includes>:1:1: Umbrella header for module 'MailCore' does not include header 'MCMXRecordResolverOperation.h'
/Users/theuser/Documents/XCode/MailCoreTest/<module-includes>:1:1: Umbrella header for module 'MailCore' does not include header 'MCNNTPCheckAccountOperation.h'
/Users/theuser/Documents/XCode/MailCoreTest/<module-includes>:1:1: Umbrella header for module 'MailCore' does not include header 'MCONNTPDisconnectOperation.h'
/Users/theuser/Documents/XCode/MailCoreTest/<module-includes>:1:1: Umbrella header for module 'MailCore' does not include header 'MCOPOPNoopOperation.h'
/Users/theuser/Documents/XCode/MailCoreTest/<module-includes>:1:1: Umbrella header for module 'MailCore' does not include header 'MCOSMTPLoginOperation.h'
/Users/theuser/Documents/XCode/MailCoreTest/<module-includes>:1:1: Umbrella header for module 'MailCore' does not include header 'MCPOPNoopOperation.h'
/Users/theuser/Documents/XCode/MailCoreTest/<module-includes>:1:1: Umbrella header for module 'MailCore' does not include header 'MCSizeFormatter.h'
/Users/theuser/Documents/XCode/MailCoreTest/<module-includes>:1:1: Umbrella header for module 'MailCore' does not include header 'MCSMTPNoopOperation.h'
/Users/theuser/Documents/XCode/MailCoreTest/MailCoreTest/Swift-Bridging-Header.h
/Users/theuser/Documents/XCode/MailCoreTest/MailCoreTest/Swift-Bridging-Header.h:12:9: Could not build module 'MailCore'
Failed to import bridging header '/Users/theuser/Documents/XCode/MailCoreTest/MailCoreTest/Swift-Bridging-Header.h'

Странно то, что у меня это работает в другом проекте. Я даже могу запустить обновление carthage для него, и ничего не сломается. После нескольких часов попыток воспроизвести рабочий новый проект я не могу заставить его работать. Я должен что-то пропустить, но я не могу понять, что это такое или даже где искать.

Просто во время тестирования я попробовал «Настройки сборки» в разделе «Цель» и установил «Разрешить немодульные включения в модули платформы» на «ДА», но получил тот же результат — и в другом рабочем проекте, который у меня есть, для этого установлено значение «НЕТ».


person John R    schedule 03.05.2016    source источник


Ответы (1)


Необходимо, чтобы Carthage проверил последнюю фиксацию. Изменение файла корзины на:

github "MailCore/mailcore2" "master"

Магия

person John R    schedule 04.05.2016
comment
да, это действительно помогло и убрало кучу предупреждений и потенциальных утечек памяти и т. д. Во-первых, я удалил MC2, который у меня был, проверил мастер и повторно добавил его, следуя инструкциям в Readme.md - person Boris Gafurov; 13.12.2016