답변:
아키텍처는 빌드하려는 아키텍처이고 유효한 아키텍처는 코드베이스로 빌드 할 수있는 아키텍처입니다.
따라서 armv7s 용 바이너리 만 빌드하고 싶을 수도 있지만 armv7 및 armv6 용으로 동일한 소스 코드가 잘 컴파일됩니다. 그래서 VALID_ARCHS = armv6 armv7 armv7s
,하지만 ARCHS = armv7s
그게 실제로 코드로 빌드 하려는 전부이기 때문에 설정 합니다.
또는 Apple-ese에서 :
ARCHS (아키텍처)
공백으로 구분 된 식별자 목록입니다. 바이너리가 대상이되는 아키텍처 (ABI, 프로세서 모델)를 지정합니다. 이 빌드 설정이 둘 이상의 아키텍처를 지정하면 생성 된 바이너리에 지정된 각 아키텍처에 대한 개체 코드가 포함될 수 있습니다.
과:
VALID_ARCHS (유효한 아키텍처)
공백으로 구분 된 식별자 목록입니다. 바이너리를 빌드 할 수있는 아키텍처를 지정합니다. 빌드 중에이 목록은 ARCHS 빌드 설정 값과 교차합니다. 결과 목록은 바이너리가 실행할 수있는 아키텍처를 지정합니다. 결과 아키텍처 목록이 비어있는 경우 대상은 바이너리를 생성하지 않습니다.
출처 : Xcode 빌드 설정 참조
실제로는 그대로두고 VALID_ARCHS
변경하는 것에 대해 걱정하지 않고 ARCHS
빌드하려는 아키텍처를 설정하기 위해 조작합니다. 일반적으로 NATIVE_ARCH
테스트 / 실행할 머신에 대한 디버그 버전 만 빌드하고 지원하려는 전체 아키텍처에 대한 릴리스 빌드를 원하기 때문에 디버그 빌드를 just로 설정합니다 .
애플의 문서에서, 우리는 바이너리 엑스 코드의 뜻 빌드 목록입니다 알고 Valid Architectures
와 교차 Architectures
.
그래서 나는 Jeremy의 대답이 옳지 않다고 생각합니다.
따라서 armv7s 용 바이너리 만 빌드하고 싶을 수도 있지만
armv7 및 armv6 용으로 동일한 소스 코드가 잘 컴파일됩니다. 그래서VALID_ARCHS = armv6 armv7 armv7s
ARCHS = armv7s로 설정했습니다. 그게 실제로 코드로 빌드하려는 전부이기 때문입니다.
설정 VALID_ARCHS = armv6 armv7 armv7s
하고 설정 ARCHS = armv7s
하면 바이너리 Xcode가 빌드되는 결과는 armv7s이며 armv6 / armv7과 호환되지 않습니다.
그리고 armv6 / armv7 / armv7s와 호환되도록하려면 VALID_ARCHS = armv6 armv7 armv7s
및을 설정해야합니다 ARCHS = armv6
. 이런 식으로 바이너리 Xcode의 결과는 armv6이고 arm 프로세서가 하위 호환되므로 armv6 / armv7 / armv7s 모두에서 제대로 실행될 수 있습니다. .