Open teriha8t8 opened 4 years ago
以下、調査用のメモ書きです。
利用規約等のページのスキップは UserDataService::IsExistUserData で、UserDataModel のある/なしでチェックしているのですが、これが SecureStorage に保存されています。
で、このファイルが Android の自動バックアップで書き戻されると、アンインストール後の再インストールでも UserDataModel があることになって、スキップになるかもしれません。
Xamarin.Essentials:セキュリティで保護されたストレージ - Xamarin | Microsoft Docs https://docs.microsoft.com/ja-jp/xamarin/essentials/secure-storage?WT.mc_id=docs-ch9-jamont&tabs=android
そこで、上記のように AndroidManifest.xml にバックアップをしないように android:allowBackup="false" を付けるらしいです。
この設定は、以下に 7/21 に入っています。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="5" android:versionName="APP_VERSION" package="APP_PACKAGE_NAME" android:installLocation="auto">
<uses-sdk android:minSdkVersion="23" android:targetSdkVersion="29" />
<application android:allowBackup="false" android:debuggable="true" android:label="@string/app_name" android:icon="@mipmap/ic_launcher">
</application>
<uses-feature android:name="android.hardware.bluetooth_le" android:required="true" />
<uses-feature android:name="android.hardware.bluetooth" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
</manifest>
という訳で、これが原因という訳ではなさそう。何だろう。
この現象が起きたのは7月末。 すもさんがやったんですが、正確な期日は覚えてないでしょうね。 私が友人2人にやってもらって同じことが起きたのが8月2日。 なのでその変更は関係なさそうですね。
多分、何かのタイミングで SecureStorage 対象のファイルが残ってしまって(単なるローカルファイルなので)、読み込める状態になって UserDataService::IsExistUserData() でスキップされていると思うんですけど。このあたりは、もうちょっと調べないとわからなそう。
Androidでインストールテストをしたのは 8月1日です。 このツイートに4パターン検証をしました。
https://twitter.com/SumoManned/status/1289520279597719554?s=19
その後、実機デバッグなどを行っている中で EN APIが叩けずに落ちる事が分かりました。 が、「利用規約、プライバシーポリシーを許諾して初回落ちた後に再度アプリを立ち上げると アプリのHOMEが直ぐに表示される」という挙動になりました。
> UserDataService::IsExistUserData() でスキップされていると思うんですけど。
私もUserDataが正しく削除されずに2回目以降は利用規約、プライバシーポリシーをスキップしていると考えサポートに問い合わせをしてみました。返信はまだありません。
私のTwitterで本番アプリを利用した実験でも 初回にBluetoothをOFFでインストールした為、 デバッグで実行した時と同じ状態になっていた物と想像しています。
確かに、私も
その後、実機デバッグなどを行っている中で EN APIが叩けずに落ちる事が分かりました。 が、「利用規約、プライバシーポリシーを許諾して初回落ちた後に再度アプリを立ち上げると アプリのHOMEが直ぐに表示される」という挙動になりました。
と同じ状態になった覚えがあります。そうすると、何かのはずみで EN api が叩けなかったときに、利用規約等がスキップされる状態になってしまうのかもしれません。
ツイートを見ると、最終コミット以前のものが Google Play にアップされているようですね。 この情報だけでも結構助かります。
アプリサポートから返事が来ました。 開発チームに伝えて調査するとの事でした。
問題が有りそうな時のテンプレですが アプリに早く反映される事を願っておきます。。。
Androidはアプリのアンインストール、再インストールを連続して行ったら、アプリの説明、利用規約の同意、プラポリの同意をすっ飛ばして権限許諾(Exposure Notification機能の有効化)だけを確認してインストールを完了する。
view0(アマビエの画面)がでた後、view1〜6画面はださずいきなりアプリのホーム画面で権限許諾を確認してインストールを完了する。
Google開発サービスが各項目に同意したユーザーデータを保持しているためと思われるが、こんなインストール方法はアカンでしょ…。
AndroidはWi-Fi接続でのインストールに問題はない。 権限拒否をやった場合、どうなるかは未検証。