繁体   English   中英

应用程序在设备上崩溃但在模拟器 iOS 上工作

[英]App crash on device but works on simulator iOS

应用程序不是我开发的,但现在我必须添加一些功能。 代码编译添加在模拟器上启动,但在真实设备上立即崩溃(didFinishLaunchingWithOptions 从不调用)。 Xcode 没有显示任何错误。 我认为问题可能出在 pod 和框架中,但不知道如何检查是否如此。 我在项目中重新安装了 pod 并重新创建了框架依赖项,但没有应用程序仍然崩溃。 我只有来自 Xcode 的这个信息在此处输入图片说明 在此处输入图片说明

这些信息如何帮助我? 任何帮助表示赞赏。

UPD1:堆栈跟踪在此处输入图片说明

UPD2:iOS9 和 iOS10 上的应用程序崩溃,因此 NSCameraUsageDescription 不是问题

有同样的问题,在模拟器上工作但不在设备上工作,得到了这个美妙但极简的堆栈跟踪“abort_with_payload”

结果我只需要 plist 中的“NSMicrophoneUsageDescription”键

问题出在 pods 框架中。 Pod 生成的脚本无法正确嵌入某些框架。 我删除了“[CP] Embed Pods Frameworks”脚本,并自己将框架添加到“Embedded Binaries”。 问题解决了。

如果发生abort_with_payload错误,则 Info.plist 可能缺少任何隐私密钥的UsageDescription ,因此请检查是否缺少任何内容或苹果更改/添加了您正在使用的相机、照片、位置等的新 UsageDescription。

Exception Type: EXC_CRASH (SIGABRT) Exception Codes: 0x0000000000000000, 0x0000000000000000 Exception Note: EXC_CORPSE_NOTIFY Termination Description: DYLD, Library not loaded: @rpath/libswiftCoreGraphics.dylib | Referenced from: /var/containers/Bundle/Application/7208AD66-5D56-4973-88A9-8D22D7E541DB/myapp.app/myapp | Reason: no suitable image found. Did find: | /private/var/containers/Bundle/Application/7208AD66-5D56-4973-88A9-8D22D7E541DB/myapp.app/Frameworks/libswiftCoreGraphics.dylib: code signing blocked mmap() '/private/var/containers/Bundle/Application/7208AD66-5D56-4973-88A9-8D22D7E541DB/myapp.app/Frameworks/libswiftCoreGraphics.dylib'

当在“abort_with_payload”上崩溃时,我也从控制台获得了上述输出。 我认为最重要的消息是“代码签名被阻止的 mmap()”,这表明问题可能是由代码签名引起的。

我的解决方案是删除苹果WWDR证书并从Apple下载。 并确保在信任证书时,使用“使用系统默认值”选项。

在此处输入图片说明

然后退出 XCode,重新打开它,清理项目并重建。 它对我有用。

当您在子项目中有 XIB 并且它们嵌入了 UIViews 时,也会发生这种情况。 这些 UIViews 然后应该选择正确的模块!

暂无
暂无

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

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