원문 : https://seorenn.tistory.com/87
문제
flutter 커맨드를 사용할 때, 예를 들어 flutter doctor나 flutter build, 혹은 flutter run 시에 아래와 비슷한 오류가 날 때가 있습니다.
"idevice_id" cannot be opened because the developer cannot be verifed.
위 오류에서 idevice_id 대신 ideviceinfo, iproxy 등 여러 이름이 올 수 있습니다. 즉 하나의 명령이 아니라 여러 명령 바이너리가 개발자 사인이 빠진 채로 빌드되어 있어서 macOS에서 경고를 표시하는 것입니다.
개발 IDE도구를 사용해서 xcode consol 을 사용해 iOS 폰에 빌드해서 넣으려고 할때,
아래와 같은 메세지가 나온다.
해결
원천적인 해결은 역시 구글 Flutter 개발팀에서 개발자 사인을 적용해서 빌드해 주는 것뿐이겠지만, 구글은 이 문제 해결에 관심이 없는 것 같습니다. 이 문제가 나타난 지 굉장히 오래된 데다 해결 방법이 단순함에도 전혀 해결되고 있지 않거든요.
개인이 할 수 있는 방법은 이 사인 체크를 우회하여 개발자 확인 여부를 체크하지 않도록 하면 됩니다. 다만 시스템 전역으로 이를 해제하는 것은 보안 시스템 하나를 꺼 버리는 것이기 때문에 추천하지 않습니다.
대신 각각의 명령어의 속성을 건드려서 해결하는 방법이 있습니다. 아래와 같은 식의 셸 커맨드를 입력하면 됩니다.
sudo xattr -d com.apple.quarantine /FLUTTER_PATH/bin/cache/artifacts/libimobiledevice/idevice_id
sudo xattr -d com.apple.quarantine /FLUTTER_PATH/bin/cache/artifacts/libimobiledevice/ideviceinfo
sudo xattr -d com.apple.quarantine /FLUTTER_PATH/bin/cache/artifacts/usbmuxd/iproxyFLUTTER_PATH라고 표시한 부분은 자신이 설치한 Flutter 도구의 경로를 입력해야 함에 유의합시다.
위 세 줄의 커맨드는 위에서 언급한 3가지 명령에 대해 각각 com.apple.quarantine 속성을 제거하는 커맨드이며 반드시 관리자 권한이 필요하기 때문에 sudo를 줘서 실행시키고 있습니다. 세 줄의 명령을 모두 실행할 필요는 없으며 문제를 겪게 되는 커맨드만 실행하는 것도 괜찮을 것 같습니다.
물론 이 외에 다른 커맨드에서도 위와 같은 경고를 보게 된다면 해당 명령어 역시 경로를 정확하게 입력해서 비슷하게 해결할 수 있습니다.
PS. 이거 하려다가... 몇번 빌드 해보니 그냥 되었다.;;;

댓글
댓글 쓰기