每当我在Xcode 6 GM Seed上构建时,都会出现这个错误。它似乎让我的应用程序变得异常缓慢。这到底意味着什么,我该如何解决?
我遇到了以下错误:
警告:在路径'.....'创建LLDB目标时出错-使用一个空的LLDB目标可能会导致从远程设备读取内存速度变慢。
PS:我无法运行我的应用程序,它卡在启动画面上。
每当我在Xcode 6 GM Seed上构建时,都会出现这个错误。它似乎让我的应用程序变得异常缓慢。这到底意味着什么,我该如何解决?
我遇到了以下错误:
警告:在路径'.....'创建LLDB目标时出错-使用一个空的LLDB目标可能会导致从远程设备读取内存速度变慢。
PS:我无法运行我的应用程序,它卡在启动画面上。
在苹果开发者论坛中有一个帖子https://devforums.apple.com/message/1010068#1010068,讲述如何诊断此问题。我在Xcode 6 GM Seed上遇到了这个问题,具体是版本6.0.1(6A317)。这不一定是解决方案,但它可能会帮助一些人得到更好的诊断。
有用的步骤如下 -
1)创建或修改您的~/.lldbinit
并添加log enable -f /tmp/lldb-api.txt lldb api
。
2)重新运行调试器会话(无需重新启动Xcode或任何其他东西)
3)检查/tmp/lldb-api.txt
文件。查找以SBDebugger :: CreateTarget(...)
开头的行。我的看起来像这样
SBDebugger(0x7f83671fd600)::CreateTarget (filename="/Users/xxxxxxx/Library/Developer/Xcode/DerivedData/Dino-gjuxikhuyokkqufeqmesmgjcxylu/Build/Products/Debug-iphonesimulator/Dino.app", triple=x86_64, platform_name=(null), add_dependent_modules=1, error=指定的架构“x86_64”与“i386-apple-ios”不兼容于“/Users/xxxxxxx/Library/Developer/Xcode/DerivedData/Dino-gjuxikhuyokkqufeqmesmgjcxylu/Build/Products/Debug-iphonesimulator/Dino.app/Dino”中) => SBTarget(0x0)
4) 从上面的日志输出中检查目标文件,在我的情况下-
文件路径 "/Users/xxxxxxx/Library/Developer/Xcode/DerivedData/Dino-gjuxikhuyokkqufeqmesmgjcxylu/Build/Products/Debug-iphonesimulator/Dino.app/Dino"
/Users/apanagar/Library/Developer/Xcode/DerivedData/Dino-gjuxikhuyokkqufeqmesmgjcxylu/Build/Products/Debug-iphonesimulator/Dino.app/Dino: Mach-O 可执行文件 i386
5) 所以,在我的情况下,我的问题是我正在构建的架构。项目的目标架构应该与日志输出中的 SBDebugger::CreateTarget() 行上的架构匹配。
Xcode 文档指出以下内容。我必须浏览我的嵌套框架并更改一些过时的架构目标-
关于64位架构的说明
应用程序扩展目标必须在其“体系结构”构建设置中包含arm64架构,否则将被App Store拒绝。当您创建新的应用程序扩展目标时,Xcode会将此架构包含在其“标准体系结构”设置中。
如果您的容器应用程序目标链接到嵌入式框架,则该应用程序还必须包括arm64架构,否则将被App Store拒绝。
有关64位开发的更多信息,请参见Cocoa Touch 64位转换指南或Cocoa 64位转换指南,具体取决于您的目标平台。
这个警告可以通过更改构建设置来解决:
将'架构'更改为'Standard architectures (armv7, arm64) - $(ARCHS_STANDARD)'
这将提示一个警告,说明支持iOS 5.1.1及以上版本。点击'将部署目标更改为5.1.1'
此外,这是首选的构建设置,因为苹果正在强制开发人员在64位架构上构建应用程序。苹果文档链接
我不确定这个方法是否适用于你的情况。但是我尝试了这个解决方案,对我来说效果非常好。
打开终端并输入rm -rf ~/Library/Developer/Xcode/DerivedData
这应该会删除大量的DerivedData文件夹,并使应用程序执行更快。
你是否使用了Architectures=$(ARCHS_STANDARD_32_BIT)并在64位设备(iPhone 5S或iPhone 5S模拟器)上运行你的应用程序?
苹果似乎对不支持64位的应用程序更加严格。因此,如果没有特殊原因,我认为最好在你的构建架构中包含arm64。
源代码: https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/ExtensibilityPG/ExtensionCreation.html#//apple_ref/doc/uid/TP40014214-CH5-SW1关于64位架构的注意事项
应用程序扩展目标必须在其Architectures构建设置中包括arm64架构,否则它将被App Store拒绝。Xcode在创建新的应用程序扩展目标时会将这个架构包含在其“标准架构”设置中。
如果你的容器应用程序目标链接到一个嵌入式框架,那么该应用程序也必须包括arm64架构,否则它将被App Store拒绝。
有关64位开发的更多信息,请参阅Cocoa Touch的64位转换指南或Cocoa的64位转换指南,具体取决于你的目标平台。