我正在将项目从xcode 7.3迁移到8.1,现在转换为swift 2.3(从2.2)。这是一场斗争,尤其是通过cocoapods添加的客观c框架。
我目前遇到的问题是我似乎无法摆脱链接步骤中对一个框架的引用。
当我尝试构建项目时,它在链接步骤中失败:
ld: framework not found DateTools
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我可以在失败的命令上看到这个:
... -framework CoreText -framework DateTools -framework GLKit ...
我删除了框架,目前我只是在项目中包含我需要的文件。
这是我到目前为止所做的:
但问题仍然存在。
我找到的一件有趣的事情是,当我搜索Derived数据文件夹(删除之前)时,我执行在名为{{1的文件中查看条目-framework DateTools
}}
dgph
我找到的是xcode使用的某种依赖图。问题是,即使我删除了派生数据,一旦我重新启动xcode,这个文件似乎会被重新创建并且仍然包含相同的条目。
还有其他地方我应该寻找这个框架条目吗?
答案 0 :(得分:1)
我能够解决这个问题!结果我在我的一个项目文件中错过了输入。我被骗了,因为我仍然期望出现一些DateTools字符串(因为我试图手动包含文件)。一旦我完全删除了与DateTools有关的所有内容,我仍然惊讶地看到一个DateTools字符串出现。
中的
"-framework" "\"DateTools\"",
下的条目为OTHER_LDFLAGS
~/development/ourlatitude/OurLatitude.xcodeproj/project.pbxproj
(所以基本上就是联系人抱怨的内容)。
删除该条目后,我可以通过cocoapods重新安装DateTools。
我认为ld: framework not found XXXX
例如我在清除上述内容后的下一个问题是类似的消息,但这次是由我的一个测试文件引起的:
import ObjectMapper
import Alamofire
import AlamofireObjectMapper
import OurLatitude
将其更改为:
//import ObjectMapper
//import Alamofire
//import AlamofireObjectMapper
@testable import OurLatitude
解决了我的上一期问题,并且我能够在xcode 8.1中使用swift 2.3进行干净的构建
希望这会帮助其他人,或者至少我会在下次ld: framework not found XXXX
时找到它