2015-12-26 38 views
3

我很喜歡項目中的模塊。在我使用@import的地方,當模塊被禁用時,我得到「使用'@import'」。但他們爲什麼被禁用?模塊已禁用 - 但爲什麼?

  • 在我的構建設置中,對所有目標都設置爲「啓用模塊(C和Objective-C)」爲「是」。
  • 設置「自動鏈接框架」爲「是」或「否」不會影響此(編譯時)錯誤
  • 雖然項目過去有Objective-C++和一些C++代碼,但它現在不復存在。有沒有任何項目設置可以讓我錯過因此而錯過的設置?
  • 我沒有更多的.pch文件在項目中,並且構建設置沒有提及它們
  • 我使用CocoaPods(0.39.0)和「use_frameworks!」並且我希望@import的模塊都在那裏。但是如果我用'@import Foundation'替換'#import'或'#import',同樣的錯誤會發生。和'@import UIKit',所以我預計這是不相關的
  • 該項目是從iOS7以前的項目,所以我可能錯過了默認情況下的設置
  • 該項目需要iOS 8並針對iOS構建9.2。

我意識到加載第三方模塊可能會減慢應用程序加載時間。我正在使用use_frameworks轉換爲CocoaPods!這樣我可以衡量多少。如果它不是太糟糕,我想使用,因爲我打算將多個快速部分的代碼庫移動到他們自己的框架中(作爲開源的coocapods)

我相信這不是重複的因爲我已經經歷了我發現的其他問題(非常感謝你對this one),隨後鏈接,重新觀看WWDC'13 session 404,並閱讀蘋果論壇上的相關帖子,所以我相信我已經完成了我的家庭作業。 :-)

+0

您是否嘗試過使用相關文件創建新項目並檢查它是否在那裏工作?如果它正在工作,我建議你比較構建設置中的每個字段。 –

回答

1

在我的項目我有一個橋接報從ObjC斯威夫特彌合,並且有一個生成的頭文件可以從Swift橋接到ObjC。事實證明,如果橋接頭參考了實現文件引用了從Swift到ObjC的橋文件的頭文件,則模塊支持被禁用。所以,要小心你放入橋接文件的內容,並且在導入生成的-Swift.h文件時要小心。

0

首先進入終端並鍵入xcode-select -p。應該說,/Applications/Xcode.app/Contents/Developer。如果沒有,請輸入sudo xcode-select -s /Applications/Xcode.app,然後按回車鍵並輸入您的密碼。

如果這樣不能解決問題,請嘗試刪除項目的派生數據目錄。轉到「項目」視圖並刪除項目的派生數據。然後清理你的構建文件夾(command-shift-K)。運行分析(命令轉移-B)並解決藍色和黃色的問題。

現在,如果@import仍然無效,請創建一個全新的XCode項目。驗證@import是否適用於它。如果沒有,那麼你的XCode安裝可能會搞砸,或者你的硬盤正在死亡。刪除XCode並重新下載,看看是否有效。重新啓動到恢復分區,看看你是否有一些磁盤問題(不太可能,但嘿)。

如果@import在新項目中運行,請嘗試從當前項目中獲取所有項目並將其複製到新項目中。確保你有最新版本的cocoapods,然後將你的豆莢新安裝到新項目中。

如果所有的不修復它,你可能留下@end陳述出來的地方或有失蹤} ...

+0

這是一個涉及許多計算機的項目問題,所有其中''''xcode-select -p'''都是您在上面寫的。 Build&Analyze沒有提供任何東西。創建一個新的項目支持模塊就好了。所以到目前爲止,我所知道的唯一選擇是手動重新創建項目,但這並沒有真正教會我爲什麼發生這種情況。我已經手動爲舊項目設置了新項目的項目設置,我可以發現沒有區別。 – niklassaers

+0

非常奇怪。我碰到過幾個這樣的地方,這裏有一些奇怪的XCode錯誤。可能是項目目錄中的權限問題...檢查控制檯日誌?此外,總是存在您選擇了主項目構建設置還是選擇了目標的構建設置的問題。有時我選擇了主項目而不是構建目標,事實證明目標設置爲覆蓋項目全局設置(即目標的構建設置爲粗體文本)。 – CommaToast

相關問題