こんにちは、プログラマーの岡田です。
今関わっているプロジェクトでの話なのですが、これまでwebアプリでの開発機会が多かったものの、今回ネイティブアプリ開発に着手しました。
実機での動きを見るためにAndroid Studioとxcodeをインストールして動きを見ていたんですが、ある日を境に突然buildできなくなりました。
そしてAndroid用にbuildしようとすると
というように「gradleエラーが出ています」と表示されて途中で止まってしまうのでした。
しかもこれで終わりません。
なんとiosでのビルドでも同様にエラーが表示され止まる始末。。こっちはpod エラー??
同僚からは一度プロジェクト内のnode-brewを削除、そして再インストールするといいのではとアドバイスをいただくも改善せず。
しかしそんな自分のそばで同僚は皆正常にビルドできる状況・・・。
仕方ないのでネイティブアプリでの動きを確認する時には同僚側でビルドし、実機に入れて動きを見させてもらっていたのですが、その後さらなる問題が発生しました。
あるブランチで動きを見たかっただけなのですが、そのブランチ内で少し変更が入った箇所のコミットを削除しようとすると、なんとエラー。コミットの削除ができません。
さらに数日後、今度はnpm run devしようとしたところエラーが。
ついに立ち上げにすら失敗する始末。
最終的にsudoを使わないとファイル一つ消せない、プロジェクト一つ立ち上がらないという状況になってしまいました。ナンデー。。。
その中で遭遇したのが以下のエラーでした。
同僚曰く、このエラーが出るということはローカルのghqもしくはgithub.comフォルダに対して権限を失っている可能性があるらしい。
権限の確認に関しては該当のディレクトリ上に移動後ls-lコマンドを打つことで権限を誰が持っているのかを見ることができます。
自分の権限名はuser1なのですが、自分に権限がない場合rootと表示されます。rootと表示されているとsudoを使う必要が出てくるのでここで権限を変更します。
権限変更には下記コマンドを打ちます。
chownコマンドを打つことで権限を変更することができます。このときには必ずsudoをつけてコマンドを打ちましょう。
npm run devでプロジェクト立ち上げテスト。。。。やった!これで解決や!とnpm run buildでios用にビルドしてみたところ今度は別の場所でエラーが出ました。。。
どうやらこの時の自分はghqやgithub.comの権限はもちあわせているものの、プロジェクトの中のファイルとディレクトリに対してのみ権限を失っていることが判明しました。
そのため今度はファイルとディレクトリに対して権限を確認し再度修正しました。
結果iosビルドで表示されていたpodエラーは解消され、android studioのgradleエラーも解消されました。そして問題なくandroid ,iosのエミュレータの立ち上げも確認できました。
いろんな警告文が出てたけど、まさか全ての原因が権限がないことだったとは。。。予想外でした。
もし同様にgradleエラーやpodエラーが出てビルドができんぞーって方は権限を一度見直してみてはいかがでしょうか??
ちなみに
このどの部位に対して権限の変更を行えばいいのか、どのディレクトリに対して行えばいいのかの指定に関しては自分はもうめんどくさくなってしまい、chatGPTに「ねぇ!どのディレクトリ!?」と指示を丸投げしていました笑
chatGPT....便利すぎるぜ。。。
ではまた!