엑스포 개발 클라이언트 가이드

Expo 개발 클라이언트 사용 가이드

Expo 개발 클라이언트를 사용하여 완전한 가이드를 따라서 만들고 빌드하고 사용하세요. EAS 빌드, 디버깅, CI/CD 통합, 일반적인 문제의 해결 방법을 배워보세요.

Martin Donadieu

Martin Donadieu

콘텐츠 마케터

Expo 개발 클라이언트 사용 가이드

Expo Go가 거짓말을 시작할 때 정확히 Expo 개발 클라이언트를 준비할 준비가 되었습니다.

앱이 샌드박스에서 작동합니다. 빠른 리프레시가 좋습니다. 그런 다음 네이티브 의존성을 추가하거나 푸시 알림을 설정하거나 OAuth 흐름을 테스트하거나 프로덕션 앱이 시작하는 방식과 비슷하게 반영하려고 시도합니다. suddenly 격차가 명확해집니다. 더 이상 앱을 디버깅하고 있지 않습니다. 더 이상 단순화된 환경을 디버깅하고 있습니다.

Expo 개발 클라이언트는 워크플로를 변경합니다. Expo를 좋아하는 빠른 자바스크립트 루프를 유지하지만 테스트를 커스텀 네이티브 바이너리에서 수행합니다. 그 바이너리는 앱이 나중에 배포될 것과 유사하게 행동합니다. 단독 개발자에게는 이意味하는 것은 개발 주기가 나중에 발생하는 놀라움을 줄입니다. 팀에게는 개발 프로세스가 공유 빌드, QA, 미리보기 환경, 업데이트 검증을 지원할 수 있습니다. Expo Go가 모든 것을 다루고 있다고 가정하지 않습니다.

목차

Expo Go를 넘어서야 하는 이유

Expo Go는 시작 단계에서 유용합니다. 설정의 마찰을 제거하고 React Native 프로젝트를 빠르게 실행하고 빠른 피드백 루프를 제공하기 때문에 많은 팀이 여기서 시작합니다.

앱이 프로토 타입이 아닌 경우 문제가 시작됩니다. Expo는 Expo Go를 "sandbox"로 문서화하고, 알림이나 OAuth 인증과 같은 일부 원시 기능을 정확하게 시뮬레이션 할 수 없다고 주장합니다. 개발 빌드 모델은 "Debug" 빌드로서 프로덕션급 앱을위한 "Expo 개발 빌드 소개"에 위치하고 있습니다. sandbox 원시 기능 expo-dev-client Debug Expo Expo Go와 Expo Development Client 도구 간의 주요 차이점과 제한 사항을 비교한 차트. 실제로 첫 번째 파괴는 일반적으로 다음 중 하나입니다..

원시 의존성:

패키지가 Expo Go에 포함되지 않은 원시 __CAPGO_KEEP_0__가 필요합니다.

targetLanguage

  • protectedTokens A package needs native code that Expo Go doesn’t include.
  • 인증: 앱이 실제 네이티브 설정을 사용하는 경우 OAuth 흐름은 다르게 동작합니다.
  • 通知 및 장치 기능: 산드박스에서는 실제 앱이 권한을 요청하거나 이벤트를 받는 방식과 다르게 동작합니다.
  • 팀 QA: 테스터가 앱의 실제 네이티브 설정을 나타내는 안정적인 바이너리를 필요로 합니다.

그것은 일반적인 단계가 아닙니다. 그것은 실제 모바일 프로젝트의 일반적인 단계입니다.

Expo Go는 인터페이스를 증명하는 데 좋지만 실제 프로덕션 동작을 검증하는 것은 약한 곳입니다.

개발 클라이언트가 올바른 다음 단계인 이유

Expo 개발 클라이언트는 Expo의 개발 도구를 빌드-in 한 커스텀 앱 바이너리를 제공합니다. 따라서 개발자 경험은 유지되지만 네이티브层는 이제 여러분의 것입니다. 설치된 클라이언트는 팀이 테스트하는 대상이 됩니다. 일반적인 컨테이너에 의존하는 대신.

그것은 더 큰 앱 배포 모델을 비교할 때 더 큰 의미를 갖습니다. __CAPGO_KEEP_0__가 작성한 글에 따르면

Capgo's write-up에 따르면 Expo 대안 이것은 팀이 샌드박스-첫 번째 워크플로우를 넘어서 시작하는 곳을 강조하기 때문에 유용한 맥락입니다.

마인드셋의 변화

Expo 개발 클라이언트를 일회성 설정 작업으로 다루는 가장 큰 실수는 그것이 아님입니다. 그것은 워크플로우 선택입니다.

컨트롤을 얻기 위해 하나의 트레이드 오프를 수락하고 있습니다.

워크플로우빠르게 유지하는 것은자연스러운 절차가 필요한 것은
Expo Go기본 자바스크립트 반복자연의 실제에 의존하는 것은
Expo 개발 클라이언트JavaScript는 사용자 정의 앱 내부에서 변경됩니다.자연어 종속성 변경 및 자연어 구성 변경

전문 앱 개발에서 좋은 거래입니다. 가장 쉬운 데모를 최적화하는 대신, 신뢰할 수 있는 배포를 최적화하기 시작합니다.

사전 요구 사항 및 프로젝트 구성

앱을 만들기 전에 프로젝트를 반복 가능한 빌드가 가능하도록 상태로 만듭니다. 대부분의 첫 번째 시도 실패는 기본 구성 생략으로부터 오는 것이며 Expo 자체가 아닙니다.

Expo의 문서 및 생태계 지침은 개발 빌드를 "완전한 기능 개발 환경"으로 설명합니다. 실제 프로덕션 환경을 대표하는 "완전한 기능 개발 환경"입니다. that’s representative of a real production environment once apps depend on custom native code or production-grade QA, as covered in Draftbit’s overview of 계정과 __CAPGO_KEEP_0__ layer에서 시작하세요..

Start with the account and CLI layer

Expo __CAPGO_KEEP_0__ 접근

  1. CLI
  2. EAS CLI 접근

터미널에서 Expo 계정에 로그인해야 합니다. 팀은 종종 이 점을 무시합니다. 지역 명령은 원격 빌드 또는 자격 증명 요청이 나타날 때까지 작동할 수 있습니다.

일반적으로 깨끗한 설정에는 다음이 포함됩니다.

  • Expo 계정 세션: 이것은 지역 작업을 원격 빌드 서비스 및 프로젝트 소유권과 연결합니다.
  • EAS CLI 설치: EAS는 프로젝트를 공유 가능한 iOS 또는 Android 바이너리로 변환하는 것입니다.
  • 지역에서 이미 작동하는 프로젝트: 기본 앱 시작이 작동하는지 확인하기 전에 빌드 복잡성을 도입하지 마십시오.

워크플로우가 가능하도록 만드는 패키지를 설치하십시오.

이 설정의 중심은 expo-dev-client. 없으면 Expo 개발 클라이언트 워크플로우의 커스텀 런처 및 디버그 지향 네이티브 셸이 없습니다.

앱 프로젝트에 설치한 후, Expo 구성이 일관성이 있는지 확인하세요. 정확한 명령어는 패키지 관리자에 따라 다르지만, 이 패키지의 아키텍처적 점은 변하지 않습니다: 이 패키지는 앱을 '공유된 샌드박스에서 실행'에서 '우리만의 개발 바이너리에서 실행'으로 변환하는 것입니다.

실용적인 규칙: 개발 클라이언트를 빌드할 때까지 네이티브 의존성 목록이 팀원들이 동일한 바이너리를 설치하고 사용할 수 있도록 충분히 안정적인지 확인하세요.

앱 구성 확인을 일찍 하세요

많은 혼란이 발생하는 이유는 app.json or app.config.js 를 단순한 메타데이터로만 다루는 것입니다. 아니다. 이 파일들은 식별성을 정의합니다.

프로젝트에 다음을 확인하세요:

  • 유니크한 앱 이름: 개발자들이 하나의 기기에서 여러 변형을 설치할 때 도움이 됩니다.
  • 유니크한 번들 또는 패키지 식별자: 네이티브 빌드와 이후의 서명에 중요합니다.
  • 환경을 초기화하는 의도: 팀이 별도의 스테이징 및 프로덕션 식별자를 사용한다면, 의도적으로 반영하십시오.

지역 환경이 엉망이라면, 첫 번째 빌드 전에 그것을 단단히 하십시오. Capgo의 지역 환경 설정 지침은 Capacitor 지역 환경 설정 은 Expo에 특정되지 않지만, reproducible 모바일 작업은 stable 지역 도구 및 explicit config과 시작하는 것이 좋은 nhắc입니다.

좋은 첫 번째 설정이 무엇인지

EAS를 시작하기 전에 이 체크리스트를 사용하십시오:

체크왜 중요합니까?
expo-dev-client 설치되어 있습니다사용자 정의 개발 클라이언트 동작을 활성화합니다
Expo 계정과 연결되어 있습니다EAS 사용을 원활하게 하기 위해 필수
앱 식별자는 고유합니다자연스러운 빌드 및 설치 충돌을 방지
프로젝트는 지역에서 시작런타임 문제와 빌드 문제를 혼동하지 않도록
팀은 다시 빌드할 때 알립니다자연스러운 변경 후 혼란을 줄입니다

완벽함이 목표가 아닙니다. 첫 번째 빌드가 재미없게 되면 그게 목표입니다. 그게 승리입니다.

EAS로 커스텀 클라이언트를 만들기

이것이 워크플로우가 실제로 시작되는 지점입니다. 커스텀 클라이언트에 대해 이야기하는 대신 하나를 생성합니다.

Expo는 커스텀 네이티브 code: 설치 expo-dev-client로 앱에 대한 개발 빌드 워크플로우를 추천합니다. 그 다음 EAS 빌드 또는 지역에서 네이티브 앱을 생성하고 실행하세요. npx expo start --dev-clientExpo도 JavaScript-only 변경 사항이 빠르다는 것을 주목합니다. native-__CAPGO_KEEP_0__ 변경 사항은 새로운 개발 빌드가 필요합니다. 워크플로 오버뷰 native-code 변경 사항이 새로운 개발 빌드가 필요합니다.

Expo 개발 클라이언트를 사용하는 EAS CLI 도구의 4단계 인포그래픽입니다.

기본 EAS 흐름

순서는 첫 번째 실행이 느껴질지라도 직관적입니다.

  1. EAS CLI에 설치하고 인증합니다.
  2. 빌드 구성 설정을 초기화하거나 확인합니다.
  3. 개발 빌드 프로필을 만듭니다.
  4. iOS 또는 Android용 빌드를 트리거합니다.
  5. 장치 또는 시뮬레이터에 결과 바이너리를 설치합니다.

EAS는 팀이 공유된 빌드 정의에서 바이너리를 생성할 수 있기 때문에 개발자 각자가 로컬 네이티브 빌드 상태를 임의로 만들지 않습니다.

__CAPGO_KEEP_0__

A development __CAPGO_KEEP_0__

__CAPGO_KEEP_1__

  • __CAPGO_KEEP_2__
  • __CAPGO_KEEP_3__
  • __CAPGO_KEEP_4__
  • __CAPGO_KEEP_5__

__CAPGO_KEEP_6__

__CAPGO_KEEP_7__ __CAPGO_KEEP_8____CAPGO_KEEP_9__

작업 흐름을 실제로 확인하고 싶다면 짧은 가이드를 통해 시작해 볼 수 있습니다.

설치 결과를 설치합니다.

빌드가 완료되면, 출력을 실제 앱 바이너리처럼 다루세요. 왜냐하면 그것이 실제로 바이너리이기 때문입니다.

  • 안드로이드에서: Capgo 애플리케이션을 설치할 때는 일반적으로 Capgo 앱을 통해 설치합니다. .apk 물리적 장치 또는 에뮬레이터에서.
  • iOS에서: You’ll work with a Capgo developer who will guide you through the process. .ipa or __CAPGO_KEEP_0__ simulator-compatible output depending on the target.
  • 팀원들에 대한 지원 __CAPGO_KEEP_0__의 빌드를 일반적인 EAS 메커니즘을 통해 공유하는 것이 아니라, 필요할 때만 모든 사람이 새로부터 시작하는 것을 요구하는 대신에.

개발 빌드의 관리가 가장 쉬운 방법은 팀이 하나의 규칙에 동의할 때입니다: 네이티브 변경에 대해 재빌드하고, 매번 code 변경에 대해 재빌드하지 마세요.

What not to expect

첫 번째 빌드가 네이티브 복잡성을 제거하지 않습니다. 그것은 복잡성을 올바른 위치에 둡니다.

새로운 네이티브 모듈을 추가하거나 권한을 변경하거나 SDK 수준의 네이티브 의존성을 업데이트하거나 플러그인으로 구동되는 네이티브 구성 변경 시, 새로운 개발 빌드를 필요로 합니다. 그게 정상입니다. 보상은 앱에 맞춘 클라이언트가 반영된 상태에서 일상적인 자바스크립트 작업이 여전히 빠르게 진행되는 것입니다.

Running and Debugging with Your New Client

첫 번째로 클라이언트를 설치하고 메트로에 연결할 때, 차이점은 뚜렷합니다. 그것은 엑스포와 같은 느낌이지만, 더 이상 장난감 상자에 있는 느낌이 아닙니다.

서버를 시작하세요. npx expo start --dev-client그리고 시뮬레이터, 에뮬레이터, 또는 물리 장치에서 개발 클라이언트를 열고 런처 UI를 통해 연결하세요. 런처는 __CAPGO_KEEP_0__에 의해 소개된 중요한 변경 중 하나입니다. 네트워크 요청 검사와 같은 디버깅 지원도 문서화된대로 있습니다. expo-dev-clientExpo __CAPGO_KEEP_0__ 페이지의 개발 클라이언트 업무 환경에서 노트북 컴퓨터에 SDK를 작성하는 남성 소프트웨어 개발자..

A male software developer writing code on a laptop computer in a professional office workspace environment.

정상적인 세션은 다음과 같습니다.

__CAPGO_KEEP_0__

__CAPGO_KEEP_0__의 최신 branch를 pull합니다. 개발용 클라이언트가 이미 장치에 설치되어 있습니다. Metro를 시작하고 앱을 실행한 후 현재 서버에 연결합니다. 그 후에는 이전처럼 주로 작업합니다. JavaScript를 변경하고 빠르게 업데이트를 확인합니다.

실제 네이티브 환경에 의존하는 동작을 검사해야 할 때 큰 차이가 나타납니다. 커스텀 클라이언트를 통해 테스트를 수행할 수 있습니다. 그 과정에서 정상적인 루프를 벗어나지 않습니다.

debugging tool

추가 도구는 꾸밈이 아닙니다. 일상적인 문제를 해결합니다.

  • Launcher UI: 환경 또는 팀원 호스트 서버 간에-switching할 때 유용합니다.
  • Developer menu: 활발한 반복 중에 예상되는 동작을 제공합니다.
  • Network inspection: UI가 깨진 것처럼 보이지만 실제 문제는 요청 실패, 인증 상태 또는 환경 연결 오류일 때 도움이 됩니다.

API에서 개발 클라이언트에서 code 호출이 실패할 때, 요청 경로와 환경 가정 전에 UI를 조작하지 마십시오. 버그는 일반적으로 컴포넌트를 보는 곳에 있습니다.

실제 장점입니다. 단일 설치된 바이너리는 여러 환경을 검증할 수 있습니다. 매번 컴파일하지 않아도 됩니다. 특히 리뷰어가 PR 프리뷰를 테스트하고 QA 엔지니어가 스테이징을 테스트하고 개발자가 로컬 branch를 테스트할 때 유용합니다.

만약 팀이 웹 기반 모바일 쉘도 배포한다면, Capgo의 Capacitor 앱의 최종 가이드를 읽어보는 것이 더 넓은 디버깅 관점을 얻을 수 있습니다. 도구는 다르지만, discipline은 유사합니다: transport, environment, runtime behavior을 검사하기 전에 추측하지 마십시오. What works well and what doesn’t

What works well:

상황

개발 클라이언트가 왜 도움이 되는지인증 리다이렉트 테스트
네이티브 앱의 동작은 실제 배포와 더 가깝습니다__CAPGO_KEEP_0__ 통합을 확인하는 방법
Verifying API integration환경을-switching합니다.
__CAPGO_KEEP_0____CAPGO_KEEP_0__
__CAPGO_KEEP_0____CAPGO_KEEP_0__

__CAPGO_KEEP_0__

  • __CAPGO_KEEP_0__ __CAPGO_KEEP_0__
  • __CAPGO_KEEP_0__ __CAPGO_KEEP_0__
  • __CAPGO_KEEP_0__ __CAPGO_KEEP_0__

__CAPGO_KEEP_0__

__CAPGO_KEEP_0__

__CAPGO_KEEP_0__.

__CAPGO_KEEP_0__.

CI/CD는 어디에 들어맞는가?

개발 클라이언트는 CI와 잘 작동한다. CI는 자동화에 안정적인 목표를 제공한다.

일반적인 패턴은 다음과 같다:

  • Pull request 변경 사항: CI는 네이티브 의존성이 변경되었을 때 개발 빌드를 생성하거나 유효성을 검사한다.
  • branch 기반 환경: 다른 branch는 다른 업데이트 채널 또는 서버 목표에 매핑된다.
  • 공유 테스터 워크플로: QA는 하나 이상의 알려진 개발 클라이언트를 설치하고 런처 및 업데이트 구성으로 컨텍스트를-switch한다.

그 구조는 모호성을 줄인다. 개발자들은 다시 빌드할 때 알 수 있다. 테스터들은 네이티브 변경 사항인지 아니면 기존 바이너리 위에 전달된 업데이트인지 알 수 있다.

__CAPGO_KEEP_0__

__CAPGO_KEEP_1__

__CAPGO_KEEP_2__

__CAPGO_KEEP_3____CAPGO_KEEP_4__
__CAPGO_KEEP_5____CAPGO_KEEP_6__
__CAPGO_KEEP_7____CAPGO_KEEP_8__
__CAPGO_KEEP_9____CAPGO_KEEP_10__
__CAPGO_KEEP_11__채널 또는 서버를 설치된 클라이언트에서-switch합니다.

엑포 업데이트 스택 외부의 팀에게는 Capgo의 CI/CD 통합 가이드는 OTA 업데이트에 대한 Capgo 측의 유사한 운영 모델을 보여줍니다. 팀이 제어된 롤아웃 채널과 업데이트 전달 자동화에 관심이 있으면 이 옵션 중 하나입니다. 신뢰할 수 있는 패턴은 간단합니다. 원시 Capacitor 변경 사항이 있을 때 빌드하고, 설치된 바이너리가 변경 사항이 필요한 모든 것을 포함하고 있는 경우에만 배포합니다.

The reliable pattern is simple. Build when native code changes. Publish when the installed binary already contains everything the change needs.

기술 설정은 중요하지만 운영 규칙이 더 중요합니다:

채널 이름을 명확하게 지정하십시오.

  • 예고 이름도 명확해야 합니다. staging, production재빌드 트리거 문서화하십시오.
  • 새 플러그인, 권한 변경, 또는 원시 __CAPGO_KEEP_0__ 업데이트에 대한 판단은 절대 없어야 합니다. New plugin, permission change, or native SDK update should never be a judgment call.
  • For teams outside the Expo update stack, __CAPGO_KEEP_0__’s CI/CD integration guide for OTA updates shows a comparable operational model on the __CAPGO_KEEP_0__ side. It’s one option for teams that want controlled rollout channels and automation around update delivery. The reliable pattern is simple. Build when native __CAPGO_KEEP_0__ changes. Publish when the installed binary already contains everything the change needs. Team habits that prevent chaos The technical setup matters, but the operating rules matter more: Name channels clearly, and preview names should be obvious. Document rebuild triggers: New plugin, permission change, or native __CAPGO_KEEP_0__ update should never be a judgment call. Keep one installable client per environment strategy: 다양한 버전이 너무 많아 지원 오류를 일으킨다.
  • 업데이트 유효성 검증을 명확하게 하라. 업데이트가 적용되고 기대하는 팀이 사용하는 동일한 바이너리 내부에서 실행되는지 확인해야 한다.

이 시점에서 Expo 개발 클라이언트는 개발자 편의성에서 출시 인프라로 변한다.

일반적인 문제 해결 및 수정

Expo 개발 클라이언트 문제의 대부분은 일반적인 문제들이다. 하지만 문제가 발생하는 경계를 알면 그들은 마치 신비로운 것처럼 느껴진다. 실패는 종종 경계를 넘어 발생한다: 랩톱에서 장치, 메트로에서 앱, 네이티브 구성에서 자바스크립트 런타임으로.

일부 가장 일반적이고 논의되지 않은 문제 중 하나는 네트워크 분할, VPN, 기업 및 분산 팀 환경의 방화벽 규칙으로 인해 물리 장치에 Metro에 연결할 수 없는 경우이다. 이 점은 이 Expo Dev Client 문제 해결 비디오.

메트로와 연결할 수 없는 클라이언트

이 문제가 가장 많은 시간을 소비하는 이유는 앱이 종종 문제가 없지만 앱이 깨진 것처럼 보이기 때문이다.

먼저 확인해야 할 사항:

  • 같은 네트워크 가정: 장치와 노트북이 격리된 구간에 앉아 있어도 연결된 것처럼 보일 수 있습니다.
  • VPN 간섭: 기업이나 개인 VPN은 Metro가 용납하지 않는 방식으로 트래픽을 재지정할 수 있습니다.
  • 화면 규칙: 보안 도구는 개발 트래픽을 차단할 수 있습니다. 그러나 이것이 명확하지 않습니다.
  • 기업 장치 정책: 관리 장치가 경우로 개발 도구가 의존하는 트래픽 패턴을 제한할 수 있습니다.

프로젝트가 시뮬레이터에서 작동하지만 물리적 장치에서 작동하지 않는다면, 네트워크를 의심하기 전에 React code를 의심하지 마십시오.

앱 내에서 연결 실패를 디버그하지 마십시오. Metro가 실행 중인 머신에 실제로 연결할 수 있는지 확인하십시오.

재빌드가 무작위로 보인다면

또 다른 일반적인 좌절감은 일부 변경 사항이 즉시 나타나고 다른 변경 사항이 고집스럽게 나타나지 않는다는 느낌입니다.

그것은 일반적으로 팀이 재빌드 경계를 내부화하지 않았기 때문입니다.

증상가능한 원인수정
JavaScript 업데이트는 일반적으로 적용됩니다.예상 동작기존 클라이언트에서 계속 작업
새 네이티브 종속성이 나타나지 않습니다.네이티브 레이어가 변경되었습니다.새 개발 빌드를 생성하세요.
권한 관련 동작이 일관되지 않습니다.네이티브 설정이 변경되었습니다.재빌드 및 재설치
팀원 중 한 명이 다른 동작을 보는 중입니다.다른 클라이언트 바이너리가 설치되어 있습니다.동일한 빌드를 맞춰주세요.

이것은 워크플로우의 결함이 아닙니다. 워크플로우는 정확히 해야 할 일을 하고 있습니다.

빌드 실패와 팀의 이탈

빌드가 실패할 때, 일반적으로 root cause는 다음과 같습니다.

  • 의존성 불일치: 프로젝트의 나머지 부분과 일치하지 않는 패키지 버전입니다.
  • 네이티브 플러그인 가정: 프로젝트가 설정하지 않은 config 플러그인이 있습니다.
  • 인증 정보 혼란: 팀 내에서 일관되지 않은 인증 또는 계정 접근입니다.
  • __CAPGO_KEEP_0__의 지역 설정이 오래된 경우: 누군가는 최신 빌드가 필요하지 않다고 가정할 때 실제로 필요할 때가 있다.

Capgo의 기사에 대해 개발자들을 위한 공통 라이브 업데이트 문제와 해결책에 대해 이 문제의 릴리스 측면에서 유용한 보충 자료입니다. 다른 스택, 동일한 교훈: 많은 '앱 버그'은 실제로 배포, 환경, 또는 버전 일치 버그입니다.

Expo 개발 클라이언트는 환경 신뢰성을 엔지니어링으로 처리할 때 가장 잘 작동합니다. 그것을 후thought로 생각하지 마십시오. 그 후에, 설정은 예측 가능해지고, 예측 가능은 모바일 도구에서 원하는 것입니다.


팀이 또한 Capacitor 앱을 배포하고, 스토어 리뷰를 기다리지 않고 JavaScript, 자산 및 구성 업데이트 Delivery를 제어할 필요가 있다면 Capgo 라이브 업데이트, 롤아웃 제어 및 CI/CD 통합을 제공하는 Capacitor 및 Electron 워크플로우를 평가하는 옵션입니다.

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

웹层 버그가 활성화된 상태에서 Capgo를 통해 픽스를 배포하는 대신 앱 스토어 승인까지 며칠 기다리지 말라. 사용자는 배경에서 업데이트를 받으면서 네이티브 변경 사항은 일반적인 검토 경로에 남아있다.

시작하기

최신 블로그 게시물

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