Swift框架不适用于命名为' Debug'之外的构建配置。或者'发布':没有这样的模块

时间:2014-09-27 09:06:22

标签: ios build swift frameworks xcode6

每当我尝试使用名为' Debug'以外的构建配置时或者'发布',Xcode突然找不到我的Swift框架。配置与其名称完全相同(实际上,新配置是从工作' Debug'配置中复制的。)

Build configurations screenshot

Xcode报告'没有这样的模块'

Xcode error

这似乎是一个非常奇怪的错误。当然有人曾经遇到过这个问题吗?我的Google搜索没有结果。有谁知道可能导致这个问题的原因是什么?我很确定我正确地添加了框架。

我制作了一个简短的截屏视频,向您展示我正在做的事情:http://www.screencast.com/t/zpgZ5ZYgvH

底线:

  1. 确保项目当前使用第三方Swift框架构建
  2. 在项目/文件导航器中选择项目
  3. 在编辑器左侧栏中选择“目标”上方的项目,并确保您位于“信息”选项卡上
  4. 点击配置列表下方的+按钮并选择“重复XXX配置”
  5. ,复制当前配置(可能是'调试')
  6. 通过转到产品(菜单)>修改您的方案以使用新配置。方案>编辑方案......
  7. 选择左侧边栏中的“运行”
  8. 在Build Configuration
  9. 下选择新配置
  10. 尝试重新构建
  11. 您还可以下载示例项目:http://s000.tinyupload.com/?file_id=48797763216274271820

    我正在运行Xcode 6.0.1(6A317)和Yosemite 10.10(14A361c)。

4 个答案:

答案 0 :(得分:27)

在目标的Framework Search Path中添加以下Build Settings$(SYMROOT)/Release$(EFFECTIVE_PLATFORM_NAME) 并使其成为non-recursive

就我而言,这是针对Alamofire的,它已作为git子模块添加到我的项目中。

框架正在构建中,可以在构建日志中看到,但我假设默认框架搜索路径是从方案名称派生的。 Alamofire框架& dSYM文件位于Release-iphoneos / Release-iphonesimulator

我认为这适用于任何Swift框架,只要它的方案名称是默认的。如果没有,请检查构建日志并相应地调整框架搜索路径。

答案 1 :(得分:18)

我也有这个问题并通过在包含的Alamofire项目中添加相同的配置名称来修复它。

我的主要项目中的构建方案: main project configs

Alamofire项目中的构建方案: screenshot of schemes

注意: 另外,请确保两个项目中的iOS部署目标相同。

答案 2 :(得分:8)

如果您正在使用CocoaPods,请尝试ZoneDateTime.now(ZoneId.of("Australia/Sydney"))这将生成一些带有您的配置名称的.xcconfig文件。清理您的构建文件夹并重新构建。

答案 3 :(得分:1)

如果您具有模块化结构(例如,应用程序使用框架将UI,服务或业务逻辑与应用程序的主模块分离),则将新的构建配置添加到构建这些框架的每个子项目中。

在这种情况下,如果作者在工作区中具有Services Framework,那么他也必须为其添加一个Debug Original配置。然后运行pod install

这就是我解决问题的方式。