每当我尝试使用名为' Debug'以外的构建配置时或者'发布',Xcode突然找不到我的Swift框架。配置与其名称完全相同(实际上,新配置是从工作' Debug'配置中复制的。)
Xcode报告'没有这样的模块'
这似乎是一个非常奇怪的错误。当然有人曾经遇到过这个问题吗?我的Google搜索没有结果。有谁知道可能导致这个问题的原因是什么?我很确定我正确地添加了框架。
我制作了一个简短的截屏视频,向您展示我正在做的事情:http://www.screencast.com/t/zpgZ5ZYgvH
底线:
您还可以下载示例项目:http://s000.tinyupload.com/?file_id=48797763216274271820
我正在运行Xcode 6.0.1(6A317)和Yosemite 10.10(14A361c)。
答案 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项目中添加相同的配置名称来修复它。
注意:强> 另外,请确保两个项目中的iOS部署目标相同。
答案 2 :(得分:8)
如果您正在使用CocoaPods,请尝试ZoneDateTime.now(ZoneId.of("Australia/Sydney"))
这将生成一些带有您的配置名称的.xcconfig文件。清理您的构建文件夹并重新构建。
答案 3 :(得分:1)
如果您具有模块化结构(例如,应用程序使用框架将UI,服务或业务逻辑与应用程序的主模块分离),则将新的构建配置添加到构建这些框架的每个子项目中。
在这种情况下,如果作者在工作区中具有Services Framework,那么他也必须为其添加一个Debug Original配置。然后运行pod install
。
这就是我解决问题的方式。