我在circleCI上运行我的项目时发现链接器错误,说没有找到域框架。我的开发环境框架没有问题。我检查了框架搜索路径,包括$(inherited)和carthage构建文件夹($(PROJECT_DIR)/ Carthage / Build / iOS)。以下是我的cartfile和circle.yml(circleCI' s配置文件)
的内容github "Alamofire/Alamofire" ~> 3.4
github "Alamofire/AlamofireImage" ~> 2.0
github "SwiftyJSON/SwiftyJSON" ~> 2.3.0
github "SnapKit/SnapKit" >= 0.15.0
github "realm/realm-cocoa"
machine:
xcode:
version: "7.3"
dependencies:
pre:
- curl -O https://gist.githubusercontent.com/cabeca/cbaacbeb6a1cc4683aa5/raw/8e17f39f5a7413fd0559c9e6808e01b6fb514422/simulator_populator
- ruby ./simulator_populator
- carthage update --platform iOS
circleCI支持技术人员建议carthage update
之前的2行,以避免与tvOS框架有关的问题。我也尝试将carthage update
切换为carthage bootstrap
并获得相同的结果。以下是我收到的错误消息
从截图中看来,当它试图链接测试文件时出现错误,但是xcode默认创建了测试文件和uitest文件,我还没有在其上添加任何内容
答案 0 :(得分:0)
但是xcode默认创建了test和uitest文件,我还没有添加任何东西
我认为这就是问题所在。您需要确保两个目标都可以通过构建设置FRAMEWORK_SEARCH_PATHS
找到框架。这应该包括相关框架的父目录,例如$(SRCROOT)/Carthage/Build/iOS
。您通常可以通过将框架拖放到“Link Binary with Libraries”构建阶段来实现这一目标。
答案 1 :(得分:0)
你需要
carthage bootstrap --platform iOS
不
carthage update --platform iOS