2013-07-31 29 views
2

我的應用程序被蘋果審查小組拒絕。據他們的理由是聯繫使用許可請求iphone

「17.1:關於用戶未取得用戶的事先許可,並提供訪問用戶 有關如何以及在何處的數據將used.Specifically應用無法傳輸數據, 您的應用程序訪問與出請求允許 第一」

用戶的聯繫人不過,我已經使用**NSContactsUsageDescription**鑰匙在我info.plst指定在我的應用程序中使用的聯繫人的原因。

我應該爲得到許可還做什麼?

+0

請問您的消息明確地說你會發送數據,在哪裏,多久會被保存,它會用於?該應用支持哪些iOS版本? – Wain

+0

否。但他們提到他們沒有彈出窗口。我沒有發送任何地方的聯繫人,我只是用它來顯示或添加聯繫人。 –

回答

2

你實現這樣的示例代碼的

enter image description here

方法詢問用戶您的應用程序是否可以訪問您的地址簿。該功能在iOS 6.0及以上版本中實現。

你可以試試這個代碼片段:

#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending) 

- viewWillAppear:

// Asking access of AddressBook 
// if in iOS 6 
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"6.0")) 
{ 
    // Request authorization to Address Book 
    addressBook_ = ABAddressBookCreateWithOptions(NULL, NULL); 

    if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusNotDetermined) 
    { 
     ABAddressBookRequestAccessWithCompletion(addressBook_, ^(bool granted, CFErrorRef error) 
               { 
                if (granted == NO) 
                { 
                 // Show an alert for no contact Access 
                } 
               }); 
    } 
    else if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusAuthorized) 
    { 
     // The user has previously given access, good to go 
    } 
    else 
    { 
     // The user has previously denied access 
     // Send an alert telling user to change privacy setting in settings app 
    } 
} 
else // For iOS <= 5 
{ 
    // just get the contacts directly 
    addressBook_ = ABAddressBookCreate(); 
} 
3

在iOS 6中,您需要使用地址簿權限請求iphone訪問它的設備聯繫方式: - :

ABAddressBookRef addressBook; 
if ([self isABAddressBookCreateWithOptionsAvailable]) { 
    CFErrorRef error = nil; 
    addressBook = ABAddressBookCreateWithOptions(NULL,&error); 
    ABAddressBookRequestAccessWithCompletion(addressBook, ^(bool granted, CFErrorRef error) { 
     // callback can occur in background, address book must be accessed on thread it was created on 
     dispatch_async(dispatch_get_main_queue(), ^{ 
      if (error) { 

      } else if (!granted) { 


      } else { 
       // access granted 
       [self GetAddressBook]; 


      } 
     }); 
    }); 
} else { 
    // iOS 4/5 

    [self GetAddressBook]; 
} 
+0

是每次顯示彈出窗口的代碼嗎? –

+0

並非您每次都授予「允許」權限,然後「警告」不會出現。 –

+0

使用NSContactUsageDescription鍵後這個彈出顯示,新設備的人時installing.I認爲使用這種方法,我可以知道,目前的應用程序有接觸使用許可與否,是嗎? –