iOS 8.0.2库未加载libswiftCore.dylib。

19

我有一个使用HealthKit和Swift编写的应用程序,当我在Xcode上模拟器或设备上测试时,所有内容都可以编译和运行良好。我测试、调试并将其提交到iTunes商店。当应用程序获得批准后,我从商店下载新版本,但它立即崩溃了。这非常令人困惑,因为我以前从未遇到过这个问题。我查看了手机上的诊断和使用日志以及应用程序的崩溃报告,发现如下错误:

Dyld Error Message: Library not loaded: @rpath/libswiftCore.dylib Reference from: /path/to/my/app Reason: no suitable image found. Did find: /path/to/my/app/Frameworks/libswiftCore.dylib: mmap() error 1 at address=0x100174000, size=0x0194000 segment=__TEXT in Segment::map()

有人遇到过类似的问题或知道如何处理吗?

谢谢。

编辑:

在10月4日早上,这个崩溃问题神奇地自行解决了,这告诉我这是苹果公司的问题。我一直在给iTunes Connect支持发送电子邮件,但他们并没有明确表示发生了什么事情。我甚至打开了一张技术工单,但苹果公司没有回应。这非常令人失望,不仅因为苹果公司没有公开透明地解释问题,而且它让我感觉自己在将来如果再次遇到类似的问题时就没有任何行动的余地了。


2
我遇到了类似的问题,我的应用因为同样的崩溃问题被拒绝了。根据App Store的审核结果,这只发生在iPad上...我已经尝试使用完全相同的构建版本在他们遇到崩溃的设备上进行复制,但没有成功。我已经打开了一个支持工单,并将工单升级,希望很快能得到答案。我尝试了许多方法和重新提交,但对于审核人员来说仍然会出现相同的崩溃问题。 - maxpower
@maxpower,感谢您的回复。今天早上我也向苹果公司提交了一张工单。如果我收到任何回复,我会更新我的帖子。如果您也从苹果公司那里听到任何消息,请告诉我。这真的很令人沮丧。 - AgnosticDev
2
我有完全相同的问题。在 TestFlight 中,相同的二进制文件在发布模式下工作,并且可以通过手动安装 ipa 文件来使用。我也提交了一个工单。 - Ah Ryun Moon
1
刚遇到完全相同的问题,真是令人沮丧... - Daniel
1
我在使用iPhone运行我的应用程序时遇到了类似的问题...它在模拟器上运行良好,但在iPhone上立即崩溃,并显示基本相同的错误信息。这是在更新到XCode 7和iOS 9并将StackView添加到故事板后不久发生的。 - Jeremy Kahn
显示剩余6条评论
7个回答

7

只需执行以下两个步骤:

1) 从设备(或模拟器)中删除该应用程序

2) 清理你的工作区(CMD+SHIFT+K 或通过菜单 Product->Clean)

3) 再次构建和运行你的应用程序。

神奇地帮助你解决所有启动/部署问题...

我经常遇到“设备上找不到应用程序”或签名问题等情况。在这之前,一切都运行良好。


6

这似乎可能是苹果方面的代码签名问题,并且该问题似乎会影响嵌入式框架(包括非Swift应用程序)的应用。有多个开发者受到影响(包括我自己),他们仅提交了更新,而没有更改任何构建设置。一些知名的应用程序似乎已受到影响,并已向苹果提交了工单,但目前尚未得到官方回复。

编辑:这已经得到确认。


3
请提供确认链接以供未来的 Stack Overflow 使用者查看。 - Steve N

3

我在我的应用程序版本更新(FunKeyBoard 1.1)中遇到了完全相同的问题。

经过一些研究,看起来这是苹果在10月3日更新的许多应用程序中出现的问题。苹果在10月4日发布了一个更新,版本号相同,无需任何修复/重新上传即可解决该问题。

显然这是苹果方面的问题,但我很惊讶苹果对此保持沉默。许多开发者,包括我自己,因此收到了用户的愤怒邮件和不良应用程序评论。


感谢您的报告,@Enrico Pangan。 - AgnosticDev

2

编辑:

经过这次更改,应用程序仍被因同样的原因而拒绝。然而,我相信问题出在libswiftCore缺少架构版本。


我将把这个作为初步答案发布。 Xcode 6标准架构排除了armv7s

请注意错误提示中的内容:找到:/path/to/my/app/Frameworks/libswiftCore.dylib

所以它找到了lib库,但同时也提示原因:未找到合适的映像。

经过对存档构建进行lipo检测,发现swift库和应用程序二进制文件都不包含armv7s。根据上面的链接我手动添加了它并重新编译,现在二进制文件包含对armv7s的支持,但swift库仍未包含。我的应用程序正在快速审核中,当有反馈时我会及时跟进。


在架构设置中。 - AgnosticDev
我的应用刚进入审核,但几乎立即被拒绝了。苹果表示该应用在加载时会崩溃,尽管仅仅24小时前还因为同样的问题被允许上架。 - AgnosticDev
1
我认为苹果已经解决了这个问题。@AndresC 如果你有问题,可以尝试一下,但据我所知,这只有帮助企业账户,而不是向应用商店交付的账户。 - maxpower
1
成功修复了,重新创建证书和配置文件! - Andres C
1
@AndresC 我们也尝试了这个方法,它有效。此外,我们还发现了一篇博客文章讨论了这个问题:https://www.airsignapp.com/ios-apps-using-swift-crash-when-signed-with-inhouse-certificate/ - warchimede
显示剩余8条评论

2

这种错误通常发生在使用缺少“OU”(组织单位)的证书签署Swift应用程序时。iOS 8发布后创建的所有证书都应该具有此功能。简单的解决方案是创建一个新的证书进行签名。

更多详情请参见官方苹果评论:https://developer.apple.com/library/ios/qa/qa1886/_index.html


0

看起来我的iTunes商店现在可以正常下载和打开了。根据我在Apple开发者论坛上所读到的,其他应用程序现在也可以正常工作。我没有收到任何关于这种情况发生原因或原因的消息。我向他们提出了技术支持申请,并联系了iTunes Connect支持团队,但是他们没有给出任何解释或有关此问题已解决的信息。这对他们来说是相当糟糕的客户服务。


0

我曾经遇到过同样的问题。我移除了对arm64的支持,添加了对armv7s的支持,现在苹果审核团队已经批准了这个应用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接