2010-08-20 2 views
0

그래서 Xcode 설치를 지우고 4.0 SDK 만 설치하면 실수로 응용 프로그램을 iOS 4.0으로 업데이트 할 수 있습니다 (SDK 3.1.3이 내 백업에도 없습니다!). 지금 4.0의 기본 SDK로 빌드 된 앱이 있으며 iTunes에 4.0이 필요하지만 추가 한 유일한 방법은 -applicationDidEnterBackgroundState 및 -applicationDidBecomeActive (기본적으로 복사/붙여 넣기를 통해 저장 /로드 데이터 코드를 -applicationWillTerminate 및 -viewDidLoad). Build Settings에서 iPhone OS Deployment Target을 3.1.3으로 설정하여 응용 프로그램을 다시 빌드 할 수 있습니까? 그렇다면 Apple에서 본질적으로 내 응용 프로그램을 다운 그레이드 할 수 있습니까? 4.0을 검사하는 #If_Define 문을 넣어야합니까? 그러면 조건부로 해당 4.0 메서드를 사용할 수 있습니까?iPhone OS 3.1.3과 호환되는 iOS 4.0 앱을 어떻게 만드나요?

답변

0

아니요, 아니요. #ifdef 문을 사용할 필요가 없습니다. 원하는 메서드를 호출 할 수 있습니다. 질문은 UIApplication 인스턴스가 호출 할 것인지 여부입니다.

또한 배포 설정에 따라 iTunes 문제가 처리됩니다. 그래서, 당신은 3.1.3으로 설정해야합니다. (특별히 필요한 경우가 아니라면 3.0을 업그레이드하지 않았던 많은 사람들이 최소한의 기능을 가지고 있었고 본질적으로 안티 - jailbreak 릴리스 였기 때문에 3.0으로 설정해야합니다.)

- (void) applicationWillTerminate:(UIApplication *)application 
{ 
    // Just pass it on to the new iOS4 delegate 
    NSLog(@"Application will terminate"); 
    [self applicationDidEnterBackground:application]; 
} 

을 그리고 전경을 위해, 난 그냥 application:didFinishLaunchingWithOptions:applicationWillEnterForeground:에서 모두 호출되는 "로더"방법이 있습니다

코드에 관해서는, 나는 이런 식으로이 문제를 처리했습니다.

내 3G w/3.0 (내 3G에서 iOS4를 본 후에 업그레이드를 거부합니다!) 및 iOS4를 실행하는 내 3GS에서도 잘 작동합니다.

+0

아, 그래 ... 기본적으로 응용 프로그램이 3.0에서 실행될 때 모든 -applicationDidEnterBackground 호출을 무시합니다 ... 예, Objective-C의 장점 중 하나임을 기억하는 것 같습니다. –

관련 문제