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

时间:2015-12-05 11:47:36

标签: ios objective-c splash-screen

我有一个适用于以下设备的应用程序。

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];

2 个答案:

答案 0 :(得分:3)

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

如果我在点击应用图标后打开应用,则表示工作正常。

当我从testflight

点击打开按钮时出现问题

当我点击打开按钮时,AppDelegate中的launchOptions不是nil,因此推送中的代码出错了,内部崩溃了,但仍然是应用程序挂起了闪屏(不知道为什么虽然< / em>的)

以下是我在AppDelegate launchOptions

中打印didFinishLaunchingWithOptions时所拥有的内容
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
    }
}

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

正在崩溃说下面

  

由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'*** - [NSPlaceholderString initWithString:]:nil参数'

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

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

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

答案 1 :(得分:2)

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

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

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

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

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