こんにちは、ニジボックスで働いてます、tack.saitoです。
弊社では受託開発も行っていて、APKを納品するスタイルなこともあります。
このAPKを渡す直前、思うことがあります。
- 本番のAPI向いてるよね...?
- packageは本番のモノだよな...
- 署名してる...よね
と不安になることがよくあります。
自分がビルドしていないケースもあれば、
きちんとビルドした...(ような気がする)
なんてこともあるわけで。
これらが守れてないと信頼もなくなるので、気をつけたいです。
てな流れがあり...
packageと署名とAPIの向き先を確認、を1コマンドにしよう
今まで
packageチェック
/PATH/Android/sdk/build-tools/27.0.3/aapt l -a application.apk | grep "A: package"
で、表示されるものを確認(build-toolsのversionはよしなに)
署名
keytool -list -printcert -jarfile application.apk
で、チェック。
本番API向いてるかどうかのチェック
adb install
で、実機で動かし、「本番だね。」と、手動チェック
いちいち...めんどくさいですね。(やってました)
これから
./android-moromoro-check.sh application.apk
で、一発OK
#!/bin/bash
AAPT_PATH="/PATH/Android/sdk/build-tools/27.0.3/aapt"
API_STG_PATH="https://stg.example.com"
API_PRO_PATH="https://example.com"
echo PACKAGE!!
${AAPT_PATH} l -a $1 | grep "A: package"
echo ================
echo STG_PATH!!
${AAPT_PATH} d strings $1 | grep ${API_STG_PATH}
echo ================
echo PRO_PATH!!
${AAPT_PATH} d strings $1 | grep ${API_PRO_PATH}
echo ================
echo "証明書"!!
keytool -list -printcert -jarfile $1
aaptコマンドで、packageを見にいくのと、string.xml
見にいくスタイル。
情報多過ぎるので、grepして欲しい情報だけ引っ張ってます。
STG_PATH!!部分が出てると「あかん、STG向いてる...」っていう感じですね。
正直、APIの部分は手動しかないかなーと思ってたのですが、
APIのドメイン部分はstring.xml
に記述してあり
デバッグビルドと本番ビルドとで参照を変えていたので今回はうまく行きました。
APIのラッパークラス内に定義してある、みたいなパターンは...どうしたらいいか分かりません。
今年もアドベントカレンダー、楽しいです。
現場からは以上でーす。