2

Apple のリリース ノートから:

Seed 4 の時点で、AddressBookUIフレームワークのプライバシー サポートは、iOS 7 SDK にリンクされたアプリに対して再度有効になります。古い SDK にリンクされたアプリは変更されません。アプリでアドレス帳ビュー コントローラーのいずれかを使用している場合は、期待どおりに動作することを確認する必要があります。

問題は、View Controller がまだ期待どおりに動作しない場合に何ができるかです。

「プライバシー サポートを再度有効にする」とはどういう意味ですか?

ABPeoplePickerNavigationControllerアプリがグループから Microsoft Exchange ActiveSync グローバル アドレス リストにアクセスできなくなったため、これに遭遇しました。いいえ、期待どおりに動作していません (iOS 6 での動作)。

編集:これはiOS 7.0.3(おそらくそれ以前)で修正されました

4

1 に答える 1

0

サムが私たちのアプリでも同じ問題を抱えています。これは、ユーザーが を使用して連絡先をインポートしようとしてABPeoplePickerNavigationController、[グループ] ページにアクセスしようとしたときに発生します。

  • ナビゲーション コントローラーのタイトルには、連絡先とグループの 2 つの名前が含まれることがあります。
  • [OK] ボタンをタップするのは難しい場合があり、ほとんどのユーザーはフリーズを報告しますが、終了することは不可能です。ABPeoplePickerNavigationController
  • Exchange グローバル アドレス一覧へのアクセスは許可されているようですが、データが表示されず、空の tableView のみが表示されます

Sam のハイライトに続いて、ユーザーのアドレス帳にアクセスする許可を明示的に要求することを考えました。ABPeoplePickerNavigationControlleriOS 6 でこれが導入されたため、がこれ自体を処理するため、連絡先のインポートには使用しませんでした。

とにかく、私たちは以下を使用しています:

ABAddressBookRef addressBook = ABAddressBookCreate();

__block BOOL accessGranted = NO;
if (ABAddressBookRequestAccessWithCompletion != NULL) { // we're on iOS 6
    dispatch_semaphore_t sema = dispatch_semaphore_create(0);
    ABAddressBookRequestAccessWithCompletion(addressBook, ^(bool granted, CFErrorRef error) {
    accessGranted = granted;
    dispatch_semaphore_signal(sema);
});
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
dispatch_release(sema);   
}
else { // we're on iOS 5 or older
    accessGranted = YES;
}

if (accessGranted) {
    // Do whatever you want here.
}

詳細については、こちらを参照してください:プログラムによって連絡先へのアクセスを要求する

アクセスはすでに正しく許可されているため、これでは問題は解決しません。

設定/一般/リセット/位置情報とプライバシーのリセットでプライバシー設定をリセットしました。

ユーザーの連絡先リストへのアクセスは期待どおりに正しく要求されますが、上記の動作は同じです。

これを解決する方法について説明があれば、それは素晴らしいことです。

よろしく、

于 2013-10-01T13:43:38.310 に答える