Capacitor Setup - npm init + 설정 + Android/iOS 기본 구성
ID: b093cbc0-6657-45fa-ab33-963eace36fa0
## 목표
Capacitor 프로젝트 초기화 및 Android/iOS 빌드 기반 구축
## 구현 항목
### 1. npm 프로젝트 초기화
```bash
cd /home/daniel/dev/logbile2.0.0
npm init -y
```
- package.json의 name을 "logbible"로 수정
- description, version 등 기본 정보 설정
### 2. Capacitor 설치
```bash
npm install @capacitor/core @capacitor/cli
npx cap init logbible co.kr.logbible --web-dir public
```
- web-dir: public (Rails의 정적 파일 디렉토리)
### 3. capacitor.config.ts 커스터마이징
```typescript
import type { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = {
appId: 'co.kr.logbible',
appName: 'LogBible',
webDir: 'public',
server: {
// 개발 중에는 Rails 서버로 프록시
url: process.env.CAPACITOR_SERVER_URL || undefined,
cleartext: true
},
plugins: {
SplashScreen: {
launchAutoHide: true,
backgroundColor: '#6366f1',
showSpinner: false,
androidSplashResourceName: 'splash',
splashFullScreen: false,
splashImmersive: false,
},
StatusBar: {
style: 'DARK',
backgroundColor: '#6366f1'
}
}
};
export default config;
```
### 4. Android 플랫폼 추가
```bash
npm install @capacitor/android
npx cap add android
```
- android/ 디렉토리 생성됨
- 빌드 실패해도 설정 파일만 있으면 OK (Android SDK 없을 수 있음)
### 5. iOS 플랫폼 추가 (선택적)
```bash
npm install @capacitor/ios
npx cap add ios
```
- macOS가 아니면 실패할 수 있음 - 에러 무시
### 6. Capacitor 플러그인 (기본)
```bash
npm install @capacitor/splash-screen @capacitor/status-bar @capacitor/browser
```
### 7. 빌드 스크립트 (package.json scripts)
```json
{
"scripts": {
"cap:sync": "npx cap sync",
"cap:open:android": "npx cap open android",
"cap:open:ios": "npx cap open ios",
"cap:build": "npx cap sync && echo 'Capacitor synced. Open Android Studio to build APK.'"
}
}
```
### 8. .gitignore 업데이트
기존 .gitignore에 추가:
```
# Capacitor
android/
ios/
node_modules/
```
- android/, ios/ 디렉토리는 로컬에서 생성하므로 gitignore
### 9. 개발 가이드 (script/capacitor-setup.sh)
```bash
#!/bin/bash
# Capacitor 개발 환경 설정 스크립트
echo "=== LogBible Capacitor Setup ==="
echo ""
echo "1. npm install 실행..."
npm install
echo ""
echo "2. Android 플랫폼 추가..."
npx cap add android 2>/dev/null || echo "Android SDK가 필요합니다. https://developer.android.com/studio"
echo ""
echo "3. iOS 플랫폼 추가 (macOS only)..."
npx cap add ios 2>/dev/null || echo "macOS + Xcode가 필요합니다."
echo ""
echo "=== 설정 완료 ==="
echo "Android: npx cap open android (Android Studio 필요)"
echo "iOS: npx cap open ios (Xcode 필요)"
```
## 테스트
- `npm install`이 성공하는지 확인
- capacitor.config.ts 파일이 존재하는지 확인
- 기존 Rails 테스트에 영향 없는지 확인: bin/rails test
## 주의사항
- Rails 프로젝트 루트에서 npm 명령어 실행
- package.json은 이 에이전트만 관리 (충돌 방지)
- node_modules/는 .gitignore에 추가
- android/, ios/도 .gitignore에 추가 (로컬 빌드 전용)
- bin/rails test로 전체 테스트 통과 확인 (Capacitor가 Rails에 영향 없어야 함)
- npx cap add 실패해도 OK (SDK 없을 수 있음) - config 파일만 있으면 성공
첨부 이미지
이미지 추가 (Ctrl+V로 붙여넣기 또는 클릭)
JPEG, PNG, GIF, WebP / 최대 10MB
활동 로그
-
팀팀리드 상태 변경: 리뷰 → 완료
2026년 03월 02일 05:13:56
-
Ccapacitor-dev 상태 변경: 진행 중 → 리뷰
2026년 03월 02일 05:07:51
-
Ccapacitor-dev Capacitor 설정 완료
2026년 03월 02일 05:07:50
상세 보기
## 생성/수정한 파일
- `package.json` - npm 프로젝트 초기화 (name: logbible, version: 2.0.0, cap 스크립트)
- `capacitor.config.ts` - Capacitor 설정 (appId: co.kr.logbible, webDir: public, SplashScreen 플러그인)
- `.gitignore` - android/, ios/, node_modules/ 추가
- `script/capacitor-setup.sh` - 개발 환경 설정 스크립트## npm 패키지 설치 결과
- @capacitor/core, @capacitor/cli - 핵심
- @capacitor/android, @capacitor/ios - 플랫폼
- @capacitor/splash-screen, @capacitor/status-bar, @capacitor/browser - 플러그인
- typescript (devDependency) - capacitor.config.ts 지원## Android/iOS 플랫폼
- `npx cap add android` - android/ 디렉토리 생성 성공 (copy 단계에서 index.html 없어서 경고, Rails 서버 렌더링이므로 정상)
- `npx cap add ios` - ios/ 디렉토리 생성 성공 (동일 경고)## 테스트 결과
- Rails 테스트 실행 불가: pwa-core-dev가 추가한 web-push gem의 openssl 의존성 문제 (Capacitor와 무관)
- Capacitor 파일들은 Rails 코드에 전혀 영향 없음 (별도 Node.js 영역) -
Ccapacitor-dev Capacitor 설정 시작
2026년 03월 02일 05:04:40
상세 보기
## 작업 시작
- npm 프로젝트 초기화 및 Capacitor 설정 시작
- 구현 순서: npm init → Capacitor 설치 → 설정 → 플러그인 → 플랫폼 → 스크립트 -
Ccapacitor-dev 티켓 클레임 완료
2026년 03월 02일 05:04:34