繁体   English   中英

在启动完成之前,企业分布式iOS应用程序崩溃不一致

[英]Enterprise Distributed iOS App Crashes Inconsistently Before Launch Finishes

我正在使用企业版程序分发iPhone应用程序。 用户从一个私有位置下载该应用程序,并且尚未报告安装该应用程序的任何问题。 该应用对于大多数人来说运行良好。

但是,一些用户抱怨该应用在启动完成之前崩溃(他们点击该图标,它会放大以启动,然后立即返回主屏幕)。 我已经亲自观察了几次。 对于大多数人来说,删除该应用程序并重新安装它并不能解决问题。

此问题曾在我自己的设备上发生过一次,但是在我的情况下,删除并重新安装该应用程序可以解决此问题。 在设备上没有日志引用该问题。

最初,我以为application:didFinishLaunchingWithOptions:花费的时间太长,导致应用程序无法正确加载,但是我从该方法中删除了所有可能阻塞的代码,并使其后台无效。

我怀疑这是一个代码签名问题,因此我重新构建并提供了具有新配置文件的新副本。 这也没有效果。

考虑到没有日志(由Google Analytics(分析)报告或直接在设备上记录),我的印象是该应用程序根本没有启动,这与应用程序的准备方式有关。

任何见识将不胜感激!

我经历过这样的事情。

在这使我发疯之后,我意识到了错误正在更改Xcode上的Run操作的方案。

将配置切换为“发布”使我可以在与企业版或临时版发布时完全相同的条件下在设备上启动应用程序。

在崩溃点,我能够获得确切的代码行并解决了问题。

自正确安装以来,这不会是codeSigning问题,您是否在didFinishLaunching中执行任何服务器请求,或者是否已链接了一些静态库,它们可能是导致此问题的原因,无论是什么,它都是直接从您发生的didFininshLaunchingWithOptions方法中的AppDelegate

我注意到所有iOS 8+设备都开始发生这种情况,但iOS 7或6都没有发生这种情况。问题确实出在代码签名上。 首先,我需要在代码签名中添加一个Entitlements.plist文件(我使用命令行进行代码签名)。 没有授权文件,该应用程序将无法安装在我的任何设备上。 但是,使用授权文件,它将在iOS8 +上崩溃。 我相信错误是我在Windows上使用C#创建了自动权利文件。 Windows添加了一些苹果公司不同意的行尾。 解决方案是使用在Mac上创建的权利文件。

另外,请确保权利文件上的捆绑包ID与用于对应用程序进行签名的供应配置文件中的ID匹配。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM