ifuse不能挂载App Store下载的包ERROR: InstallationLookupFailed
最近使用过程中发现,有时候ifuse挂载的目录不能访问了,例如:
1、mac锁屏解锁,挂载的目录不能访问了;
2、app卸载后安装,挂载的目录不能访问了;
我的挂载目录是:~/ios_sandbox/iPhoneX,当挂载目录不能访问时,需要重新挂载:
1、先查一下挂载关系是否存在:
testmanzhang@TestMandeMBP ~ % mount ~/ios_sandbox/iPhoneX
mount: /Users/testmanzhang/ios_sandbox/iPhoneX: unknown special file or file system.
2、卸载这个挂载点:
testmanzhang@TestMandeMBP ~ % umount ~/ios_sandbox/iPhoneX
3、重新挂载:
testmanzhang@TestMandeMBP ~ % ifuse ~/ios_sandbox/iPhoneX --container com.xxxxxxx.ios --udid f89d929e1111111c0fe2d22f80c1a36e11111111
上面提到的情况是可以通过重新挂载可以再次访问沙盒目录的情况,后面又遇到一种情况,就是我安装了App Store的包,这时候我再尝试ifuse提示:
testmanzhang@TestMandeMBP ~ % ifuse ~/ios_sandbox/iPhoneX --container com.xxxxxxx.ios --udid f89d929e1111111c0fe2d22f80c1a36e11111111
ERROR: InstallationLookupFailed
The App 'com.xxxxxxx.ios' is either not present on the device, or the 'UIFileSharingEnabled' key is not set in its Info.plist. Starting with iOS 8.3 this key is mandatory to allow access to an app's Documents folder.
后来我查了一下:
iOS 沙盒机制
苹果对应用数据的访问进行了严格限制。每个 App Store 应用的数据目录都在其专属的沙盒中,未经设备本身授权或越狱,外部工具无法访问这些目录。
权限验证
ifuse 基于 libimobiledevice,只能访问设备授权范围内的数据,如照片、媒体文件、开发者模式安装的 App 数据等,而对 App Store 下载的应用沙盒无权限。
应用数据加密
App Store 下载的应用及其数据可能会加密,除非通过越狱方式或系统授权,ifuse 无法解密或挂载这些数据。
【总结】
所以我们在做自动化时,应该使用本地打的release包或者debug包。