Skip to content
This repository has been archived by the owner on Apr 12, 2023. It is now read-only.

データがリセットされる恐れがある問題へのワークアラウンドを追加 #20

Closed
wants to merge 1 commit into from

Conversation

ypresto
Copy link

@ypresto ypresto commented Feb 5, 2021

Purpose

#16 (comment) に記載したように、iOSアプリが突然リセットされてしまう問題は、Xamarin.FormsのApplication.Current.Propertiesの保存時(SavePropertiesAsync())のファイルの扱いに問題がある(バックアップを取得していないため、書き込み中にアプリが落ちるとデータが消えてしまう、実際はtmpファイルに残っている)ことが原因の可能性があるので、tmpファイルから復元するコードを追加します。

一度初期画面に移行してしまった場合でも、規約同意ボタンを押していなければtmpファイルが残っているため復帰します。今気づかぬまま止まってしまっている人もアプリ更新で回復することが期待できます。

Xamarin.Formsのissueも起票済みです
xamarin/Xamarin.Forms#13676

なお、ログ情報を多数見たわけではないので、必ずしもこれが原因として確定したわけではありません(また、ファイルの削除そのものがログに残るわけではないので、ログがいくつあっても確定には至らないです)。
可能であれば他のログ情報も共有していただければ、もう少し確信を持てるかと思われます。
(ログ上でexistsUserData: Falseとなる前に、GetExposureNotificationConfigがStart(またはdownload成功)のままEndになっていないことが確認できれば、この事象が原因の可能性が高まります)

Does this introduce a breaking change?

[ ] Yes
[x] No

Pull Request Type

What kind of change does this Pull Request introduce?

[x] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Documentation content changes
[ ] Other... Please describe:

How to Test

#16 (comment)
↑こちらに設定手順を記載しました。現象の再現手順も書かれています。

修正が機能していることを下記の手順で確認しました。

  1. iOSシミュレーターで起動して初期設定を済ませます
  2. アプリを再起動してデータが消えていないことを確認します
  3. COCOA 突如として初期化される問題(UserDataが壊れている) #16 (comment) に書かれた手順で該当ファイルが消えた状態を再現します(アプリは終了されます)
  4. 1順目はそのままテストし、2順目はRecoverLostPropertiesFile()の呼び出しをコメントアウトしてから一度起動して初期設定画面が開くことを確認(この際空ファイルが作成されます)してからコメントアウトを元に戻してください
  5. アプリを起動して、初期設定画面に移行しないことを確認します
  6. ログにファイルを復元した旨のwarningが記録されていることを確認します

@ypresto ypresto changed the title Application.Current.Propertiesが消えてしまう恐れがある問題へのワークアラウンドを追加 [iOS] リセットされる恐れがある問題へのワークアラウンドを追加 Feb 6, 2021
@ypresto ypresto changed the title [iOS] リセットされる恐れがある問題へのワークアラウンドを追加 データがリセットされる恐れがある問題へのワークアラウンドを追加 Feb 6, 2021
@amay077
Copy link
Contributor

amay077 commented Mar 17, 2021

現在配布されているアプリ(Ver 1.2.2)では、本PRとは異なるアプローチで改善が行われているかと思いますので、本PRは Close されてよいのではないかと思います > オーガナイザーの方。

マージされる/されないに関わらず、PR に対する何らかのリアクションがあると、貢献欲も UP するのではないかと思います。
PR へのタグ付け、あるいはコメントでも良いと思います。

@b-wind
Copy link

b-wind commented Mar 18, 2021

amay077 さんと同意見で v1.2.2 では直接影響の無い部分では無いかと。
再び課題として上がった場合に再オープンするなり、再度PRを出し直して頂くというのが適当では無いかと。

@keiji
Copy link
Collaborator

keiji commented Mar 19, 2021

ありがとうございます。ぼくも元Issueのコメントとcloseされたことは見ていたのですが、こちらをcloseするのを失念していました。申し訳ないです。

こちらのPRはcloseしますね。
元Issueから派生した問題として #42 というPRもぼくが出していて、開発チームの方でも対応中ですので、こちらにも何かあれば是非ご意見をうかがえればと思います。

@keiji keiji closed this Mar 19, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants