2

ここでできる限りバニラになろうとしています:

New Project->OS X->Application->Language (Swift) Name (MailCoreTest) プロジェクトを閉じる プロジェクトのルートに次の 1 行を含むカートファイルを追加します: github "MailCore/mailcore2"プロジェクトのルート いくつかの警告が表示されますが、実際の問題はありません:

/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 で再度開く アプリケーション ターゲットの [全般] 設定タブの [埋め込みバイナリ] セクションで、Carthage がビルドした MailCore.framework をドラッグ アンド ドロップします。また、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 updateを実行することさえできますが、何も壊れません。機能する新しいプロジェクトを何時間も再現しようとした後、それを機能させることができないようです。何かが欠けているに違いないのですが、それが何であるか、どこを見ればよいかさえわかりません。

テストでは、「ターゲット」の下でビルド設定を試し、「フレームワークモジュールでの非モジュラーインクルードを許可する」を「はい」に設定しましたが、同じ結果が得られました。他の作業プロジェクトでは、これは「いいえ」に設定されています。

4

1 に答える 1

3

Carthage が最新のコミットをチェックアウトする必要があります。カートファイルを次のように変更します。

github "MailCore/mailcore2" "master"

魔法をかけた

于 2016-05-04T16:40:17.613 に答える