尝试从XCode [iOS 5.0.1]运行应用程序时,在安装SPIRE后检测到已加载库的UUID不匹配

时间:2012-02-11 14:46:01

标签: iphone objective-c xcode uuid

我在这里读到了这个论点:UUID mismatch detected with the loaded library

投票最多的解决方案对我不起作用,因为我确信在我的情况下问题是 Spire

当我尝试将我的应用程序[iOS 5.0目标]在Xcode 4.2中运行到我的iPhone 4 [iOS 5.0.1 JB]时,控制台中的输出是:

warning: UUID mismatch detected with the loaded library - on disk is:
    /Users/myusername/Library/Developer/Xcode/iOS DeviceSupport/5.0.1 (9A405)/Symbols/System/Library/Frameworks/CoreLocation.framework/CoreLocation
unable to load symbol file: warning: Unable to read symbols for /Library/MobileSubstrate/MobileSubstrate.dylib (file not found).
warning: No copy of MobileSubstrate.dylib found locally, reading from memory on remote device.  This may slow down the debug session.

在安装 Spire 之前,我没有任何Xcode问题。我读过有人已经找到了一个解决方案:https://stackoverflow.com/a/8930742/1203837但是我在处理我将要在此处报告的建议方案时并不那么实际:

  

如果您安装了Spire并且更新到5.0.1,则需要卸载Spire或更新Spire正在使用的dyld_shared_cache ... Spire dyld缓存位于/ var / spire。您需要从ipsw中提取适合当前固件的缓存。

我真的不会卸载Spire,所以请帮我找出如何“更新Spire正在使用的dyld_shared_cache”。


编辑,感谢 kexik 我已针对此问题测试了完全正常工作的解决方法

无论您安装Spire的设备是什么,这里都是分步指南(Mac OS)

  • 下载原版iPhone 4S ipsw(link

  • 将.ipsw重命名 .zip

  • 提取(通常在Mac OS X中双击)

  • 下载vfdecrypt link)ed将其解压缩到ipsw的同一个解压缩文件夹中。

  • 打开终端并导航到ipsw extraxted文件夹(提示:输入cd然后直接将文件夹拖放到终端窗口中)

  • 运行命令

./vfdecrypt -i 038-3763-001.dmg -o decrypted.dmg -k a31ffd506c6711c5a0c52c9f0a2f7208a2f63ad9dd40506e70d80ea20a981eb1312bc774

注意:

  

-i 038-3763-001.dmg

相对于你可以在提取的ipsw文件夹(称为根文件系统)中找到的所有文件中最大的.dmg

  

-o decrypted.dmg

相对于输出解密文件的名称,我称之为“decrypted”(扩展名.dmg已修复)

  

-k a31ffd506c6711c5a0c52c9f0a2f7208a2f63ad9dd40506e70d80ea20a981eb1312bc774

相对于VFDecrypt Key,完全适用于iPhone 4S iOS 5.0.1和038-3763-001.dmg图像。来源是theiPhoneWiki

  • 等待流程终止(您会看到新的提示行) completed vfdecrypt process

  • 打开(挂载 decrypted.dmg (双击它),这里是iPhone 4S根文件系统。

  • 导航到文件夹

  

/System/Library/Caches/com.apple.dyld

  • 对(仅)文件 dyld_shared_cache_armv7 (即在桌面上)进行复制并将其重命名为dyld_shared_cache_armv7.new

  • 将我/ (我使用DiskAid)放入您的iDevice 文件系统

  

的/ var /尖顶

  • 导航到该路径(我在我的iPhone上直接使用 iFile Cydia App)并在dyld_shared_cache_armv7中重命名原始 dyld_shared_cache_armv7。李明博。 现在重命名dyld_shared_cache_armv7中最近复制的 dyld_shared_cache_armv7.new。检查新的dyld_shared_cache_armv7是否具有与dyld_shared_cache_armv7.bak相同的属性(我必须将execute属性添加到新文件中),而不是删除dyld_shared_cache_armv7.bak(我建议在删除之前备份该文件)如果出现问题)。

  • 保存,退出iFile,从Mac上拔下电源并重新启动设备

  • 重新打开 XCode 并插入您的设备。可能无法自动检测到。在这种情况下,打开管理器(窗口 - >管理器)并删除当前的iPhone(或iPod touch或iPad)配置文件(我的配置文件中有黄色灯而不是名称旁边的绿色灯),拔掉它,重新启动Xcode,重新打开管理器并等待设备配置文件自动安装过程。

现在您的设备应该完全正常调试您的应用程序!安装了Spire的我的iPhone 4 GSM iOS 5.0.1 JB。

希望本指南能帮助遇到同样问题的人。

再次感谢kexik的建议!

1 个答案:

答案 0 :(得分:1)

找到有解密密钥的ipsw。然后uzip那个ipsw并搜索iphone wiki以获取该特定固件 - 在那里你会找到一个密钥以及带有根文件系统的.dmg文件的名称。在解压缩的文件系统中提取dmg(使用vfdecrypt或dmg decryptor)查找/System/Library/Caches/dyld.../dyld_shared_cache并将该文件复制到我提到的设备上的位置。

很抱歉没有给出确切的说明,我是从记忆中写下来的。如果需要,请告诉我,我将逐步准备更准确的内容。 ;)