Help us understand the problem. What is going on with this article?

ターミナルでCarthageの.sh実行のエラー:Build Failed Task failed with exit code 65

プロジェクトで使っているライブラリは、Carthageで管理しているものがあって、
ターミナルでPod Installではなく、
CarthageのコマンドやPodのコマンドが混じって書かれている。
そのファイルがxxx.shというファイル、
それをターミナルで実行した時には
Build Failed
Task failed with exit code 65
...
This is usually indicates that project itself failed to compile.
please check the xcodebuild log for more details: /var/folders/...carthage-xcodebuild.sHeTHo.log

と出ました。冷静に分析しましょう。
言われた「 /var/folders/...carthage-xcodebuild.sHeTHo.log」へ入ってみると、
/bin/sh -c /Users/name/Library/Caches/org.carthage.carthageKit/Derived/...Script-xxxxx.sh

cp /Users/name/ExternalModules/... /users/name/...
cp: /Users/name/ExternalModules/...is a directory(not copied).
Command PhaseScriptExectution failed with a nonzero exit code
...
The following build commands failed:
PhaseScriptExecution Run Script Script-xxxxx.sh
(1 failure)

言われた「Script-xxxxx.sh」へ入ってみると
確かに「/Users/name/ExternalModules/...」の中身をあるpathへCopyすると書かれている

なんでこのコマンドが失敗だろうと思いながら、
Copy元の「/Users/name/ExternalModules/...」へ入ってみると、空っぽです。。。
だからCopy失敗しました。

前にMacの容量が足りなかった時にいっぱいCacheを削除してしまったせいかもしれない、
「/Users/name/ExternalModules/...」の中身を復元してみると、
無事に実行できました。

●勉強になったこと:
エラーlogを分析すること。Shellのコマンドをもっと勉強すること。
Shellで書かれていることが頻繁に出てくるので、Shellのコマンドが分からないなら、logを見てもしょうがいない。
今回は他人の知恵をお借りして、shellのコマンドをわかったら、logを見てどこに失敗していたことがわかって、
詳しく原因調査ができたことが解決のカギとなりました。

Yuehan
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away