ユーザーが連絡先のアクセス許可を変更すると、iOS6でアプリがクラッシュしました

アレクセイブリノフ

アドレス帳を使用するアプリがあります。iOS 6で実行している場合、ユーザーがアドレス帳へのアクセスを必要とする操作を行うと、このコードが実行されます。

if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusNotDetermined)
{
    ABAddressBookRef addressBookRef = ABAddressBookCreateWithOptions(NULL, NULL);

    ABAddressBookRequestAccessWithCompletion(addressBookRef, ^(bool granted, CFErrorRef error)
    {
        if (granted)
        {
            showContactChooser();
        }
    });

    CFRelease(addressBookRef);
}
else if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusAuthorized)
{
    showContactChooser();
}
else
{
    showAccessDeniedAlert();
}

これは完全に機能します。連絡先情報を読み取ることができ、ユーザーがアクセスを拒否すると、アプリはそれに応じて反応します。

ただし、ユーザーが次の場合:

  1. アプリで連絡先へのアクセスを許可し、
  2. アプリを終了し、
  3. [設定]-> [プライバシー]-> [連絡先]に移動し、アプリの連絡先アクセスを無効にします。
  4. アプリを実行し、
  5. アプリがバックグラウンドで実行されている間、設定に移動し、アプリの連絡先アクセスを有効にします。

アプリmain()は、例外情報や意味のあるスタックトレースなしで、すぐに内部クラッシュします。「すべての例外」と[NSException raise]ブレークポイントをオンにしてみましたが、それ以上の情報は得られませんでした。

起動時にアプリが上記のコードを実行しなくても、クラッシュを再現できます。

ここで何が起こっているのですか?サブスクライブする必要があるコールバックはありますか?

rmaddy

私は自分のアプリでこれを見ました。そして私は他の人もこれを報告しているのを見ました。これは意図的な動作であると確信しています。OSは、プライバシー権限の変更に反応するバックグラウンドアプリをすべて強制終了します。Appleはこれに大ハンマーのアプローチを取っているようだ。クラッシュではありません(デバッガーで実行するとクラッシュするように見える場合があります)。アプリは他のさまざまな理由で終了します。これを理由のリストに追加します。これにより、アプリを完全に再起動したときにアプリの状態を復元するための適切な作業を行う理由が増えます。

この動作は、連絡先、写真、マイク、カレンダー、カメラなど、さまざまなプライバシー設定のすべてに適用されることに注意してください。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Android 6.0の連絡先から連絡先を選択した後、アプリケーションがクラッシュしました

分類Dev

マシュマロで連絡先リストへのアクセスが変更されましたか?

分類Dev

許可や質問なしにiOSの連絡先リストにアクセスする-プライバシーの問題

分類Dev

SSDT-ユーザーのアクセス許可を変更しませんが、テーブルのアクセス許可を変更しますか?

分類Dev

TFSグループのアクセス許可:グループ内のすべてのユーザーが、グループによって作成されたブランチを強制的にプッシュできるようにします

分類Dev

GoogleOAuth-ユーザーがすでにアプリケーションへのアクセスを許可していることを確認する方法

分類Dev

一部のプラグインを使用してデバイスの連絡先にアクセスすると、ログなしでアプリがクラッシュします

分類Dev

連絡先にアクセスしようとすると__CRASHING_DUE_TO_PRIVACY_VIOLATION__でアプリがクラッシュする

分類Dev

連絡先にアクセスしようとすると__CRASHING_DUE_TO_PRIVACY_VIOLATION__でアプリがクラッシュする

分類Dev

連絡先にアクセスしようとすると__CRASHING_DUE_TO_PRIVACY_VIOLATION__でアプリがクラッシュする

分類Dev

PrepareForSegueは機能しますが、宛先の変数にアクセスするとアプリケーションがクラッシュします

分類Dev

設定でアクセス許可のアドレス帳を変更するとアプリがクラッシュする

分類Dev

React Native:ユーザーが位置情報の許可を拒否した後にAndroidアプリがクラッシュする

分類Dev

Webビューのサイズを変更するとアプリがクラッシュしました

分類Dev

アプリが連絡先データに読み取り専用でのみアクセスする場合、連絡先データを読み取る許可を求める必要がありますか?

分類Dev

ポップオーバーで連絡先への追加をキャンセルすると、UItextViewがクラッシュします

分類Dev

ユーザーがObjectivecでプッシュ通知を許可した場合にありがとうのアラートを表示する方法

分類Dev

iOSアプリがカメラへのアクセス許可をユーザーに要求しないのはなぜですか?

分類Dev

ABAddressBookRefを使用して電話帳から連絡先を取得しているときにアプリケーションがクラッシュする

分類Dev

連絡先の許可をリクエストしているとアプリが言うのはなぜですか?

分類Dev

ページの読み込みが完了する前にユーザーがセルをタップすると、Firebaseを搭載したiOSSwiftアプリが「インデックスが範囲外」でクラッシュする

分類Dev

ユーザーがクリックしたときにアニメーションで背景を変更する

分類Dev

samba-別のユーザーのホームディレクトリで共有するときにアクセス許可が拒否されました

分類Dev

samba-別のユーザーのホームディレクトリで共有するときにアクセス許可が拒否されました

分類Dev

コルドバ-連絡先の許可が原因でAndroidアプリが起動時にクラッシュする

分類Dev

ドライブのアクセス許可を変更しましたが、Windowsバックアップに「アクセスが拒否されました」と表示されます。読み取りアクセスを許可するにはどうすればよいですか?

分類Dev

CXCallObserver が正しく動作せず、アプリを複数実行するとアプリがクラッシュする (連絡先の画像データが含まれている場合)

分類Dev

PowerShellでWinSCP.NETアセンブリを使用すると、「ファイル '...'のアップロードは成功しましたが、アクセス許可やタイムスタンプの設定中にエラーが発生しました」

分類Dev

iOS8で連絡先リストを取得し、アプリをクラッシュさせる

Related 関連記事

  1. 1

    Android 6.0の連絡先から連絡先を選択した後、アプリケーションがクラッシュしました

  2. 2

    マシュマロで連絡先リストへのアクセスが変更されましたか?

  3. 3

    許可や質問なしにiOSの連絡先リストにアクセスする-プライバシーの問題

  4. 4

    SSDT-ユーザーのアクセス許可を変更しませんが、テーブルのアクセス許可を変更しますか?

  5. 5

    TFSグループのアクセス許可:グループ内のすべてのユーザーが、グループによって作成されたブランチを強制的にプッシュできるようにします

  6. 6

    GoogleOAuth-ユーザーがすでにアプリケーションへのアクセスを許可していることを確認する方法

  7. 7

    一部のプラグインを使用してデバイスの連絡先にアクセスすると、ログなしでアプリがクラッシュします

  8. 8

    連絡先にアクセスしようとすると__CRASHING_DUE_TO_PRIVACY_VIOLATION__でアプリがクラッシュする

  9. 9

    連絡先にアクセスしようとすると__CRASHING_DUE_TO_PRIVACY_VIOLATION__でアプリがクラッシュする

  10. 10

    連絡先にアクセスしようとすると__CRASHING_DUE_TO_PRIVACY_VIOLATION__でアプリがクラッシュする

  11. 11

    PrepareForSegueは機能しますが、宛先の変数にアクセスするとアプリケーションがクラッシュします

  12. 12

    設定でアクセス許可のアドレス帳を変更するとアプリがクラッシュする

  13. 13

    React Native:ユーザーが位置情報の許可を拒否した後にAndroidアプリがクラッシュする

  14. 14

    Webビューのサイズを変更するとアプリがクラッシュしました

  15. 15

    アプリが連絡先データに読み取り専用でのみアクセスする場合、連絡先データを読み取る許可を求める必要がありますか?

  16. 16

    ポップオーバーで連絡先への追加をキャンセルすると、UItextViewがクラッシュします

  17. 17

    ユーザーがObjectivecでプッシュ通知を許可した場合にありがとうのアラートを表示する方法

  18. 18

    iOSアプリがカメラへのアクセス許可をユーザーに要求しないのはなぜですか?

  19. 19

    ABAddressBookRefを使用して電話帳から連絡先を取得しているときにアプリケーションがクラッシュする

  20. 20

    連絡先の許可をリクエストしているとアプリが言うのはなぜですか?

  21. 21

    ページの読み込みが完了する前にユーザーがセルをタップすると、Firebaseを搭載したiOSSwiftアプリが「インデックスが範囲外」でクラッシュする

  22. 22

    ユーザーがクリックしたときにアニメーションで背景を変更する

  23. 23

    samba-別のユーザーのホームディレクトリで共有するときにアクセス許可が拒否されました

  24. 24

    samba-別のユーザーのホームディレクトリで共有するときにアクセス許可が拒否されました

  25. 25

    コルドバ-連絡先の許可が原因でAndroidアプリが起動時にクラッシュする

  26. 26

    ドライブのアクセス許可を変更しましたが、Windowsバックアップに「アクセスが拒否されました」と表示されます。読み取りアクセスを許可するにはどうすればよいですか?

  27. 27

    CXCallObserver が正しく動作せず、アプリを複数実行するとアプリがクラッシュする (連絡先の画像データが含まれている場合)

  28. 28

    PowerShellでWinSCP.NETアセンブリを使用すると、「ファイル '...'のアップロードは成功しましたが、アクセス許可やタイムスタンプの設定中にエラーが発生しました」

  29. 29

    iOS8で連絡先リストを取得し、アプリをクラッシュさせる

ホットタグ

アーカイブ