fc2ブログ

記事一覧

2019年8月以降の Google Play Console での公開方法 -Android9の対応方法- | Xamarin.Android


今回は Google Play Console で2019年8月1日以降に公開する方法をご紹介いたします。今現在、第3弾の新しいアプリの公開準備をしておりますが、久々の公開という事もあり、様々な変更点がありましたので覚え書きしたいと思います。


前提条件
・Windows10 Pro 64Bit 1803
・Visual Studio 2017 Community v15.8
・Xamarin 4.11.0.776 (NuGet Xamarin.Forms 2.4.0.282)



1.ターゲットフレームワーク

これは皆さんご存知だと思いますが、2018年以降毎年ターゲットフレームワークは上げていくのがマストとなっています。今年は2019年8月以降に新規公開をするアプリについては Android 9.0 Pie に設定する必要があります。
※既存のアプリに関しては2019年11月まで猶予があります。
※最小 Android バージョンについては任意のバージョンのままで大丈夫です。

xamarin_android_release_2019_00.png



2.Android9対応

ターゲットフレームワークを変更したことにより、Android9ユーザーのエラーが急増しました。以下のようなエラーが Google Play Console で検出しました。これはForegroundService (Android7 以前の BackgroundService から移行されました)にパーミッションが必要になったようです。

java.lang.RuntimeException: 
  at android.app.ActivityThread.handleCreateService (ActivityThread.java:3621)
  at android.app.ActivityThread.access$1500 (ActivityThread.java:201)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1702)
  at android.os.Handler.dispatchMessage (Handler.java:106)
  at android.os.Looper.loop (Looper.java:193)
  at android.app.ActivityThread.main (ActivityThread.java:6801)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:493)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:858)

Caused by: java.lang.SecurityException: 
  at android.os.Parcel.createException (Parcel.java:1950)
  at android.os.Parcel.readException (Parcel.java:1918)
  at android.os.Parcel.readException (Parcel.java:1868)
  at android.app.IActivityManager$Stub$Proxy.setServiceForeground (IActivityManager.java:5174)
  at android.app.Service.startForeground (Service.java:695)
  at com.CompanyName.AppName.BackgroundService.n_onCreate (Native Method)
  at com.CompanyName.AppName.BackgroundService.onCreate (BackgroundService.java:40)
  at android.app.ActivityThread.handleCreateService (ActivityThread.java:3609)

Caused by: android.os.RemoteException: 
  at com.android.server.am.ActivityManagerService.enforcePermission (ActivityManagerService.java:9376)
  at com.android.server.am.ActiveServices.setServiceForegroundInnerLocked (ActiveServices.java:1199)
  at com.android.server.am.ActiveServices.setServiceForegroundLocked (ActiveServices.java:880)
  at com.android.server.am.ActivityManagerService.setServiceForeground (ActivityManagerService.java:20697)
  at android.app.IActivityManager$Stub.onTransact$setServiceForeground$ (IActivityManager.java:10466)


ForegroundServiceを実装しているアプリには、AndroidManifest.xmlに以下の項目が必要になりました。
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />



3.64Bit対応

サポートされているアーキテクチャで 64Bit に該当するものにチェックを付けてビルドしなければなりません。つまりは arm64-v8a にチェックが入っていることが必須となります。

xamarin_android_release_2019_04.png


詳しくは上記画像をクリックして Google Developer サイトにてご確認ください。
以下の設定のようにチェックを入れると正しく公開できます。

xamarin_android_release_2019_03.png


正しく64Bitのアーキテクチャにチェックが付けられていないままアーカイブして Google Play Console にアップロードすると、公開前にエラーとしてはじかれてしまいます。

xamarin_android_release_2019_06.png


また、armeabi にチェックが入っているとアーカイブで失敗しました。

This ABI ('armeabi') is deprecated and will be removed in the next release. Please update your project properties.

xamarin_android_release_2019_05.png



4.パッケージの署名

これは Visual Studio の不具合なのか、設定不備なのか切り分けは付けれていませんが、Androidパッケージへの署名の設定を行うと以下のようなエラーがでてアーカイブすることができません。

MSB6006: "java.exe"はコード2を伴って終了しました。

xamarin_android_release_2019_01.png


上記署名画面のチェックが有効で、署名の設定がされていると、以下の画面の様にエラーが表示されてアーカイブが成功しません。手動でキーストアファイルを選択してパスワードを入力して Google Play Console へアップロードします。

xamarin_android_release_2019_02.png



5.必須項目の入力

Google Play Console のサイドメニューに表示されているチェックマークが緑色で点灯していることを確認します。一つでもチェックが灰色のままでは公開ができません。私の場合はAPIの最適化がされていない旨の警告メッセージが表示されていましたが、全く関係ありませんでした。

xamarin_android_release_2019_08.png


以上で、2019年8月以降に Google Play Console でアプリを公開することができました。
尚、私の場合はまだ非公開テストを行っており、正式リリースはしておりません。
※2019年9月18日に正式リリースを行いました。





最後までお読みいただきありがとうございます。
当ブログの内容をまとめた Xamarin逆引きメニュー は以下のURLからご覧になれます。
https://itblog.dynaspo.com/blog-entry-81.html


関連記事

コメント

コメントの投稿

※名前とタイトルが入力されていないコメントでは他のコメントとの区別ができません。

 入力されていないコメントには返信しませんのであらかじめご了承くださいませ。

※ニックネームでも良いので必ずご入力ください。

    

※必ずご入力ください。

    
    

※必ずご入力ください。

※技術的な質問には環境やエラーについて正確かつ詳細にお教えください。

・正確なエラーの内容

・Windowsのバージョン番号

・Visual Studioのバージョン

・機器の型番

・アプリやソフトのバージョン

    

カテゴリ別記事一覧

広告

プロフィール

石河 純


著者名 :石河 純
自己紹介:素人上がりのIT技術者。趣味は卓球・車・ボウリング

IT関連の知識はざっくりとこんな感じです。
【OS関連】
WindowsServer: 2012/2008R2/2003/2000/NT4
Windows: 10/8/7/XP/2000/me/NT4/98
Linux: CentOS RedHatLinux9
Mac: macOS Catalina 10.15 / Mojave 10.14 / High Sierra 10.13 / Sierra 10.12 / OSX Lion 10.7.5 / OSX Snow Leopard 10.6.8
【言語】
VB.net ASP.NET C#.net Java VBA
Xamarin.Forms
【データベース】
Oracle 10g/9i
SQLServer 2016/2008R2/2005/2000
SQLAnywhere 16/11/8
【BI/レポートツール】
Cognos ReportNet (IBM)
Microsoft PowerBI
ActiveReport (GrapeCity)
CrystalReport
【OCX関連】
GrapeCity InputMan SPREAD MultiRow GridView
【ネットワーク関連】
CCNP シスコ技術者認定
Cisco Catalyst シリーズ
Yamaha RTXシリーズ
FireWall関連
【WEB関連】
SEO SEM CSS jQuery IIS6/7 apache2

休みの日は卓球をやっています。
現在、卓球用品通販ショップは休業中です。