Mobile-아이폰iOS

2010년 출시 구닥다리 iOS 앱 업데이트 하기

무한열정 2017. 8. 27. 10:02

2010년에 출시한 구닥다리 앱을 업데이트 해보려고 합니다.

이런일이 거의 없겠지만 가끔은 이런경우가 있을거 같아 기록으로 남겨둡니다. ^^


이번에 2017년에 iOS 11에서는 64bit가 지원 않되는 앱은 다운로드가 않되나 봅니다.

그래서 바쁘다는 핑계로 못하다가

이번에 한번 시도를 해봅니다.


일단 2010년당시 개발한 앱의 iOS 버전이 4.x였네요. ^^;;; 그동안 눈부신 발전을 했죠.


* iOS 버전의 역사

https://ko.wikipedia.org/wiki/IOS_%EB%B2%84%EC%A0%84_%EC%97%AD%EC%82%AC


제의 2010년 첫출시앱 변환마법사가 대상입니다.

이 앱은 ARC도 지원하지 않았고 retain release 개념도 약해서 크래쉬문제도 좀 있습니다.


1. AppDelegate

우선 Xcode로 오픈을 하니 잘 가져오기는 한다.


하지만 빌드하면 다음과 같은 오류가 난다.

2017-08-27 09:36:21.278 TransAllKr[3075:292792] *** Assertion failure in -[UIApplication _runWithMainScene:transitionContext:completion:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3600.7.47/UIApplication.m:3677

2017-08-27 09:36:21.289 TransAllKr[3075:292792] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Application windows are expected to have a root view controller at the end of application launch'


=> 해결방법은

- (void)applicationDidFinishLaunching:(UIApplication *)application {


    // Override point for customization after application launch

//[window addSubview:navigationController.view];

    [window setRootViewController:navigationController];

    [window makeKeyAndVisible];

}


요즘 비교적 최신앱에서는 다음과 같이 한다.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    

    // Override point for customization after application launch.

    // create window

    

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    

    //iOS 9 부터는 아래와 같이 루트뷰도 세팅 주지 않으면 에러가 나온다.

    self.window.rootViewController = navigationController;


    return YES;

}


위는 메소드로 처리했고 아래는 프로퍼티로 처리했는데 

차이가 궁금하다면 좀더 공부하시를 추천한다.

그리고 

delegate method의 변화가 있었다는걸 알수 있다. 애플이 하니 따라갈수 밖에 없다. ^^;;;

2. Xib에 ViewController Object가 있는경우 삭제



3. 화면크기를 4인치 이상 지원

옜날 화석 앱이라 위아래가 짤린다.

해결방법은 다음 이미지를 추가해야 4인치 이상이 지원된다.

Default-568h@2x.png (640 × 1136 pixels) 파일이 있어야 한다.


* 아래글 참고한다.

https://stackoverflow.com/questions/18913105/black-bars-showing-when-running-app-on-ios-7-4-inch-retina-display


적용하고 나면 위로 붙는 알수있다.




- 작업중 계속 추가 됩니다. -