"구성 : 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.