인텔 맥에서는 동작을 잘하던 docker 세팅파일이 에러를 내뱉는다

m1에서는 바로 안되나보다

검색을 통하니 m1에서는

db 관련 항목에서 

platform: linux/x86_64 를 넣으라고한다.

또는 터미널에 작업시 명령어 뒤에 "--platform linux/x86_64 mysql" 를 넣으라고한다

ex) docker pull --platform linux/x86_64 mysql

 

stackoverfolow ->

Well, technically it will not solve your issue (running MySQL on ARM), but for the time being, you could add platform to your service like:

services:
  db:
    platform: linux/x86_64
    image: mysql:5.7
    ...

Alternatively, consider using MariaDB, which should work as a drop-in replacement like e.g. this:

services:
  db:
    image: mariadb:10.5.8
    ...

Both ways work for me on M1 with the Docker Preview

 

https://stackoverflow.com/questions/65456814/docker-apple-silicon-m1-preview-mysql-no-matching-manifest-for-linux-arm64-v8

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이름이 여럿 붙은 오픈소스가 이용되는데 이게 다 무슨소린가 싶다

* 왓츠앱의 스티커 깃헙에서 제공해주고있는 오픈소슨데 왓츠앱이면 꽤 큰곳인데 이런 따로 오픈소스를 사용한다니 이해가 되지 않는다.

* 왓츠앱 스티커 관련 작업이라 공식에서 제공해주는걸 해야겠지싶기도 하다.

**/

여러가지를 시도해본 결과 아래와같은 절차를 행하면 동작한다.

우선

1. /Users/유저폴더/Library/Developer/Xcode/DerivedData  폴더를 비운다.

2. 프로젝트 루트폴더의 Podfile.lock 를 삭제

3. 동일 폴더의 Pod폴더를 삭제하여 설치된 파일을 삭제한다.

4. pod install --repo-update 를 실행

5. 워크스페이스파일로 프로젝트를 연다

6. 클린을 해준다 ( 쉬프트 + 커맨드 + k )

7. 프로젝트 -> 빌드 -> Excluded Architectures 에 Any iOS Simulator SDK 의 arm64 를 넣어서 빌드에서 제외해준다.

https://jusung.github.io/Xcode12-Build-Error/ 의 "1. EXCLUDED_ARCHS에 arm64를 추가" 에 해당한다.

8. Pod 프로젝트 설정에서 7번과 동일하게 Excluded Architectrues 에 arm64를 넣어준다.

9. 시뮬레이터에서 빌드 테스트.

10. 해피엔딩

 

나와 동일한 방법을 행했는데도 문제가 발생했다면 나도 모르겠다.

+ Recent posts