I have an universal iOS app, giving efforts to make it compatible with iOS 6. I am using Cordova / Phonegap framework so my app is HTML, CSS and JS. I am using calenderPlugin for Cordova which is available on GitHub, working fine before iOS 6.
Issue starts here: Apple added that, from iOS 6 onwards, before doing any operations on calendars and reminders, we need to grant a permission from user. for that here is the sample code:
EKEventStore *eventStore = [[EKEventStore alloc] init];
if( [self checkIsDeviceVersionHigherThanRequiredVersion:@"6.0"] ) {
[eventStore requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {
if (granted){
//---- codes here when user allow your app to access theirs' calendar.
}else
{
//----- codes here when user NOT allow your app to access the calendar.
}
:
:
}];
}
//**********************************************************************************
// Below is a block for checking is current ios version higher than required version.
//**********************************************************************************
- (BOOL)checkIsDeviceVersionHigherThanRequiredVersion:(NSString *)requiredVersion
{
NSString *currSysVer = [[UIDevice currentDevice] systemVersion];
if ([currSysVer compare:requiredVersion options:NSNumericSearch] != NSOrderedAscending)
{
return YES;
}
return NO;
}
Of course I have added EventKit.Framework and EventKitUI.Framework. Now the thing is, for development of iOS 6 I downloaded and installed xCode 4.5 which comes with iOS6 SDK.
xCode does not find out this method requestAccessToEntityType, neither the constant EKEntityTypeEvent is available.
It seems I am missing EventKit.Framework for iOS 6, but how? I have xCode 4.5 which came with SDK for iOS 6. Any suggestions?