概要
WARNING: The APKs won't be signed and thus not installable unless you also pass a keystore via the flag --ks. See the command help for more information. E/SplitApkInstallerBase: Failed to commit install session 481543160 with command package install-commit 481543160. Error: INSTALL_PARSE_FAILED_NO_CERTIFICATES: Failed collecting certificates for /data/app/vmdl481543160.tmp/base-master_2.apk: Failed to collect certificates from /data/app/vmdl481543160.tmp/base-master_2.apk: Attempt to get length of null array
Play Asset Delivery を使用している Unity プロジェクトで Android ビルドして、
ビルドした .aab を端末にインストールしようとしたところ、
上記のエラーが発生してインストールに失敗する現象に遭遇した。
#!/bin/bash AAB_PATH="$1" APKS_PATH="$2" JAVA_PATH="$3" BUNDLETOOL="$4" KEYSTORE_PATH="$5" KEYSTORE_PASS="$6" KEYALIAS_NAME="$7" KEYALIAS_PASS="$8" ADB_PATH="$9" if [ -e "${APKS_PATH}" ]; then rm "${APKS_PATH}" fi # .aab から .apks を生成 "${JAVA_PATH}" -Xmx1G -jar \ "${BUNDLETOOL}" \ build-apks \ --bundle="${AAB_PATH}" \ --output="${APKS_PATH}" \ --ks="${KEYSTORE_PATH}" \ --ks-pass=pass:"${KEYSTORE_PASS}" \ --ks-key-alias="${KEYALIAS_NAME}" \ --key-pass=pass:"${KEYALIAS_PASS}" \ --mode=universal # 生成した .apks を端末にインストール "${JAVA_PATH}" -Xmx1G -jar \ "${BUNDLETOOL}" \ install-apks \ --apks="${APKS_PATH}" \ --adb="${ADB_PATH}"
build-apks する時に以下のオプションを指定したら、正常にインストールできた。
--ks--ks-pass--ks-key-alias--key-pass