Nicer message for accessing contacts

Whenever my application crashes it offers to send a mail to me with crash and session logs. To make the user enter less information I read out the me card from Contacts to prefil email address and name. However, the message when accessing the contacts makes some users think that I read out ALL contacts.

Is there a way to make this message nicer?

[code] try
dim theAddressbook as new ABAddressBookMBS

if theAddressbook = nil then Return

dim theMe as ABPersonMBS = theAddressbook.owner
if theMe = nil then Return

dim theABEmails as ABMultiValueMBS = theMe.valueForProperty(theAddressbook.kABEmailProperty)
if theABEmails = nil or theABEmails.count = 0 then Return
dim theEmail as String = theABEmails.valueAtIndex(0).StringValue

me.Text = theEmail

catch err as UnsupportedOperationException
Return
end try[/code]

No that’s built in from Apple when you try to access contacts for the first time. I don’t know what it says in that language, but the English version doesn’t sound bad or anything.

the English version says

Sorry for the German screenshot. Been doing too much localization.

@Tim: some customers are a bit paranoid. “The application wants to access all my contacts” is what they think.

Technically speaking, that’s the level of access the app is requesting. I have made that same assumption before as a user when an app that doesn’t need my contacts asks for them. I would just take the auto-populate code out.

In that case, how about showing a dialogue box before you access the addressbook that’s telling the user that (and why and mabye what) you want to have access to his addressbook and that he does not have to be concerned – there will never be a part of his addressbook sent to places outside the app?

In App Wrapper, click on the “Info” tab and then the “+” symbol at the bottom of the first list, select “Sandbox” and then “Contact Usage Description”.

It doesn’t (yet) support multiple languages, but it’s something that I can look into for the future.

@Tim: autopopulating data from the me card helps with typos (some people can’t input their own email address) and confusion (had a case where a customer put in MY email address).

@Ulrich: 2 messages boxes? I’d rather not. The information about privacy and data is there. But the user can only see this after the contacts message box. And I rather think that not too many read this.

@Sam: no MAS, no sandbox.

I could swear that I once used an application that had a nicer error message. But I can’t remember which application.

You may want to use App wrapper anyway just to explain why you need access to contacts in “Contact Usage Description”.

@Sam: It would be great if we could localize these strings.

@Max: I’ll have a look.

It’s not a Sandbox entitlement, it’s a info.plist key, but it goes hand-in-hand with the Sandbox entitlement, it may or may not work outside of a Sandboxed application. If you have App Wrapper, give it a quick try.

I’m pretty sure it’s possible, it just that I need to build the interface into App Wrapper, that’s the head scratcher!

Localizing PLIST strings is definitely possible
Just not intuitive :stuck_out_tongue:

See https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/AboutInformationPropertyListFiles.html
Basically you create a new InfoPlist.strings file with the keys you want to localize with their localized values in each localizations lproj directory just like a localized strings file

Nope, doesn’t make a difference. I guess this only works for Sandboxed apps.

Okay, thanks for trying… Sorry it didn’t help.