"구성 : iPhone 구성에는 armv6 아키텍처가 포함되어야합니다."


332

프로젝트 빌드 설정을 조정해야한지 오래되었습니다. 최신 SDK로 업그레이드 한 후 임시 배포 구성을 작성하는 데 문제가 있습니다.

빌드는이 경고 및 오류를 생성합니다.

경고 : iPhone 앱은 armv6 아키텍처를 포함해야합니다 (현재 ARCHS = "armv7")

iPhone / iPod Touch : 응용 프로그램 실행 파일에 필요한 아키텍처가 없습니다. 다음 아키텍처 중 하나 이상이 존재해야합니다. armv6 (-19033)

그러나 내 프로젝트에서 올바르게 설정 한 것으로 생각했습니다.

  • 아키텍처 : 표준 (armv6 armv7)
  • 기본 SDK : 최신 iOS (현재 iOS 4.2로 설정)
  • 유효한 아키텍처 : armv6 armv7

대체 텍스트

모든 대상을 청소했습니다.

나는 어떤 팁을 주셔서 감사합니다.


Mine은 업데이트 된 오래된 앱으로 iOS Deployment Target <4.3에서도 같은 오류가 발생합니다! 그래서 내 해결책은 armv6에 대한 모든 참조를 제거하고 이것을> = 4.3으로 설정하는 것이 었습니다. 효과가있었습니다.
Henrik Erlandsson

그리고 지금 막 재개를 가진 다른 오래된 앱에 대해 동일한 시도를 시도했지만 작동하지 않았습니다 ... XCode 5 문제, 빌드 설정을 잘못 읽은 것 같습니다.
Henrik Erlandsson

답변:


418

Xcode 4.2 이상을 사용하는 경우 다음을 시도하십시오.

  1. 왼쪽 열에서 프로젝트 이름을 클릭 한 다음 대상을 클릭하십시오.

    여기에 이미지 설명을 입력하십시오

  2. 오른쪽 열에서 '빌드 설정'탭을 클릭하십시오.

    여기에 이미지 설명을 입력하십시오

  3. '아키텍처'에서 '릴리스'또는 '배포'행을 클릭하고 '기타 ...'를 선택하십시오.

    여기에 이미지 설명을 입력하십시오

  4. 나타나는 팝 오버에서 '$ (ARCHS_STANDARD_32_BIT)'라는 강조 표시된 행을 두 번 클릭하고 'armv6'을 입력하여 바꾸십시오. 그런 다음 팝 오버 왼쪽 하단에 더하기 버튼이있는 새 행을 추가하고 'armv7'을 입력 한 다음 완료를 클릭하십시오.

    여기에 이미지 설명을 입력하십시오

업데이트 : iPhone 5를 대상으로 armv7을 추가해야합니다. 더 이상 armv6을 지원하지 않는 Xcode 4.5 이상으로 빌드하는 경우 armv6을 삭제하십시오.

그게 다야. 이제 오류를 생성하지 않고 빌드 / 아카이브 할 수 있습니다.

그래도 작동하지 않으면 justinxreese의이 답변을 참조하십시오 . info.plist 파일의 "필수 장치 기능"에 armv6 및 armv7에 대한 항목을 추가하는 것이 좋습니다.


3
그렇다. 애플이 ARM6에서 멀어지고있는 것처럼 보이므로 Xcode 4.2에 필요한 단계 인 것 같다. 4.2가 현재 공개적이지만 제출 프로세스에 여전히 ARM6 빌드가 필요하다는 것은 이상합니다.
Jasarien

7
아키텍처 아래에 배포 행이 없으며 대신 "릴리스"행이 있습니다. 어떻게해야할지 모르겠다
OMGPOP

2
@ Let'sSpotIt 릴리스 행에 armv6 및 armv7을 추가하십시오. 스크린 샷의 프로젝트는 이전 버전의 Xcode에서 가져 왔으므로 아키텍처 이름이 다릅니다.
Nick

2
고마워 닉. 또한 Xcode 4.2에서 만든 새 프로젝트는 armv6 장치를 지원하기 위해 info.plist 파일을 변경해야 할 수도 있습니다. 아래의 추가 답변을 참조하십시오.
MattyG

1
@ 팁을 주셔서 감사합니다. 저에게는 "Target"대신 "Project"를 선택해야했습니다. "타겟"빌드 설정에서 선택하는 것이 효과가 없었습니다. 어쨌든 도움에 다시 한번 감사드립니다.
Prasad De Zoysa

62

"빌드 아키텍처 만 빌드"를 선택 취소하면 유효한 모든 아키텍처가 빌드됩니다.

업데이트 : Xcode 4부터는 더 이상 적용되지 않습니다. Xcode 4 이상에 대한 Nick의 지침을 따르십시오.


11
디버그 빌드에서는 YES로 설정하고 릴리스 빌드에서는 아니오로 설정하여 빌드 시간을 단축 할 수 있습니다.
Billy Grey

59

나는 받아 들인 대답을 따른 후에도이 문제가 있었고 다음이 효과가 있음을 발견했습니다.

Info.plist에서 필수 장치 기능에 대한 항목을 추가하십시오. 이것은 배열이어야하며 두 개의 항목이 있습니다.

  • 항목 0 : armv6
  • 항목 1 : armv7

다음과 같이 보일 것입니다 :

필요한 장치 기능 항목


이 솔루션은 다른 아키텍처 경고를 수정했지만 여전히 초기 경고를 받고 "Build Active Architecture Only"도 "No"로 설정했습니다.
Dan F

이전 솔루션이 적용되지 않았으므로 나를 위해 수정했습니다. 어떤 이유로 armv6이 내 빌드 아키텍처 설정에서 더 이상 표시되지 않습니다 : S
seeafish

위의 nick의 대답과 함께이 문제가 해결되었습니다. +1
Saurabh Wadhwa

최신 xCode 버전에서는이 옵션을 전혀 제거하지 않으면 컴파일됩니다. 두 가지를 모두 넣으면 두 가지 아키텍쳐가 장치에서 유효해야합니다. 실제로 불가능합니다
Artem

XCode 4.5 이상으로 빌드하려면 필요한 장치 기능에서 armv6을 삭제해야합니다.
Pulkit Goyal

26

Xcode 4.2에 대한 Nick의 답변 외에도 info.plist 파일을 검토해야 할 수도 있습니다. Xcode 4.2에서 새 프로젝트가 시작된 것처럼 기본적으로 '필수 장치 기능'에서 'armv7'을 지정하는 것 같습니다. armv6을 실행하는 장치 (예 : iPhone 3G)를 지원하려면이 기능을 제거해야합니다.

여기에 이미지 설명을 입력하십시오

yourProjectName-Info.plist의 '필수 장치 기능'에서 armv7을 삭제하십시오.


21

iOS 6 업데이트

iOS 6 용 Xcode 4.5.x의 변경 사항

  1. Xcode 4.5.x 이상은 armv6 바이너리 생성을 지원하지 않습니다.
  2. 이제 iPhone 5 / armv7s 지원이 포함됩니다.
  3. Xcode 4.5.x 이상에서 지원되는 최소 배포 대상은 iOS 4.3입니다.

6

나도이 문제가 있었다. 방금 배포 대상을 4.3으로 설정하고 armv7 아키텍처 만 남겨 두었습니다. 거의 모든 사람이 5를 가지므로 4.3은 괜찮습니다.


3

나를 위해 그것은 모든 대답과 함께 작동하지 않습니다. 그러나 TARGETS> Architectures> Debug를 시도하고 더하기 버튼으로 새 행을 추가하고 'armv6'(with out ')을 입력 한 다음 완료를 클릭하십시오.

마지막으로 CMD + B를 클릭 한 다음 PrjectName.app (제품 폴더 내)> Finder에서 열기> "PROJECT_NAME.APP"압축 (디버그 -iphoneos)> AppStore에 업로드를 마우스 오른쪽 버튼으로 클릭하십시오.

여기에 이미지 설명을 입력하십시오

내 화면 설정입니다. 여기에 이미지 설명을 입력하십시오

프로젝트를 포함시킨 경우 모두 구성하십시오. 당신의 도움을 바랍니다.


1
또한 릴리스 아키텍처에서 armv6을 설정해야 작동했습니다.
mph

3

이러한 답변을 혼합하여 사용해 본 결과 마침내 작동하게되었습니다. 나는 지금 애플에서 화가났다. 단 한 시간 만에 그들은 나를 낭비하게 만들었습니다. 여기 내 구성이 있습니다.

여기에 이미지 설명을 입력하십시오


2

위의 모든 답변을 시도했지만 아무도 내 질문을 해결하지 못했습니다. 그래서 새 프로젝트를 만들고 빌드 설정을 하나씩 다릅니다. "대체 권한 파일"만 다릅니다. 프로젝트 빌드에 실패한 값은 armv7입니다. 그것을 삭제 한 다음 clean-> build-> archive. 성공! 희망은 당신에게 질문을 해결할 수 있습니다


2

와, 약 6 개월마다 앱을 업데이트 / 제출합니다. 내가 이것을 할 때마다 나는 그것을하는 "새로운"방법을 배워야한다 ...

iOS 5.1 및 Xcode 4.3.2를 실행할 때 위에서 설명한 것과 동일한 문제

게시물 주셔서 감사합니다! 모든 프로젝트 설정을 armv6, armv7로 업데이트하는 데 시간이 걸렸지 만 기쁨은 없습니다. "빌드 활성 아키텍처 만"을 아니오로 설정하면 두 오브젝트를 같은 디렉토리에 두는 것에 대한 빌드 오류가 발생합니다.

다행히도 여러분이 대신 대상 빌드 설정을 수정하고 있음을 알았습니다. 이것이 마지막으로 작동 한 것입니다 (armv6, armv7 및 대상 빌드 설정에서 "빌드 활성 아키텍처 만"을 아니오로 설정). 면책 조항으로 이미 모든 아키텍처를 프로젝트 설정에서 armv6, armv7로 설정했습니다.

어쨌든 도움을 주셔서 감사합니다 브렌트


2

xCode 4.3.2의 대상 및 프로젝트 설정 에서이 설정을 변경하고 armv6 및 armv7 모두에 대해 빌드하도록 설정 한 후 앱을 제출 할 수있는 모든 곳 에서이 설정을 변경해야했습니다.

안전한 측정을 위해 변경 작업과 정리, 빌드, 보관주기 수행 사이에 xCode를 종료했습니다.


0

나에게도 매우 고통스러운 문제. 약 1 시간 동안 빌드와 재 빌드를 시도했지만 기쁨은 없었습니다. 결국 나는 이것을해야했다.

  1. 기본 SDK를 최신으로 업그레이드하십시오 (필자의 경우 iOS 5)
  2. xCode 재시작
  3. 청소 및 빌드
  4. 효과가 있었다!

나는 그것이 내 프로젝트가 둘 다에 대해 유효한 것처럼 보였을 때 arm6, arm7에 대한 많은 전문 용어라고 생각합니다. 적어도 설정은 그렇게 말한 것처럼 보입니다.) 이해가 안 돼서, 우리는 쉬운 옵션을 취하고 최신 iOS를 목표로 삼습니다 (더 많은 사람들이 최신 상태의 Apple에 적합) ....


0

Apple의 설명서는 다음과 같습니다.

기술 Q & A QA1760

그것은 당신이 올바르게 얻어야 할 두 가지가 있다고 말합니다.

  1. armv6아키텍처 빌드 설정에 추가
  2. 활성 아키텍처 만 빌드를로 설정하십시오 No.

그래도 문제가 해결되지 않으면 올바른 빌드 구성에 대한 아키텍처 빌드 설정을 실제로 변경하고 있는지 다시 한 번 확인하십시오. 잘못된 시간으로 30 분을 낭비하고 왜 작동하지 않는지 궁금합니다 ...

Edit Scheme...제품 메뉴에서 선택 하고 왼쪽 목록에서 "아카이브"체계를 클릭하고 빌드 구성을 확인하십시오. 예상 한 값이 아닌 경우 값을 변경하십시오.


0

노트; 기본 프로젝트와 내 응용 프로그램에 포함 된 PhoneGap .xcodeproj 파일 모두에 대해이 단계를 수행해야했습니다.

예, PhoneGap을 포함합니다. 그들은 자주 업데이트되며, 기능이 감가 상각된다는 것을 알기 위해 2 개월도 채 걸리지 않았습니다.


0

배포 대상을 armv6 프로세서보다 높은 것으로 변경하십시오. xCode 설정은 운영 체제 레벨을 참조합니다 (예 : iOS 버전 # {3.1, 3.2, 4.0, 4.1, 4.2, 4.3, 5.0, 5.1}).

(i) 빌드 설정 탭 또는 요약 탭에서이를 설정할 수 있습니다. 모든 파일이 나열된 프로젝트 네비게이터 창의 왼쪽 상단에서 시작하십시오. 파란색 아이콘이있는 맨 위를 클릭하십시오.

(ii) openGL ES 2.0 API를 통해 액세스 및 제어되는 프로그래밍 가능한 쉐이더 라인 회로를 사용하려는 경우 "배포 버전"을 약 4.3으로 설정해야합니다. 3GS 이상 xCode는 iOS 4.2.5 이상이 armv7 코드를 실행해야한다고보고했습니다. 그리고 다시 한 번,이 프로세서는 3GS로 시작했다고 생각합니다. * iOS 4.3은 현재로서는 저의 선택 인 것 같습니다.

http://theiphonewiki.com/wiki/index.php?title=Armv7

http://en.wikipedia.org/wiki/List_of_iOS_devices


0

xCode가 armv7에 대해 계속 불평하면 연결 장치 (특히 iPhone 5 !!)를 연결 해제하고 다시 시도하십시오. 그 작은 정보를 찾기 위해 몇 시간을 보냈습니다.


0

Snow Leopard에서 Xcode 4.2를 사용하여 다음 설정을 사용하여 armv6 (Iphone 3G 이하) 및 armv7 (3GS를 포함하여 3G보다 최신 버전)에서 모두 작동하는 앱을 빌드했습니다.

아키텍처 : armv6 및 armv7 (제거 된 $ (ARCHS_STANDARD_32_BIT))
활성 아키텍처 만 빌드 :
필요한 장치 기능 없음 : armv6

앱을 3G 이하에서 실행하려면 armv7을 필수 장치 기능에 넣지 마십시오.


1
그것은 나를 위해 일한 유일한 것입니다. iphone4, iphone3g, ipad1, ipad2에서 테스트. 필요한 장치 기능에 armv6 및 armv7을 넣어야한다는 것을 읽었지만 armv7에 넣 자마자 앱이 iphone3g에서 업로드 / 실행되지 않습니다.
noromamai

"필수 장비 기능"에서 armv7 항목을 남겨두면 Xcode가 iPhone 3G에서 실행되지 못하게했습니다.
tinsukE
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.