我正在 Xcode 6.1 和 iPhone (iOS 8.1) 模拟器上运行应用程序。运行时,我在控制台窗口中看到以下日志:
Warning: Error creating LLDB target at path '/Users/macbook/Library/Developer/Xcode/DerivedData/..Project.app'-
using an empty LLDB target which can cause slow memory reads from remote devices.
如果我在 Xcode 5.x 和 iPhone (iOS 7.x) 模拟器中运行应用程序,则控制台上没有此类登录。 可能是什么原因?如果我将应用程序上传到应用程序商店会有问题吗?
此警告主要用于 iOS 设备调试。在该环境中,Xcode 将设备的库和框架复制到 Mac 并将它们保存在 lldb 目录中。当您启动调试会话并且 lldb 发现您的应用程序正在使用 Foundation 框架时,它可以读取 Mac 上的副本 - 否则它必须从 iOS 调试会话中从内存中读取副本,速度很慢。
为什么你会在一些模拟器调试配置中看到这个,我不能说;这不是预期的。但对于 Mac 本机进程调试会话(就像您使用 iOS 模拟器调试一样),它是无害的 - lldb 从本地 Mac 内存中读取它的性能成本非常小。
上传到商店后绝对不会对您的应用产生任何影响。这完全是 Xcode/lldb 缓存问题,与您的应用程序无关。
可以通过在构建设置中将“Architectures”设置为“Standard Architectures (armv7, arm64) - $(ARCHS_STANDARD)”来解决
任何方式- 此警告的解决方案是标准架构(armv7,arm64)而不是 $(ARCHS_STANDARD_32_BIT)
但请记住,只有当您的所有 Pod、框架也支持此功能时,它才会支持您的应用程序,否则您必须升级它们。 (有时这不是一件很快的事情。)
毗湿奴
“在路径...创建 LLDB 目标时出错 - 使用空 LLDB 目标” 也可能在 x86_64
到
arm64
转换时发生。在这种情况下,当模拟器可以运行
x86_64
时,Apple Silicon 计算机就构建为
arm64
架构。以下内容用于调查并解决 Xcode 15 和相关 iPhone 模拟器的
…using an empty LLDB target…
错误:使用
file
检查构建可执行文件的架构。可以使用Product > 在 Finder 中显示构建文件夹菜单找到构建文件夹。
pwd
# …path/to/Build
cd Products/Debug-iphonesimulator/ExampleName.app
file ExampleName
# Mach-O 64-bit executable x86_64
### x86_64 can raise the empty LLDB target error when debugging
### iOS in the Simulator on an Apple Silicon computer.
.xcodeproj 设置
ARCHS
| $(ARCHS_STANDARD)
| $(ARCHS_STANDARD)
|
|
EXCLUDED_ARCHS
| |||
ONLY_ACTIVE_ARCH
|
CocoaPods Podfile
### other: `ONLY_ACTIVE_ARCH` = YES only for `*Debug*` configurations
if config.name.include?("Debug")
config.build_settings["ONLY_ACTIVE_ARCH"] = "NO"
end
调试.xcconfig
仅供参考,可以将ONLY_ACTIVE_ARCH
设置添加到
*.xcconfig
文件中以用于实施和文档目的。
// Resolve "Error creating LLDB target … using an empty LLDB target…"
ONLY_ACTIVE_ARCH = YES