Iphone 因在第三代iPad上崩溃而被拒绝的申请
我的应用被苹果拒绝,因为它在iPad3rdGen上崩溃了。 拒绝原因: 我们发现您的应用程序在运行iOS 5.1.1的第三代iPad上崩溃,这不符合应用商店审查指南 你的应用在发布时在Wi-Fi和手机网络上都崩溃了 我在iPhone4上测试了我的应用程序,包括模拟器和设备,工作正常。我还在iPad模拟器上测试了应用程序,包括iPad和iPad视网膜模拟器,工作正常。 但我没有真正的iPad第三代设备。 以下是应用程序代码:didFinishLaunchingWithOptions:Iphone 因在第三代iPad上崩溃而被拒绝的申请,iphone,objective-c,ios,ipad,crash,Iphone,Objective C,Ios,Ipad,Crash,我的应用被苹果拒绝,因为它在iPad3rdGen上崩溃了。 拒绝原因: 我们发现您的应用程序在运行iOS 5.1.1的第三代iPad上崩溃,这不符合应用商店审查指南 你的应用在发布时在Wi-Fi和手机网络上都崩溃了 我在iPhone4上测试了我的应用程序,包括模拟器和设备,工作正常。我还在iPad模拟器上测试了应用程序,包括iPad和iPad视网膜模拟器,工作正常。 但我没有真正的iPad第三代设备。 以下是应用程序代码:didFinishLaunchingWithOptions: - (BOO
- (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;
}
这是加载的第一个视图控制器的代码
- (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];
}
顺便说一下,我在代码中使用了上面显示的方法
有什么建议吗?找到一种在真实设备上测试的方法。借、租或买一个。我的应用程序已获得批准。 我删除了Shmoopi反盗版库代码,并编写了自己的代码。
因此,问题在于Shmoopi反盗版库与iPad第三代不兼容。建议:使用互联网查找装有该设备的测试人员,并分析故障日志。在我工作的公司,我们从iOS 2.2.1时代起就一直在处理设备和模拟器,我向您保证,模拟器测试是不够的。曾经还要确保你的iPhone4设备使用iOS 5.1.1,并且不会崩溃。我在iPhone4上测试了我的应用程序,它运行iOS 5.1.1,工作正常。我也会考虑在互联网上找到一个测试仪。感谢您的重播。解决方案:花更少的时间防止盗版,而是花更多的时间制作高质量的应用程序。是否有可能是苹果测试设备上的某些东西触发了您的盗版对策?感谢大家的回复,我将尝试更改盗版代码并再次提交我的应用程序。我有iPad1和iPad2。购买第三台iPad只是为了发布我的iPhone应用程序。来吧有人真的能通过说明其中的一些差异来回答这个问题吗?以及为什么sim卡可以工作而设备不能工作?为什么苹果测试中心不给我们提供崩溃日志。是的,真糟糕。我理解。但最终,唯一能确定的方法是在该设备上进行测试。你知道有没有人可以向你借一台,或者至少和你一起坐一会儿,这样你就可以做一些测试了?那么,出售旧款iPad,只购买第三代iPad安全吗?