0

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

我们正在使用 Xcode 7.1 Beta 2。

关于框架的几点说明……</p>

  • 它仅使用扩展安全 API。

  • 它适用于 iOS 和 tvOS。

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

  • 在我们的 .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>  

问题是我无法使用顶级货架扩展中的 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 应用程序。

我应该对此提出雷达还是有什么明显的我遗漏的东西?

4

1 回答 1

0

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

于 2015-09-25T14:35:09.600 回答