네트워크/보안

아이폰에 IPA 파일 직접 설치하기 (macOS 필요)

*  이 글은 어떠한 불법적인 시도를 권장하거나 장려하지 않는다. 정품 소프트웨어를 사용하는 바람직한 모범시민이 되기를 바란다.


iOS 에서는 IPA 라는 확장자의 애플리케이션 파일이 존재한다. 보통의 유저라면 애플의 공식 AppStore를 통해 앱을 설치할 것이기 때문에 이것이 무엇인지 알지 못하며 알 필요도 없다.

그러나 앱을 개발하는 개발자라면, Xcode 등의 개발 도구가 제공하는 시뮬레이터 뿐만 아니라 공기계 등에서 실제로 해당 앱이 잘 작동하는지 확인하며 점검할 필요가 있다. 이 때 필요한 것이 개발자 인증서이다.

원래 애플 개발자로 등록하려면 유료 결제를 진행해야 한다. 그러나 유료 등록을 하지 않더라도 일주일의 시간 동안 지정된 장비에서 임시로(?) 테스트를 해볼수는 있다. 따라서 일주일이 경과하기 전에 이 작업을 다시 해주면.. 몇번 더 사용할 수 있게 된다.


우선 이 작업을 할 때 macOS 가 구동되는 맥북 또는 아이맥이 필요하며, 개발자 도구인 Xcode가 설치되어 있어야 한다. 이 실험을 수행하는 환경은 2020년 1월 15일 기준 macOS Catalina(10.15.1)이 설치된 MacBook Pro이며,  Xcode Version 11.3 이 설치되어 있다. 다른 버전에서도 아마 되겠지만 테스트해보지는 않았다. macOS를 가상화 소프트웨어로 구동할 수 있는 방법도 근래에 나왔다고 들었으나 마찬가지로 나는 테스트해보지 않았다.

일단 어떤 경로를 통해 IPA 파일을 다운받자. 편의상 A 앱이라고 하겠다. 무슨 앱인지는 굳이 밝히지 않겠다.

이제 이 앱을 나의 iPhoneX 에 설치할 것이다. 여기서 중요한 것은 나의 Apple ID 가 있으며, 그 ID 로 MacBook에 로그인하였고, iPhone도 동일한 계정의 소유임이 일치되어야 한다는 것이다. 

개발자 도구인 Xcode를 실행한다.

이 화면에서 좌측 하단에 Create a new Xcode project를 선택한다. 여기서 실제로 Xcode를 이용해 어떤 앱을 개발하거나 할 것은 아니므로 너무 겁먹거나 걱정할 필요 없다. 이 작업은 약간의 Fake 이다.

 다음을 누르면 어떤 App을 만들것인지를 선택하는데 iOS 를 선택하고 그냥 Single View App을 고른다. 어차피 실제로 만들것은 아니므로 빨리 빨리 넘어가자. 관련 정보를 아래와 같이 대충 입력하자.

진행하면 아래와 같이 개발환경이 구축될 것이다. 프로그램 개발 경험이 없다면 무슨 외계어인가 싶겠지만 swift 프로그래밍 언어로 앱의 내부를 구현하는 화면이라고 생각하면되며, 읽을 필요가 없다.

여기서 중요한 것은 좌측 최상단에서 프로젝트 이름을 선택하고, 나오는 다음 메뉴에서 Signing & Capabilities 를 선택한다.

이걸 누르면 사이닝을 하기 위해서는 development team이어야 한다고 경고가 뜬다. 위에 Team을 보면 None으로 되어있다. 최초 프로젝트 생성에서 지정을 별도로 하지 않았기 때문이다.

Team을 누르고 Add Account 버튼을 클릭한다. 그리고 본인의 Apple ID 를 추가한다.(개인정보를 위해 나의 정보는 가렸다)

이제 좀전의 그 페이지로 다시 가보면 Team을 고를 수 있게 되어 있으며 방금 생성한 팀을 선택한다.

그러면 자동으로 Signing Certificate 가 움직이면서 새로운 인증 서명 설정을 수행한다. 대충 보면 in 6 Days 그러니까 6일뒤에 만료된다는 뜻이다. 대략 일주일 정도 사용할 수 있는 인증서가 생성되었다. 이 인증서는 Macbook 어딘가에 안전하게 저장되므로 굳이 어디있는지 찾아낼 필요는 없다.


이제 본인의 인증 서명이 생겼으므로, 다운받은 IPA 파일에다가 나의 서명을 덮어씌워야 한다. 이 작업을 수행해주는 아주 멋진 iOS App Signer 라는 프로그램이 있다. 나는 1.13.1v를 다운받았다. 해당 앱을 열자.

여기서 Input File 에 Browse를 클릭하여 설치하고자 하는 IPA 파일을 선택한다. Signing Certificate는 좀전에 사용하였던 Apple 계정이 표출될 것이다.

여기서 중요한 것은 Provisioning Profile 이다. 이것이 Re-Sign Only 로 되어있을 텐데 이것을 변경하여 조금 전 새롭게 생성한 (ex : testApp) 것으로 바꾼다. 이것이 6일후에 만료된다는 그 프로파일이다.

자 이제 하단의 Start버튼을 누르면 어디에 저장할 것인지를 묻는다. 적당한 위치를 고르면 프로그램의 하단부의 진행상태가 변경되며 무엇인가 작업을 막한다. 아마 Packaging IPA 라는 문구에서 조금 오래 멈춰있다가 종료되고나면 Done, output at ~~~ 이라는 메시지가 나오면 끝난것이다.


이제 해당 파일을 나의 iPhone에 설치하기 위해 다시 Xcode로 가자. 상단의 메뉴에서 Window -> Device and Simulators 메뉴를 선택한다.

그냥 들어가면 아마 아무것도 안보일 것이다. 이 시점에 iPhone을 케이블을 사용하여 맥북에 연결한다. 되도록이면 정품 케이블 사용을 추천한다.

이제 가운데의 Installed Apps 부분에 + 버튼을 누르거나, 마우스 드래그를 사용하여 앞서 Signer를 통해 완성한 IPA 파일을 집어넣는다. 그러면 아래와 같은 문구가 뜬다.

iPhoneX is busy: Installing to iPhoneX | Performing install actions. Xcode will continue when iPhoneX is finished.

지금 설치중이라 바쁘단 뜻이다. 이 메시지가 사라질때까지 기다리면 된다. 


그럼이제 아이폰에서 실행이 될까? 아직 아니다. 설치는 되어있지만 실행은 되지 않을 것이다. 아이폰의 설정 - 일반 - 기기관리로 들어가면 다음과 같은 화면이 있다.

내가 개발자이고 내가 깔은 앱이니 그냥 '신뢰'를 눌러주면 된다. (애초에 못믿을 IPA 파일이었으면 깔지 않아야한다)


그럼 이제 해당 앱을 잘 구동할 수 있을 것이다. 이 방법은 프로파일이 일주일간 유효하므로 일주일이 만료되기 전에 위의 방법을 다시 해주면 된다.

Software Security Engineer

CPUU 님의 창작활동을 응원하고 싶으세요?

CPUU의 Daydreamin'
CPUU의 Daydreamin'
구독자 220

2개의 댓글

SNS 계정으로 간편하게 로그인하고 댓글을 남겨주세요.
새로운 알림이 없습니다.