ios9 上的应用程序驱逐。如何检查导致这些的原因?

Posted

技术标签:

【中文标题】ios9 上的应用程序驱逐。如何检查导致这些的原因?【英文标题】:app eviction on ios9. how do I check what's causing these? 【发布时间】:2015-09-29 10:30:15 【问题描述】:

我的(前台)应用程序正在从 ios9 设备 (ipad mini 3 A1599) 中被驱逐 每当我坐在相机捕捉屏幕上。 我看到了这个

SpringBoard[54] <Warning>: Communications error: <OS_xpc_error: <error: 0x19d654af0>  count = 1, contents =
        "XPCErrorDescription" => <string: 0x19d654e50>  length = 22, contents = "Connection interrupted" 
    >

在“最终剪辑”之前不久:

Sep 29 13:17:33 ipad-mini mediaserverd[25] <Notice>: '' (pid = 4278) setting DiscoveryMode = DiscoveryMode_None, currentDiscoveryMode = DiscoveryMode_None
Sep 29 13:17:33 ipad-mini CommCenter[75] <Notice>: Connection interrupted!
Sep 29 13:17:33 ipad-mini UserEventAgent[23] <Notice>: jetsam: kernel termination snapshot being created

设备中没有崩溃/查看设备日志 itunesconnect 中没有崩溃(似乎是 ios 9.0.1 之前的一个已知问题: 目前没有为 iOS 9 用户报告安装、会话和活动设备。这将很快在即将到来的 iOS 更新中得到解决。)

知道是什么导致了这些奇怪的“崩溃”吗?

在运行 9.0.1 的 iphone 6 上也有同样的问题

Sep 29 13:33:48 iPhone6minus yourId[465] <Warning>: Memory in use: 28 MB
Sep 29 13:33:49 iPhone6minus duetexpertd[481] <Warning>: Found bundle: file:///System/Library/DuetExpertCenter/Experts/AppPrediction.bundle/
Sep 29 13:33:49 iPhone6minus sharingd[194] <Error>: 13:33:49.078 : SDConnectionManager:: XPC connection invalidated
Sep 29 13:33:49 iPhone6minus ReportCrash[482] <Warning>: saved type '298' report (1 of max 25) as /var/mobile/Library/Logs/CrashReporter/JetsamEvent-2015-09-29-133348.ips

UPD 20150929:我已经追踪到 - (CGImageRef)CIContext::createCGImage:(CIImage *)image fromRect:(CGRect)fromRect

含义:当我调用 ios9 停止从设备启动应用程序时 (和性能飙升)。 现在我需要的是找到一个(有效的)替代该调用的方法:=[

UPD 20151001:删除内存引用导致这显然不是内存 压力相关的驱逐(见之前的更新)

【问题讨论】:

【参考方案1】:

不是您的问题的答案,但在更新到 iOS 9 后我注意到一些非常糟糕的事情。 我的应用程序捕获视频并使用 CIContext 过滤、组合和渲染视频帧。 更新后 CIContext 像以前一样停止工作。现在我的应用程序在运行几秒钟后就崩溃了。正如我所看到的,这是因为一些内存过载,尤其是视频内存。 我使用 CIContext contextWithEAGLContext 创建上下文,然后将过滤后的图像渲染到 CVPixelBuffer。

“有助于”避免内存问题的唯一方法是每次我想渲染帧时创建和释放上下文,这当然太昂贵了。 (无 ARC)

所以在他们修复它之前,我的应用程序实际上已经死了。 Brad Larson 的 GPUImage 也是如此,RosyWriter - Apple 自己的例子也是如此。

【讨论】:

是的,我还计划在我的项目中将 GPUImage 的使用范围扩大到 coreimage 在 ios9 之前可以完成的任务。删除 coreimage->coregraphics 路径似乎是一个(不希望的但一个)修复。仅供参考:我的 CIContext 是一个不受 GLES 上下文限制的全局上下文。 我放弃了。我在 ios9 及更高版本上切换到 GPUImage 高斯过滤器:-[ 赏金是你的。 也放弃了 CIColorMatrix :-( 对不起,我在这里也放弃了。我在 Apple 论坛上发现了一个类似的案例,他们说这个问题在 iOS beta 9.1b3 上得到了解决。所以我就等着吧。 您打算如何处理 9.0.x 支持?在 9.0 上是否有两个使用 GPUImage 回退的替代代码路径,或者有一个免责声明,即该应用可能在 9.0 上出现故障并强制用户从 9 beta 升级到 9.1?

以上是关于ios9 上的应用程序驱逐。如何检查导致这些的原因?的主要内容,如果未能解决你的问题,请参考以下文章

如果在 iOS 9+ 上的 Safari 中手机上安装了应用程序,如何从 Javascript 检查?

iOS 9.1 导致我的 JSON NSURL 连接到 PHP 页面时出错

Kubernetes Pod 驱逐详解

ios9.3无法点开网站链接 ios9.3不能打开Safari内链接怎么解决

如何找出导致 IOS 8 上的 didHideZoomSlider 错误的原因?

k8s 应用优先级,驱逐,波动,动态资源调整