iOS5 와 iOS6에서의 Date Formatter

프로젝트를 진행하다가 발견된 문제로 일단 기록에 남기기 위해 급하게 써봅니다. 진행 중인 프로젝트에서 DATE를 받아서 처리하는 부분이 꽤 많은데 서버에서 넘겨받은 DATE 문자열이 “2012-10-31T18:00+09:00“이라고 했을 때 이 포맷은 ISO8601에도 명시되어 있는 포맷이 맞음에도 불구하고 붉은색 문자의 처리가 iOS5와 iOS6에서 다름을 알게 되었습니다. 즉, NSDateFormatter를 이용하여 date format을 정의할 때 iOS6에서는 ‘yyyy-MM-dd’T’HH:mmZZZZ’ 으로 정의하면 제대로 파싱이 되지만, iOS5에서는 (null)로 처리되는 문제가 있었습니다. iOS5에서 따로 처리를 해주는 것이 있는지는 조사를 좀 더 해봐야 알 수 있겠지만 현재로서는 이 문제 하나 때문에 critical bug가 되어버린 상황이네요… 급한대로 마지막 ZZZZ에서의 세미콜론이 있으면 세미콜론을 무시하는 코드로 적용했지만 꺼림직한 것은 사실이네요. 추후 부가정보를 찾아보고 포스팅을 업데이트 하겠습니다. 혹여 이에 대한 정보를 가지고 계신 분 계시다면 댓글로 가르침 부탁드립니다.

iTunes File Sharing 지원할 경우 Document 디렉토리 사용에 관하여

현 시점의 iOS 공개버전 5.0.1 시점에서 앱 스토어에 앱을 등록 시 sandbox 내의 Document 사용이 엄격히 통제되고 있다. 이유는 iOS5에서 공개된 iCloud 때문이며, iCloud 트래픽을 줄이기 위한 제한사항으로 보여진다. 애플의 권고사항을 간략히 살펴보자면, Document는 사용자에 의해 생성된 데이터야 하며, 다시 다운로드가 가능하거나 캐싱(Caching)용도로 사용할 수 없다. 캐싱용도로 사용을 위해서는 Temp 디렉토리나 Cache 디렉토리 이용을 사용하라는 다소 엄격한 권고사항이다. 위 권고를 어기고 앱 등록 시에는 어김없이 Reject이라는 결과를 얻게되고 Resolution Center에서는 이에 대해 수정하라고 명시된다. 개인적으로는 이 권고는 사용자의 네트워크 비용이나 iCloud 자체의 유지보수 차원에서는 찬성이지만 iTunes File Sharing 과 같은 기능을 지원 시에는 사용자 데이터로 봐야할지 다시 다운로드가 가능한 데이터로 봐야할지 애매하다. 그래서인지 iOS5가 공개되고 얼마되지 않아 iOS5.0.1이 공개되었으며 업데이트 내용 중에는 File Attribute가 추가되었다. 이 역시 간략히 설명하자면, Document 디렉토리에 데이터를 저장하는 것은 가능하지만 File Attribute를 이용해 iCloud와 동기화하지 않도록 속성을 부여해라. 라는 것이다. 그렇다면 다시 iTunes File Sharing 지원을 살펴보자. 자주 사용하는 분들은 아시겠지만 iTunes File Sharing의 경우…

Apple Tech Talk 2011 in Seoul 참관기

지난 목요일 (2011.12.08) 애플 본사에서 주최한 Tech Talk 2011 in Seoul 행사가 킨텍스에서 진행되었습니다. 많은 지원자 가운데 초대된 분도 계셨고 초대되지 않은 분도 계셨는데요. 행사 내용 자체가 NDA라고 하여 많은 정보는 나누질 못하겠네요. 대신에 들었던 내용들 중 알짜들은 정리해서 눈치 못채게 올려보려 합니다. 우선은 행사 참관기를 정리해봅니다. 행사 일정은 정말 꼼꼼했습니다. 오전부터 오후까지 쉬는 시간이 10분이었는데도 불구하고 빽빽했죠. 맘 같아서는 다 듣고 싶었지만 스케쥴링을 해야했습니다. 행사장은 킨텍스 2전시장 4층이었습니다. 약 20분정도 먼저 도착해서 접수를 하고 홀에 마련된 음식들을 먹었습니다. 여러 지인들을 만나면서 커피와 쥬스, 샌드위치, 바나나 등 아침대용의 음식을 조금 즐기고 세션장이 오픈되어 세션장으로 들어섰습니다. 첫 세션은 Kick-off. 애플이 좋아하는 숫자들이 나열되었고 iOS의 변천사 등 애플의 깔때기였습니다. 두 번째 세션은 HIG(Human Interface Guide)에 대해서였는데 여러 레퍼런싱 앱들이 소개가 되었으며, ‘최고의 앱’을 만들어라는 교훈을 개발자들에게 던지면서 끝났습니다. (어쩌라는거야?!) 세 번째 세션은 iCloud. 저도 조금 만져봤던 녀석이었지만 역시나 설명을 직접 들으니 명백해지더군요. 데모앱으로 어떤 걸 만들어볼까 고민 중에 있습니다. 들었던 내용을 바탕으로…

iOS5.1 beta 변경내용 정리해봤습니다.

결론부터 말하자면 대부분 “버그 수정”이네요.. 1. NSNetService 클래스와 CFNetService의 P2P 인터페이스에 대한 내용에 대한 언급이 있습니다. P2P를 사용할 때는 이렇게 해라! 라는 것 같은데 P2P 구현해보질 않아서 내용이 한눈에 들어오진 않네요. 2. iCloud 역시나 이 녀석 때문에 애플 개발자들 힘든 것으로 보이네요..  4가지 이슈가 추가되었습니다. 일단 개발할 때 “포털에서 iCloud 활성화해라. 그리고 Provisioning 다시 발급해라.” 라는 말이 추가되었구요. NSMetadataQuery의 메소드인 setSortDescriptors: 가 지원되지 않는다고 합니다. iOS5에서는 DataProtection로 암호화 된 파일은 iCloud Storage API들을 사용할 수 없답니다. (뭥미?) 대/소문자 구분할 때 조심하라네요.. Mac OS X에서는 상관없는데 iOS는 문제가 있으니 알아서 잘 사용하랍니다. 3. Movie Player Movie Player가 자동으로 플레이 준비를 하지 않기 때문에 prepareToPlay 메소드 꼭 수행하라고 합니다. 4. Music Player shake-to-shuffle을 사용할 때 음악 앱이 정지되는 현상이 있다. 해보니까 문제가 있네요.. 문제 있는거 왜 올려..? 5. Newsstand 죽는 문제가 있었는데 수정했답니다.. -ㅁ-; 6. Security MD5는 지원하지 않는다고 합니다. (iOS5.0에서도 지원안한다고 했던 것 같은데..) SHA-1, SHA-2 사용하랍니다. 7. Xcode 개발도구 uninstall-devtools…