“Mapping architecture arm64 to x86_64”경고는 무엇을 의미합니까?


96

내 프레임 워크를 Xcode 10 베타 (10L176w)로 마이그레이션 한 후 다음과 같은 경고를 받기 시작했습니다.

arm64 아키텍처를 x86_64에 매핑합니다. 이 대상의 아키텍처 및 유효한 아키텍처 빌드 설정이 iOS 시뮬레이터 플랫폼에 대해 올바르게 구성되었는지 확인하십시오.

... 그리고 :

armv7 아키텍처를 i386에 매핑합니다. 이 대상의 아키텍처 및 유효한 아키텍처 빌드 설정이 iOS 시뮬레이터 플랫폼에 대해 올바르게 구성되었는지 확인하십시오.

이러한 경고에도 불구하고 빌드 및 단위 테스트는 모두 Ok를 통과합니다. Swift 4.2를 사용하고 있습니다.

그래도 이러한 경고는 무엇입니까?


만을 사용하여 64 비트를 만들려고 할 때 설정할 때 나는이 메시지가 표시되는 ARCHS = $(ARCHS_STANDARD_64_BIT)VALID_ARCHS = $(inherited) x86_64 i386
Kdawgwilk

답변:


101

빌드 설정으로 이동하여 아래와 같이 수행 하십시오.

여기에 이미지 설명 입력


5
나는 이것이 나를 위해 일했다는 것을 확인합니다. 이유는 모르겠지만 해당 설정은 프로젝트 및 대상 빌드 설정 모두에서 굵게 강조 표시되었습니다. 그런 다음 위에서 언급 한대로 (두 곳 모두에서!) 삭제하고 굵은 강조 표시를 제거했습니다 (분명히 기본값으로 되돌림). 경고는 사라졌습니다
Nick Entin 2018 년

23
명확히하기 위해 이것은 프로젝트와 대상 모두에서 수행되어야합니다.
palmi

2
좋은 대답, 나는 이것이 해결책이 될 것을 제안합니다.
Heider Sati

8
내가 그것을 삭제하면, 아무것도 쇼에서 해결 된 내가 얻을There are no valid architectures to compile for because the VALID_ARCHS build setting is an empty list
크리스탈

2
더 이상 작동하지 않는 것 같습니다. Crystal이 Xcode 11 베타 6으로보고하는 것과 동일한 문제가 발생합니다.
@John

70

아키텍처 설정과 일치하는 유효한 아키텍처 설정을 변경하여 이러한 경고를 음소거 할 수있었습니다 .$(ARCHS_STANDARD)

이상하게도 armv7 arm64기본 설정 인과 비교하여 로 표시 armv7 armv7s arm64되었지만 수동으로 해당 값으로 설정하면 여전히 경고가 발생했습니다. 그 의미가 무엇인지 확실하지 않지만 아직 테스트에서 문제를 발견하지 못했습니다.


2
이 설정은 iOS와 macOS 모두를 대상으로하는 "범용"프레임 워크에서 저에게 효과적이었습니다.
John

1
그것이 제 해결책이었습니다. 유효한 아키텍처를 설정했습니다 : $ (ARCHS_STANDARD) in Project 및 Targets. 감사.
CGN

2
@CGN 프로젝트에서 어떻게 설정 했습니까? 타겟에 성공적으로 설정했습니다.
Erum

@Erum : 아래 스크린 샷 2 개 참조
CGN

27

대상 또는 프로젝트에 대해 VALID_ARCHS ( "유효한 아키텍처") 빌드 설정이 재정의되었을 수 있습니다. 빌드하려는 실행 대상에 따라 자동으로 값을 가져와야하는 빌드 설정입니다. 이 재정의의 출처를 파악하면 (재정의시 빌드 설정이 굵게 표시됨)이를 선택하고 삭제 키를 눌러 기본값으로 복원합니다.


2
이 오류도 표시됩니다. 설정을 무시하지 않았습니다 VALID_ARCHS. arm64디버그 및 릴리스를 모두 포함 합니다.
funkenstrahlen 2018-06-20

10
이것은 아직 기본 설정으로 발생 엑스 코드 (10)에 버그가 나타납니다
Kdawgwilk

5
이것은 Xcode 10의 릴리스 버전에서 여전히 나타나는 것 같습니다. 누구든지 이것에 대한 업데이트가 있습니까?
plivesey

1
ME2는, 난 그냥 이것에 대해 인터넷 검색을하지만 아무 소용이되었다
MegaManX

2
내 모든 하위 프로젝트 및 대상으로 이동하고 삭제하는 데 필요한 VALID_ARCHS나를 위해 완전히 일에 다시 열려 엑스 코드 / 다음 깨끗하고 주변을 기본하고 설정
manman

17

경고를보고하는 TARGET의 경우 "Valid Architecture"설정을 다음으로 변경하십시오.

$(VALID_ARCHS)
x86_64

여기에 이미지 설명 입력


확실히 최고의 답변입니다!
Supertecnoboff

8

다른 답변과 마찬가지로 $(VALID_ARCHS)(Valid Architectures)를 으로 변경하여 경고를 제거 할 수있었습니다 $(ARCHS_STANDARD). 거기에서 모든 파생 데이터를 지우고 Xcode 10.0을 다시 시작했습니다. 이로 인해 경고가 완전히 사라졌습니다. 유효한 아키텍처에서 모든 것을 삭제하면 다른 경고가 나타납니다 ( "유효한 아키텍처를 찾을 수 없음").


1

솔루션은 더 간단합니다. 유효한 아키텍처에서는 arm64를 x86_64로 바꾸면됩니다. .

내 프로젝트에서 비슷한 문제와 다음 세 가지 경고가있었습니다. 내 프로젝트에서 비슷한 문제와 다음 경고가 발생했습니다.

유효한 아키텍처는 원래 내 ** 유효한 아키텍처 **는 원래

교체 :

  • i386이있는 armv7,
  • i386이있는 armv7s,
  • 그리고 x86_64가있는 arm64

(경고에서 언급했듯이) 내 해결책이었습니다. 유효한 아키텍처 설정 의 결과 는 다음과 같습니다.

경고에 언급 된대로 armv7을 i386으로, armv7s를 i386으로, arm64를 x86_64로 대체하는 것이 내 해결책이었습니다.

교체 후 위의 세 가지 경고가 사라졌습니다.

아키텍처에 대한 더 자세한 정보는 https://docs.elementscompiler.com/Platforms/Cocoa/CpuArchitectures/ 에서 찾을 수 있습니다.

Xcode에서이 경고의 공식화가 약간 혼란 스럽다고 생각합니다.


1

Flutter에서 문제가 발생하는 경우 :

  1. Podfile, Podfile.lock, Pods 폴더, Runner.xcworkspace, Flutter.framework를 삭제합니다.

  2. 을 실행 flutter clean합니다.

  3. 을 실행 flutter build ios합니다.

0

iOS 및 Mac OS 용 코드를 컴파일하려고 할 때이 경고가 표시되었습니다. 나는 Hassan Taleb이 그의 대답에서 제안한 것을 먼저 수행하여 문제를 해결할 수있었습니다. 유효한 iPhone 아키텍처 만 거기에 있도록 아키텍처를 정리했습니다. 마지막으로 Mac OS 용으로 빌드 할 수 있도록 유지하려면 마우스를 유효한 아키텍처 위에 올려 놓으면 더하기 버튼이 나타납니다. 그것을 클릭하면 다른 CPU 아키텍처를 포함하여 필요에 따라 다른 플랫폼에 대한 별도의 설정을 추가 할 수 있습니다. macOS SDK의 경우 원하는 경우 유효한 아키텍처를 x86_64로 설정할 수 있습니다.macOS SDK의 경우 원하는 경우 유효한 아키텍처를 x86_64로 설정할 수 있습니다.


현재 Xcode에서는이 옵션이 더 이상 존재하지 않습니다.
JBarros35

@lambdapool 어떤 옵션이 표시되지 않습니까? "Valid Architectures"/ "VALID_ARCHS"입니까?
joelliusp

0

이 문제를 해결하는 가장 쉬운 방법은 텍스트 편집기에서 프로젝트를 연 다음 모든 VALID_ARCHS줄 을 찾아 삭제하는 것 입니다.


0

나는 또한 같은 문제에 직면하고 있습니다. 해결을 위해 빌드 시스템을 Standard에서 Legacy로 변경했으며 문제가 해결되었습니다.


0

프레임 워크를 구축 할 때와 동일한 경고를 보았습니다. 잠시 후 이러한 유효한 아키텍처 값은 빌드 설정의 값에 관계없이 장치 유형에 따라 다릅니다.

Real devices-> arm64 
Simulator devices ->x86-64

-2

[빌드 설정]이 armv7 armv7s arm64이면 armv7s를 삭제하십시오. 경고가 취소됩니다.


그것은 일반적인 문제입니다, 그냥하는 ARMv7에 대해 아니고, 당신의 제안은 기대되지 않는다
미친 듯이 날 뛰어
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.