Re: デバッグモード ( No.1 ) |
- 名前:管理人 日時:2018/01/31 00:26
以下の手順でリリースモードでビルドした APK ファイルを使用すればアップロードできると思います
1. Visual Studio でプロジェクトを開いた状態で、Visual Studio のメニューの『ビルド(B)』→『構成マネージャー(O)...』を
クリックして構成マネージャーダイアログを開く
2. 構成マネージャーダイアログの『アクティブ ソリューション構成(C):』の項目を『Release』に変更してから右下の『閉じる』ボタンを押す
この状態でビルドを実行するとリリースモードのビルドが作成されます
デバッグビルドの結果は『Debug』という名前のフォルダに出力されると思いますが、
リリースビルドの結果は『Release』という名前のフォルダに出力されますので、
その中にある APK ファイルを使用すればアップロードが成功すると思います
よろしければお試しください m(_ _)m
|
Re: デバッグモード ( No.2 ) |
- 名前:むむむむ 日時:2018/01/31 01:02
上記のようにしたのですが
デバッグ可能な APK をアップロードしました。セキュリティ上の理由により、Google Play に公開するにはデバッグを無効にする必要があります。デバッグ可能な APK の詳細をご確認ください。
アップロードした APK がデバッグ モードで署名されています。APK はリリース モードで署名する必要があります。署名について詳しくはこちらをご覧ください。
com.test はプリインストール アプリで使用されているため、別のパッケージ名を使用する必要があります。プリインストール アプリをアップロードするには、Google Play デベロッパー サポートまでお問い合わせください。詳しくはこちらをご覧ください。
「com.test」は既に Google Play に存在するため、別のパッケージ名を使用する必要があります。
こうでてしまうのですがどうすればよいでしょうか、、、
|
Re: デバッグモード ( No.3 ) |
- 名前:管理人 日時:2018/02/01 01:26
> デバッグ可能な APK をアップロードしました。セキュリティ上の理由により、Google Play に公開するにはデバッグを無効にする必要があります。デバッグ可能な APK の詳細をご確認ください。
デバッグを無効にするには AndroidManifest.xml の以下の部分
<application android:label="@string/app_name" android:hasCode="false" android:theme="@android:style/Theme.NoTitleBar">
の中に android:debuggable="false" という記述を追加する必要があるようです
<application android:label="@string/app_name" android:hasCode="false" android:theme="@android:style/Theme.NoTitleBar" android:debuggable="false">
> アップロードした APK がデバッグ モードで署名されています。APK はリリース モードで署名する必要があります。署名について詳しくはこちらをご覧ください。
リリースモードで署名するには以下の手順を行う必要があるようです
1. ソリューションエクスプローラにある『(プロジェクト名).Packaging』を右クリックしてプルダウンメニューから
『プロパティ(R)』をクリックして『(プロジェクト名).Packaging プロパティ ページ』ダイアログを開く
2. ダイアログ左上の『構成(C):』が『Release』になっていなかったら『Release』に変更する
3. ダイアログ左側から『構成プロパティ』→『Ant』を選択する
4. ダイアログ右側の『Ant ビルドのターゲット』を『Release (リリース モード)』に変更して『OK』ボタンを押す
これで No.1 のご返信でご説明したリリースモードのビルドを行えば、デバッグ無効+リリースモードの署名の APK ファイルが『Release』フォルダ以下に作成されると思います
> com.test はプリインストール アプリで使用されているため、別のパッケージ名を使用する必要があります。プリインストール アプリをアップロードするには、Google Play デベロッパー サポートまでお問い合わせください。詳しくはこちらをご覧ください。
> 「com.test」は既に Google Play に存在するため、別のパッケージ名を使用する必要があります。
とりあえず com.test は既に別のアプリで使用されている名前なので、別のパッケージ名にする必要があるようです
ソリューションエクスプローラの『(プロジェクト名).Packaging』→『res』→『values』→『strings.xml』に
<string name="app_name">(プロジェクト名).Packaging</string>
のような『app_name』の設定があると思うのですが、こちらが『com.test』になっているのではないでしょうか?
<string name="app_name">com.test</string>
com.test から、まだ使われてなさそうな名称にする必要があります、そしてここに書き込んだ名称がアプリをインストールした際に
アイコンの下に表示されるアプリ名になるので、テキトーな名前ではなく、アプリのタイトル名にした方が良いと思います
|
Re: デバッグモード ( No.4 ) |
- 名前:むむむむ 日時:2018/02/01 14:36
教えてくださりありがとうございます。
設定もそのようにし、名前も変えてみたのですが、
次はいざだすためのapkがなく、
Debagの中のものはあるのですが、Releaseのなかにないのです。
どうすればよろしいでしょうか?
すみません、初歩的な質問をしているかもしれませんが、よろしくお願いします
|
Re: デバッグモード ( No.5 ) |
- 名前:管理人 日時:2018/02/02 01:29
手元の環境でも apkファイルが作成されないのを確認しました
少し調べたところ、リリースモードビルドの場合は署名ファイルを keytool というツールで作成して、
それを使用する必要があるようです
一応手元ではリリースモードビルドで apkファイルを作成できたのですが、
詳細をご説明する文章を書くと少し睡眠時間が短くなりすぎるので申し訳ありませんが明日(厳密には本日(金曜日))の
夜までお待ちください、詳しい手順のご返信をしたいと思います m(_ _;m
|
Re: デバッグモード ( No.6 ) |
- 名前:むむむむ 日時:2018/02/02 11:56
ご返信ありがとうございます。
お忙しいところ申し訳ありません。
自分が初心者なもので、お恥ずかしい限りです。
よろしくお願いします。本当にありがとうございます。
|
Re: デバッグモード ( No.7 ) |
- 名前:管理人 日時:2018/02/03 02:10
お待たせしました
まず、APKファイルには『署名ファイル』というものが必要なようで、これは所謂『作った人を証明するためのハンコ』のようなもので、
keytool.exe というツールで自分用の『署名ファイル(ハンコ)』を作ったら、それをずっと使いまわすようです( 仮にアプリを2個、3個と
作成した場合、APK毎に『署名ファイル』を作るのではなく、最初に作ったものを使うようです )
デバッグモードビルドの APKファイルでは、『まだ開発中のもの』ということでビルドツールが勝手に適当な署名ファイルを割り当てるので
この作業が必要ないようになっているようです
署名ファイルを作成するための keytool.exe ですが、Java SE Development Kit (jdk) の中に含まれていて、JDKがPCにインストールされていれば
C:\Program Files (x86)\Java\jdk1.8.0_161\bin や
C:\Program Files (x86)\Java\jdk1.8.0_112\bin
などのフォルダの中にあります
無い場合はこちらのサイトから Windows版の jdk をダウンロードしてインストールしてください
<Java SE Development Kit 8 Downloads>
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Java SE Development Kit 8u161 をインストールした場合は C:\Program Files (x86)\Java\jdk1.8.0_161\bin の中に、
Java SE Development Kit 8u162 をインストールした場合は C:\Program Files (x86)\Java\jdk1.8.0_162\bin の中に keytool.exe があることになります
使い方ですが、コマンドプロンプトで使用する必要があります
1. スタートメニューの『アクセサリ』の中から『コマンドプロンプト』を実行します
2. cd コマンドを使用してプロジェクトの Packagingフォルダに移動します
例:プロジェクト名が『DxLibSample_Android』で、Cドライブ直下にプロジェクトのフォルダがある場合
cd C:\DxLibSample_Android\DxLibSample_Android.Packaging
3. 次のコマンドを入力して keytool.exe を実行します
"C:\Program Files (x86)\Java\jdk1.8.0_161\bin\keytool.exe" -genkey -v -keystore (キーストアファイル名) -alias (エイリアス名) -validity 10000
(キーストアファイル名) には keystorefile.keystore などの、作成する署名ファイルのファイル名を入力してください
(エイリアス名) は、私もよくわかっていません・・・全角文字や記号などを使用しなければ何でも良いようですが・・・
4. 実行するといろいろと質問されますので、入力で答えます
・キーストアのパスワードを入力してください:
キーストアのパスワードを入力します、因みに入力しても画面に表示されませんので何を入力したかは
頭で覚えておく必要があります、そして、このパスワードを忘れると最初からやり直しなので、
ここに入力する前にどこかにパスワードをメモしておくことをお勧めします
・新規パスワードを再入力してください:
最初の質問で入力したパスワードを再度入力します
・姓名は何ですか。
『Takumi Yamada』など、ローマ仮名で氏名を入力します
・組織単位名は何ですか。
『組織単位』というのがよくわかりませんが、『app team』等、英数字なら何でも良いようです
・組織名は何ですか。
こちらも英数字なら何でも良いようです、サークル名などのチーム名を入力すればよいと思います
・都市名または地域名は何ですか。
『Yokohama』など、市町村名をローマ仮名で入力します
・都道府県名または州名は何ですか。
『Kanagawa』など、都道府県名をローマがなで入力します
・この単位に該当する2文字の国コードは何ですか。
日本の場合は『JP』と入力すれば良いようです
・CN=(姓名), OU=(組織単位名), O=(組織名), L=(市町村名), ST=(都道府県名), C=JPでよろしいですか。
問題なければ y と一文字入力してエンターキーを押します
・<(エイリアス名)>の鍵パスワードを入力してください
(キーストアのパスワードと同じ場合はRETURNを押してください):
エイリアスのパスワードを入力してください
こちらも忘れると最初からやり直しなので予めパスワードをメモしておいてください
尚、案内通りキーストアのパスワードと一緒でも良い場合はエンターキーを押してください
これで 3.で入力した (キーストアファイル名) のファイルが Packaging フォルダに作成されます
次に完成したファイルをプロジェクトで使用するように設定を変更します
5. VisualStudio の『ソリューションエクスプローラー』の『(プロジェクト名).Packaging』の中にある『project.properties』を開きます
すると中身は
# Project target
target=$(androidapilevel)
# Provide path to the directory where prebuilt external jar files are by setting jar.libs.dir=
となっていると思いますので、こちらの一番下に以下の内容を書き加えます
key.store=(キーストアファイルのフルパス)
key.store.password=(キーストアのパスワード)
key.alias=(エイリアス名)
key.alias.password=(エイリアスのパスワード)
(キーストアのフルパス)は、フォルダの区切りを『\』ではなく『/』にする必要があります
例:プロジェクト名が『DxLibSample_Android』で、Cドライブ直下にプロジェクトのフォルダがあり、キーストアファイル名が keystorefile.keystore の場合
key.store=C:/DxLibSample_Android/DxLibSample_Android.Packaging/keystorefile.keystore
(キーストアのパスワード)、(エイリアス名)、(エイリアスのパスワード)はそれぞれ手順3、手順4 で入力したものを入力してください
これで準備完了です
あとはビルドするだけですが、普通のビルドだと project.properties の変更を反映してくれなかったりするので、
Visual Studio のメニューの『ビルド(B)』→『ソリューションのリビルド(R)』をクリックして、ソリューション全体をリビルドした方が良いです
これで『Ant ビルドのターゲット』を『Release (リリース モード)』にしていても APKファイルが作成されるはずです・・・
もし不明な点がありましたらご質問ください m(_ _;m
|
Re: デバッグモード ( No.8 ) |
- 名前:むむむむ 日時:2018/02/06 11:18
ありがとうございます。ですがまたエラーが出てしまいました。
このエラーはエイリアス名などのうち間違えということはありますでしょうか。
コマンド""C:\Program Files(x86)\Microsoft Visual Studio\2017\Community\Apps\apache-ant-1.9.3\bin\ant.batrelease -Dout.final.file="C:Users
\(名前)\Desktop\(プログラム名)\(プログラム名)\(プログラム名).Packaging\ARM\Release\(プログラム名).apk""はコード1で終了しました
|
Re: デバッグモード ( No.9 ) |
- 名前:管理人 日時:2018/02/07 01:12
> このエラーはエイリアス名などのうち間違えということはありますでしょうか。
載せていただいた出力文章は『とりあえず実行は失敗しました』というだけのメッセージなので少し情報が不足しています・・・
> "C:Users\(名前)\Desktop\(プログラム名)\(プログラム名)\(プログラム名).Packaging\ARM\Release\(プログラム名).apk"
こちらのパスに全角文字は含まれていないでしょうか?
例えば、
"C:Users\山田\Desktop\TestProgram\TestProgram\TestProgram.Packaging\ARM\Release\TestProgram.apk"
↑のように (名前) の部分が全角文字が使用された『山田』や『太郎』などの場合、コンパイルが失敗する可能性があります
これは (プログラム名) に全角文字が含まれている場合も同様です
もし全角文字が含まれるパスになってしまっていた場合は、プロジェクトフォルダを C:\ 直下に移動して
"C:\(プログラム名)\(プログラム名)\(プログラム名).Packaging\ARM\Release\(プログラム名).apk"
となるようにしたり、(プログラム名)に全角文字を使用してしまっていた場合は面倒ですがプロジェクトを作成し直して試してみてください
あと、ビルドした際に VisualStudio の『出力』というタブにはより多くの情報が出力されていると思いますので、
よろしければ『出力』に出力された文章を丸ごと掲示板に貼り付けてください m(_ _)m
( もしかしたら量が多すぎて投稿に失敗してしまうかもしれませんが・・・ )
|
Re: デバッグモード ( No.10 ) |
- 名前:むむむむ 日時:2018/03/05 19:46
すみません、時間がだいぶ空いてしまいました。
全角文字は使っていないと思います、、、
出力のほうから出してきましたのでよろしくお願いいたします
2>------ すべてのリビルド開始: プロジェクト:(プロジェクト名).Packaging, 構成: Release ARM ------
2>ANDROID_HOME=C:\Program Files (x86)\Android\android-sdk
2>ANT_HOME=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Apps\apache-ant-1.9.3
2>JAVA_HOME=C:\Program Files\Java\jdk1.8.0_161
2>NDK_ROOT=C:\ProgramData\Microsoft\AndroidNDK64\android-ndk-r13b
2>ANDROID_NDK_HOME=C:\ProgramData\Microsoft\AndroidNDK64\android-ndk-r13b
2>Buildfile: C:\Users\(ユーザー名)\Desktop\(プロジェクト名)\(プロジェクト名)\(プロジェクト名).Packaging\ARM\Release\Package\build.xml
2>
2>-check-env:
2> [checkenv] Android SDK Tools Revision 25.2.5
2> [checkenv] Installed at C:\Program Files (x86)\Android\android-sdk
2>
2>-setup:
2> [echo] Project Name: (プロジェクト名).Packaging
2> [gettype] Project Type: Application
2>
2>-pre-clean:
2>
2>clean:
2> [delete] Deleting directory C:\Users\(ユーザー名)\Desktop\(プロジェクト名)\(プロジェクト名)\(プロジェクト名).Packaging\ARM\Release\Package\bin
2>[getlibpath] Library dependencies:
2>[getlibpath] No Libraries
2> [subant] No sub-builds to iterate on
2>
2>BUILD SUCCESSFUL
2>Total time: 1 second
2>Buildfile: C:\Users\(ユーザー名)\Desktop\(プロジェクト名)\(プロジェクト名)\(プロジェクト名).Packaging\ARM\Release\Package\build.xml
2>
2>-set-mode-check:
2>
2>-set-release-mode:
2>
2>-release-obfuscation-check:
2> [echo] proguard.config is ${proguard.config}
2>
2>-pre-build:
2>
2>-check-env:
2> [checkenv] Android SDK Tools Revision 25.2.5
2> [checkenv] Installed at C:\Program Files (x86)\Android\android-sdk
2>
2>-setup:
2> [echo] Project Name: (プロジェクト名).Packaging
2> [gettype] Project Type: Application
2>
2>-build-setup:
2>[getbuildtools] Using latest Build Tools: 25.0.3
2> [echo] Resolving Build Target for (プロジェクト名).Packaging...
2>[gettarget] Project Target: Android 5.0.1
2>[gettarget] API level: 21
2> [echo] ----------
2> [echo] Creating output directories if needed...
2> [mkdir] Created dir: C:\Users\(ユーザー名)\Desktop\(プロジェクト名)\(プロジェクト名)\(プロジェクト名).Packaging\ARM\Release\Package\bin
2> [mkdir] Created dir: C:\Users\(ユーザー名)\Desktop\(プロジェクト名)\(プロジェクト名)\(プロジェクト名).Packaging\ARM\Release\Package\bin\res
2> [mkdir] Created dir: C:\Users\(ユーザー名)\Desktop\(プロジェクト名)\(プロジェクト名)\(プロジェクト名).Packaging\ARM\Release\Package\bin\rsObj
2> [mkdir] Created dir: C:\Users\(ユーザー名)\Desktop\(プロジェクト名)\(プロジェクト名)\(プロジェクト名).Packaging\ARM\Release\Package\bin\rsLibs
2> [echo] ----------
2> [echo] Resolving Dependencies for (プロジェクト名).Packaging...
2>[dependency] Library dependencies:
2>[dependency] No Libraries
2>[dependency]
2>[dependency] ------------------
2> [echo] ----------
2> [echo] Building Libraries with 'release'...
2> [subant] No sub-builds to iterate on
2>
2>-code-gen:
2>[mergemanifest] Merging AndroidManifest files into one.
2>[mergemanifest] Manifest merger disabled. Using project manifest only.
2> [echo] hasCode = false. Skipping aidl/renderscript/R.java
2>
2>-pre-compile:
2>
2>-compile:
2> [echo] hasCode = false. Skipping...
2>
2>-post-compile:
2>
2>-obfuscate:
2>
2>-dex:
2> [echo] hasCode = false. Skipping...
2>
2>-crunch:
2> [crunch] Crunching PNG Files in source dir: C:\Users\(ユーザー名)\Desktop\(プロジェクト名)\(プロジェクト名)\(プロジェクト名).Packaging\ARM\Release\Package\res
2> [crunch] To destination dir: C:\Users\(ユーザー名)\Desktop\(プロジェクト名)\(プロジェクト名)\(プロジェクト名).Packaging\ARM\Release\Package\bin\res
2> [crunch] Crunched 0 PNG files to update cache
2>
2>-package-resources:
2> [aapt] Creating full resource package...
2>
2>-package:
2>[apkbuilder] Current build type is different than previous build: forced apkbuilder run.
2>[apkbuilder] Creating (プロジェクト名).Packaging-release-unsigned.apk for release...
2>
2>-post-package:
2>
2>-release-prompt-for-password:
2>
2>-release-nosign:
2>
2>-release-sign:
2> [echo] Signing final apk...
2>
2>BUILD FAILED
2>C:\Program Files (x86)\Android\android-sdk\tools\ant\build.xml:1135: The following error occurred while executing this line:
2>C:\Program Files (x86)\Android\android-sdk\tools\ant\build.xml:1147: The security strength of SHA-1 digest algorithm is not sufficient for this key size
2>
2>Total time: 6 seconds
2>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\MDD\Android\V150\Android.Common.targets(396,5): error MSB3073: コマンド ""C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Apps\apache-ant-1.9.3\bin\ant.bat" release -Dout.final.file="C:\Users\(ユーザー名)\Desktop\(プロジェクト名)\(プロジェクト名)\(プロジェクト名).Packaging\ARM\Release\(プロジェクト名).apk"" はコード 1 で終了しました。
2>プロジェクト "(プロジェクト名).Packaging.androidproj" のビルドが終了しました -- 失敗。
========== すべてリビルド: 1 正常終了、1 失敗、0 スキップ ==========
|
Re: デバッグモード ( No.11 ) |
- 名前:管理人 日時:2018/03/06 01:25
出力を貼り付けていただきありがとうございます
どうやらこちらでエラーが発生しているようです
2>BUILD FAILED
2>C:\Program Files (x86)\Android\android-sdk\tools\ant\build.xml:1135: The following error occurred while executing this line:
2>C:\Program Files (x86)\Android\android-sdk\tools\ant\build.xml:1147: The security strength of SHA-1 digest algorithm is not sufficient for this key size
『The security strength of SHA-1 digest algorithm is not sufficient for this key size』は機械翻訳すると
『SHA-1ダイジェストアルゴリズムのセキュリティ強度はこのキーサイズでは不十分です』となっていて、
少し調べたところ keytool.exe で署名ファイルを作成する際に jdk のバージョンによってはオプションに -keysize 1024 を加えないと
上記のエラーが発生するとのことです
なので、keytool.exe を実行する際のオプションに -keysize 1024 を加えた上で再度署名ファイルを作成してみてください
"C:\Program Files (x86)\Java\jdk1.8.0_161\bin\keytool.exe" -genkey -v -keystore (キーストアファイル名) -alias (エイリアス名) -validity 10000 -keysize 1024
ちなみに私が使用した jdk のバージョンは上記の通り 1.8.0_161 ですが、むむむむさんが署名ファイルを作成する際に
使用された jdk のバージョンは幾つでしょうか?
|