您的应用程序在启动时无限期加载

your app loads indefinitely upon launch

我有一个在以下设备上运行良好的应用程序。

iPhone 4 秒 (iOS 7.1) iPhone 5 (iOS 9.1) iPhone 6 (iOS 9.1)

但是应用程序拒绝说下面的拒绝。

We discovered one or more bugs in your app when reviewed on iPad and iPhone running iOS 9.1 on both Wi-Fi and cellular networks.

  • App did not load its contents, did not load beyond the flash screen.

然而,当我 运行 从我这边开始时,它工作正常,但仅在 Apple 端有问题。我不知道 app 运行 怎么会在我这边,而它只在 Apple 端出现问题?我尝试使用 iOS 8.4 上传,但苹果仍然回复我们仍然无法超越启动画面。

有没有人遇到过这样的问题,或者有人指出我哪里错了吗?

我上传了 6 个版本,但都被拒绝了,原因相同。

注意:同一个应用程序之前运行良好(在 iOS 9.1 版本之前),但是当我现在尝试上传时,出现此错误。

对我来说最大的挑战是,我不知道是什么问题,但我需要解决这个问题


编辑 1

我有第一个屏幕作为语言屏幕,其中有图像动画。

animationImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 1080, 1920)];
animationImageView.hidden = NO;
animationImageView.animationImages = mArray;
animationImageView.animationDuration = 1.5;
animationImageView.animationRepeatCount = 1;
[self.view addSubview:animationImageView];
[animationImageView startAnimating];

您是使用 Xcode 中的 "Run" 进行测试,还是使用 Test Flight? Test Flight 让您在与 Apple 获取应用程序相同的环境中获取应用程序,而直接从 Xcode 运行 可能会产生不同的结果(不同的推送通知环境,可能不同的编译选项...)。

另外,您是否有权访问该应用查询的服务器的日志?如果是这样,您是否检查过它们以了解当 Apple 尝试使用该应用程序时会发生什么情况?查询格式是否正确?是否有错误(状态代码不同于 200,或在错误日志中)?

您的应用执行什么样的请求?它是常规的 http(s) 请求吗?还是您使用的协议可能会以某种方式被阻止?

我想查询的服务器完全可以从 Internet 访问(即您没有放置只能在本地网络上访问的服务器)?

你应该在你的代码中添加错误处理,来测试请求的结果并显示相关信息,这样如果他们在测试时出现错误,至少他们可以报告错误是什么。

在testflight上测试后,发现了一个问题。

如果我在点击应用图标后打开应用,它运行正常。

当我从 testflight

单击打开按钮时出现问题

当我点击 Open 按钮时,AppDelegate 中的 launchOptions 不是 nil,所以 push 中的代码出错了,内部崩溃了,但应用程序仍然挂在启动画面上(不是知道为什么 )

下面是我在 AppDelegate didFinishLaunchingWithOptions

中打印 launchOptions 时得到的结果
launchOptions==={
    UIApplicationLaunchOptionsSourceApplicationKey = "com.apple.TestFlight";
}

所以我将代码更改为以下,一切正常。

NSLog(@"launchOptions===%@", launchOptions);

if (launchOptions!=nil) {
    NSMutableDictionary *userInfo = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];

    NSLog(@"userInfo===%@", userInfo);
    NSLog(@"userInfo===%d", userInfo.count);

    if (userInfo.count>=1) {
          // here is my code on what to do if i click on push
    }
}

如果有人不清楚请告诉我

下面说的很崩溃

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSPlaceholderString initWithString:]: nil argument'

所以我觉得问题出在下面一行。

NSString *badge =[[NSString alloc] initWithFormat:@"%@", [apsInfo objectForKey:@"badge"]];

但在满足上述条件后,一切正常。