🐘
Bitriseのワークフローに追加したScriptで「〇〇: No such file or directory」になる
発生したエラー
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の環境変数の設定を疑ったり、意外と解決に時間が掛かってしまいました。同様のエラーになった人にとって役立つ内容であればうれしいです。
Discussion