您的应用在启动时无限期加载
我有一个应用程序,可以在下面的设备上正常工作
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,以测试请求的结果并显示有关它的信息,这样如果在测试时出现错误,至少可以报告错误是什么。