应用程序在设备上崩溃但在模拟器上运行 iOS
App crash on device but works on simulator iOS
应用程序不是我开发的,但现在我必须添加一些功能。代码在模拟器上编译添加启动但在真实设备上立即崩溃(didFinishLaunchingWithOptions 从不调用)。 Xcode 没有显示任何错误。我认为问题可能出在 pods 和框架中,但不知道如何检查是否如此。我重新安装了 pods 并在项目中重新创建了框架依赖项,但仍然没有应用程序崩溃。我只有来自 Xcode 的信息
这些信息对我有何帮助?任何帮助表示赞赏。
UPD1:堆栈跟踪
UPD2:应用程序在 iOS9 和 iOS10 上崩溃,所以 NSCameraUsageDescription 不是问题
有同样的问题,在模拟器上工作但在设备上没有工作,得到了这个美妙但极简的堆栈跟踪 "abort_with_payload"
原来我只需要我的 plist 中的 "NSMicrophoneUsageDescription" 键
问题出在 pods 框架中。 pods 生成的脚本无法正确嵌入某些框架。我删除了“[CP] 嵌入 Pods 框架”脚本并自行将框架添加到 "Embedded Binaries"。问题解决了。
如果发生 abort_with_payload
错误,那么很可能 Info.plist 丢失了 UsageDescription
任何隐私密钥,因此检查是否有任何遗漏或苹果 changed/added 新的 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' 崩溃时,我也从控制台得到了以上输出。我认为最重要的消息是 "code signing blocked mmap()",这表明问题可能是由代码签名引起的。
我的解决办法是删除苹果WWDR证书,从苹果下载。并确保在信任证书时使用 "use system defaults" 选项。
然后退出 XCode,重新打开它,清理项目并重建。这个对我有用。
当您在子项目中有 XIB,并且它们嵌入了 UIView 时,也会发生这种情况。这些 UIView 应该选择了正确的模块!
应用程序不是我开发的,但现在我必须添加一些功能。代码在模拟器上编译添加启动但在真实设备上立即崩溃(didFinishLaunchingWithOptions 从不调用)。 Xcode 没有显示任何错误。我认为问题可能出在 pods 和框架中,但不知道如何检查是否如此。我重新安装了 pods 并在项目中重新创建了框架依赖项,但仍然没有应用程序崩溃。我只有来自 Xcode 的信息
这些信息对我有何帮助?任何帮助表示赞赏。
UPD1:堆栈跟踪
UPD2:应用程序在 iOS9 和 iOS10 上崩溃,所以 NSCameraUsageDescription 不是问题
有同样的问题,在模拟器上工作但在设备上没有工作,得到了这个美妙但极简的堆栈跟踪 "abort_with_payload"
原来我只需要我的 plist 中的 "NSMicrophoneUsageDescription" 键
问题出在 pods 框架中。 pods 生成的脚本无法正确嵌入某些框架。我删除了“[CP] 嵌入 Pods 框架”脚本并自行将框架添加到 "Embedded Binaries"。问题解决了。
如果发生 abort_with_payload
错误,那么很可能 Info.plist 丢失了 UsageDescription
任何隐私密钥,因此检查是否有任何遗漏或苹果 changed/added 新的 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' 崩溃时,我也从控制台得到了以上输出。我认为最重要的消息是 "code signing blocked mmap()",这表明问题可能是由代码签名引起的。
我的解决办法是删除苹果WWDR证书,从苹果下载。并确保在信任证书时使用 "use system defaults" 选项。
然后退出 XCode,重新打开它,清理项目并重建。这个对我有用。
当您在子项目中有 XIB,并且它们嵌入了 UIView 时,也会发生这种情况。这些 UIView 应该选择了正确的模块!