Ошибка немодульного заголовка для расширения верхней полки

Я пытаюсь написать расширение Top Shelf для нашего приложения tvOS. У нас есть частная платформа, которая обрабатывает весь наш низкоуровневый код данных.

Мы используем Xcode 7.1 Beta 2.

Пара замечаний о фреймворке…

  • Он использует только безопасные для расширений 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 из расширения Top Shelf. Я получаю ошибку компиляции в «MyFramework_Private.h» для трех файлов, которые я туда импортирую (UIKit/UIGestureRecognizerSubclass.h работает нормально).

Ошибка, которую я получаю,

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

Эта ошибка возникает только при компиляции цели для расширения Top Shelf. MyFramework отлично компилируется (и работает) для приложения iOS, расширения iOS Today и приложения tvOS.

Должен ли я подать радар на это, или есть что-то очевидное, что я упускаю?


person Ross Kimes    schedule 24.09.2015    source источник


Ответы (1)


Похоже, это ошибка Xcode. Зарегистрирован как rdar://22855945.

person Ross Kimes    schedule 25.09.2015