programing

"아키텍처 암64를 x86_64에 매핑" 경고는 무엇을 의미합니까?

css3 2023. 10. 17. 20:28

"아키텍처 암64를 x86_64에 매핑" 경고는 무엇을 의미합니까?

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

아키텍처 암64를 x86_64에 매핑합니다.이 대상의 아키텍처 및 유효 아키텍처 빌드 설정이 iOS Simulator 플랫폼에 맞게 올바르게 구성되었는지 확인합니다.

... 그리고:

아키텍처 armv7을 i386에 매핑하는 중입니다.이 대상의 아키텍처 및 유효 아키텍처 빌드 설정이 iOS Simulator 플랫폼에 맞게 올바르게 구성되었는지 확인합니다.

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

그런데 이 경고문들은 무엇에 관한 것일까요?

빌드 설정으로 이동하여 아래와 같이 수행합니다.

enter image description here

유효한 아키텍처 설정을 다음으로 변경하여 이러한 경고를 잠재울 수 있었습니다.$(ARCHS_STANDARD)아키텍처 설정과 일치하는 것입니다.

이상하게도, 이것은 다음과 같이 표시되었습니다.armv7 arm64(기본 설정과 비교하여)armv7 armv7s arm64), 하지만 수동으로 해당 값으로 설정하면 여전히 경고가 발생합니다.그 의미가 무엇인지는 모르겠지만, 아직 테스트에서 문제가 있다는 것을 인지하지 못했습니다.

대상 또는 해당 프로젝트에 대한 VALID_ARCHS("Valid Architecture") 빌드 설정이 무시되었을 수 있습니다.이것은 어떤 실행 대상에 대해 작성하는지에 따라 자동으로 값을 받아야 하는 빌드 설정입니다.이 재정의가 어디에서 오는 것인지 파악하면(빌드 설정이 재정의되면 굵게 표시됨), 이를 선택하고 delete 키를 눌러 기본값으로 복원합니다.

경고를 보고하는 대상에 대해 "Valid Architecture" 설정을 다음으로 변경합니다.

$(VALID_ARCHS)
x86_64

enter image description here

다른 답변과 마찬가지로 변경하여 경고를 제거할 수 있었습니다.$(VALID_ARCHS)(유효한 아키텍처) 대상$(ARCHS_STANDARD) 시작했습니다 거기서 Derived Data를 모두 지우고 Xcode 10.0을 다시 시작했습니다.이것은 경고를 완전히 사라지게 만들었습니다.Valid Architecture에서 모든 것을 삭제하면 다른 경고가 나타납니다("No valid Architecture found").

저도 같은 문제에 직면해 있습니다.해결을 위해 빌드 시스템을 Standard에서 Legacy로 변경하여 문제를 해결했습니다.

솔루션은 보다 간단합니다. Valid Architecture에서는 arm64를 x86_64로 대체하면 됩니다.

프로젝트에서 유사한 문제와 다음과 같은 세 가지 경고가 있었습니다.

나의 유효한 건축물은 원래

교체:

  • armv7 with i386,
  • armv7s with i386,
  • 그리고, 팔64와 x86_64

(경고문에 언급된 바와 같이) 제 해결책이었습니다.Valid Architecture 설정의 결과는 다음과 같습니다.

Replacing armv7 with i386, armv7s with i386, and, arm64 with x86_64 as mentioned in the Warnings was my solution

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

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

Xcode에서 이 경고문을 작성하는 것은 조금 혼란스러운 일이라고 생각합니다.

Floter(플러터)에서 문제가 발생하는 경우:

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

  2. 달려.flutter clean.

  3. 달려.flutter build ios.

iOS와 Mac OS 모두에 대한 코드를 컴파일하려고 했을 때 이 경고를 보고 있었습니다.Hassan Taleb이 그의 대답에서 제안한 것을 먼저 함으로써 저는 이 문제를 해결할 수 있었습니다. 즉, 유효한 iPhone 아키텍처만 그 안에 있도록 아키텍처를 정리하는 것입니다.그런 다음 마지막으로 Mac OS용으로 구축할 수 있는 상태를 유지하려면 Valid Architecture(유효 아키텍처)에 마우스를 흔들어 더하기 버튼을 표시합니다.이 옵션을 클릭한 다음 필요에 따라 CPU 아키텍처를 비롯한 플랫폼별로 별도의 설정을 추가할 수 있습니다.macOS SDK의 경우, 원한다면 유효한 아키텍처를 x86_64로 설정할 수 있습니다.

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

프레임워크를 만들 때와 같은 경고를 본 적이 있습니다.잠시 후 이러한 유효한 아키텍처 값은 빌드 설정의 값에 관계없이 장치 유형에 따라 달라집니다.

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

Target > Build Settings > Architectures > Exclused Architectures (x84_64)로 이동..Running a Real device And Use (arm64) to Run the Simulator For (Any SDK)에 사용됩니다.

Excluded Architectures > Debug and Release를 선택한 경우

1

2

이 문제를 가상적이고 급진적으로 해결하기 위해서는 (Any SDK) 대신 (Any IOS Simulator SDK)를 선택하고 값을 설정(arm64)해야 합니다. 이 경우 매번 값을 변경할 필요 없이 빌드와 런을 함께 만들 수 있습니다.

3

[build Settings]가 armv7 armv7s arm64인 경우 armv7s를 삭제하십시오. 경고가 취소됩니다.

언급URL : https://stackoverflow.com/questions/50768723/what-does-warning-mapping-architecture-arm64-to-x86-64-mean