- 浏览: 27880 次
最新评论
类似的问题http://answers.unity3d.com/questions/1078647/ios-9-unity-sometimes-hangs-in-main-ios-kills-proc.html
开始以为是在ios主线程进行的网络操作导致的卡住
以下开始认为的解决方案
以下这段代码要放到子线程执行, 否则有可能会导致主线程阻塞时间过长, 导致ios kill掉进程
- (BOOL)addSkipBackupAttributeToItemAtPath:(NSString *) filePathString
{
NSURL* URL= [NSURL fileURLWithPath: filePathString];
assert([[NSFileManager defaultManager] fileExistsAtPath: [URL path]]);
NSError *error = nil;
BOOL success = [URL setResourceValue: [NSNumber numberWithBool: YES]
forKey: NSURLIsExcludedFromBackupKey error: &error];
if(!success){
NSLog(@"Error excluding %@ from backup %@", [URL lastPathComponent], error);
}
return success;
}
最新找到的解决方案, Ad Hoc的签名会在启动时被ios检查
Captive Network: Ad Hoc app force crashing FBApplicationProcess 0x000000008badf00d
There's a new issue reported on my app (on AdHoc profile) for this release which is app crashing on startup when in captive network.
The exact scenario is: Have a device with expired service (but still connected to the provider), turn off wifi. Have the app cold-launched and it'll get stuck on the screen for sometime and the crashed.
Mar 23 16:08:52 QA-iPhone-4S-Sprint SpringBoard[48] : Forcing crash report of (reason: 1, description: com.myapp.iphone.AppName failed to launch after 20.00s (launchIntent: foreground-interactive))
Mar 23 16:08:52 QA-iPhone-4S-Sprint com.apple.xpc.launchd[1] (UIKitApplication:com.myapp.iphone.AppName[0x8816][183]) : Service exited due to signal: Killed: 9
Googling the message you'd get a bunch of stack overflow posts saying that's because it takes too long to launch, and maybe you're doing some network requests on main thread.
Well in this issue that's not the case at all. I confirmed that AppDelegate's init() or didFinishLaunchingWithOptions() hasn't even been called when the crash happened, so that can't be the program's code. It must've been pre-launch sequence which failed, that is in iOS-land.
Here's the state of the app when this crashes happen:
- What's new about the release's the inclusion of Swift dynamic framework. Tested with a build before & after the inclusion, I proved that this inclusion caused the crash
- Exporting ipa via XCode forces code-signing using "XC Adhoc" notice the XC prefix (XC = Xcode managed prefix) - instead of standard "Adhoc". There's no way to change it as of XCode 7.2.1.
- App crashed even before AppDelegate is executed. It's not programmer's code.
Long story short, after a day worth of trial and error and going back in time in git log, I found out what went wrong. Here's the conclusion:
On startup, iOS always re-verify the integrity of dynamic frameworks if the app is signed with "XC Adhoc" (Xcode-Managed) profiles.
It's proven by using TestFlight distributed app (signed with Distribution profile), and the issue's not reproducible anymore.
Posted by naldikt at 11:29 AM
开始以为是在ios主线程进行的网络操作导致的卡住
以下开始认为的解决方案
以下这段代码要放到子线程执行, 否则有可能会导致主线程阻塞时间过长, 导致ios kill掉进程
- (BOOL)addSkipBackupAttributeToItemAtPath:(NSString *) filePathString
{
NSURL* URL= [NSURL fileURLWithPath: filePathString];
assert([[NSFileManager defaultManager] fileExistsAtPath: [URL path]]);
NSError *error = nil;
BOOL success = [URL setResourceValue: [NSNumber numberWithBool: YES]
forKey: NSURLIsExcludedFromBackupKey error: &error];
if(!success){
NSLog(@"Error excluding %@ from backup %@", [URL lastPathComponent], error);
}
return success;
}
最新找到的解决方案, Ad Hoc的签名会在启动时被ios检查
Captive Network: Ad Hoc app force crashing FBApplicationProcess 0x000000008badf00d
There's a new issue reported on my app (on AdHoc profile) for this release which is app crashing on startup when in captive network.
The exact scenario is: Have a device with expired service (but still connected to the provider), turn off wifi. Have the app cold-launched and it'll get stuck on the screen for sometime and the crashed.
Mar 23 16:08:52 QA-iPhone-4S-Sprint SpringBoard[48] : Forcing crash report of (reason: 1, description: com.myapp.iphone.AppName failed to launch after 20.00s (launchIntent: foreground-interactive))
Mar 23 16:08:52 QA-iPhone-4S-Sprint com.apple.xpc.launchd[1] (UIKitApplication:com.myapp.iphone.AppName[0x8816][183]) : Service exited due to signal: Killed: 9
Googling the message you'd get a bunch of stack overflow posts saying that's because it takes too long to launch, and maybe you're doing some network requests on main thread.
Well in this issue that's not the case at all. I confirmed that AppDelegate's init() or didFinishLaunchingWithOptions() hasn't even been called when the crash happened, so that can't be the program's code. It must've been pre-launch sequence which failed, that is in iOS-land.
Here's the state of the app when this crashes happen:
- What's new about the release's the inclusion of Swift dynamic framework. Tested with a build before & after the inclusion, I proved that this inclusion caused the crash
- Exporting ipa via XCode forces code-signing using "XC Adhoc" notice the XC prefix (XC = Xcode managed prefix) - instead of standard "Adhoc". There's no way to change it as of XCode 7.2.1.
- App crashed even before AppDelegate is executed. It's not programmer's code.
Long story short, after a day worth of trial and error and going back in time in git log, I found out what went wrong. Here's the conclusion:
On startup, iOS always re-verify the integrity of dynamic frameworks if the app is signed with "XC Adhoc" (Xcode-Managed) profiles.
It's proven by using TestFlight distributed app (signed with Distribution profile), and the issue's not reproducible anymore.
Posted by naldikt at 11:29 AM
发表评论
-
Xcode9解决exportArchive: requires a provisioning profile
2017-09-23 15:15 1141https://stackoverflow.com/quest ... -
缺少编译器要求的成员“ystem.Runtime.CompilerServices.ExtensionAttribute..ctor”
2017-09-09 15:05 993//缺少编译器要求的成员“ystem.Runtime.Com ... -
[转]帧同步和状态同步
2017-03-06 12:22 656转自:http://www.gameres.c ... -
非对称加密和数字证书原理
2017-03-01 17:34 558http://www.cnblogs.com/JeffreyS ... -
Unity模糊查找MonoBehaviour
2016-11-23 17:32 1157using System; using System.Co ... -
Unity问题备份
2016-10-09 11:19 7181. Could not find file " ... -
链接-Unity Assetbundle使用填坑
2016-09-08 11:53 626http://www.cnblogs.com/ybgame/p ... -
协程执行顺序测试备份
2016-09-01 18:28 489using UnityEngine;using Syste ... -
[转]简单粗暴的so加解密实现
2016-08-12 17:03 807http://bbs.pediy.com/showthread ... -
[转]android解决apk编译方法数超过64k的问题
2016-08-05 20:59 503如果你是一个android开发者,你至少听说过的Dalvik的 ... -
svn 413 Entity too large
2016-06-29 20:58 759在apache配置conf文件中添加 LimitXMLRequ ... -
[转]gradle打不同渠道的包
2016-06-27 18:29 680美团Android自动化之旅— ... -
IPv4 regex
2016-06-07 12:12 431private static Regex ipv4Reg = ... -
[转]unity3d使用winphone平台的问题
2016-05-25 12:18 488最近在移植u3d的游戏到WindowsPhone8上,Wind ... -
[转]Deep link是什么
2016-05-23 12:06 691http://www.open-open.com/lib/vi ... -
苹果和google play审核时注意的问题
2016-05-16 15:18 751苹果测试沙盒充值不能用越狱手机来测 google play测试 ... -
C# MSDN地址备忘
2016-05-14 19:20 454https://msdn.microsoft.com/zh-c ... -
Windows API错误码
2016-05-14 19:19 345https://msdn.microsoft.com/en-u ... -
java 坑收集
2016-05-06 20:15 3501. Strng.getBytes() 一定要指明用的是什么编 ... -
[转]iphone不越狱抓包
2016-04-27 20:42 988Remote Virtual Interface 在iOS ...
相关推荐
在iOS应用开发中,欢迎页(Splash Screen)和引导页(Onboarding)是常见的功能,它们为用户提供初次接触应用的第一印象。本示例是关于如何在iOS平台上实现这两种页面,并根据用户是否是首次安装来决定是否展示引导...
在iOS开发中,Splash Screen(启动屏幕)是用户打开应用程序时首先看到的界面,它通常显示应用程序的品牌标识或一些引导性的图像,同时等待应用程序的主要界面加载完成。此资源"IOS应用源码——Splash.rar"提供了一...
【标题】"splash欢迎页面,比较常用,收藏" 指的是在移动应用或软件启动时展示的一种特殊页面,通常称为“启动页”或“闪屏页”。它旨在提升用户体验,展示品牌形象,或者在应用程序加载内容时提供一个视觉过渡。在...
在iOS应用开发中,启动页(Splash Screen)是用户打开应用程序时首先看到的页面,它通常展示品牌标识、应用名称或者加载进度。本压缩包"ios-启动页.zip"提供的内容是关于如何实现启动页广告的示例项目,具体包含了一...
在iOS应用开发中,启动页(Splash Screen)是用户打开应用程序时首先看到的界面,它通常展示品牌标识或加载过程。然而,为了提升用户体验,许多开发者会为启动页添加动态效果,使其更具吸引力。"ios-app启动页动画...
在iOS应用开发中,"Splash Screen"或"Launch Screen"是用户打开应用时首先看到的界面,它通常显示品牌标识、应用图标或者加载过程。"splashDemo开场动画ios"是一个针对iOS平台的实例Demo,旨在帮助开发者了解如何...
在iOS应用开发中,广告启动页( Splash Screen)通常是用户打开应用时首先看到的界面,它通常用来展示品牌标识、加载应用资源或者显示简短的广告。本项目"ios-广告启动页.zip"提供了一种快速集成广告启动页的方法,...
1. **启动界面(Splash Screen)**:在iOS应用中,启动界面是用户首次打开应用时看到的第一个画面,通常用于加载应用的初始数据或设置界面。在Xcode中,可以通过Interface Builder创建LaunchScreen.storyboard来设计...
在iOS应用开发中,启动页(Splash Screen)通常用于加载应用程序资源或显示品牌形象,而"swift-iOS启动页的广告展示View"则是将广告集成到启动页中的一个解决方案。这个项目名为`HJSplashAdvertismentView-master`,...
Android12 SplashScreen使用举例...若开发者未进行SplashScreen的适配工作,在应用冷启动和温启动时,可能会呈现两个启动页先后出现的情况(Android SplashScreen启动页 + Android应用自定义开发的启动页或引导页)。
首先,"SplashDemo"项目是一个典型的iOS启动界面(Splash Screen)实现示例。启动界面是用户打开应用时最先看到的部分,它不仅展示了应用的品牌形象,还能够提供加载状态的反馈。在iOS中,实现启动界面有多种方式,...
在移动应用开发中,App启动页是用户打开应用时首先看到的部分,它通常是展示品牌标识、加载资源或进行初始化操作的界面。在Flutter框架下,我们...通过研究这个项目,你可以进一步提升在Flutter中构建启动页的技能。
在C#中实现SplashScreen(启动屏幕)是一个常见的需求,特别是在开发Windows桌面应用程序时,它可以在应用程序启动初期显示一个简洁的界面,展示品牌信息或进行加载进度提示。与VB.NET不同,C#需要通过手动控制加载...
在iOS应用开发中,启动画面(Splash Screen)是用户打开应用程序时首先看到的界面,它为应用程序的加载过程提供了一种视觉反馈。本教程将详细讲解如何在iOS 5应用程序中添加启动画面,以提升用户体验。 一、启动...
在iOS应用开发中,加载页(Splash Screen)和Logo图标是至关重要的元素,它们不仅提升了用户体验,也展示了应用的品牌形象。加载页通常是用户打开应用时首先看到的界面,它的主要功能是在应用程序启动时提供视觉反馈...
在Android应用开发中,引导页(Splash Screen)是用户打开应用程序时首先看到的页面,它通常展示品牌标识、产品特色或者简短的操作指南。本文将详细介绍Android应用中四种常见的引导页实现方式:Splash、ViewPager、...
在Android开发中,Splash屏幕(启动页)是用户打开应用时首先看到的界面,它通常展示品牌标识或加载应用程序的初始数据。然而,如果Splash页面显示时间过长,可能会给用户带来不佳的体验。因此,对Splash进行优化是...
在安卓应用开发中,Splash(启动页)是用户打开应用时首先看到的界面,通常用于展示品牌标识、加载数据或进行初始化操作。本篇文章将详细探讨两种制作安卓程序Splash页面的方法,以实现类似UC浏览器中带有进度条效果...
这个名为"Splash 线程控制登录例子"的项目,显然是为了展示如何利用线程来实现一个像UC浏览器那样的启动页(Splash Screen),同时在加载过程中显示进度条效果,以提高用户体验。 首先,我们需要理解什么是线程。...
在软件开发中,Splash Screen(启动画面)是一种常见的用户界面设计,它通常在应用程序启动时显示,提供一个动态的视觉效果,同时可以展示公司标志、加载进度等信息,提升用户体验。在C# WinForm应用中,创建一个...