주요 콘텐츠로 건너뛰기

빌드 스크립트를 Capacitor CLI으로 개인화하는 방법

빌드 스크립트를 Capacitor CLI으로 개인화하여 효율적인 배포와 플랫폼에 맞춘 앱 업데이트를 학습하세요.

마틴 도나디유

마틴 도나디유

콘텐츠 마케터

빌드 스크립트를 Capacitor CLI으로 개인화하는 방법

Capacitor CLI은 iOS, Android 및 웹 플랫폼에서 앱의 빌드 프로세스를 개인화할 수 있습니다. 빌드 스크립트를 조정하면 다음과 같은 이점이 있습니다:

  • 업데이트 속도 향상: 앱 스토어 지연 없이 즉시 변경 사항을 푸시합니다.
  • 배포 관리: 업데이트를 되돌리거나 특정 사용자 그룹에만 업데이트 할 수 있습니다.
  • 앱 보안: 업데이트를 암호화하여 보호합니다.
  • 빌드 최적화: 플랫폼에 맞는 설정을 조정합니다.

주요 기능 개요

  • 설정 파일: capacitor.config.json 사용하고 package.json 설정을 관리하기 위해.
  • 사용자 정의 스크립트: 빌드 프로세스의 특정 단계에서 __CAPGO_KEEP_0__을 실행하는 데 사용됩니다.
  • 빌드 훅: 빌드 프로세스의 특정 단계에서 code을 실행하는 데 사용됩니다.
  • 환경 변수: 빌드 프로세스의 특정 단계에서 __CAPGO_KEEP_0__을 실행하는 데 사용됩니다. .env 파일

Capgo, 배포 도구로, 자동 업데이트, 버전 추적, 글로벌 성능 최적화와 같은 기능을 제공합니다. 자동화된 업데이트버전 추적

소개 Capacitor 설정

Capacitor 프레임워크 문서 웹사이트

Capacitor 기본 빌드 프로세스

Capacitor이 기본 빌드 프로세스를 어떻게 처리하는지 이해하는 것은 커스터마이즈를 효과적으로 하려면 필수적입니다. 아래에서, 우리는 Capacitor CLI의 빌드 프로세스와 주요 구성 파일을 단계별로 설명하겠습니다.

표준 빌드 단계

Capacitor은 웹 앱을 플랫폼별 빌드로 변환하는 단계별 프로세스를 사용합니다. 기본 빌드 프로세스의 내용은 다음과 같습니다:

단계설명출력
웹 빌드프레임워크 도구를 사용하여 웹 자산을 컴파일합니다.최적화된 웹 번들
자산 복사웹 자산을 네이티브 플랫폼 폴더로 이동플랫폼별 자산 디렉토리
네이티브 빌드플랫폼별 빌드 명령을 실행배포 가능한 바이너리
빌드完整성 및 의존성 확인빌드 상태 및 경고__CAPGO_KEEP_0__

기본 설정 파일

Capacitor이 빌드를 처리하는 방식을 결정하는 두 개의 중요한 설정 파일입니다.

capacitor.config.json
Capacitor 프로젝트의 핵심 설정 파일입니다. 빌드에 중요한 매개 변수를 설정합니다.

{
  "appId": "com.example.app",
  "appName": "MyApp",
  "webDir": "dist",
  "bundledWebRuntime": false,
  "plugins": {
    "SplashScreen": {
      "launchShowDuration": 3000
    }
  }
}
  • appId: 앱의 고유 식별자입니다.
  • appName: 앱의 이름입니다.
  • webDir: Capacitor이 웹 자산을 찾는 위치를 지정합니다. (예: dist).
  • plugins: SplashScreen 옵션과 같은 플러그인별 설정을 구성할 수 있습니다.

package.json
빌드 프로세스를 ảnh hưởng하는 빌드 스크립트와 의존성을 포함하는 파일입니다.

{
  "scripts": {
    "build": "npm run build:web && cap sync",
    "build:web": "vite build",
    "cap:build": "cap build"
  }
}
  • The webDir 설정 capacitor.config.json Capacitor은 컴파일된 웹 자산의 위치를 알려줍니다. 이 자산은 네이티브 빌드에 포함됩니다.
  • __CAPGO_KEEP_0__의 변경 사항을 적용한 후, capacitor.config.json을 실행하여야 합니다. cap sync 네이티브 프로젝트가 업데이트되도록 하기 위해

를 실행하여야 합니다.

다음으로, 네이티브 빌드의 설정을 수정하여 빌드 프로세스를 더 세부적으로 커스터마이즈할 수 있는 방법에 대해 알아보겠습니다.

Capacitor의 빌드 프로세스를 프로젝트에 맞게 조정하는 방법

__CAPGO_KEEP_0__의 기본 빌드 프로세스를 조정하여 프로젝트에 맞게 조정할 수 있습니다. 방법은 다음과 같습니다.

빌드 설정 capacitor.config.json __CAPGO_KEEP_0__의 빌드 프로세스를 조정하기 위해

{
  "appId": "com.example.app",
  "webDir": "www",
  "server": {
    "hostname": "localhost",
    "androidScheme": "https",
    "iosScheme": "https",
    "allowNavigation": ["*.example.com"]
  },
  "android": {
    "buildOptions": {
      "keystorePath": "release.keystore",
      "keystorePassword": "mypassword",
      "keystoreAlias": "release",
      "keystoreAliasPassword": "mypassword"
    }
  },
  "ios": {
    "scheme": "App",
    "automaticProvisioning": true
  }
}

파일을 편집할 수 있습니다. 아래는 예시 구성입니다.

  • webDir__CAPGO_KEEP_0__의 빌드 프로세스를 조정할 수 있는 주요 설정은 다음과 같습니다.: __CAPGO_KEEP_1__ : 컴파일된 웹 자산의 위치를 지정합니다.
  • server: 개발 서버를 구성하고, 호스트 이름 및 네비게이션 권한을 포함합니다.
  • android/ios: 플랫폼별 빌드 설정을 허용합니다. 예를 들어, Android의 키스토어 세부 정보 또는 iOS의 배포 옵션과 같은.

Creating NPM Scripts

작업 흐름을 단순화하기 위해, NPM 스크립트를 파일에 추가하세요. 예를 들어: package.json : 환경 설정을 설정하거나 빌드가 완료되었을 때 알림을 보내는 등의 작업에 사용하세요.

{
  "scripts": {
    "prebuild": "node ./scripts/prepare-env.js",
    "build": "npm run build:web && cap sync",
    "build:web": "vite build",
    "build:ios": "cap build ios --release",
    "build:android": "cap build android --release",
    "postbuild": "node ./scripts/notify-completion.js"
  }
}
  • prebuild : Android 또는 iOS 앱을 빌드하기 위한 플랫폼별 명령어입니다. postbuildYou can take automation even further by adding build hooks.
  • build:platformBuild Hooks Setup

더욱 높은 수준의 제어를 위해, 빌드 훅을 사용하여 빌드 프로세스의 특정 단계에서 __CAPGO_KEEP_0__를 실행하세요. 예를 들어:

With build hooks, you can:

For more advanced control, use build hooks to execute custom code at specific points during the build process. Here’s an example setup in capacitor.config.ts:

import { CapacitorConfig } from '@capacitor/cli';

const config: CapacitorConfig = {
  appId: 'com.example.app',
  plugins: {
    CapacitorHooks: {
      beforeBuild: async () => {
        console.log('Running pre-build tasks...');
        // Add your pre-build tasks here
      },
      afterBuild: async () => {
        console.log('Running post-build tasks...');
        // Add your post-build tasks here
      }
    }
  }
};

export default config;

With build hooks, you can:

  • 빌드 시작 전에 요구 사항을 확인하세요
  • 프로세스 중에 자산을 변환하세요
  • 중요한 지점에서 알림을 트리거하세요
  • 버전 번호를 자동으로 업데이트하세요
  • 자동화된 테스트를 무중단으로 실행하세요

이 접근 방식은 빌드 라이프 사이클의 전체에 대한 더 큰 유연성과 제어를 제공합니다.

고급 빌드 커스터마이즈

큰 프로젝트에서 작업할 때, 빌드 프로세스를 세부적으로 조정하면 큰 차이를 만들 수 있습니다. 환경에 따라 빌드하고 플랫폼을 커스터마이즈하는 방법을 효과적으로 처리하는 방법을 알아보세요.

환경 변수

환경 변수를 설정하려면 각 환경에 대한 별도의 .env 파일을 생성하세요:

  • .env.development
  • .env.staging
  • .env.production

그런 다음 빌드 스크립트를 구성하여 환경에 따라 적절한 파일을 로드하세요:

import { defineConfig } from '@capacitor/cli';

export default defineConfig({
  ios: {
    buildConfig: {
      environment: process.env.BUILD_ENV || 'development',
      configurations: {
        development: {
          signing: {
            debug: true,
            automaticProvisioning: true
          }
        },
        production: {
          signing: {
            release: true,
            provisioningProfile: 'dist/profile.mobileprovision'
          }
        }
      }
    }
  }
});

이 설정을 플랫폼에 맞게 조정하여 요구 사항을 충족할 수 있습니다.

플랫폼별 빌드

Android 및 iOS를 위한 빌드의 커스텀화를 위해 다음 구조를 사용하세요.

const platformConfig = {
  android: {
    buildType: process.env.BUILD_TYPE || 'debug',
    keystoreConfig: {
      path: process.env.KEYSTORE_PATH,
      password: process.env.KEYSTORE_PASSWORD,
      alias: process.env.KEYSTORE_ALIAS
    }
  },
  ios: {
    scheme: process.env.APP_SCHEME || 'App',
    xcodePreferences: {
      automaticSigning: false,
      developmentTeam: process.env.DEVELOPMENT_TEAM
    }
  }
};

이러한 설정은 각 플랫폼에 맞게 빌드를 조정하여 smoother한 배포를 보장합니다.

기능안드로이드iOS
디버그 SYMBOLProGuard mapping 파일dSYM 파일
빌드 버전debug, release, stagingdebug, release
Code Signing__CAPGO_KEEP_0__ Signing__CAPGO_KEEP_0__
__CAPGO_KEEP_0__자산 관리res/drawable 최적화

__CAPGO_KEEP_0__

  • __CAPGO_KEEP_0__
  • __CAPGO_KEEP_0__
  • __CAPGO_KEEP_0__
  • 안전한 배포를 위한 끝에서 끝까지 암호화 활성화

Capgo와 같은 분석 및 안전한 업데이트 도구와 함께 pair하면 배포 프로세스에 대한 더 많은 제어를 제공하는 이러한 기술이 있습니다. [1].

빌드 스크립트 문제 및 해결

커스텀 빌드 구성과 함께 작업할 때, 오류를 신속하게 해결하는 것은 빌드 프로세스를 원활하게 유지하는 데 중요합니다.

일반적인 오류를 해결

빌드 스크립트 문제의 대부분은 환경 설정 또는 의존성 문제로 인해 발생합니다. 여기에서 몇 가지 일반적인 문제를 해결하는 방법을 설명합니다.

환경 변수가 누락된 경우

이러한 오류와 같은 오류가 발생하는 경우:

error: Cannot find environment configuration for BUILD_ENV

오류를 해결하려면 프로젝트의 루트 디렉토리에 .env.local 파일을 생성하세요. 예를 들어:

BUILD_ENV=development
CAPACITOR_PLATFORM=ios
BUILD_TYPE=debug

플랫폼별 빌드 실패

Android 서명 오류를 해결하려면 다음 명령어를 사용하세요:

npx cap build android --keystorePassword=$KEYSTORE_PASSWORD --keystoreAlias=$KEYSTORE_ALIAS

iOS 배포 프로파일 문제를 해결하려면 이 방법을 시도해 보세요:

npx cap build ios --configuration=release --type=development
오류 유형일반적인 원인해결 방법
서명 구성키스토어 세부 정보가 누락됨설정 KEYSTORE_PATH 인증서 및 자격 증명
빌드 환경정의되지 않은 변수플랫폼에 맞는 파일을 생성하세요 .env __CAPGO_KEEP_0__
의존성버전 불일치업데이트 package.json 및 동기화

__CAPGO_KEEP_0__의 변경 사항이 안정적임을 확인하기 위해 __CAPGO_KEEP_0__을 완전히 빌드 테스트합니다.

테스트 빌드 스크립트

__CAPGO_KEEP_0__의 오류가 해결된 후, __CAPGO_KEEP_0__을 다음 단계로 검증하세요:

  • 자동화된 검증: 빌드 프로세스가 예상대로 작동하는지 확인하기 위해 __CAPGO_KEEP_0__을 실행합니다.
npm run build
npx cap sync
npx cap copy
  • 환경 검증: 빌드 시작 전에 누락된 환경 변수를 확인합니다.
const requiredVars = ['BUILD_ENV', 'KEYSTORE_PATH'];
requiredVars.forEach(varName => {
  if (!process.env[varName]) {
    throw new Error(`Missing required env var: ${varName}`);
  }
});
  • 빌드 스크립트 디버깅: __CAPGO_KEEP_0__
{
  "scripts": {
    "build:debug": "NODE_ENV=development npx cap build --verbose",
    "build:release": "NODE_ENV=production npx cap build --verbose"
  }
}

테스트를 위한 추가 팁:

Capgo 기능 개발

Capgo Live Update Dashboard Interface

Capgo은 자동 배포를 통해 빌드 스크립트를 다음 단계로 끌어올리며 효율성을 향상시키고 프로세스를 단순화합니다.

빠른 앱 업데이트

Capgo의 업데이트 성능은 놀랍습니다:

  • 활성 사용자 중 95% 24시간 이내에 업데이트 받습니다.
  • 업데이트 전송 세계적 성공률 82% 전 세계 평균 __CAPGO_KEEP_0__ 응답 시간
  • An average API response time of 플랫폼은 부분 업데이트 사용으로, 변경 사항만 다운로드합니다. 이 접근 방식은 대역폭 사용량을 줄이고 업데이트 프로세스를 가속화합니다. 또한 빌드 프로세스는 완전히 자동화되어 시간과 노력을 절약합니다..

Quick App Updates

자동화 빌드

Capgo는 주요 CI/CD 플랫폼과 완벽하게 호환되며 다양한 통합 기능을 제공합니다:

CI/CD 플랫폼통합 기능혜택
GitHub 액션자동 빌드, 배포 트리거연속 배포
GitLab CIpipeline 자동화, 버전 관리흐름이 단순화된 워크플로우
Jenkins사용자 정의 워크플로우, 빌드 훅기업 규모에 적합한 확장성

자동 빌드 설정을 일반적으로 설정하는 데 필요한 비용은 $300 월, 전통적인 솔루션보다 훨씬 저렴한 비용입니다. 전통적인 솔루션은 연간 $6,000.

보안 표준

Capgo은 보안에 중점을 둔 강력한 프레임워크를 제공합니다.

  • 업데이트 패키지에 대한 종단 간 암호화.
  • 보안 키 관리.
  • 애플과 구글의 지침에 대한 준수.

버전 관리 기능

  • 즉시 롤백 옵션.
  • 배포 버전 추적.
  • 스테이징 릴리즈에 대한 업데이트 채널 관리.

이 보안 프레임워크는 수백 개의 기업 애플리케이션을 통해 엄격하게 테스트되었습니다. 추가 보안이 필요한 팀에게는 Capgo도 자체 호스팅 솔루션과 사용자 지정 구성이 가능한 옵션을 제공합니다.

Capgo의 채널 시스템은 업데이트 분배를 유연하게 만듭니다. 개발자는 특정 사용자 그룹에 대한 다양한 버전을 대상으로 하여 베타 테스트나 점진적인 롤아웃에 이상적입니다.

요약

빌드 단계 개요

사용자 지정 빌드 스크립트는 빌드 훅, 환경 변수, 플랫폼 특정 명령어를 사용하여 자동화되고 일관된 배포를 가능하게합니다. 이러한 프로세스는 Capgo를 통해 가능케 하는 배포 개선의坚固한 기초를 제공합니다.

Capgo 이점

Capgo는 750 개의 프로덕션 앱을 통해 성공적으로 23.5 만 개의 업데이트를 배포했습니다. 부분 업데이트 시스템은 대역폭 사용량과 배포 시간을 모두 줄입니다. [1]__CAPGO_KEEP_0__는 빠른 업데이트, 전 세계 성능 최적화, 종단 간 암호화 보안, 유연한 채널 기반 배포 시스템을 제공합니다. 이 설정은 목표 업데이트, 베타 테스트 및 앱 스토어 지침 준수와 함께 강력한 보안 프레임워크를 유지합니다.

__CAPGO_KEEP_0__는 750 개의 프로덕션 앱을 통해 성공적으로 23.5 만 개의 업데이트를 배포했습니다.

Capacitor 앱에 대한 실시간 업데이트

웹层 버그가 실시간으로 활성화되면 Capgo을 통해 앱 스토어 승인까지 며칠 기다리지 않고修정 패치를 배포하세요. 사용자는 배경에서 업데이트를 받으면서 네이티브 변경 사항은 일반적인 검토 경로에 남아 있습니다.

시작하기

블로그에서 최신 뉴스

Capgo은 전문적인 모바일 앱을 만들기 위해 필요한 최고의洞察력을 제공합니다.