现在我想将我的ObjC框架迁移到Swift,我收到以下错误:
include of non-modular header inside framework module 'SOGraphDB'
Run Code Online (Sandbox Code Playgroud)
引用是一个头文件,它只定义一个协议,我在一些类中使用这个头文件来使用这个协议.
似乎与模块功能有关,但目前还不太清楚如何修复,你知道一个解决方案吗?
更新:
这是一个Swift编译器错误.
更新2:
快速修复(但不解决根本原因)是将以下设置设置为yes:CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES
以下线程(以及许多类似的)都没有帮助我:
在尝试通过cocoapods在我的iOS项目中安装Facebook SDK时,我遇到了这个错误:
里面的FBSDKCoreKit.h标题:
Include of non-modular header inside framework module 'FBSDKCoreKit.FBSDKCoreKit'
Run Code Online (Sandbox Code Playgroud)
正如我所说,我尝试了上述答案中提出的解决方案,但没有取得任何成功.
重要的是要提到这种用法在Xcode 7上正常工作.
根据这个答案,我必须将"目标成员资格"设置为"公共".但是,我似乎无法在我的检查员中找到这个.
我已经在构建设置中将"允许非模块包含在框架模块中"设置为"是".我还在Build阶段添加了一个"Headers"(将框架设置为"public").仍然有这个编译错误.
注意:我使用的是4.0.1,根据更改日志(https://developers.facebook.com/docs/ios/change-log-4.x),不再需要桥接器......
我正在创建一个使用RestKit和一堆其他pod的pod.
当我使用命令编译我的pod时:
pod repo push myCocoapodsRepo myPodspec.podspec --allow-warnings --verbose
Run Code Online (Sandbox Code Playgroud)
我得到的第一个错误是
In file included from /var/folders/mx/cg3cmvh14wl2f3mnq0sc_cd00000gn/T/CocoaPods/Lint/Pods/RestKit/Code/ObjectMapping.h:21:
/var/folders/mx/cg3cmvh14wl2f3mnq0sc_cd00000gn/T/CocoaPods/Lint/Pods/RestKit/Code/ObjectMapping/RKObjectMapping.h:23:9: error: include of non-modular header inside framework module 'RestKit.RKObjectMapping' [-Werror,-Wnon-modular-include-in-framework-module]
#import "RKValueTransformers.h"
^
Run Code Online (Sandbox Code Playgroud)
如果我依赖其他StackOverflow线程来解决这个错误,比如
他们都会说,设置CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES到YES和/或将有问题的头文件中Public部分替代的Project部分,它会解决这个问题.但对我来说,事实并非如此.这些线程也有Swift语言的共同点,但我不使用它.我仍然只使用Objective-C,但我不知道它是否会对我的问题产生影响.
我不明白错误意味着什么,因此我解决问题有很多困难.有人有其他解决方案吗?
objective-c ×3
swift ×2
cocoapods ×1
frameworks ×1
header ×1
ios ×1
restkit ×1
xcode ×1
xcode8 ×1