-
Notifications
You must be signed in to change notification settings - Fork 1
非公式FAQ
システム、アプリに不具合があるのはよくあること。にもかかわらず厚労省は不具合情報をださないので、不具合が修正されるまで不具合をうまく回避しながら接触確認アプリを運用するためのノウハウ集としてこのページを作成しましたが、アプリは修正容易なバグですら夏から放置されたままなのが実情です。不具合が修正されるまでのつなぎのページとしての役割は持ち得ませんので、このページは一部を残して閉じます。
現在、このシステムの根幹に関わるバグ(突合処理漏れ)が起きることは、ユーザーがどう対処しても完全に回避できません。突合処理の遅れも簡単に発生します。そして接触検出(算出)不全のバグ、他のバグといろいろありますが、エンドユーザーにはどうしようもないです。
接触確認アプリがEN2 API(Exposure Notification Expressモード)に対応すれば、再開させるかもしれませんが、EN1 API(Exposure Notification System)対応である限り閉鎖します。
2021/01/16
この不具合の回避方法は見当たりませんので、修正版がでるまで諦めてください(運用開始時、iOS13.5からある不具合ですので修正の見込みはないと思っていた方がいいと思いますけど)。アプリ最新バージョンには動作ログを取得して厚労省サポートにメールする機能がつけられていますので、この不具合にがまんならないなら起きるたびにサポートにメールしてください。
年月日使用日数がリセットされても接触検出機能に影響はでないと思われます。接触確認アプリは「接触ログ」の記録が継続されていることが最重要であり必須です。使用日数のリセットが起きても「接触ログ」の記録は停止することはありませんので、接触検出に影響はでないと思われます。
接触ログの記録が停止している場合は、アプリを立ち上げたときに「COVID-19接触通知機能が無効の状態です」とメッセージがでます。
この不具合の回避方法は見当たりませんので、修正版がでるまで諦めてください(運用開始時、iOS13.5からある不具合ですので修正の見込みはないと思っていた方がいいと思いますけど)。アプリ最新バージョンには動作ログを取得して厚労省サポートにメールする機能がつけられていますので、この不具合にがまんならないなら起きるたびにサポートにメールしてください。
アプリが初期化された場合は、長期間バックグランドタスク(突合処理)が停止していた可能性が高いです。接触チェック記録一覧を確認してください。接触チェック記録がまったくない場合は、突合処理(接触検出タスク)が2週間以上なかったことを意味します。
バックグラウンドタスク長期停止中に接触ログの記録が継続していたか停止していたかを知るすべはありません。数日間バックグランドタスクが停止しても接触のログ記録の状況は「使用中」のままですから、長期間バックグランドタスクが停止しても接触ログの記録は継続していると推察します。
アプリが初期化された場合は、サーバーにある有効診断キーはすべてダウンロードされます。よって、接触検出のタイミングは遅れるものの直近2週間の突合処理は行われます。
iPhoneの通知設定が「プレビューを表示しない」になっていると「1件の通知」としか表示されません。 詳細な通知の出し方を把握していないなら「プレビューを表示する」にしてください。
陽性者と接触があったと判定がでると、接触確認アプリCOCOA内には「○件」、一覧では「○個」と表示されます。 これらは接触人数を意味しません。 あくまでも診断キーと端末内の接触ログの一致数を表示していますので、「○人」と表示することはありません。
照合結果ファイル一覧(Androidは確認ファイル一覧またはアプリからの(略)一覧、iOSは接触チェック記録一覧)の日時を見て、上記のようにTweetする方が後を絶ちませんが、照合結果ファイルの日時はOSが診断キーと端末内の接触ログの照合処理を実行した日時であって、あなたが誰かと接触した日時ではありません。
また、照合結果ファイル詳細に記載されているキーの数を見て、「外出してないのにこんなに接触なんかするわけないじゃん」とTweetする方もいますが、キーの数はあなたが誰かと接触した数ではありません。キーの数は陽性登録をしてくれた方の診断キーです。
COCOA内に表示される接触日にも心当たりが無い方も散見されていますが、これはCOCOAの接触日の表示方法に問題があるかもしれません。 COCOA内の接触日表記は「2020年〇〇月△△日」と表記されますが「表記されている日~翌日9時頃までに接触の可能性があった」と考えた方が良いと思われます。 例えば、COCOAに表記されている日が休日でどこにも出かけていない場合でも翌日の9時までを含めると通勤時間帯等に該当する可能性があります。
これはダウンロードされるデータに記載されている開始日と終了日が世界標準時(UTC)で扱われている事が関係しています。 世界標準時(UTC)の2020年9月1日0時~2020年9月2日0時ですが、 日本時間(JST)にすると2020年9月1日9時~2020年9月2日9時となります。しかし、COCOA内の表記はあくまでも「1日」の表記の為、「2020年9月1日」となり ユーザは日本時間(JST)の「2020年9月1日9時~2020年9月2日9時」の間に接触があったと考える必要があるのに「2020年9月1日0時から24時間」で考えてしまい 「COCOA内に表示される接触日にも心当たりが無い」という状況になっているかもしれません。
アプリ内の日付表記に関してサポートに問い合わせたところ2020/9/13に以下の回答のみ。。
今後のアプリ改善の参考にする。
iOS13.7にすれば接触確認アプリCOCOAのインストールは不要という記事がありますが、9月2日現在、日本はExposure Notification Express機能には対応していませんので、接触確認アプリCOCOAのインストールは必須です。診断キーの受信と処理番号の入力のために接触確認アプリはインストールしてください。
iPhone は一致したキーの数があってもアプリに結果を反映しない障害が続いてるので、ユーザーは通知があると照合結果ファイル(接触チェックの記録)詳細を見て、「一致したキーの数」の有無を確認するしかありません。が、ファイル数が多いのでなにかと手間。これを簡易にチェックするショートカット『接触確認アプリ「COCOA」ログ解析 ver.1.6』がありますので、ショートカットがわかっている方は自衛策としてインストールを推奨。(あくまでも自己責任。自己責任を取れない人には薦めません)
(ショートカット作成者に感謝。ありがとうございます。)
ショートカットの設定で「信頼されていないショートカットを…」をONにしておく。(ショートカットをインストールしてない人、このトグルスイッチがない人はネット検索して自己解決してください)
↓
URLにアクセス
https://www.icloud.com/shortcuts/88245c529c7c436cbb09bf25120f9090
↓
「ショートカットを入手」をタップ
↓
ショートカットが表示されるので下までスクロールして「信頼されていないショートカットを追加」タップ
(自動的にインストールされます。iOS13.6用をインストールしている人は置換できます。)
接触確認アプリ「COCOA」ログ解析ショートカットの使い方
「接触チェックの記録」画面を開く
iOS13.7
設定→接触通知→接触のログ記録の状況 使用中→接触チェックの記録→
↓
「接触チェックの記録を書き出す」をタップ (最下位にあります)
↓
接触確認アプリ「COCOA」ログ解析 をタップ
ショートカット稼働後、結果ファイルがQuickKLookで表示されます
左上の「完了」をタップすると、ver1.6はコピー機能も追加されています。
一致したキーの数があれば、結果に「有り」とだしてくれるので、手っ取り早いです。(ホント、作成者に感謝します。)
ただ、ここでわかるのは陽性登録者の診断キーと端末内の接触ログの一致があったことだけです。
ここで表示されるファイル日時は、陽性者と接触した日時でないことを理解してご利用ください。
プライベートと社用の2台でアプリを運用している場合でも通知を受け取った際には処理番号は1つだけ発行されます。
片方だけに通知が来ていれば通知が来た方の端末で陽性登録をするしかありませんが、
両方同時に通知が来た場合、陽性登録をする端末を各自で判断する必要があります。
自身の行動を振り返りどちらの端末の方がよりリスクの高そうな場所で利用していたかを検討して陽性登録する端末を決めるしかなさそうです。
2020/9/8時点のアプリサポートからの回答は
現状は1人1つの処理番号につき1端末のみに対応。
1人で複数台運用は今後、開発の参考する。
との事でした。
関連 : cocoa-issues#20
iOS13.6以前ではシステムが違いますのでこの現象はありません。不具合が見られるのはiOS13.7以降です。
接触チェック記録が同じタイムスタンプで2本ある場合、Hash値が足りない(突合処理漏れが起きている)ことがあります。
1本の接触チェック記録ファイル詳細にHash値0個、もう1本の接触チェック記録ファイル詳細にHash値13個あれば問題はありません。これ以外の組み合わせになっている場合は、突合処理漏れが起きたと思われます。
この不具合も回避する方法はありません。
iOSは13.7から接触チェック記録の出力様式を変更しました。そしてiOS13.7以降、接触チェック記録が重複するとき、Hash値0個と13個になるケースが発生。
これはiOSが初回突合処理に失敗してHash値0個の接触チェック記録を出力、再度突合処理してHash値13個の接触チェック記録を出力。
つまり、iOSが突合処理を2回やったことで正常に処理されてるんだろう…と思ってました。
が、その後変則的なケースがでてきて、正常に処理されていない可能性が浮上。
が、こんなのそう簡単に検証できるわけもなく、不具合現象は他にも多発していましたので、検証作業はしないまま。
海外在住に「接触チェック記録は重複する?」って聞いてみたらそんな現象はないって言うし…。やっぱり接触確認アプリの問題みたいで、ログ機能もついたから重い腰上げてログを集めて(夏からずっとごちゃごちゃやってるで協力をお願いすると集まる)検証作業に着手したら・・・あ゛あ゛っっっっ。内部処理ズタボロ・・・。
中村さんが8月に指摘していた問題。
https://twitter.com/nakayoshix/status/1290809659901784064?s=20
コレだ…。非同期の割り込みが内部処理をズタボロにしていて接触チェック記録が2本出力されていることが判明。
アプリのコードを見るとTEKファイル(ZIP)のダウンロードは1回(1ループ処理)しか起きないように記述されていますが、実際にはTEKファイルのダウンロードの重複(ネスト)が発生しています。
この現象が起きたとき、アプリもiOSもエラーリカバリーしません。よって、TEKファイルのダウンロードが重複するとその後の処理は正常に行われません。
接触チェック記録が重複しているとき、結果が正しく出ることはない(でないと言っていい…)と言えます。
(続きはまたあとで…書くかもしれない…)
iOSバージョンが最新でないとき、バックグラウンドタスクは停止しがちです。13.6までは最新iOSバージョンで運用していればバックグランドタスクが停止する現象は認められませんでしたが、13.7以降では最新バージョンであってもしばしば停止することがあります。
バックグラウンドタスクが48時間以上停止したとき(接触チェック記録が2日連続で生成されていないとき)、その後長く停止する傾向にあります。
バックグラウンドタスクが長く停止したときは再開しても突合処理漏れ(接触検出漏れ、Hash値抜け)が起きやすいです。
バックグラウンドタスクが停止する条件は不明ですので、タスク停止による突合処理漏れを回避したいなら、毎日アプリを立ち上げてください。
アプリを毎日立ち上げてバックグランドタスクを呼び出しても、18.の接触チェック記録の重複現象による突合処理漏れは起きることはあります。
iOS13.7では「利用可能の通知」が非アクティブ状態だとバックグランドタスクが異常になりやすいです。
「利用可能の通知」はOFFが構いませんが、スイッチはアクティブ(スイッチがグレートーンになっていたら非アクティブです)にしておくことを推奨します。
「利用可能の通知」をアクティブにするには位置情報サービスをオンにするだけでなく、システムサービス中の「位置情報に基づく通知」と「利用頻度の高い場所」をオンにしておく必要があります。