TroubleShooting

[iOS] Unsupported Swift architecture 해결방법

Phililip
728x90

# 이슈

Custom framework를 넣고 디바이스 빌드를 했더니 Custom framework의 Swift header에서 아래와 같은 에러가 발생했습니다.

 

 

# 조사

architecture는 x86_64, arm64가 들어가 있는 것을 확인했고,

 

 

이상하게도 시뮬레이터 빌드했을 때는 에러가 안 생겼습니다.

 

 

또한, framework를 100% Objective-C 코드로 구성했을 때는 문제가 없었는데, 이번에 Swift 코드도 같이 넣었더니 {Framework 이름}-Swift.h에서 컴파일 에러가 발생했습니다.

 

 

여기서 발생했고, 어디에 if-else 문을 따라 올라가서 확인했더니 가장 맨 윗줄에

#elif defined(__x86_64__) && __x86_64__라고 쓰여 있었습니다.

 

 

디바이스 빌드이니 architecture가 arm64 일 텐데 x86_64로 분기를 타서 에러가 발생한 것 같았어요.

 

 

# 해결방법

제가 찾은 해결방법은 총 3가지였습니다.

 

## 1) xcframework로 빌드

framework 형태였던 것을 xcframework로 바꿔줬더니 해결되었습니다.

(정확한 해결방법은 아닌 것 같은데.... 혹시 다른 방법 아시면 알려주세요ㅠ)

 

 

 

## 2) {Framework 이름}-Swift.h의 조건문을 arm64로 변경

아래처럼 elif 조건식을 arm64로 바꿔주면 해결됩니다.

 

 

 

 

## 3) {Framework 이름}-Swift.h의 if-elif-else 조건문을 아예 제거

{Framework 이름}-Swift.h의 처음과 끝에 있는 if-elif-else 조건문을 아예 제거해 주면 해결됩니다.

 

 


이번 글은 여기서 마무리.

 

 

 

반응형