MagicPodをBitriseで使い始めるときにハマった設定を書き残しておく
アルダグラムでモバイルアプリの開発を担当している長尾です。
今回は弊社で利用させていただいているMagicPodを使い始めるにあたり、なかなか気づけなかった設定ミスがあったので、それを書き残しておこうと思います。
bitrise→MagicPodは難しくない
MagicPodは、Bitriseからのアップロードに対応しています。
つまり、公式に対応されているWorkflowのステップが存在しており、Bitriseを使っているユーザーであれば、簡単にMagicPodへ、ipaをアップロードができるようになっています。
設定項目も、Bitriseを使用してCIを組んでいるような方であれば、そこまで難しそうなものはありません。
そこまで隠すようなものもないので、弊社における設定を晒しておきます。
が、ほとんど設定するところはありません。
強いて言えば、Test settings numberが、一括実行の設定番号を設定するというところぐらいでしょうか。
ですので、作成したIPAをMagicPodへアップロードするまではスムーズに進行しました。
しかしなぜか動かない
ですが。。
なぜかアプリに、ログインできない。。という事象に見舞われました。。
手元でビルドしたアプリでも、もちろん本番アプリでもログインできるのですが、MagicPodにアップロードしたアプリだけがログインできません。
アプリのサーバーの向き先も間違ってないし、ぱっと見、ちゃんと起動しているように見えるのですが、ログインIDとパスワードを入力し、ログインボタンを押しても、ログインに失敗するという状況でした。
ログインができないので、確認できる項目は、ログイン画面が立ち上がる、というのみで、一向に先に進めない。。という状況になってしまいました。
何度も何度もIDとパスワードを入力し、ログインボタンを押下しました。。
しかしながら、、何度やっても、きちんと存在しているアカウントのIDとパスワードを入力しても、暖簾に腕押し、糠に釘。
やはりログインできないことから、単純な入力間違いや、サーバーの向き先が異なっているというようなミス、というよりかは、何か想定できていない事象が発生している、と考え、事象の原因を探るために、アプリを改修して、ログイン時のエラーメッセージをアプリに表示するような形に修正した上で、MagicPodで、アプリを動かしてみることにしました。
するとその際に出てきたメッセージは、以下のようなkeychainに関わるエラーでした。
An error occurred when accessing the keychain. The NSLocalizedFailureReasonErrorKey field in the NSError.userInfo dictionary will contain more information about the error encountered
特に制御も何も入れてないのに、なぜなんだろう🤔となり、色々みていたのですが、かなり調査に時間を費やしたこともあり、最終的にMagicPodさんへ、お問い合わせをすることにしました。
MagicPodへのお問い合わせ、そして解決へ
お問い合わせのお返事をいただき、ご案内いただいたのは、以下のURLでした。
記事によると、
- ビルドオプションに、「CODE_SIGNING_ALLOWED=YES」をつける
- ビルドオプションに、「CODE_SIGN_LOCAL_EXECUTION_IDENTITY=Ad Hoc」をつける
の二点を確認せよ、とのことでした。
そこで、弊社のBitriseワークフローを確認すると、確かに上記ビルドオプションはついていませんでした(当時)。
ということで、以下のようなオプション設定にした上で、もう一度実行してみました。
CODE_SIGNING_ALLOWED=YES
COMPILER_INDEX_STORE_ENABLE = NO
CODE_SIDN_LOCAL_EXECUTION_IDENTITY=Ad Hoc
なお、COMPILER_INDEX_STORE_ENABLEは、Bitriseで、Xcode Build for Simulatorのステップにおいて、デフォルトで設定されている項目で、Apple公式の文書によれば、ビルド中にインデックスデータを出力するかどうかの設定なので、コードを編集することがないCI上でのビルドに限っては、NOで不利益は生じないです。
また、BitriseのXcode Build for Simulatorのステップにおけるビルドオプションのデフォルト設定は、2024/05/15現在
CODE_SIGNING_ALLOWED=NO
COMPILER_INDEX_STORE_ENABLE = NO
となっています。
そのため、CODE_SIGNING_ALLOWD=YESと、CODE_SIGN_LOCAL_EXECUTION_IDENTITY=Ad Hocの二つのオプションを意図的に追加する必要があります。
さて、上記設定を反映した結果、無事ログインできるようになりました!!
結び
ということで、やっと弊社においても、MagicPodのモバイルアプリ版での運用が動き始めました。
弊社においては、MagicPodをWeb版で使い倒しており、モバイル版は、これからだ!という状況がたいへん長く続いていましたが、この設定を入れたことでようやく動き始めることができました。
ちょっとした設定が抜けていることで、意図した動きをしない、という事象は、知っていればすぐに回避できるのですが、事象に当たらないと知ることができないということもよくあることだと思います。
私の小さな気づきが、どなたかの助けになれば幸いです。
株式会社アルダグラムのTech Blogです。 世界中のノンデスクワーク業界における現場の生産性アップを実現する現場DXサービス「KANNA」を開発しています。 採用情報はこちら: herp.careers/v1/aldagram0508/
Discussion