Flutter에서 만든 앱을 macos desktop app에서도 사용하고 싶어서 테스트를 해봤는데
Firebase와 통신하는 순간 이런 에러 메시지를 받았다.
일시적인 오류일 수 있다고하는데 전혀 일시적인 오류같지 않았다.
이것만으로는 정확히 뭐 때문에 오류가 발생하는지 모른다. 그래서 스택 트레이스를 출력해봤다.
여기서 나머지 원인은 아닌 것 같았고, 3번이 눈에 띄었는데, 검색해보니 이런 에러를 겪는 사람들이 있었다.
애플에서 애플리케이션을 더 안전하게 만들기 위해 파일 시스템과 네트워크 액세스, 그리고 기타 시스템 리소스에 대한 접근을 제한하는 방법으로 App Sandbox라는 모드를 사용해서 Firebase와 통신을 제한한다는 것이다. 그래서 이를 해결하기 위해서는 Sandbox 모드를 끄거나, 별도의 권한을 추가해서 클라이언트에서 Firebase에 통신할 수 있도록 할 수 있다고 한다.
전자는 app store에 출시하기 위해서는 부적절한 방법이므로 보통 후자를 권장한다.
방법은 flutter 프로젝트 > macos > Runner 에서 DebugProfile.entitlements 파일과 Release.entitlements 파일에 각각
<key>com.apple.security.network.client</key> <true/>
이걸 추가해주면 된다. (클라이언트에서 외부 네트워크 접근 가능하도록 권한 설정)
'Flutter' 카테고리의 다른 글
[Flutter] 아이폰에 빌드하기 (0) | 2024.03.02 |
---|---|
[Flutter] DT_TOOLCHAIN_DIR cannot be used to evaluate LIBRARY_SEARCH_PATHS, use TOOLCHAIN_DIR instead 에러 (0) | 2024.02.27 |