Flutter 혹은 iOS

오늘 있었던 일이다. 앱 개발을 마무리하던 찰나에, 잠시 앱 빌드를 다시 했더니 갑자기 빌드가 안 되었다.

심지어 시뮬레이터도 실행이 안 되고, 에러도 안 나고 그냥 먹통이었다.

Xcode를 켜니, 아.. iOS 17이 나왔단다. 아주 친절하게도 iOS 16.4 버전으로 설정되어 있던 모든 시뮬레이터가 사라지고 전부 iOS 17로 설정되었다.

급하게 구글링을 해서 16.4 버전 시뮬레이터를 구성하고, 빌드를 했는데 빌드가 안 된다.

Firebase와 Firebase Analytics 패키지에서 에러가 나고 있었다.

DT_TOOLCHAIN_DIR cannot be used to evaluate LIBRARY_SEARCH_PATHS, use TOOLCHAIN_DIR instead

구글링을 해보니 CocoaPods에서 나오는 이슈였다.
(https://github.com/CocoaPods/CocoaPods/issues/12012)

이미 Xcode 베타버전에서 보고가 되고 있었고, 해결도 되었지만, 댓글을 보면 알 수 있듯이 1.13.0 마일스톤으로 들어갔다. 그래서 해결이 안 된것으로 알고 댓글에 나와있는 우회 책들만 여러 시도를 했는데 해결이 안 되었다.

그래도 우선 brew를 통해 cocoapods를 업데이트해 보니 다행히 해결되었다. 다만, 다른 문제가 나왔다. iOS 17 SDK 가 적용되면서 Flutter 패키지중 일부가 사용하는 코드가 동작하지 않는 것이었다.

하하, Flutter의 개발 생태계가 다른 분야만큼 성숙하지 않다고 느껴지는 부분이다. iOS의 SDK는 미리 배포되어서 각 패키지나 코드들이 사전에 문제가 없도록 방지하는데, 이런 부분이 적용되지 않은 것이다.

그래도 희망적인 것은 Flutter 사용자가 꽤 늘어서, 피드백이 빠르다는 것이다.

아무튼, 동작하지 않는 패키지는 flutter_inappwebview 였다.

Failed to build iOS app
Error (Xcode): type argument 'nw_proxy_config_t' (aka 'struct nw_proxy_config *') is neither an Objective-C object nor a block
type
/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.0.sdk/System/Li
brary/Frameworks/WebKit.framework/Headers/WKWebsiteDataStore.h:116:46

Parse Issue (Xcode): Could not build module 'WebKit'
/build/ios/Release-iphoneos/flutter_inappwebview/flutter_inappwebview.framework/Headers
/flutter_inappwebview-Swift.h:286:8

꽤 큰 패키지인데, 현재 개발 중인 앱에서는 직접 사용하진 않지만, youtube_player_flutter 패키지 내에서 의존성으로 사용하고 있었다. 직접 fork 하여 코드를 수정한 후 배포하려다, 시간도 촉박한 데다 강의 중간중간 쉬는 시간에 하다 보니 도저히 집중이 안 되어 대체 패키지를 찾아서 해결했다.
(https://github.com/pichillilorenzo/flutter_inappwebview/issues/1735, 논의 중)

그렇게 이슈는 정리되었다.

참, 95%가 편하고 생산성이 좋아서 활용하지만, 5% 정도의 이런 단점들이 드물게 드러날 때면, 굉장히 고되다.
그래도 넘길 수 있는 이유라면, 이정도는 내가 제어할 수 있는 부분이 아니라 자연재해 쯤으로 여기기 때문이다.

100% 알고 컨트롤할 수 있는 기술이 뭐가 있겠냐는 것이다.

그렇게 이번 앱도 마무리 돼가고 있다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다