从Xcode重新安装应用程序时,iPhone模拟器报告错误

时间:2014-11-06 11:00:47

标签: ios iphone xcode ios-simulator

我使用Xcode 6和iOS模拟器版本8.1(版本550.3)。

当我选择"构建并运行"如果应用程序还没有安装在模拟器中,那么在Xcode中一切都运行良好。但是,如果是,我在Xcode中收到以下错误:

无法在模拟器中运行应用 运行时遇到错误(Domain = LaunchServicesError,Code = 0)

模拟器的日志显示如下:

less ~/Library/Logs/CoreSimulator/CoreSimulator.log
Nov  6 11:53:47 Yggdrasil.local com.apple.dt.Xcode[4389] <Error>: 
Error Domain=LaunchServicesError Code=0 "The operation couldn’t be completed.
 (LaunchServicesError error 0.)" UserInfo=0x7fa697742360 
{Error=PackagePatchFailed, ErrorDescription=Could not hardlink copy 
/Volumes/UsersData/Users/kender/Library/Developer/CoreSimulator/Devices/AAD57C40-E208-4964-B63A-46B968B3EB36/data/Containers/Bundle/Application/FEE2DEB4-AEE3-48B7-BE71-5B027259C6FD/Baby Feeding.app 
to /Volumes/UsersData/Users/kender/Library/Developer/CoreSimulator/Devices/AAD57C40-E208-4964-B63A-46B968B3EB36/data/Library/Caches/com.apple.mobile.installd.staging/temp.P8QJEE/extracted/Payload/Baby Feeding.app
 with manifest /Volumes/UsersData/Users/kender/Library/Developer/CoreSimulator/Devices/AAD57C40-E208-4964-B63A-46B968B3EB36/data/Library/Caches/com.apple.mobile.installd.staging/temp.P8QJEE/extracted/com.apple.deltainstallcommands.com.owlcoding.babyfeeding}

/Volumes/UsersData/Users/kender是我的$HOME)。

我尝试删除所有模拟器(来自Xcode中的Devices窗口并重新添加它们 - 没有运气。

我删除了整个〜/ Library / Developer目录并允许Xcode重新创建它 - 之后出现同样的问题。

所以现在我已经陷入了Build and Run - &gt;进行更改 - &gt;删除应用 - &gt;构建和运行流程,哪种糟糕......任何人遇到这样的问题并找到了解决方案,或者你们可能有一些指示...

2 个答案:

答案 0 :(得分:27)

我遇到了同样的问题,这是由于Info.plist的本地化。

我的应用已本地化为多种语言,每个本地化都有一个带有CFBundleShortVersionString键的InfoPlist.strings文件。我在目标信息上更改了版本字符串,但在InfoPlist.strings文件中没有。

所以我删除了模拟器中的应用程序,在所有本地化的Info.plist文件中更新了CFBundleShortVersionString以匹配目标上的版本,这解决了我的问题。

答案 1 :(得分:3)

错误表示由于硬链接导致安装失败。我怀疑$ HOME的文件系统不支持硬链接。请更新您的问题以指定文件系统/ Volumes / UsersData的类型。

如果无法支持/ Volumes / UsersData上的硬链接,那么我建议您为模拟器数据创建一个本地目录,并从〜/ Library / Developer / CoreSimulator / Devices创建一个符号链接。

另外在旁注中,删除所有〜/ Library / Developer可能会破坏正在运行的模拟器服务。如果你这样做,请确保退出Xcode,iOS模拟器,乐器等,但也要确保通过运行killall -9 com.apple.CoreSimulator.CoreSimulatorService

来杀死服务