iOS 앱 제출 : 64 비트 지원 누락


91

어제 검토를 위해 문제없이 앱을 보냈습니다. 나는 내가 할 일이 거의 없다는 것을 깨달았고 (지도의 최대 확대 / 축소 수준을 19에서 18로 변경하고 다른 것은 없음) iTunes Connect에서 바이너리를 제거하고 다시 제출하려고했습니다.

이제 다음 경고가 표시됩니다.

warning_xcode

내 아키텍처가 다음과 같은 이유를 이해하지 못합니다.

  • 아키텍처 : armv7
  • 유효한 아키텍처 : armv6, armv7, armv7s, arm64

앱이 시뮬레이터에서 잘 실행됩니다. 경고에서 권장하는 표준 아키텍처 (armv7, arm64)를 사용하려고하면 앱이 빌드되지 않고 다음과 같은 결과가 나타납니다.

  • 아키텍처 x86_64에 대한 정의되지 않은 기호
  • ld : 아키텍처 x86_64에 대한 기호를 찾을 수 없습니다.

lib route-me를 사용하고 있으며 동일한 아키텍처 설정을 지정했습니다.


우리도이 문제가 있습니다. :(
Azik Abdullah

또한 어제부터?
Tim Autin 2014

1) 변경 한 후 Xcode의 DerivedData를 지우십시오. 2) 어쩌면 당신은 등 이전 외부 API, SDK, 프레임 워크, 사용
TonyMkenu

@ 팀이 문제를 고칠 수 있었습니까? 그에 대한 해결책을 게시 해 주시겠습니까?
user2056563

안녕하세요, 해결책을 찾지 못해 죄송하며 더 이상이 프로젝트를 진행하지 않습니다. 지금은 경고 일 뿐이므로 앱을 제출할 수있었습니다.
Tim Autin 2014

답변:


106

다음 Standard architectures과 같이 " "을 (를) 사용하십시오 .

  • 아키텍처 : "표준 아키텍처"arm7, arm64
  • 유효한 아키텍처 : " arm64 ", armv7 ...
  • 활성 아키텍처 만 빌드- 아니요 (특히 연결된 장치가 arm64와 호환되지 않는 경우)

이렇게 :

여기에 이미지 설명 입력

  • 또한, 특히 32 비트 버전 인 경우 Mac에서 iphone과 ipad를 분리하는 것이 도움이되는 것으로 알려져 있습니다.

2
답변 해 주셔서 감사합니다.하지만 제 질문에서 언급했듯이 이미 시도했지만 프로젝트는이 설정으로 컴파일되지 않습니다. /
Tim Autin

3
@ 팀, 그래 나도 armv7 and arm64Architechtures에 있었다 . 그래도 제출을 위해 앱의 유효성을 검사하는 동안 64 비트 지원 누락 경고가 발생합니다.
Azik Abdullah

@NAZIK 두 라인 (아키텍처 및 유효한 아키텍처)에 arm64가 있습니까? 솔루션 저도 같은 오류가 발생한이 있었다
TonyMkenu

@ 팀은 DerivedData을 청소하고 64 비트 지원이있는 경우 최신 외부 프레임 워크 또는 SDK를 확인하려고
TonyMkenu

3
또한 최종 빌드를 보관할 때 장치가 연결되어 있지 않은지 확인하십시오. @powertoold 대답 울부 짖는 소리 (참조 stackoverflow.com/a/26848865/1715004 )
필리페 보르헤스

68

올바른 아키텍처를 확인한 후 App Store에 제출하기 위해 최종 빌드를 보관할 때 장치가 컴퓨터에 연결되어 있지 않은지 확인하십시오.

이 경고가 표시되는 이유는 연결 한 장치가 아마도 arm64와 호환되지 않기 때문입니다.


4
오프 모자! : D 당신은 내 시간을 절약했습니다
Vaibhav Limbani 2014

1
큰 도움 !! 이것에 대해 많은 시간을 절약했습니다. 오래된 앱 업그레이드를위한 좋은 팁.
해리

빌드 설정 Build Active Architecture Only을으로 변경하면 64 비트가 아닌 장치를 계속 연결할 수 있다고 생각합니다 No. 이렇게하면 연결된 장치에 관계없이 xcode가 64 비트 바이너리를 빌드하게됩니다.
jxmallett 2015

3
대답의 @jxmallett뿐만 아니라, 반드시이있는 아카이브가 릴리스로 설정하여 계획 구성하기 Build Active Architecture로 설정됩니다 No. 아카이브 계획 설정
KarenAnne 2015 년

1
참고로 장치를 분리하고 시뮬레이터로 전환 한 다음 "iOS 장치"로 다시 전환해야이 기능이 작동합니다.
nwkeeley

37

Tony가 썼 듯이 두 줄 모두에 이러한 설정을 갖는 것이 중요합니다. 내 (그리고 분명히 당신의) 프로젝트는 arm64가 표준에 추가되기 전에 아직 생성되었으므로 표준으로 표시 되더라도 "유효한 아키텍처"에 반영되지 않습니다 .

제가 한:

  • Project (vs. Target) 구성으로 이동했습니다.
  • 입력 된 (이 자동으로 목표와 스키마에 반영있어 유효한 아키텍처에서 "arm64를"

정리 / 빌드 후 float가 CGFloat 등으로 부적절하게 변환된다는 경고가 표시되므로 설정이 분명히 적용되었습니다.

유효성 검사 경고도 사라졌습니다!

여기에 이미지 설명 입력


1
> Standard로 표시 되어도 "Valid Architectures"에 반영되지 않음 이것이 저에게 포인트였습니다. 고마워!
Romain

1
그것은 다른 사람을 도움이 경우, 나는 일에 도착하는 프로젝트와 대상 모두에서 변경해야했다
djburdick

@djburdick 감사합니다. 그것은 다른 일이 없었을 때 나를 위해 일했습니다.
Dave Chambers

27

Mac에서 물리적 장치를 분리합니다. 장치 목록의 XCode에서 iOS 장치를 선택하고 아카이브를 다시 만듭니다. 그것은 나를 위해 일했습니다.


5

오늘 저는 다음 단계로 그 문제를 해결합니다.

건물 설정 :

아키텍처 : 표준 아키텍처 (arm7, arm64)-$ (ARCH_STANDARD)

유효한 아키텍처 : armv7 armv7s arm64

  1. 연결된 iPhone으로 앱 정리 및 빌드
  2. iPhone을 분리하고 "iOS 기기"에있는 경우 상단 표시 줄을 확인합니다.
  3. 아카이브
  4. 확인 및 제출

@ Timuçin. 늦게 답장을 드려 죄송합니다. 귀하의 말이 맞습니다. armv7 armv7s arm64.
Leonel Folmer 2015 년


2

좋아요 이건 미쳤어 요. 나는 모든 대답을 시도했습니다 . 하지만 arm64이전 armv7armv7s유효한 아키텍처에 배치했을 때만 작동했습니다 .

추신 : xcode version : 7.2


1
예. 그때에만 장치를 연결 한 후에야 실제 오류 로그가 표시됩니다. 그런 다음 더 이상 사용되지 않고 (빨간색) 수정이 필요한 코드 줄과 RSA lib의 일부 문제가 나타났습니다.
maxweber

1

변경하여 문제를 해결했습니다.

아키텍처 : arm7, arm64

유효한 아키텍처 : arm7, arm64

액티브 아키텍처 만 구축 : 예


1

이미지로 구성하여 성공을 제출했습니다. 여기에 이미지 설명 입력

(실제 기기로 보관)


1
릴리스 모드를 no로 설정해야 함
ZYiOS 2015 년

1

모든 경고를 제거했습니다. 모든 것을 계속 반복했습니다. 위의 한 단어 답변을 찾았습니다.

"Build Active Architecture Only-NO (특히 ... 연결된 장치가 arm64와 호환되지 않는 경우)"

내 iPad는 64 비트가 아닙니다. Build Active Architecture에 NO를 입력하면 제출이 작동했습니다!


0

iOS 개발 대상을 5.1.1 이상으로 변경하거나 표준 아키텍처 설정을 삭제하고 다시 적용하십시오. arm64가 빌드 대상과 호환되지 않는다는 경고를 보았을 수 있습니다. 개요 페이지에서 빌드 및 대상 "배포 대상"설정을 모두 확인하십시오. 제 경우에는 목표가 6.0 이었지만 프로젝트는 5.0이었습니다.

또한 대상과 프로젝트 모두에서 "유효한 아키텍처"를 확인하십시오. 프로젝트에는 올바른 설정이 있었지만 대상에는 없었습니다. 그 후, 그것은 나를 위해 일했습니다.

상자의 왼쪽 상단 모서리에있는 개요 페이지에서 프로젝트 / 대상간에 전환합니다.


정말 5.1.1을 의미합니까? 5.1은 최근에 충분하지 않습니까?
Dirk

오랜만이다. 나는 이것에 대한 논리를 모르거나 기억하지 않습니다. 단계를 수행하면 무언가가 제자리로 돌아올 수 있습니다. 아키텍처 및 언급 된 모든 페이지를 조작하십시오.
user1122069

0

Build Active Architecture 옵션을 확인하십시오. 아니오로 설정하십시오. 그것은 나를 위해 작동합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.