My app was rejected by Apple because its crash on iPad 3rd Gen. Rejected reason:
We found that your app crashed on iPad 3rd Gen. running iOS 5.1.1, which is not in compliance with the App Store Review Guidelines.
Your app crashed on both Wi-Fi and cellular networks on launch.
I tested my app on iPhone 4 both simulator and device and its work fine, I also tested the app on iPad simulator both iPad and iPad retina simulator and its work fine. But I don't have an actual iPad 3rd Gen device. here is the code for application:didFinishLaunchingWithOptions:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//Piracy Check
iShmoopi *PiracyCheck = [[[iShmoopi alloc] init] autorelease];
if ([PiracyCheck isPirated] == KAPPLICATIONNOTPIRATED || [PiracyCheck isPirated] == KNOTPIRATED) {
//Do Nothing, Not Pirated
} else {
//Do Something, Pirated
//Hostile Exit
iShmoopi *HostileExit = [[[iShmoopi alloc] init] autorelease];
[HostileExit Hostile];
}
NSString *gameDataPath = pathInDocumentDirectory(@"gameDataPath.data");
if (gameDataPath != nil) {
NSDictionary *gameDataDictionary = [NSKeyedUnarchiver unarchiveObjectWithFile:gameDataPath];
if (gameDataDictionary != nil) {
smartEasyBestTime = [[gameDataDictionary objectForKey:@"smartEasyBestTimeKey"] intValue];
smartEasyBestPoint = [[gameDataDictionary objectForKey:@"smartEasyBestPointKey"] intValue];
smartNormalIsPlayable = [[gameDataDictionary objectForKey:@"smartNormalIsPalyableKey"] boolValue];
smartNormalBestTime = [[gameDataDictionary objectForKey:@"smartNormalBestTimeKey"] intValue];
smartNormalBestPoint = [[gameDataDictionary objectForKey:@"smartNormalBestpointKey"] intValue];
smartHardIsPlayable = [[gameDataDictionary objectForKey:@"smartHardIsPalyableKey"] boolValue];
smartHardBestTime = [[gameDataDictionary objectForKey:@"smartHardBestTimeKey"] intValue];
smartHardBestPoint = [[gameDataDictionary objectForKey:@"smartHardBestPointKey"] intValue];
focusEasyBestTime = [[gameDataDictionary objectForKey:@"focusEasyBestTimeKey"] intValue];
focusEasyBestPoint = [[gameDataDictionary objectForKey:@"focusEasyBestPointKey"] intValue];
focusNormalIsPlayable = [[gameDataDictionary objectForKey:@"focusNormalIsPalyableKey"] boolValue];
focusNormalBestTime = [[gameDataDictionary objectForKey:@"focusNormalBestTimeKey"] intValue];
focusNormalBestPoint = [[gameDataDictionary objectForKey:@"focusNormalBestpointKey"] intValue];
focusHardIsPlayable = [[gameDataDictionary objectForKey:@"focusHardIsPalyableKey"] boolValue];
focusHardBestTime = [[gameDataDictionary objectForKey:@"focusHardBestTimeKey"] intValue];
focusHardBestPoint = [[gameDataDictionary objectForKey:@"focusHardBestPointKey"] intValue];
logicEasyBestTime = [[gameDataDictionary objectForKey:@"logicEasyBestTimeKey"] intValue];
logicEasyBestPoint = [[gameDataDictionary objectForKey:@"logicEasyBestPointKey"] intValue];
logicNormalIsPlayable = [[gameDataDictionary objectForKey:@"logicNormalIsPalyableKey"] boolValue];
logicNormalBestTime = [[gameDataDictionary objectForKey:@"logicNormalBestTimeKey"] intValue];
logicNormalBestPoint = [[gameDataDictionary objectForKey:@"logicNormalBestpointKey"] intValue];
logicHardIsPlayable = [[gameDataDictionary objectForKey:@"logicHardIsPalyableKey"] boolValue];
logicHardBestTime = [[gameDataDictionary objectForKey:@"logicHardBestTimeKey"] intValue];
logicHardBestPoint = [[gameDataDictionary objectForKey:@"logicHardBestPointKey"] intValue];
speedEasyBestTime = [[gameDataDictionary objectForKey:@"speedEasyBestTimeKey"] intValue];
speedEasyBestPoint = [[gameDataDictionary objectForKey:@"speedEasyBestPointKey"] intValue];
speedNormalIsPlayable = [[gameDataDictionary objectForKey:@"speedNormalIsPalyableKey"] boolValue];
speedNormalBestTime = [[gameDataDictionary objectForKey:@"speedNormalBestTimeKey"] intValue];
speedNormalBestPoint = [[gameDataDictionary objectForKey:@"speedNormalBestpointKey"] intValue];
speedHardIsPlayable = [[gameDataDictionary objectForKey:@"speedHardIsPalyableKey"] boolValue];
speedHardBestTime = [[gameDataDictionary objectForKey:@"speedHardBestTimeKey"] intValue];
speedHardBestPoint = [[gameDataDictionary objectForKey:@"speedHardBestPointKey"] intValue];
}
}
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
return YES;
}
and this is the code for the first view controller loaded
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
//Piracy Check
iShmoopi *PiracyCheck = [[[iShmoopi alloc] init] autorelease];
if ([PiracyCheck isPirated] == KAPPLICATIONNOTPIRATED || [PiracyCheck isPirated] == KNOTPIRATED) {
//Do Nothing, Not Pirated
NSLog(@"not pirated");
}
else
{
//Do Something, Pirated
//Hostile Exit
iShmoopi *HostileExit = [[[iShmoopi alloc] init] autorelease];
[HostileExit Hostile];
}
[titleImageView setImage:[UIImage imageNamed:@"gameTitleImage.png"]];
NSTimer *t;
t = [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(tEnd) userInfo:nil repeats:YES];
}
By the way I use Shmoopi Anti-Piracy Library that shown above in the code.
Any suggestion?