【问题标题】:App Rejected for failing to launch? ...and others应用程序因启动失败而被拒绝? ...和别的
【发布时间】:2012-04-09 12:38:11
【问题描述】:

由于以下两个原因,我的游戏刚刚被 AppStore 拒绝...

我们发现您的应用无法在运行 iOS 5.1 的 iPhone 4 上启动, 在 Wi-Fi 和蜂窝网络上。

我们在主页上选择应用程序时遇到了问题 screen - 应用显示启动图像然后意外退出

在 iPad 上审核时,您的应用没有以 iPhone 分辨率和/或 2x iPhone 3GS 分辨率运行。

这两个都让我感到困惑,我目前没有安装 Lion,因此无法在 5.1 中进行测试,但它在 5.0.1 及更低版本中运行良好。

另外,我只在我的 iPad 上进行了测试,没有 iPhone 可以测试,但游戏和图形在 iPad 上运行良好。尽管!我只有标记为@2x.png 的图形文件,没有它。这可能是这里的问题吗?

如果有人有任何很棒的建议,我会回应苹果的拒绝,但我敢打赌他们需要一段时间才能回复你,我真的很想继续这样做。谢谢!

**更新

我的didFinishLaunchingWithOptions:

如下

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

    // Override point for customization after application launch.

    [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:NO];

    mainMenu = [[MainMenu alloc] init];
    self.navController = [[UINavigationController alloc] initWithRootViewController:mainMenu];
    self.navController.navigationBar.hidden = YES;

    [self.window addSubview:navController.view];


    [self.window makeKeyAndVisible];



    [[GCHelper sharedInstance] authenticateLocalUser];

    if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"missingWordsAdded"] intValue] != 1) {
        [self forceAddWords];
    }

    if (![[NSUserDefaults standardUserDefaults] objectForKey:@"EnableSoundEffects"]){
        [[NSUserDefaults standardUserDefaults] setObject:@"YES" forKey:@"EnableSoundEffects"];
    }

    return YES;
}

GCHelper 设置 GameCenter。谢谢!

【问题讨论】:

  • 你应该在提交应用之前安装最新的iOS SDK。
  • 我知道这似乎很明显,但我有点认为我只是落后 .1 版本,我没有使用任何新功能,我在想如果苹果仍然允许 xcode 4.2下载了,为什么不让应用上传呢?
  • .. 你的应用程序委托中的 didFinishLaunchingWithOptions: 函数中有什么代码?
  • @MaxBallo 所以对于我的 didFinishLaunchingWithOptions:查看更新的问题
  • @JamesDunay 你的 MainMenu Init 函数在做什么?

标签: iphone objective-c ios


【解决方案1】:

我有几个建议:

  1. 重置您的模拟器,启动您的程序,看看它是否有效
  2. 从 iPad 上卸载您的应用程序,从 Xcode 中运行它,看看它是否有效
  3. 请朋友测试临时副本,或附加到您的 Xcode 并运行调试副本
  4. 根据您的实现,您应该对您的启动代码(didFinishLaunchingWithOptions 或单例实例)进行一些盲检。尤其是那些涉及 GCD、@synchronize、NSArrayNSDictionary 上的访问的领域。而像默认首选项初始化和数据库创建这样的事情很可能会产生这种问题。

关于审核过程,我的日志显示 Cupertino 的 Apple 员工使用带有 WiFi 连接的 iPad 2 来运行您的应用程序。如果他们说他们无法运行您的应用,他们并不是在玩弄您。

【讨论】:

  • 我已经在 10 多个设备上进行了 1-3 次测试,将模拟器重置为出厂设置,并在 iPad 上进行了测试。一切仍然像往常一样工作。所以也许它在我的实现中有所作为?我只是在 NSUserDefaults 中创建了几个字符串,并在主字典中创建了几个字典条目,但实际上并没有什么大不了的。什么是盲检?
  • @JamesDunay,也许请其他人为您检查代码?盲检是在不执行代码的情况下读取您的代码。有时以这种方式更容易发现问题。如果可能,最好由第二个人进行代码审查。专注于在启动期间执行的部分。
  • 啊哈哥达查。这可能是一个非常愚蠢的问题。但是苹果建议它可能是缺少 entitlements.plist 文件。我正在使用 xcode 4.2,这是我必须拥有的东西吗?因为它在所有经过测试的设备上仍然可以正常工作,但苹果是否需要提交?
  • @JamesDunay 你看过stackoverflow.com/questions/3021569/… 吗?我在部署时几乎遵循了这两个教程:icodeblog.com/2009/07/31/…mobiforge.com/developing/story/…。我记得如果代码签名有问题,Application Loader 应该能够检测到它。
  • 感谢您的帮助,我可能会更改一些内容并重新提交
【解决方案2】:

1) 不同配置的手机和 iOS 的“应用程序启动失败”是一个大问题,因为您手头可能没有所有具有不同 iOS 版本的手机。例如,您可以尝试https://testflightapp.com/,并可以了解您的应用在不同配置下的性能。

【讨论】:

    【解决方案3】:

    我的应用也因同样的原因被拒绝。在这里,您首先检查需要的互联网连接,而不是您的代码。

    要检查内部连接,您可以使用可达性类。

    【讨论】:

    • 你能再解释一下吗?我必须在哪里检查互联网连接?也许在我检查游戏中心之前?
    • 你必须在你需要实习连接之前检查它,比如你是否使用 Facebook 连接,而不是你必须在用户点击 Facebook 连接按钮之前检查
    猜你喜欢
    • 2015-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多