首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >运行时遇到错误(域= LaunchServicesError,代码= 0)

运行时遇到错误(域= LaunchServicesError,代码= 0)
EN

Stack Overflow用户
提问于 2014-09-03 05:43:20
回答 21查看 59.2K关注 0票数 70

我收到一个错误(域名= LaunchServicesError,代码= 0),当尝试启动我的应用程序在iOS模拟器与Xcode6。我在谷歌寻找解决方案,但我没有找到任何实际的东西。

这个错误是什么意思?

EN

回答 21

Stack Overflow用户

发布于 2014-10-01 04:47:08

此错误表示安装有问题。不幸的是,Xcode实际上并不打印错误消息的内容,这会让您更深入地了解,但是您可以查看~/Library/Logs/CoreSimulator/CoreSimulator.log来查看其余的错误详细信息。在模拟设备的系统日志(~/Library/Logs/CoreSimulator/Device UDID/system.log)中还会有关于该问题的更多信息;查找错误发生时来自installd的消息。

常见的原因包括包缺少Info.plist,包的Info.plist中缺少键,或者Info.plist中的某些键的值不被允许。

如果您的应用程序的Info.plist不包含有效的CFBundleVersion键/值对,则您的应用程序可能会在第一次安装时正确安装,但无法更新。许多用户似乎通过在每次安装后执行“重置内容和设置”来解决这个问题,但通过在Info.plist中设置适当的CFBundleVersion来修复根本原因会更好。我相信在这种情况下,iOS 8.2现在正确地在第一次安装时返回错误,而不仅仅是在更新时,所以希望这个问题现在会更明显。

主目录位于不支持硬链接的文件系统(例如:通过AFP、SMB或某些NFS服务器的网络主目录)上的用户也可能遇到与硬链接相关的问题。如果是这种情况,我建议您在本地模拟器文件系统上创建一个用于模拟器开发的路径(例如:/var/ HFS+ /user),并从~/Library/Developer/CoreSimulator创建到该路径的符号链接。此特定问题已在iOS 8.2测试版之一中修复。

在另一种情况下,构建和运行总是在第一次尝试时成功,但随后的尝试有时会因为更改了Info.plist而失败(例如:因为某人的构建系统设置导致每次迭代的CFBundleVersion都不同)。您通常可以通过删除已安装的应用程序(从主屏幕或xcrun simctl uninstall [Device UDID] [app identifier]中长按)或将设备擦除回默认状态来恢复。要擦除设备,请从终端执行xcrun simctl erase [Device UDID]或从iOS模拟器菜单中选择Erase Contents & Settings。此特定问题已在iOS 8.2测试版之一中修复。

Xcode 6.2用户出现了此问题的较新实例。如果您的应用程序中捆绑了WatchKit应用程序扩展,它将无法安装到早于iOS 8.2的iOS模拟器运行时版本。作为一种解决办法,当您想要使用iOS 8.1和更早的运行时进行测试时,需要手动禁止安装应用程序扩展。

如果您需要更具体的帮助,请提供CoreSimulator.log的完整错误消息,以及在~/Library/Logs/CoreSimulator/Device UDID/system.log中几乎同时出现的来自installd和CoreSimulatorBridge的任何消息,因为这将揭示潜在问题。

票数 119
EN

Stack Overflow用户

发布于 2014-09-04 03:53:10

您的项目是否包含小部件或扩展?如果是这样的话,问题可能出在小部件/扩展的捆绑标识符上。它应该与主目标相同,并附加一个句点和一个额外的字符串。举个例子:

主要目标:com.mycompany.myapp

小部件应该是:com.mycompany.myapp.widget

票数 41
EN

Stack Overflow用户

发布于 2014-09-30 00:36:36

我通过重置模拟器修复了它:

iOS模拟器>重置内容和设置...

票数 40
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25632886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档