papercode
개발일지/앱(iOS·macOS) Obsidian

Xcode에서 IPA 파일 만드는 방법

App Store를 거치지 않고 직접 만든 앱을 아이폰에서 쓰려고, Xcode 빌드 결과(.app)를 IPA로 묶어 LiveContainer로 설치·업데이트하는 방법

읽는 데 2분 · 수정

직접 만든 앱을 App Store나 TestFlight 없이 내 아이폰에서 쓰고 싶을 때 쓰는 방법이에요. Xcode로 빌드한 .app을 IPA 파일로 묶고, LiveContainer 앱으로 아이폰에 넣어요.

1. Xcode에서 빌드하기#

  1. Xcode 위쪽 기기 선택 메뉴에서 **Any iOS Device (arm64)**를 골라요. 시뮬레이터를 고르면 아이폰에서 돌지 않는 빌드가 나와요.
  2. 메뉴 Product → Build(⌘B)로 빌드해요.
  3. Product → Show Build Folder in Finder를 눌러 Products/Debug-iphoneos 폴더로 들어가면 MyApp.app이 있어요.

2. IPA로 묶기#

IPA는 Payload 폴더 안에 .app을 넣고 zip으로 압축한 파일이에요.

  1. 바탕화면에 Payload 폴더를 만들어요. 이름은 대소문자까지 정확히 Payload여야 해요.
  2. MyApp.app을 그 안에 복사해요.
  3. Payload 폴더를 우클릭 → 압축하면 Payload.zip이 생겨요.
  4. 파일 이름을 MyApp.ipa로 바꾸면 끝이에요.

터미널에서 한 번에 하려면 .app이 있는 폴더에서 아래처럼 실행해요.

bash
mkdir -p Payload
cp -R MyApp.app Payload/
zip -qry MyApp.ipa Payload
rm -rf Payload

3. 아이폰에 넣기#

  1. 만든 IPA를 AirDrop이나 iCloud Drive로 아이폰 파일 앱에 옮겨요.
  2. LiveContainer를 열고 앱 탭의 **+**를 눌러 그 IPA를 고르면 설치돼요.

앱을 고쳤을 때도 똑같이 빌드하고 IPA를 다시 만들어 넣으면 업데이트돼요.

자주 막히는 곳#

  • 설치가 안 될 때: zip을 열었을 때 맨 위에 Payload 폴더가 있는지 확인해요. .app을 바로 압축하거나 폴더 이름이 다르면 IPA로 인식되지 않아요.
  • 실행하자마자 꺼질 때: 시뮬레이터용으로 빌드하지 않았는지 확인해요. 결과 폴더 이름이 -iphonesimulator가 아니라 -iphoneos여야 해요.
papercode