🐘

Bitriseのワークフローに追加したScriptで「〇〇: No such file or directory」になる

2024/09/20に公開

発生したエラー

Bitriseのワークフローに以下のScriptを追加して実行したところ、gradlewコマンドの実行時にエラーが発生しました。

cd "$PROJECT_LOCATION"

some_directory_path="/hoge/fuga"

if [ -d "$some_directory_path" ] then
 ./gradlew assembleXCFramework
fi

ログを見てみると、以下のエラーが発生していました。

line xx:     ./gradlew: No such file or directory

しかし、Gradle Wrapperの設定は正しくされていて、ローカル環境で予めScriptを実行した際には問題なく実行できていたので、原因がなかなか分かりませんでした。

原因

./gradlewコマンドの直前に全角スペースが入っていたことが原因でした。
エラーをよく見ると、./gradlewの前に余分なスペースが表示されているのが分かります。

代わりに半角スペースだけを入れる様にしたところ、エラーは発生しなくなりました。

if [ -d "$some_directory_path" ] then
 ./gradlew assembleXCFramework
fi

対策

ローカル環境で作成したスクリプトをコピーしてBitriseのワークフローに貼り付ける際に、どこかのタイミングで余分なスペースを入れてしまった可能性が高いです。

エディタの設定で全角スペースを表示する様にしておく等の対策をすれば、今後は事前に気付くことが出来そうです。

さいごに

かなり初歩的なミスですが、ローカル環境のスクリプトと差分がないと思い込んでいた為、Bitriseの環境変数の設定を疑ったり、意外と解決に時間が掛かってしまいました。同様のエラーになった人にとって役立つ内容であればうれしいです。

Livesense Engineers

Discussion