【ハルシオンブログ】keystore付けるとUnityでビルドできなくなったので、手でapkに署名をしたよー!
はい、こんにちは。坂内っす。
最近ポケガ1で一部の端末で起きるバグがあるということで、修正をしました。
(おかげ様でポケットガール1はリリースしてから丸3年経ちました。)
そして、ビルドしようとしたら・・・・
ふぁっきゅー!
ビルドできねえーし!
ってことで、色々AndroidSDKのバージョン変えたり、Build-toolsのバージョン変えたり、色々してもビルドができません。
そして、1点わかったことは。
「keystoreを外せばビルドができる」
ぐあああああ それじゃリリースできねええんだよおおおお
(ノ´□`)ノ ┫:・'∵:.┻┻:・'.:┣∵・:. ┳┳☆ピタッ☆
ってことで、この状態が治らなかったため、違う方法でやることに。
「署名なしでビルドして、あとから署名する」
普通にUnityでやっていれば、こんなことならないとは思いますが、とりあえず記念的なメモとして書いておきます。
①Zipalignをする。
詳しくはhttps://qiita.com/kazuqqfp/items/8eae69e309c6ed75d661
zipalign -v -p 4 △△△△△△.apk 〇〇〇〇〇.apk
②署名をする。
apksigner sign --ks □□□□□.keystore --v1-signing-enabled true --v2-signing-enabled true 〇〇〇〇〇.apk
③確認
apksigner verify -v 〇〇〇〇〇.apk

apksigner verify --print-certs 〇〇〇〇〇.apk

どうなっていればいいのか分からないけど、
ちゃんと「igner #1 certificate SHA-256 digest」「Signer #1 certificate SHA-1 digest:」「Signer #1 certificate MD5 digest:」に値が入っていればいいのかな?
①と②が成功すれば、ちゃんとUnityで出力した署名無しapkに署名をすることができます。
現在ポケットガール1ver3.43はこの方法でリリースしました。
いや、Unityでkeystore付けてビルドできるのが一番なんですけどね‥‥上記エラーの対処法わかる方いましたら、教えてくださいorz
ってことで、今日はこれまで。あでゅ~ノシ
最近ポケガ1で一部の端末で起きるバグがあるということで、修正をしました。
(おかげ様でポケットガール1はリリースしてから丸3年経ちました。)
そして、ビルドしようとしたら・・・・
CommandInvokationFailure: Failed to sign APK package.
C:\Users\XXXXXX\AppData\Local\Android\Sdk\build-tools\27.0.3\apksigner.bat sign --ks "C:\Users\XXXXXXX\Documents\UnityProject\〇〇〇〇/Assets/Editor/XXXXX.keystore" --ks-pass pass:"XXXXXXXX" --ks-key-alias "XXXXXXXX" --key-pass pass:"XXXXXXXX" "C:\Users\XXXXXXXX\Documents\〇〇〇〇\〇〇〇〇\Temp/StagingArea/Package.apk"
stderr[
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
]
stdout[
-Djava.ext.dirs=C:\Users\XXXXXXXX\AppData\Local\Android\Sdk\build-tools\27.0.3\lib is not supported. Use -classpath instead.
]
exit code: 1
UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
ふぁっきゅー!
ビルドできねえーし!
ってことで、色々AndroidSDKのバージョン変えたり、Build-toolsのバージョン変えたり、色々してもビルドができません。
そして、1点わかったことは。
「keystoreを外せばビルドができる」
ぐあああああ それじゃリリースできねええんだよおおおお
(ノ´□`)ノ ┫:・'∵:.┻┻:・'.:┣∵・:. ┳┳☆ピタッ☆
ってことで、この状態が治らなかったため、違う方法でやることに。
「署名なしでビルドして、あとから署名する」
普通にUnityでやっていれば、こんなことならないとは思いますが、とりあえず記念的なメモとして書いておきます。
①Zipalignをする。
詳しくはhttps://qiita.com/kazuqqfp/items/8eae69e309c6ed75d661
zipalign -v -p 4 △△△△△△.apk 〇〇〇〇〇.apk
②署名をする。
apksigner sign --ks □□□□□.keystore --v1-signing-enabled true --v2-signing-enabled true 〇〇〇〇〇.apk
③確認
apksigner verify -v 〇〇〇〇〇.apk

apksigner verify --print-certs 〇〇〇〇〇.apk

どうなっていればいいのか分からないけど、
ちゃんと「igner #1 certificate SHA-256 digest」「Signer #1 certificate SHA-1 digest:」「Signer #1 certificate MD5 digest:」に値が入っていればいいのかな?
①と②が成功すれば、ちゃんとUnityで出力した署名無しapkに署名をすることができます。
現在ポケットガール1ver3.43はこの方法でリリースしました。
いや、Unityでkeystore付けてビルドできるのが一番なんですけどね‥‥上記エラーの対処法わかる方いましたら、教えてくださいorz
ってことで、今日はこれまで。あでゅ~ノシ
Category: 開発日記(Unity)
« 【ハルシオンブログ】AnchorsとPivotの小ネタ | 【ハルシオンブログ】VisualStudioの小ネタ。矩形選択。 »
コメント
| h o m e |