모바일 앱(iOS)
소스에서 Melso를 빌드해 iPhone에 설치하고 Cloud 또는 자체 호스팅 인스턴스에 연결합니다.
Melso iOS 클라이언트는 아직 App Store에 출시되지 않았습니다. Mac에서 오픈 소스 저장소의 Release 버전을 빌드해 자신의 iPhone에 설치할 수 있습니다. Android 클라이언트는 아직 제공하지 않습니다.
설치된 앱은 기본적으로 Melso Cloud에 연결되며 기존 계정으로 로그인하면 됩니다. 워크스페이스, 이슈, 댓글, 실행 기록은 모두 서버에 저장되므로 Web이나 Desktop에서 직접 동기화할 필요가 없습니다.
준비 사항
다음 항목이 필요합니다.
- Xcode가 설치된 Mac
- Xcode → Settings → Accounts에서 로그인한 Apple ID
- USB로 연결된 iPhone
- iPhone의 설정 → 개인정보 보호 및 보안에서 활성화한 개발자 모드
- Node.js, pnpm, Git
Xcode 또는 실제 기기 개발 환경이 설정되지 않았다면 먼저 Expo의 iOS Device 환경 설정을 완료하세요.
iPhone에 설치
저장소를 clone하고 의존성을 설치합니다.
git clone https://github.com/albertsalgueda/melso.git
cd multica
pnpm install그런 다음 저장소 루트에서 다음 명령을 실행합니다.
pnpm ios:mobile:device:prod:releaseMetro에 의존하지 않는 Release 버전을 빌드해 연결된 iPhone에 설치합니다. 처음 빌드할 때는 iOS 의존성을 내려받고 React Native를 컴파일하며 이후에는 Xcode 캐시를 재사용합니다.
iPhone에서 앱 실행을 차단하면 설정 → 일반 → VPN 및 기기 관리에서 해당 개발자 인증서를 신뢰하도록 설정하세요.
무료 서명의 7일 제한
무료 Apple ID로 서명한 앱은 7일 동안만 사용할 수 있습니다. 만료되면 iPhone을 Mac에 다시 연결하고 같은 빌드 명령을 실행해 서명을 갱신하세요.
Apple Developer Program 계정으로 서명하면 유효 기간이 더 길고 TestFlight와 정식 배포에도 사용할 수 있습니다. 어떤 서명을 사용하더라도 재설치나 서명 갱신으로 서버 데이터가 사라지지 않습니다.
서명 실패
Xcode에 No matching provisioning profiles found가 표시되면 기본 bundle identifier가 Apple ID에 속하지 않을 수 있습니다. 자신이 제어하는 역방향 도메인으로 바꾼 뒤 다시 빌드하세요.
export EXPO_BUNDLE_IDENTIFIER_PROD=com.yourname.multica
pnpm ios:mobile:device:prod:release이 값은 자신의 Apple Developer team에서 사용할 수 있기만 하면 되며 Melso 계정이나 워크스페이스에는 영향을 주지 않습니다.
업데이트
직접 설치한 iOS 버전은 자동으로 업데이트되지 않습니다. 최신 코드를 pull하고 의존성을 업데이트한 뒤 다시 빌드하세요.
git pull --ff-only
pnpm install
pnpm ios:mobile:device:prod:release자체 호스팅 인스턴스 연결
Release 빌드는 API 주소를 앱에 포함합니다. 자체 호스팅 인스턴스에 연결하려면 먼저 apps/mobile/.env.production을 수정합니다.
EXPO_PUBLIC_API_URL=https://api.example.com
EXPO_PUBLIC_WEB_URL=https://app.example.comEXPO_PUBLIC_API_URL은 필수입니다. EXPO_PUBLIC_WEB_URL은 "Copy link", "Open on web" 같은 메뉴에 사용하는 선택 항목이며 설정하지 않으면 이 메뉴가 표시되지 않습니다.
수정한 뒤 빌드 명령을 다시 실행합니다. iPhone에서 이 API 주소에 접근할 수 있어야 합니다. 로컬 네트워크 주소를 사용할 때는 localhost를 쓰지 마세요. iPhone에서는 휴대전화 자체를 가리킵니다.
.env.production을 수정하면 현재 checkout의 프로덕션 설정이 바뀝니다. 이 변경을 커밋하면 개인 API 주소가 저장소의 프로덕션 설정에 들어갑니다.
모바일 개발, Simulator 사용, staging 연결 방법은 저장소의 apps/mobile/README.md를 참고하세요.