顶架扩展的非模块化标头错误

时间:2015-09-24 19:51:24

标签: ios swift ios-frameworks apple-tv tvos

我正在尝试为我们的tvOS应用程序编写Top Shelf扩展。我们有一个私有框架来处理我们所有的低级数据代码。

我们正在使用Xcode 7.1 Beta 2。

关于框架的几点说明......

  • 它仅使用扩展安全API。

  • 适用于iOS和tvOS。

  • 它主要是用Swift编写的,但有一些私有的C ++和Objective-C ++对象。一些Objective-C ++对象可以通过内部私有模块在Swift中访问(当然,它们的头文件中没有C ++)。在这些对象的头文件中完成的导入是像Foundation和CoreGraphics这样的系统库。它们是使用旧的#import <Foundation/Foundation.h>样式导入的,因为您无法在Objective-C ++对象中使用@import Foundation;

  • 在我们的.modulemap中,我们导入sqlite并在一些Swift文件中使用它。

这是模块映射文件。

framework module MyFramework {  
    umbrella header "MyFramework.h"  
  header "/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/sqlite3.h"  

  module Private {  
  umbrella header "MyFramework_Private.h"  
  export *  
  }  

    export *  
    module * { export * }  
}  

这是“MyFramework_Private.h”

#import <UIKit/UIGestureRecognizerSubclass.h>  
#import <MyFramework/MyClass.h>  
#import <MyFramework/MyOtherClass.h>  
#import <MyFramework/AndSoOn.h>  

问题在于我无法使用Top Shelf Extention中的MyFramework。对于我导入的三个文件,我在“MyFramework_Private.h”中收到编译错误(UIKit/UIGestureRecognizerSubclass.h工作正常)。

我得到的错误是

Include of non-modular header inside framework module 'MyFramework.Private'  

在编译Top Shelf扩展的目标时,会发生此错误 。 MyFramework可以为iOS应用程序,iOS Today Extension和tvOS应用程序编译(并运行)。

我是否应该在此处提交雷达,或者是否有明显的遗漏?

1 个答案:

答案 0 :(得分:0)

看起来这是一个Xcode错误。提交为rdar:// 22855945。