LoginSignup
0
0

More than 5 years have passed since last update.

Android のキーストアの入力情報ではカンマを使わないこと

Posted at

Azure DevOps の Android Signing

Xamarin アプリのビルドを Azure DevOps (旧VSTS) に任せています。署名も Android Signing タスクでできるようにしました。

Android Signing の Version 3.*

最近、 Android SigningVersion 3.* が出たので、早速試してみました。 Version 3.* では、署名に apksigner.jar を使うようになります

apksigner が失敗する

ところが、うまくいかなかったのです。ビルドが Android Signing のところで失敗してしまいます。 jarsigner.exe を使う Version 2.* なら大丈夫なのに :angry:

apksigner だけローカルPCで実行してみたのですが、同様に失敗する状態です。

"Invalid trailing backslash" という例外

次のような例外が吐かれます。

>apksigner.bat sign -ks Hoge.keystore HogeApp.apk
Keystore password for signer #1:
Exception in thread "main" java.security.SignatureException: Failed to generate v1 signature
...
Caused by: java.security.cert.CertificateException: Failed to sign using signer "HOGE"
...
Caused by: java.security.cert.CertificateParsingException: Failed to parse signer certificate issuer name
...
Caused by: java.io.IOException: Invalid trailing backslash
...

原因は "~ Co., Ltd."

キーストアを作成する際、 組織Hoge Co., Ltd. と入力していたのですが、これが原因でした。キーストアに入力した情報は、カンマをバックスラッシュでエスケープして、 Piyo, OU=Fuga, O=Hoge Co.\, Ltd., L=Minato-ku, S=Tokyo, C=JP という形で .keystore ファイルに格納されています。apksigner.jar がこのアンエスケープに失敗していたようです。

カンマを使わないようにして回避

ということで、カンマを含まないように 組織HOGE に変えて .keystore ファイルを作り直して回避しました :smile:

参照

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0