Xcode 11 beta 模拟器在尝试加载 AudioToolbox 时崩溃
Posted
技术标签:
【中文标题】Xcode 11 beta 模拟器在尝试加载 AudioToolbox 时崩溃【英文标题】:Xcode 11 beta simulator crashes when trying to load AudioToolbox 【发布时间】:2019-06-05 06:58:19 【问题描述】:我正在尝试运行现有应用程序,以查看它与最新 Xcode 测试版的配合情况,并尝试在现有项目中使用 SwiftUI。当我在模拟器上运行项目时,出现以下运行时崩溃:
dyld: Symbol not found: __ZTISt11logic_error
Referenced from: /Users/lucas/Library/Developer/CoreSimulator/Devices/224333CF-0388-4F57-9633-6CAB37B33510/data/Containers/Bundle/Application/<Guid>/<AppName>.app/<AppName>
Expected in: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/ios.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/AudioToolbox.framework/AudioToolbox
in /Users/<name>/Library/Developer/CoreSimulator/Devices/224333CF-0388-4F57-9633-6CAB37B33510/data/Containers/Bundle/Application/<Guid>/<AppName>.app/<AppName>
将所有内容设置为 iOS 13 会使错误消失,但在不久的将来不会起作用。还尝试删除与音频和 AV 框架相关的任何内容,但没有帮助。
【问题讨论】:
我会在 Radar 上提交一个错误。他们很注意。 能否请您提交一份带有复制案例的雷达并在此处报告编号?谢谢。 @JeremyHuddlestonSequoia 我们这里有完全相同的错误,但我们的项目非常大,所以我们无法立即获得最小的复制案例。我们尝试开始一个新项目并导入音频和 AV 框架,但它们在所有模拟器中都运行良好。所以我们最好的猜测是问题源于同时导入其他框架。关于我们如何解决问题的任何建议? @JeremyHuddlestonSequoia 和我们一样。这是一个 30000 行的项目,如果我尝试在单独的项目中重新制作,我无法将其隔离。我试图删除 Facebook SDK,因为他们使用了实际的框架,但他们没有。 @Michael hmm 也许只有可可豆荚文件就足够了吗? 【参考方案1】:显然相同的错误,但符号不同:
dyld: Symbol not found: __ZTISt9bad_alloc
Referenced from: <bla-bla-bla>
Expected in: /Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 12.1.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/AudioToolbox.framework/AudioToolbox
in <bla-bla-bla>
@Jeremy 的回答对我有用。为了帮助找到它,该文件位于
/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/Frameworks/AudioToolbox.framework/AudioToolbox.tbd
你取出的行是:
weak-def-symbols: [ __ZTI11CAException, __ZTIN8DSPGraph9ExceptionE, __ZTINSt3__112bad_weak_ptrE,
__ZTINSt3__117bad_function_callE, __ZTISt11logic_error, __ZTISt12length_error,
__ZTISt12out_of_range, __ZTISt13runtime_error, __ZTISt16invalid_argument,
__ZTISt18bad_variant_access, __ZTISt8bad_cast, __ZTISt9bad_alloc,
__ZTISt9exception, __ZTS11CAException, __ZTSN8DSPGraph9ExceptionE,
__ZTSNSt3__112bad_weak_ptrE, __ZTSNSt3__117bad_function_callE,
__ZTSSt11logic_error, __ZTSSt12length_error, __ZTSSt12out_of_range,
__ZTSSt13runtime_error, __ZTSSt16invalid_argument, __ZTSSt18bad_variant_access,
__ZTSSt8bad_cast, __ZTSSt9bad_alloc, __ZTSSt9exception ]
【讨论】:
【参考方案2】:这是 iOS 13 Beta SDK 中的一个错误。您可以通过编辑 SDK 中的 AudioToolbox.tbd 文件来解决它,以删除不应该从那里导出的 __ZTISt11logic_error (等)符号,或者您可以编辑链接行以在 -framework AudioToolbox
之前包含 -lc++
(这样静态链接器使用 libc++ 中的正确引用,而不是从 AudioToolbox 错误引用的一次)。
或者您可以等待未来的测试版修复;)
【讨论】:
好东西杰里米!给我一些时间来验证这个问题是否适合我。Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AudioToolbox.framework/AudioToolbox.tbd
中没有 __ZTISt11logic_error
。【参考方案3】:
我遇到了同样的错误:
dyld: Symbol not found: __ZTISt11logic_error
Referenced from: <bla-bla-bla>
Expected in: /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox
in <bla-bla-bla>
但我在 Clion 中编译自己的 C++ 项目时遇到了这个问题,因此没有与 Simulator 或 iO 相关联。
当时我有 XCode 10.2.1。我尝试了多种方法来修复此崩溃,但没有任何帮助。 幸运的是我找到了这个post,所以我将我的 XCode 降级到 10.1,它是命令行工具。它帮助了我!
所以,即使我的建议可能对 XCode 11 测试版没有帮助,我希望它可以帮助其他与您遇到相同错误的开发人员。
【讨论】:
【参考方案4】:这是一个 Xcode 错误,但有一个解决方法。在目标的“Frameworks Libraries & Embedded Content”部分,添加 libc++.tbd 并确保它位于列表顶部。这应该是你所需要的。
【讨论】:
这对我没有帮助(也无法重新排序此列表,因此我无法将 libc++ 置于顶部)。以上是关于Xcode 11 beta 模拟器在尝试加载 AudioToolbox 时崩溃的主要内容,如果未能解决你的问题,请参考以下文章
Xcode 11 beta 上找不到 iPhone 7 模拟器
iPad 模拟器上的 SKScene 问题无法在 Xcode 11 beta 7 中填满屏幕
Xcode 11 Beta 不会因为 WatchKit 而构建?