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

标签 ios xcode swift module compilation

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

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

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

Screenshot of archiving errors.

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

enter image description here

该框架有一组 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+。我正在从事的项目的全部内容是开源的,可在 https://github.com/Cin316/X-Schedule 获得。 .

最佳答案

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

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

希望这对您有所帮助!

关于ios - Xcode 不会将带有 Swift 框架的 Swift iOS 应用程序存档为单独的目标。这怎么能解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29731659/

相关文章:

XCode-Project 文件 .pbxproj - 如何在版本控制中处理它?

swift - 在 View Controller 之间传递数据 (Swift)

ios - 如果使用核心图散点图中只有一个值,如何显示单个点

ios - 类型 'UIView' 的值没有成员 'image'

ios - UIControlState.Normal 不可用

ios - 如何将粘性搜索栏添加到 UITableViewController

ios - Xcode Assets 目录问题

ios - .framework 和 .a 中的重复符号

iOS - 集成信用卡支付

android - 限制对服务器后端的访问