Showing All Messages In ~~~~~~~/WebP.framework/WebP(anim_decode.o), building for iOS Simulator, but linking in object file built for iOS, file ~~~~~~~~/WebP.framework/WebP for architecture arm64
라고 뜨며 앱빌드가 되지 않는다.
재택근무하며 집에 있는 맥북은 intel 기반이고 사무실은 m1이라 왔다갔다 하면서 사용되는 라이브러리가 달라 발생하는 문제로 보인다.
문구 그대로 검색하면 나오는 방법은
프로젝트 빌드 설정의 Excluded Architectures에 arm64를 넣으면 만사ok 라는데
이를 행하면 아래와 같은 오류가 발생한다.
~~/ Could not find module 'SnapKit' for target 'arm64-apple-ios-simulator'; found: x86_64-apple-ios-simulator, at: ~~~/Library/Developer/Xcode/DerivedData/Store-cnoxkdqeqkddojftbwfdqjacdaxo/Build/Products/Debug-iphonesimulator/SnapKit/SnapKit.framework/Modules/SnapKit.swiftmodule
오랜 세월을 함께한 나의 전우같은 스냅킷님에서 문제가 발생했다.
대충 보면 arm64시뮬레이터로 지정됐는데 해당 모듈을 찾을수 없다고한다.
/**
* 이쯤 되면 진짜 WebP.framework를 사용하고 싶지 않다.
* 더불어 YY이름이 여럿 붙은 오픈소스가 이용되는데 이게 다 무슨소린가 싶다
* 왓츠앱의 스티커 깃헙에서 제공해주고있는 오픈소슨데 왓츠앱이면 꽤 큰곳인데 이런 따로 오픈소스를 사용한다니 이해가 되지 않는다.
UINavigationController에 붙어있는 ViewController이지만백제스쳐가 동작하지 않는 경우가 왕왕있다.
해당 문제는 제스쳐 이벤트 끼리의 충돌문제인것으로 보인다이때 네비게이션 제스쳐를 하나의 UINavigationController 내부의 viewControllers개수가 하나보다 많을때만 동작하도록 지정해주는 걸 달아주면 이상하게도 동작을 잘한다.
해당 소스는 상단 스택오버플로우의 답에 달린 코드이다.
class NavigationController: UINavigationController, UIGestureRecognizerDelegate {
/// Custom back buttons disable the interactive pop animation
/// To enable it back we set the recognizer to `self`
override func viewDidLoad() {
super.viewDidLoad()
interactivePopGestureRecognizer?.delegate = self
}
func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
return viewControllers.count > 1
}
}