【问题标题】:Carthage build failed: Folder already exists and is not an empty directory. failed with exit code 128: fatal: destination pathCarthage 构建失败:文件夹已存在且不是空目录。退出代码 128 失败:致命:目标路径
【发布时间】:2019-11-09 04:41:01
【问题描述】:

我正在开发一个 Swift 项目,我使用 Carthage 作为依赖项管理工具。

没有任何问题,并且能够在 Mac OS High Sierra 上成功构建项目。但是在升级到 Mac OS Mojave 之后,我的项目正在构建中。

在这种情况下,框架 (AAA) 依赖项通过多个路径到达。所以 Carthage/git 尝试多次克隆框架(AAA),我认为这是导致问题的原因。

Project
|  \
S   P
|   |  \
|   U   |
|   |   |
 \  |  /
   AAA

这是项目环境:

  • 操作系统:Mac OS Mojave
  • 斯威夫特:4.2
  • Git:版本 2.21.0 (Apple) / 版本 2.22.0
  • 迦太基:0.33.0

迦太基命令:

carthage update --use-submodules --platform iOS

错误:

一个shell任务(/usr/bin/env git clone --bare --quiet https://bitbucket.org/xxx/xxx_module.git /Users/xx/Library/Caches/org.carthage.CarthageKit/dependencies /xxx_module) 失败,退出代码为 128:致命:目标路径 '/Users/xx/Library/Caches/org.carthage.CarthageKit/dependencies/xxx_module' 已存在且不是空目录。

我尝试删除和清理项目位置、git 缓存,但仍然无法正常工作。实际上手动删除文件夹是行不通的,因为 Carthage 命令本身会尝试多次克隆同一个 repo。

注意:有一些题目类似的问题,但这个问题的范围不同。所以我想把这个作为一个新问题发布。

【问题讨论】:

    标签: git dependencies macos-mojave carthage


    【解决方案1】:

    最后这对我有用。

    carthage bootstrap --use-submodules --no-build
    

    这是 carthage updatebootstrap 之间的区别,它适用于我。仍在寻找更好的解释。因为之前的命令 (carthage update --use-submodules --platform iOS) 对我有用,直到我将 MBP 更新到 Mac OS Mojave

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-24
      • 1970-01-01
      • 2015-09-26
      • 2018-10-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多