2012-09-19 2 views
0

iPhone5에서 작동하도록 앱을 업데이트하려고합니다. 이는 armv7 및 armv7s 아키텍처 용으로 컴파일되도록 보장합니다. 내 프로젝트에서 빌드 설정을 업데이트하고 이러한 설정으로 정적으로 링크 된 모든 라이브러리를 다시 컴파일했습니다. 이제 컴파일되고 성공적으로 연결됩니다.iPhone : armv7 용 앱 업데이트시 런타임 dyld_fatal_error

그러나, 디바이스 (아이 패드) iOS6의 실행에 실행시 나는이 출력 즉각적인 충돌 수 (물론만을하는 ARMv7 아키텍처를 지원하지만) :

dyld: vm_protect(0x00001000, 0x003BB000, false, 0x07) failed, result=2 for segment __TEXT in /var/mobile/Applications/....[name/location of my app].... 

가 나는 또한 추적이 얻을를 창 :

dyld`dyld_fatal_error: 
0x2fe400c4: trap 
0x2fe400c8: nop 

이진 파일의 armv7 부분을 테스트하는 iPhone5가 없습니다. 물론 실제 기기에서 테스트하기 전에 야생으로 출시 하겠지만, 그동안 iOS6을 실행중인 현재의 armv7 iPad/iPhone을 사용하여 작업을 계속하고 싶습니다. 최근에 릴리스 된 Xcode 4.5를 사용하고 있습니다.

그래서 어떤 사람이 무슨 일이 일어나고 있는지, 아니면 같은 문제가 있을지 모르는 사람이 있습니까?

답변

0

내가 포함했던 라이브러리 중 하나를 다시 다운로드하고 다시 컴파일하면 문제가 해결되었습니다. 분명히 armv7s 아키텍처를 추가 할 때 라이브러리 구성을 잘못 변경했거나 라이브러리 프로젝트의 일부가 손상된 것 같습니다. (영향을받은 라이브러리는 FTDLES2 Xcode 프로젝트에 포함 된 Freetype2 라이브러리였습니다.)

0

정적으로 라이브러리를 다시 컴파일 할 때 실수로 동적 연결이 비활성화되어 컴파일 할 때 clang에 -static 플래그가 전달되었습니다.

LLVM 컴파일러 언어 설정에서 "공유 라이브러리와 연결 활성화"를 "예"(기본값)로 전환하여 수정. (그러면 GCC_LINK_WITH_DYNAMIC_LIBRARIES = NO가 프로젝트 파일에서 제거됩니다.)