使用Realm和circleCI(使用Carthage)构建失败

时间:2016-07-25 08:47:22

标签: ios swift realm circleci carthage

我在circleCI上运行我的项目时发现链接器错误,说没有找到域框架。我的开发环境框架没有问题。我检查了框架搜索路径,包括$(inherited)和carthage构建文件夹($(PROJECT_DIR)/ Carthage / Build / iOS)。以下是我的cartfile和circle.yml(circleCI' s配置文件)

的内容

cartfile

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"

circle.yml

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并获得相同的结果。以下是我收到的错误消息 enter image description here

从截图中看来,当它试图链接测试文件时出现错误,但是xcode默认创建了测试文件和uitest文件,我还没有在其上添加任何内容

2 个答案:

答案 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