2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Unityでkeystoreファイルを消してしまったら

Last updated at Posted at 2021-02-18

あらすじ

*.keystoreファイルをうっかり失くして、こう対処した。」
*.keystoreファイルはちゃんと管理しましょう。」というお話です。

発端

UnityでBuildしたものをPlayStoreにアップロードすると、Android App Bundle が誤った鍵で署名されています。というメッセージが表示されました。何事だ??と確認すると、*.keystoreファイルが消えていました。

Plastic SCM でバージョン管理していたはずですが、Check inコマンドでステージングしたときに、アップロード内容に含め損ねていたようです。何と私が以前作成した*.keystoreはもうこの世にありません!

失くしたものは仕方がないので方法を探しましょう。

PlayConsoleにアップロードするときには、アプリ本体、apkまたはaabと一緒に鍵がアップロードされます。

この鍵は最初にアップロードされるときにPlayConsoleに登録され、以降のアップロードでは同じ鍵が必須です。

image.png

これは、鍵を持っていない人が勝手にアップロードするのを防ぎ、安全性を高めるのが目的ですね。

Unityではどうやって設定していたっけ?

Unityでは Player設定の中で設定できます。

  1. →Build Settings
  2. →Player Settings
  3. →Android
  4. →Publishing Settings
  5. →Project KeyStore

image.png

ここで、KeyStoreManagerを起動して*.keystoreファイルを作成し、それをCustum KeyStoreでSelectしているはずです。

失くしたらどうする

まず、*.keystoreを失くしたら、アップロードできません。

そこで、新しく作成したもので再登録させてもらえるように、Googleさんにお願いします。

アップロードできない時に出てくるURLリンクから飛ぶと、このようなフォームがあります。

image.png

記入していくと、*.pemファイルを入力フォームにアップロードする必要があることが分かります。
これから使っていく新しく作成した*.keystoreの情報が必要だということです。

ここで、だれもが思うことは、「*.keystoreをアップロードしちゃダメなの?」でしょう。
しかし、PlayConsoleにアップロードする人が誰でもUnityを使っているかというと、それは違います。
Flutterかもしれないし、ReactNativeかもしれないし、Kotlinかもしれません。

そこで、*.keystore→*.pem変換、というかエクスポート?が必要になります。

keystore→pem

手順を説明します。

まず、keytoolコマンドを使って*.keystoreから*.pemを生成します。
※keytoolコマンドが使えない時は、JDKをインストールしてPathを設定しましょう。
(chocolateyでインストールするのがオヌヌメです。)

keytool -export -rfc -alias えいりあす -file upload_certificate.pem -keystore あなたのkeystoreふぁいる

Enterを押すと、パスワードを聞かれます。

キーストアのパスワードを入力してください:

UnityのKeystoreManagerで設定したパスワードを入力すると、

証明書がファイル<upload_certificate.pem>に保存されました
Warning:
JKSキーストアは独自の形式を使用しています。"keytool -importkeystore -srckeystore .\user.keystore -destkeystore .\user.keystore -deststoretype pkcs12"を使用する業界標 準の形式であるPKCS12に移行することをお薦め します。

保存されたことの報告に加えて、「業界標準を使いなさい」と、たしなめられます。
ひとまず、このupload_certificate.pemを先ほどの入力フォームにアップロードしてしまいましょう。
これであとは必要な項目を記入したら、送信ボタンを押します。

上手くいくと、Google Play Developer Support の担当者さんから、このようなご連絡をいただけます。

image.png

こみ上げてくる気持ちを胸に、メールに記載いただいている時刻よりも前にアップロードすると、エラーメッセージが帰ってきます。

image.png

ですよね。そりゃそうですよ。だがしかし。
エラーメッセージがこんなに嬉しいことは、なかなか無いでしょう。

まとめ

間違えて消してしまうと手間がかかります。
また、Google Play Developer Supportの人にもご迷惑をお掛けします。
バックアップを取っておくなどの対策をしましょう。

Excelsior!

2
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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?