"禁用模块时使用'@import'"错误 - 启用模块和链接框架= YES

soc*_*ker 8 xcode module ios cocoapods

我有一个使用CocoaPods并使用'SCLAlertView-Objective-C'窗格的项目.该pod使用@import UIKit;模块样式导入.我在目标和项目设置中将"启用模块(C和Objective-C)"和"自动链接框架"设置为YES.当模块被禁用时,我仍然得到"使用'@import'错误.

有什么东西可以阻止Xcode能够启用模块,例如使用.pch文件,任何链接器标志,或者我没有提到的任何其他内容?我还尝试清理项目和项目构建文件夹.那没有任何效果.

另外值得注意的是,我的项目有多个目标,并且还具有iOS 7.0的部署目标.My Base SDK设置为iOS 8.3.

模块的目标构建设置的屏幕截图

小智 6

我猜您的项目包含XXX.mm文件,但是,xcode只启用C和objective-c模块.

请查看此答案供您参考: 在目标C中结合__cplusplus使用@import

我的解决方案是将@import xxx修改为#import.

祝好运.


Bag*_*ers 6

我刚刚在一个我正在研究的ObjC++项目中解决了这个需要使用Firebase的问题.

只需制作.m包含以下内容的ObjC()文件即可.

#import <Foundation/Foundation.h>
@import Firebase; // << swap this for your specific import
Run Code Online (Sandbox Code Playgroud)

就是这样,然后只需#include在您的.mm文件中使用您需要的特定标头.对我来说意味着:

#include <"Firebase/Firebase.h">
#include <"FirebaseAuth/FirebaseAuth.h">
Run Code Online (Sandbox Code Playgroud)

只是为了强调这一点,没有任何摆弄链接选项对此有任何影响"Enable Modules (C & Objective-C)"已经存在YES.升级到XCode7似乎没有帮助.

希望这有助于某人:)