One out of five apps in the app store access the phone contacts with out the knowledge of user. In iOS 6, the door has been slammed, requiring apps to get explicit user permission before accessing your personal information. In iOS 6, the system now protects Calendars, Reminders, Contacts, and Photos as part of Apple’s data isolation privacy initiative. Users will see access dialogs when an app tries to access any of those data types. The user can switch access on and off in Settings > Privacy. There are changes to the Address Book framework to help developers with this feature. In this post i am going to explain the changes needs to be done in order to support iOS 6. We have ABAddressBookGetAuthorizationStatus(); external method in iOS 6 which returns the ABAuthorizationStatus of type enum The enum has four values
My code snippet will work with iOS 6 prior to iOS also.
you need to implement createPersonRecord() and return the AbRecordRef – It should have all the information about the contact to be added.
- Add the custom font file into your project
- Open your applications info.plist found in the Resources group.
- Cammand-click on any of the properties and select New
- Add Fonts provided by application or UIAppFonts key and change the type to array.
- Expand the resource just created by clicking the triangle button on the left of the description
- Enter custom font file (including extension) in the Value column.
- Click + symbol on the item 0 to add more fonts.
- Open your Custom font in Font Book. FontName will be display in topbar.
Please note FontName should be used in coding, dont use file name in coding. FontName and file name are different. eg.) [UIFont fontWithName:@"Futura HV BT" size:20.0f];
We use static libraries in our IOS Project. To use the Static library,
- Header files should be added in the project which uses it and
- binary version (.a file) should be added into the project.
Whenever there is a new addition of file(s) in static library, that header files need to be added in all the projects which are using the static library
We have more than eighty applications which uses our own static library.
Whenever I write a new file in the static library, I need to add that header file as reference to our eighty apps. Each application has to be checked out from sub version, then header files have to be added and has to commit the modifications. There won’t be a worst punishment for a developer than following the above process.
Finally I figured out a solution
This can be implemented in your project which uses static library to
eliminate the process of adding header files in all the projects.
Select Target->Build Settings
1. Set Always Search User Paths to YES
2. Set the Absolute Path of the library in User Header Search Paths and Check Recursive check box.
For eg: We have the following static libraries under ”/Source/iphoneapp/libs”
Connection, Utils, Themes and SocialNetwork
I have two methods to resolve this
“/Source/iphoneapp/libs“ in User Header Search Paths and Check
Recursive Check box
eg.) Connection header files are under
Utils header files are under ”/Source/iphoneapp/libs/Utils/Utils”
Themes header files are under ”/Source/iphoneapp/libs/Themes/Themes” and
SocialNetwork header files are under
The following should be added in “User Header Search Paths” without
checking the recursive check box.
Some times, one static library needs to be used by some other static
library, where these methods can be used.
I hope this will be very useful for developers who are following trunk,
branches and tags subversion process.
Note: Value of User Header Search Paths should not contain any blank spaces