Xcode 不会将 Swift iOS 具有 Swift 框架的应用程序存档为单独的目标。这怎么能解决?

Xcode won't archive Swift iOS app with a Swift framework as a separate target. How can this be fixed?

我有一个使用 Swift 创建的 iOS 应用程序。由于我的项目中有一个小部件并且我想在我的小部件和我的应用程序之间共享代码,因此我有一个 Swift 框架也作为我项目的一部分。我可以成功构建我的应用程序。首先,我必须构建框架,然后才能构建应用程序。但是,当我尝试存档应用程序以进行分发时,它失败并出现两个错误。

module.modulemap: Header '{My Framework Name}-Swift.h' not found.

Could not build Objective-C module '{My Framework Name}'.

我的应用程序中有三个目标,一个应用程序、小部件和框架。

该框架有一个 collection 个 Swift 个文件,还有一个 Objective-C header 包含以下内容:

#import <UIKit/UIKit.h>
FOUNDATION_EXPORT double XScheduleKitVersionNumber;
FOUNDATION_EXPORT const unsigned char XScheduleKitVersionString[];

我的 Mac 是 运行 OS X 10.10.2。 Xcode 是 6.3 版。我的应用适用于 iOS 8.0+。我正在处理的项目的全部内容是 open-source,可在 https://github.com/Cin316/X-Schedule.

获得

我已经 运行 遇到了这个令人沮丧的问题。似乎使用纯 Swift 框架目标 Objective-C 头文件会导致间歇性或奇怪的构建错误(Xcode 错误?)。这似乎违反直觉,但至少部分解决方案是将头文件从 public 更改为 project 或简单地将其从构建目标中删除。我希望我能更好地解释为什么会这样!

我在这里 fork 你的项目并创建了一个构建(至少可以在我的机器上运行):https://github.com/acwright/X-Schedule

希望对您有所帮助!