BLOG ARTICLE Smoking Counter | 2 ARTICLE FOUND

  1. 2011.12.30 22개월만의 업그레이드
  2. 2009.03.18 스모킹 카운터 1.2 버그

처음 스모킹 카운터를 올린 후에 필요에 따라 업그레이드를 해오다가 작년 2월쯤에 마지막 업그레이드를 하고는 손을 놓고 있었다. 더 추가할 것도 없는 것 같고 이정도면 대충 쓸만하다 생각하고 신경을 끊고 있었다. 후에 레티나 디스플레이가 나오면서 고해상도도 지원해야 되지 않나하는 생각이 들었지만 나중에 다른 업그레이드 할 때 같이 하자 생각하고 미루어 왔다.

한동안 인터페이스빌더를 사용하지 않다가 새로나온 스토리보드의 사용법도 익힐겸 스모킹카운터를 업그레이드 하기로 했다. 시작후 iOS5 이상만 지원한다는 사실을 알고 잠시 갈등을 했지만 '이젠 다들 업그레이드를 했을거야'란 자기최면을 걸고 그냥 그대로 만들기로 했다. 

예전 버전을 빌드 할려니 괜히 cocos2d를 쓴 부분이 있어 되지도 않고 그냥 앱스토어있는 스크린샷을 참고하기로 했다. 헌데 앱스토어에서 앱이 보이지를 않았다. '너무 오래 관리를 안하면 앱을 내리나?'하는 생각이 들었다. 그러나 한국 앱스토어를 제외하고 다른 나라의 앱스토어에서는 잘 나오고 있었다. 이상해서 애플에 메일로 문의를 해보니 몇달전 한국에 게임 카테고리가 노출된 이후로는 게임과 엔터테인먼트에 있는 17세 이상의 게임들은 한국 앱스토어에서는 출력되지 않는다는 답장이왔다. 담배와 관련이 있어 17세 이상이고 처음 올릴 때 서브카테고리를 엔터테인먼트로 선택을 해서 한국에서만 나오지 않은 것 같다. '이건 게임이 아닌데 이 어플도 영향을 받나?'라고 문의를 다시 해보았는데 '이해해 줘서 고맙다'라는 심오한 내용의 답장이 와서 포기했다. 어차피 업그레이드를 하면서 보조 카테고리를 더 적당한 곳으로 옮기면 되니...

OS X 라이언과 Xcode 4.2.1로 처음 작업을 했는데 라이언은 무겁고 Xcode는 죽는 횟수가 많고 안정적이지 않은 것 같다. 어제 앱스토어에 등록하는데 바이너리 업로드시 오류가 나면서 업로드가 되지를 않는다.

This bundle is invalid. The key UIRequiredDeviceCapabilities in the Info.plist may not contain values that would prevent this application from running on devices that were supported by previous versions. 


UIRequiredDeviceCapabilities 항목에 해당 아이템을 추가하고 이리저리 변경해서 올려도 결과는 마찬가지였다. Xcode에서 이해할 수없는 오류가 반복될 때의 가장 좋은 해결법중에 하나인 Xcode를 종료했다 다시 실행해도 오류는 사라지지 않았다. info.plist에서 UIRequiredDeviceCapabilities 항목을 삭제해 보았더니 오류없이 업로드되었다. 성공은 했지만 무엇인가 찜찜한...


이번에 변경하거나 추가한 부분은 레티나 디스플레이 지원, 통계 가로보기 추가, 디자인 변경과 함께 흡연한 지역을 보여주는 기능을 넣었다. 지도는 예전에 한 사용자가 메일로 추가해주었으면 좋겠다고 해서 넣어 보았는데 딱히 쓸모가 있는지는 모르겠다. 하긴 담배를 피면서 세는 어플도 딱히 필요한지는 모르겠다.

그외 양 캐릭터가 보기 싫다는 메일 내용도 생각이 났다. 그래서 양을 드래그 해서 옮기도록 만들었다. 정 보기 싫으면 튕겨서 화면 밖으로 나가도록 만들었다. 어디로 갔던지 제자리를 찾아 돌아 오긴한다.

혹시 다른 추가하거나 변경할 사항이 없나 해서 앱스토어의 리뷰들을 확인해 보았다. 그런데 유독 영국 앱스토어에서만 자정이 넘어가면 초기화되는 버그가 있다는 내용들이 있다. 전면은 하루 단위로 갱신이 되는데 그것을 버그로 여기는 것 같다. 다행히 최근에 '영국인 발견'이란 책을 읽어서인지 그다지 당황스럽지는 않았다. 메뉴 이름을 Today로 변경하고 타이틀바에 오늘의 날짜를 출력하여 하루단위라는 것을 강조 하도록 수정했다.

이 어플은 초기에 내가 사용하는데 의미를 두고 만들었지만 한달 쓰고 안쓰게 되었다. 몇일있으면 오는 2012년 부터는 써볼려고 하는데 얼마동안 사용할지 장담할 수는 없다. 가장 좋은 것은 금연을 하여 이런 어플을 안쓰고 안만드는 것이고 그전까지는 업그레이드를 계속 해볼려고 한다.

저번 주에 1.2 버젼을 올렸습니다. 통계에 섬머타임이 적용된 버그등을 수정하고 캐릭터 에니메이션을 추가하고 디자인을 조금 변경하였습니다.

어제 1.2 버젼이 리뷰를 끝내고 배포가 되었습니다. 그런데 어플 업로드시 공식 사이트로 등록해 놓은 블로그에 아이팟 터치 1세대 사용자께서 어플리케이션이 멈춘다는 글을 보았습니다. 혹시나 해서 앱스토어를 가보니 업그레이드 후 튕긴다는 리뷰를 보았습니다. 일단 더 이상 다운로드되는 것을 막기위해 스토어에서 내렸습니다.

제가 파악한 범위에서는 1세대 사용자에게서 문제가 발생하는데, 제가 1세대가 없고 늦은 시간이였기 때문에, 1세대를 가지고 있는 지인에게 연락하여 다음날 가져와 달라고 요청했습니다. 원인은 늘 그렇듯이 어처구니 없는 실수였습니다.

sqlite3_finalize(statement);
sqlite3_finalize(statement);

디버깅 하다보니 위와 같은 코드가 있더군요. 아마 복사를 하다 필요없는 sqlite3_finalize까지 같이 가지고 왔나 봅니다. 이 치명적인 오류는 해킹된 아이팟 1세대만 튕기고 나머지 시뮬레이터나 2세대에서는 견딘 것 같습니다.

두번째 어플리케이션이 멈추는 듯한 문제는 지나치게 느려진 속도에 있었습니다. 메인화면은 2개의 View로 나누어 놓았습니다. 상단은 에니메이션이 필요하고 추후에 다양한 에니메이션을 보여 주기위해 Open GL ES를 사용하기 위함이고, 하단의 수량, 시간등을 보여 주는 부분은 매 프레임 마다 에니메이션이 필요 없기 때문이었습니다. 그런데 이번에 업글을 하면서 하단의 뷰도 매 프레임 실행되도록 변경했습니다. 제 2세대에서는 아무 차이가 없었기 때문이었습니다. 하지만 1세대에서는 속도에 심각한 문제가 발생했습니다. 아마 애플도 리뷰시 2시대만 사용하는 것 같습니다.

현재는 이미지 출력시에 가장 간단한 방법인 drawAtPoint를 사용하고 있었습니다. 애니메이션이 더 추가되고 GL로 가기전에 그나마 퍼포먼스가 조금 나은 CGContextDrawImage로 교체할려고 합니다.

아무튼 오류를 고치고 그날 핀 수량을 뱃지로 보여주는 부분을 추가하여 다시 올렸습니다. 아마 다음주 초쯤 올라갈 것 같네요. 사용하고 계신분들께는 너무 죄송합니다.