• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:APKファイルに署名をつけると複数署名になります)

APKファイルに署名をつける方法とエラーの対処法について

このQ&Aのポイント
  • APKファイルに署名をつける方法とは?正しい署名方法でエラーを解決しよう
  • 複数の署名がついてしまう問題を防ぐ方法はあるのか?
  • エラーメッセージ「CertPathが検証されていません」の対処法

質問者が選んだベストアンサー

  • ベストアンサー
  • salsberry
  • ベストアンサー率69% (495/711)
回答No.3

ANo.2で書き忘れていました。 Windowsを使っているなら、zipコマンドをインストールしなくても標準の機能のみでzipファイルの中の一部エントリを消すことは可能です。Androidのapkファイルはzipファイルの一種なので、apkファイルの拡張子をzipに書き換えてください。そのzipファイルをダブルクリックして開き、要らないエントリを消したら、zipファイルの拡張子をapkに戻すだけです。 もっとも、この方法で"Android Debug"署名をきちんと消せるのかどうかは保証しかねます。 ところで、登録者はアプリの内容に手を加えられない、本当の作者は音信不通という状態で、GooglePlayにアプリ登録後に不具合が見つかったりしたらどうするつもりなのでしょうか?

rainman1966
質問者

お礼

ご忠告ありがとうございます salsberry様のおっしゃるとおり、不具合が出た場合は当方では対処できないと思います GooglePlayに登録費をもう支払ってしまっているのでなんとか公開にこぎつけたいと 考えていますがダウンロードしてくださるユーザーに迷惑をかけることのないように 無料での公開にするつもりです 素人がアプリを公開しようなどとおこがましかったですね… お教えくださったようにZIPに拡張子を変更しましたがどれを消せばよいのかわかりません jarsigner -verify -verbose -certsで当方が署名する前のAPKを検証いたしますと sm 8585 Sat Jun 01 10:24:18 JST 2013 res/drawable/icon.png X.509, CN=Android Debug, O=Android, C=US [証明書は11/11/02 3:15から41/10/25 3:15まで有効です] [CertPathが検証されていません: Path does not chain with any of the trust nchors] sm 476 Sat Jun 01 10:24:18 JST 2013 res/layout/main.xml X.509, CN=Android Debug, O=Android, C=US [証明書は11/11/02 3:15から41/10/25 3:15まで有効です] [CertPathが検証されていません: Path does not chain with any of the trust nchors] sm 1548 Sat Jun 01 10:24:18 JST 2013 AndroidManifest.xml X.509, CN=Android Debug, O=Android, C=US [証明書は11/11/02 3:15から41/10/25 3:15まで有効です] [CertPathが検証されていません: Path does not chain with any of the trust nchors] sm 1292 Sat Jun 01 10:24:20 JST 2013 resources.arsc X.509, CN=Android Debug, O=Android, C=US [証明書は11/11/02 3:15から41/10/25 3:15まで有効です] [CertPathが検証されていません: Path does not chain with any of the trust nchors] sm 4456 Sat Jun 01 10:24:18 JST 2013 classes.dex X.509, CN=Android Debug, O=Android, C=US [証明書は11/11/02 3:15から41/10/25 3:15まで有効です] [CertPathが検証されていません: Path does not chain with any of the trust nchors] s 401 Sat Jun 01 10:24:18 JST 2013 META-INF/MANIFEST.MF X.509, CN=Android Debug, O=Android, C=US [証明書は11/11/02 3:15から41/10/25 3:15まで有効です] [CertPathが検証されていません: Path does not chain with any of the trust nchors] 454 Sat Jun 01 10:24:18 JST 2013 META-INF/CERT.SF 1203 Sat Jun 01 10:24:18 JST 2013 META-INF/CERT.RSA s=署名が検証されました m=エントリがマニフェスト内にリストされます k=1つ以上の証明書がキーストアで検出されました i=1つ以上の証明書がアイデンティティ・スコープで検出されました jarが検証されました。 警告: このjarには、証明書チェーンがまだ検証されていないエントリが含まれています。 というふうにZIPファイルを展開したら表示されるすべてのファイル名に 署名がついています なのでどのファイルを削除すれば複数署名を防ぐ事ができるのかわかりません もしよろしければ何度も申し訳ございませんがご教授下さい よろしくお願い申しあげます そして何度も回答を下さる事に心より感謝申し上げます 本当に本当にありがとうございます

rainman1966
質問者

補足

salsberry様 何度も回答を頂き本当にありがとうございました 「META-INF」フォルダを削除し、再度圧縮する事で無署名のファイルを 作る事ができ、無事GooglePlayに登録する事ができました salsberry様のおかげで今回非常に勉強になりました 本当に本当にありがとうございました!

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • salsberry
  • ベストアンサー率69% (495/711)
回答No.2

質問者さん自身はアプリの内容を変更するスキルがなく、問題のアプリはよそから購入したものなのですよね? だったら、購入先に「未署名のファイルをよこせ」と言えばいいだけのことではないでしょうか。

rainman1966
質問者

お礼

ご指摘ありがとうございます 一度交渉してみます 購入先には今回の署名の件で問い合わせをしていたのですが 結局解決に至る前に音信不通になってしまいまして… 今回の要望に応えてもらえるかどうかわかりませんが お願いしてみます ありがとうございました

すると、全ての回答が全文表示されます。
  • salsberry
  • ベストアンサー率69% (495/711)
回答No.1

「質問者さんが署名する前から、そのapkファイルには"Android Debug"で署名されていた」に一票。 質問者さんが署名する前のapkファイルを jarsigner -verify -verbose -certs アプリ名.apk で検証してみてください。

rainman1966
質問者

お礼

お忙しい中回答いただきありがとうございます! 確かに署名されているようです これを外すにはどうすればよいのでしょうか? zipコマンドで $ zip -d app.apk.debug_signed 'META-INF/*' deleting: META-INF/MANIFEST.MF deleting: META-INF/CERT.SF deleting: META-INF/CERT.RSA と入れれば署名が消せるらしいのですが「ZIPコマンド」をどのように 入手すればよいのかわかりません コマンドプロンプトで入力しても当然でしょうが 'zip' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 C:\Documents and Settings\Owner>deleting: META-INF/MANIFEST.MF 'deleting:' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 C:\Documents and Settings\Owner>deleting: META-INF/CERT.SF 'deleting:' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 と表示されます どうすればすでに署名されているものを削除できるのでしょうか? 何度も申し訳ございませんがおわかりになりましたらご指導下さい よろしくお願いいたします

すると、全ての回答が全文表示されます。

関連するQ&A