본문 바로가기

iOS

앱 스토어에 배포된 앱의 구조 분석하기

 

가끔 앱 스토어에 올려진 앱이 어떤 라이브러리를 사용하는지, 혹은 CocoaPods을 사용하는지 확인하고 싶을 때가 있다.

 

이는 앱 스토어에 올려진 앱의 ipa 파일을 분석하면 된다.

 

어떻게?

 

방법은 github.com/majd/ipatool를 사용하는 것.

 

 

GitHub - majd/ipatool: Command-line tool that allows searching and downloading app packages (known as ipa files) from the iOS Ap

Command-line tool that allows searching and downloading app packages (known as ipa files) from the iOS App Store - majd/ipatool

github.com

 

1.  터미널을 열고 ipatool을 설치한다.

 

brew tap majd/repo
brew install ipatool

 

 

2. ipatool에 로그인 한다. (이때 email과 password는 본인의 Apple ID를 사용)

 

ipatool auth login --email [email] --password [password]

 

 

3. 앱 스토어에 배포된 앱을 찾는다. (예시로 Naver를 찾아보자)

 

ipatool search naver

 

 

그렇다면 다음과 같은 결과가 나온다.

 

 

 

우리는 여기서 "name"이 "네이버 - NAVER"로 된 앱을 다운받는다.

 

 

4. 앱의 ipa 파일을 다운로드 받는다.

 

ipatool download -b com.nhncorp.NaverSearch

 

 

그렇다면 위 명령을 실행한 디렉터리에 ipa 파일이 다운로드 된다.

 

 

이제 확장자를 .ipa에서 .zip으로 바꾸고 압축을 해제한다.

 

 

압축이 해제된 파일에 들어가서 Payload 폴더에 들어간다.

 

 

그러면 나오는 앱을 오른쪽 클릭 > 패키지 내용 보기를 누른다.

 

 

그러면 다음과 같이 나온다. 그러면 NaverSearch는 어떤 Framework를 사용하는지 확인해보자.

 

 

Alamofire, RxSwift 등등을 사용한다는 것을 알 수 있다.

 

 

Info.plist도 확인이 가능하다.

 

 

글을 쓰는 지금은 다운로드가 되지 않는 앱들도 있다.

 

 

 

이 문제가 issue에 많이 보고되는 듯.

 

 

Multiple users reporting download error. Got error="invalid response" for download · Issue #357 · majd/ipatool

What happened? Had been able to use the download command in the past few weeks but got hit with an error message today when trying to download any apps. The search command is able to return results...

github.com

 

 

마무리

 

 

위 과정에 대한 전반적인 내용을 더욱 알고 싶다면 아래 Let's Swift 2022 발표의 앞부분을 보는 것을 추천한다.

 

 

'iOS' 카테고리의 다른 글

Xcode 시뮬레이터 일회용 이메일 활용하기  (0) 2025.04.08