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

我有一个应用程序,可以在下面的设备上正常工作

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

然而,app拒绝在拒绝下面说。

在Wi-Fi和蜂窝网络上运行iOS 9.1的iPad和iPhone上查看时,我们发现您的应用中存在一个或多个错误。

  • 应用程序没有加载其内容,没有加载超出闪存屏幕。

然而,当我从我这边运行它,它的工作正常,但它只在Apple端有问题。 我不知道应用程序如何才能在我的终端运行并且只能在Apple端给出问题? 我尝试上传iOS 8.4,但仍然Apple回复我们不能超越启动画面。

有没有人面对这样的问题或有人指出我在哪里可能是错的?

我上传了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]; 

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

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

当我从testflight单击“打开”按钮时出现问题

当我单击打开按钮时,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 } } 

如果有人不清楚,请告诉我

它崩溃说下面

因未捕获的exception’NSInvalidArgumentException’而终止应用程序,原因:’*** – [NSPlaceholderString initWithString:]:nil参数’

所以我觉得问题就在下面。

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

但在达到上述条件后,一切正常。

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

此外,您是否可以访问应用程序查询的服务器的日志? 如果是这样,你检查过它们,看看Apple尝试使用该应用程序时会发生什么? 查询是否正确形成? 是否有错误(状态代码不同于200,或在错误日志中)?

您的应用会执行什么样的请求? 这是一个常规的http(s)请求吗? 或者您使用的是一种不寻常的协议,可能会以某种方式被阻止?

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

您应该在代码中添加error handling,以测试请求的结果并显示有关它的信息,这样如果在测试时出现错误,至少可以报告错误是什么。