본문 바로가기

강의

다른 사람이 만든 iPhone App는 어떻게 생겼을까? - 패키지 뜯어보기

반응형

다른 사람이 만든 iPhone App는 어떻게 생겼을까? - 패키지 뜯어보기

가끔 그런 생각이든다. 이 어플은 어떻게 만들어 졌을까? Resource나 파일들은 어떤게 있을까?
바이너리야 내가 못건드리는거니까 그렇다고쳐도, 포함되어 있는 리소스(특히 이미지) 파일들은 궁금해질때가 있다.

어플에 포함되어 있는 파일의 목록을 보면, 그 어플이 어떻게 제작되어 있는지 좀더 쉽게 이해하고 분석할 수 있다.

각설하고, 어떻게 하면 될까?

iTunes에서 iPhone용 App를 설치하면 자신의 홈디렉토리 아래 "~/Music/iTunes/Mobile Applications"에 ".ipa"라는 확장자로 해당 어플이 생성된다.

이제 중요한건 "ipa" 파일을 어떻게 해체하는 거냐는건데, 이거 생각보다 간단하다.

"ipa" 파일은 사실 "zip" 파일이다. 확장자만 변경된거고거, 덕분에 확장자만 .zip으로 변경하면 바로 해당 패키지의 내용을 볼 수 있다.

그럼 예제로 이번에 다음에서 새롭게 공개한 다음의 tvPot2의 패키지 내용을 한번 볼까나.
tvPot 개발자님들. 너무 기분나빠하지 마세요. 그냥 한번 뜯어본거랍니다.
​​​
먼저 해당 ipa 파일을 해체하면 다음과 같은 디렉토리가 보인다,




iTunesArtwork는 사실상 .jpg 파일이다. 확장자를 .jpg로 변경하면 파일을 열어볼 수 있다. 어디에 쓰이는 놈인지는 나중에 시간내서 한번 글쓰도록 하겠다.

iTunesMetadata.plist 파일에는 해당 어플의 정보와 구매자 정보가 포함된다. 수정할일 없으니 참고로 알아만 두자.

중요한건 Payload 디렉토리인데, 그 디렉토리 아래에는 .app 파일이 포함되어 있고 해당 .app 파일의 내용을 열어보면 우리가 원하던 패키지의 내용을 모두 볼 수 있다.



위의 캡쳐와 같이 파일 목록이 쭉 나온다. png 파일들도 보이고 인터페이스 빌더 파일인 nib 파일도 보인다. 불행히도 nib 파일은 이미 컴파일된 상태라 수정이나 그 자체를 뜯어보는건 불가능하다.

그래도 파일 목록이라도 볼 수 있으니, 상당한 도움은 될거라고 생각된다.

[출처] http://parkscom.tistory.com/m/post/1167111260

반응형