警告:在某些路径创建 LLDB 目标时出错

问题描述 投票:0回答:5

我正在 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) 模拟器中运行应用程序,则控制台上没有此类登录。 可能是什么原因?如果我将应用程序上传到应用程序商店会有问题吗?

console warnings lldb xcode6.1 ios8.1
5个回答
6
投票

此警告主要用于 iOS 设备调试。在该环境中,Xcode 将设备的库和框架复制到 Mac 并将它们保存在 lldb 目录中。当您启动调试会话并且 lldb 发现您的应用程序正在使用 Foundation 框架时,它可以读取 Mac 上的副本 - 否则它必须从 iOS 调试会话中从内存中读取副本,速度很慢。

为什么你会在一些模拟器调试配置中看到这个,我不能说;这不是预期的。但对于 Mac 本机进程调试会话(就像您使用 iOS 模拟器调试一样),它是无害的 - lldb 从本地 Mac 内存中读取它的性能成本非常小。

上传到商店后绝对不会对您的应用产生任何影响。这完全是 Xcode/lldb 缓存问题,与您的应用程序无关。


2
投票

此警告可通过更改构建设置来解决:

  1. 选择项目 -> 构建设置
  2. “架构”更改为“标准架构(armv7、arm64)-$(ARCHS_STANDARD)” Step 2

  3. 这将提示一条警报,指出支持 iOS 5.1.1 及更高版本。单击“将部署目标更改为 5.1.1”

Step 3

    对目标重复步骤(如果未自动更改)

Step 4

此外,这是首选的构建设置,因为 Apple 强制开发人员在 64 位架构上构建应用程序。

苹果文档链接


1
投票
当您使用 Architectures=$(ARCHS_STANDARD_32_BIT) 并在 64 位设备上运行应用程序时会出现此问题。

可以通过在构建设置中将“Architectures”设置为“Standard Architectures (armv7, arm64) - $(ARCHS_STANDARD)”来解决


0
投票
那么当您在 iPhone 5S 或最新设备/模拟器上调试时收到此警告时,可以将应用程序提交到应用程序商店吗?我听说如果你没有任何充分的理由不升级到 64 位 arch,苹果可以拒绝你的应用程序。

任何方式- 此警告的解决方案是标准架构(armv7,arm64)而不是 $(ARCHS_STANDARD_32_BIT)

但请记住,只有当您的所有 Pod、框架也支持此功能时,它才会支持您的应用程序,否则您必须升级它们。 (有时这不是一件很快的事情。)

毗湿奴


0
投票

“在路径...创建 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
    
© www.soinside.com 2019 - 2024. All rights reserved.