2011-04-08 2 views
1

최근에 최신 iOS SDK (4.3)를 사용하기 위해 xCode 4.0.1로 업그레이드했습니다. 현재 iOS 3.X 기기 용으로 개발 중이지만 가까운 시일 내에 iOS 4.X로 확장하려고합니다.iOS SDK 4.3으로 컴파일 된 iOS 3.X 앱을 실행할 수 없습니다.

문제는 현재 3.X 장치에서 아무 것도 실행할 수 없다는 것입니다. 내가 이해하는 것처럼, 4.3 SDK는 모든 버전의 iOS 3.0 및 그 이후 버전으로 컴파일을 지원합니다. 물론 과 같은 애플리케이션을 컴파일 할 수는 있습니다. 하지만 시뮬레이터 나 장치에서 실행하려고하면로드가 시작되고 충돌이 발생합니다.

지금은 단순히 기본 윈도우 기반 응용 프로그램을 수정하지 않고 실행하려고합니다. 기본 SDK로 4.3을 선택하고 배포 목표를 3.0으로 설정했습니다. 3.0에서부터 빌드 타겟으로 iOS의 모든 버전을 선택할 수 있지만 4.3을 사용하는 것만으로도 실제로 작동하는 것 같습니다.

내 휴대 전화에서 응용 프로그램을 실행하면, 나는 로그에 다음과 같은 얻을 :

GNU gdb 6.3.50-20050815 (Apple version gdb-1518) (Sat Feb 12 02:56:02 UTC 2011) 
Copyright 2004 Free Software Foundation, Inc. 
GDB is free software, covered by the GNU General Public License, and you are 
welcome to change it and/or distribute copies of it under certain conditions. 
Type "show copying" to see the conditions. 
There is absolutely no warranty for GDB. Type "show warranty" for details. 
This GDB was configured as "--host=x86_64-apple-darwin --target=arm-apple-darwin".tty /dev/ttys002 
warning: Unable to read symbols from "dyld" (prefix __dyld_) (not yet mapped into memory). 
warning: Unable to read symbols for /Developer/Platforms/iPhoneOS.platform/DeviceSupport/3.1.3 (7E18)/Symbols/System/Library/Frameworks/UIKit.framework/UIKit (file not found). 
warning: Unable to read symbols from "UIKit" (not yet mapped into memory). 
warning: Unable to read symbols from "Foundation" (not yet mapped into memory). 
warning: Unable to read symbols for /Developer/Platforms/iPhoneOS.platform/DeviceSupport/3.1.3 (7E18)/Symbols/System/Library/Frameworks/CoreGraphics.framework/CoreGraphics (file not found). 
warning: Unable to read symbols from "CoreGraphics" (not yet mapped into memory). 
warning: Unable to read symbols from "libgcc_s.1.dylib" (not yet mapped into memory). 
warning: Unable to read symbols from "libSystem.B.dylib" (not yet mapped into memory). 
warning: Unable to read symbols from "libobjc.A.dylib" (not yet mapped into memory). 
warning: Unable to read symbols from "CoreFoundation" (not yet mapped into memory). 
target remote-mobile /tmp/.XcodeGDBRemote-18423-39 
Switching to remote-macosx protocol 
mem 0x1000 0x3fffffff cache 
mem 0x40000000 0xffffffff none 
mem 0x00000000 0x0fff none 
[Switching to process 11779 thread 0x0] 
[Switching to process 11779 thread 0x0] 
gdb stack crawl at point of internal error: 
0 gdb-arm-apple-darwin    0x000000010010974a internal_vproblem + 308 
1 gdb-arm-apple-darwin    0x0000000100109924 internal_verror + 27 
2 gdb-arm-apple-darwin    0x00000001001099c2 align_down + 0 
3 gdb-arm-apple-darwin    0x0000000100150c5e macosx_solib_add + 794 
4 gdb-arm-apple-darwin    0x000000010016417c remote_macosx_complete_create_or_attach + 187 
5 gdb-arm-apple-darwin    0x000000010016489e remote_macosx_create_inferior + 1252 
6 gdb-arm-apple-darwin    0x000000010005f6c3 run_command_1 + 586 
7 gdb-arm-apple-darwin    0x0000000100107b7f execute_command + 557 
8 gdb-arm-apple-darwin    0x00000001000171e7 mi_execute_async_cli_command + 204 
9 gdb-arm-apple-darwin    0x00000001000168e5 captured_mi_execute_command + 344 
10 gdb-arm-apple-darwin    0x0000000100072a62 catch_exception + 57 
11 gdb-arm-apple-darwin    0x000000010001443e mi_execute_command + 140 
12 gdb-arm-apple-darwin    0x0000000100077721 process_event + 133 
13 gdb-arm-apple-darwin    0x0000000100078435 gdb_do_one_event + 1049 
14 gdb-arm-apple-darwin    0x0000000100072b49 catch_errors + 70 
/SourceCache/gdb/gdb-1518/src/gdb/macosx/macosx-nat-dyld.c:1648: internal-error: unrecognized shared library breakpoint 
A problem internal to GDB has been detected, 
further debugging may prove unreliable. 

내가 어딘가에 라인을 따라, 응용 프로그램은 3 링크가 올바르게 설정되지 않을 것 같은데요를 .X 버전 API, 따라서 로그에 "읽을 수없는 심볼"항목이 나타납니다. 나는 상황을 바로 잡는 방법을 알아낼 수 없다.

감사드립니다. 감사드립니다.

답변

3

"3.x API 연결"이 없으며 빌드 한 SDK 만 있습니다. SDK는 3.x 장치에서 제대로 실행되도록 이전 버전과 호환됩니다.

xcodeproj 수준 모두에서 대상 수준이 올바르게 설정되어 있는지 다시 한 번 확인하십시오. 이 모든 것이 올 바르면 3.1 장치에서 정상적으로 작동합니다.

  • 재부팅 맥 아이폰 3.x의 장치를
  • 가 & 필요한 프로비저닝을 다시 추가 제거 : 그 작동하지 않는 경우

    , 여기에 도움이 될 수 어둠 속에서 몇 가지 샷은 프로필

  • 인증서가 유효한지 다시 확인하십시오.
  • 프로젝트에 자격 파일이 없는지 확인하십시오. & 디버그 빌드 대상 설정
  • 청소 모든 대상
  • 빌드 & 실행 다시

이 중 어느 것도 당신이 엑스 코드 4의 깨진 설치해야 할 수도 있습니다 작동하지 않는 경우.

희망이 도움이 :)

당신은 4.3 컴파일 3.2

로 키 IOS 전개 대상을 지정하여 프로젝트의

+0

. 최종적으로 프로비저닝 프로파일 일 것 같았습니다. 나는 완전히 새로운 전화기로 작동하는지 (프로비저닝 프로파일을 업데이트해야하는지) 확인할 수있었습니다. 다시 한 번 감사드립니다! – Mac

+0

기꺼이 도와 드리겠습니다! –

0

대상으로 iOS 3.x를 지정 했습니까? 빌드 타겟을 최신 버전 (4.3)으로 설정하면 해당 버전이 필요합니다.

+0

을 원하는 IOS 그래, 그걸 시도해 봤어. 3.0에서 4.3까지의 모든 버전으로 대상을 지정하고 4.3 버전 만 작동합니다 (3.1.3 전화가 있기 때문에 시뮬레이터에서만 사용 가능). – Mac

+0

@Mac 시뮬레이터에서 장치를 변경해 보았습니까? –

+0

내 유일한 선택은 "iPhone", "iPhone (Retina)"및 "iPad"입니다. 나는 "iPhone"을 사용하여 테스트 해왔다. – Mac

0

3.x 버전에서 프레임 워크 라이브러리를 삭제하고 4.x 버전에서 다시 교체 한 다음 n 개의 건물을 정리해 보았습니까 ??

+0

이것은 3.x 버전이 아니기 때문에 (내가이 단계에서)이 3.x 프로젝트가 아니다. xCode 4에서 만든 새로운 * 프로젝트를 만들려고 노력 중입니다. 즉, 필자는 프레임 워크를 수동으로 대체하려고 시도했지만 아무런 개선이 없었습니다. 제안 주셔서 감사합니다,하지만 그 중 하나가 문제가되지 않습니다. 조언을 주신 덕분에 – Mac

0

열기 빌드 설정. 그러나 앱은 3.2 장치에서도 실행됩니다. 호출하는 메소드에주의를 기울여야합니다 ... 4.3 프레임 워크에서만 사용되는 메소드를 사용하는 경우 런타임에 if ([object respondsToSelector : ... otherwise 앱 이전 아이폰 OS

0

개방 빌드

설정 기본 SDK에 충돌합니다. 예 versionyou이

다음

공개 대상 및 더블 클릭 개방 빌드 설정 한 다음 기본 SDK

관련 문제