美文网首页Flutter圈子FlutterFlutter
Flutter 开发时,idevice_id 不能执行问题的解决

Flutter 开发时,idevice_id 不能执行问题的解决

作者: flmnix | 来源:发表于2020-03-02 21:42 被阅读0次

    在 MacOS 上进行 Flutter 开发的过程中,很多人会碰到 idevice_id 不能执行,需要挪到废纸篓的提示,并且找不到连接的 iOS 设备,不胜其烦。提示类似下图:

    产生这个问题是因为 MacOS 的安全机制,将下载的文件标记了特殊的扩展属性,执行这个文件的时候,会检查这个扩展属性,导致出现上述问题。

    假设 Flutter 的安装目录为 FLUTTER_ROOT,我们使用 xattr 命令查看一下:

    关于 xattr 命令,请参考https://ss64.com/osx/xattr.html

    xattr -l $FLUTTER_ROOT/bin/cache/artifacts/libimobiledevice/idevice_id

    输出如下:

    com.apple.quarantine: 0082;5df1b9a7;The Unarchiver;

    quarantine 是隔离区的意思,这里可以看出这个文件是 The Unarchiver 解压的,标记了隔离区。

    使用下面的命令去掉这个扩展属性:

    xattr -d com.apple.quarantine $FLUTTER_ROOT/bin/cache/artifacts/libimobiledevice/idevice_id

    然后再执行上面的 xattr -l 可以看到没有输出了。idevice_id 就能正常执行了。

    在 Flutter 安装目录,需要如此处理的文件有这些:

    $FLUTTER_ROOT/bin/cache/artifacts/libimobiledevice/idevice_id

    $FLUTTER_ROOT/bin/cache/artifacts/libimobiledevice/ideviceinfo

    $FLUTTER_ROOT/bin/cache/artifacts/libimobiledevice/idevicename

    $FLUTTER_ROOT/bin/cache/artifacts/libimobiledevice/idevicescreenshot

    $FLUTTER_ROOT/bin/cache/artifacts/libimobiledevice/idevicesyslog

    $FLUTTER_ROOT/bin/cache/artifacts/usbmuxd/iproxy

    $FLUTTER_ROOT/bin/cache/artifacts/ideviceinstaller/ideviceinstaller

    $FLUTTER_ROOT/bin/cache/artifacts/ios-deploy/ios-deploy

    打完收功。

    本文首发于微信公众号:肖念青,未经授权严禁转载!

    个人网站:https://www.jitao.tech

    欢迎关注公众号,不定时获取关于IT新知的文章。

    相关文章

      网友评论

        本文标题:Flutter 开发时,idevice_id 不能执行问题的解决

        本文链接:https://www.haomeiwen.com/subject/pywetttx.html