본문으로 건너뛰기
모바일 가이드

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

엑스포 개발 클라이언트를 사용하여 프로젝트를 생성, 빌드, 사용하는 방법에 대한 완전한 가이드입니다. EAS 빌드, 디버깅, CI/CD 통합, 일반적인 문제 해결에 대한 내용을 학습하세요.

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

Expo 개발 클라이언트는 일반적으로 Expo Go가 거짓말을 시작하는 정확한 순간에 준비되도록합니다.

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

Expo 개발 클라이언트는 워크플로를 변경합니다. Expo에서 좋아하는 빠른 자바스크립트 루프를 유지하지만 테스트를 사용자 정의 네이티브 바이너리로 옮깁니다. 그 바이너리는 실제로 배포할 앱과 매우 유사합니다. 단독 개발자에게는 이로 인해 개발 주기 말기에 놀랄 일이 적어집니다. 팀에게는 개발 프로세스가 공유 빌드, QA, 미리보기 환경, 업데이트 검증을 지원할 수 있습니다. Expo Go가 모든 것을 다루고 있다고 가정하지 않습니다.

목차

엑스포 고를 넘어서야 하는 이유

엑스포 고는 시작 단계에서 유용합니다. 설정의 마찰을 제거하고, 빠른 feedback 루프를 제공하여 React Native 프로젝트를 빠르게 실행할 수 있습니다. 그게 바로 많은 팀이 시작하는 이유입니다.

문제는 앱이 프로토 타입이 아니게 되면 시작됩니다. 엑스포는 엑스포 고를 샌드박스 라고 문서화하고, 알림이나 OAuth 인증과 같은 원시 기능을 정확하게 시뮬레이션할 수 없다고 주장합니다. 개발 빌드 모델은 expo-dev-client 와 함께 구축되었으며, 원시 기능을 정확하게 시뮬레이션할 수 없다고 주장합니다. 개발 빌드 모델은 “Debug” 빌드에 대한 프로덕션급 앱 그것은 엑스포 개발 빌드 소개.

엑스포 고와 엑스포 개발 클라이언트 도구 간의 주요 차이점과 제한 사항을 비교한 차트입니다.

무엇이 먼저 깨지나요

실제로, 첫 번째 깨지는 것은 일반적으로 다음과 같습니다:

  • 네이티브 의존성: 엑스포 고가 포함하지 않는 네이티브 code가 필요한 패키지입니다.
  • 인증: 앱이 실제 네이티브 구성으로 사용하는 경우 OAuth 흐름이 다르게 동작합니다.
  • 通知 및 장치 기능: 샌드박스에서는 실제 앱이 권한을 요청하거나 이벤트를 받는 방식과 다르게 동작합니다.
  • 팀 QA: 테스터는 앱의 실제 네이티브 설정을 나타내는 안정적인 바이너리가 필요합니다.

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

엑스포 Go는 인터페이스를 증명하는 데 좋지만 프로덕션 동작을 검증하는 약한 위치입니다.

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

엑스포 개발 클라이언트는 개발자 경험을 유지하면서 네이티브层를 여러분의 것으로 만듭니다. 설치된 클라이언트는 팀이 테스트하는 대상이 됩니다. 엑스포 Go에서 실행되는지 여부를 확인하는 대신, 여러분이 개발하는 앱에서 작동하는지 여부를 확인합니다.

이번 변화는 더 큰 앱 배포 모델을 비교할 때 더 중요합니다. __CAPGO_KEEP_0__가 작성한

애플리케이션 배포 모델의 비교를 하신다면, Capgo의 글을 읽어보시기를 추천합니다. 을 읽는 것은 팀이 샌드박스-첫 번째 워크플로우를 넘어서는 곳을 찾기 시작하는 데 도움이 됩니다. 인식의 변화

엑스포 개발 클라이언트를 일회성 설정 작업으로만 보는 가장 큰 실수는 팀이 개발 클라이언트를 워크플로우 선택으로 인식하지 못하는 것입니다.

__CAPGO_KEEP_0__는 실제 모바일 프로젝트의 일반적인 단계입니다.

당신은 제어를 얻기 위해 한 번의 거래를 수락하고 있습니다:

Workflow Workflow Expo Go
기본 자바스크립트 반복 자연 환경에 의존하는 모든 것 Expo 개발 클라이언트
사용자 지정 앱 내부의 자바스크립트 변경 자연 의존성 및 자연 설정 변경 전문 앱 개발에서 좋은 거래입니다. 가장 쉬운 데모를 최적화하는 대신 신뢰할 수 있는 배포를 최적화합니다.

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

기본 요구 사항 및 프로젝트 설정

프로젝트를 빌드하기 전에 반복 가능한 빌드를 견딜 수 있는 상태로 프로젝트를 유지하세요. 대부분의 첫 번째 시도 실패는 기본 설정을 생략하는 것에서 비롯되며 Expo 자체가 아니라서입니다.

Expo의 문서 및 생태계 지침은 개발 빌드를 "실제 프로덕션 환경과 유사한 완전한 개발 환경"으로 설명합니다. "완전한 개발 환경" 실제 프로덕션 환경을 대표하는 것은 앱이 커스텀 네이티브 code 또는 프로덕션급 QA에 의존하는 경우다. 개발을 시작하기 전에 계정 및 __CAPGO_KEEP_0__ layer를 설정하세요..

Start with the account and CLI layer

Expo __CAPGO_KEEP_0__ 접근 권한

  1. EAS CLI 접근 권한
  2. EAS CLI 접근

정확한 설정은 다음과 같습니다:

Expo 계정 세션:

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

이 워크플로를 가능하게 하는 패키지를 설치하십시오.

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

앱 프로젝트에 설치한 후 Expo 구성이 일관성이 있는지 확인하십시오. 패키지 매니저에 따라 명령어는 달라질 수 있지만, 아키텍처적 관점은 변하지 않습니다. 이 패키지는 앱을 "공유된 샌드박스에서 실행"에서 "우리 개발 바이너리 내에서 실행"으로 변환하는 것입니다.

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

앱 구성이 올바른지 확인하십시오.

개발 클라이언트를 사용하는 데 많은 혼란이 발생하는 이유는 개발 클라이언트를 사용하는 방식에 있다. app.json 또는 app.config.js 이 파일은 메타데이터만으로 구성되어 있습니다. 실제로 그렇지 않습니다. 이 파일은 식별성을 정의하는 데 사용됩니다.

metadata만으로 간주되는 경우가 많지만, 그것은 아니다. 이 파일들은 정체성을 정의한다.

  • 프로젝트가 다음을 보유하고 있어야 한다. 유니크한 앱 이름:
  • 개발자들이 하나의 기기에서 여러 가지 변형을 설치할 때 유용하다. 유니크한 번들 또는 패키지 식별자:
  • 네이티브 빌드와 이후의 서명에 중요하다. rõ ràng한 환경 의도:

지역 환경이 엉망이라면 첫 번째 빌드 전에 정리하는 것이 좋습니다. Capgo의 가이드를 설치하는 과정에서 Capacitor 로컬 환경을 설정합니다. Expo는 특정되지 않지만, reproducible mobile work는 stable local tooling과 explicit config으로 시작하는 좋은 nhắc말이다.

좋은 첫 번째 설정은 무엇인가?

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

체크 왜 중요하죠?
expo-dev-client 설치되어야 한다. 사용자 정의 개발 클라이언트 동작을 활성화한다.
Expo 계정이 연결되어야 한다. EAS의 smooth한 사용을 위해 필수이다.
앱 식별자는 고유해야 한다. 자연스러운 native build 및 install conflict를 방지한다.
프로젝트는 로컬에서 시작된다. 런타임 문제와 빌드 문제를 섞지 않습니다.
팀은 언제 다시 빌드를 해야 하는지 알게 됩니다. 자연어 변경 후 혼란을 줄이는 데 도움이 됩니다.

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

EAS로 자신의 클라이언트를 빌드하는 방법

이것이 실제 워크플로가 시작되는 지점입니다. 클라이언트를 생성하는 대신에 클라이언트를 생성합니다.

Expo는 커스텀 네이티브 code를 설치하여, code를 생성한 후 EAS 빌드 또는 로컬에서 네이티브 앱을 생성한 후 code를 실행하는 개발 빌드 워크플로를 추천합니다. expo-dev-client, EAS 빌드 또는 로컬에서 네이티브 앱을 생성한 후 실행하세요. npx expo start --dev-clientEAS __CAPGO_KEEP_0__ 도구를 사용하여 Expo 개발 클라이언트를 빌드하는 과정의 4단계를 설명하는 인포그래픽입니다. Expo는 개발 빌드 워크플로를 사용하여 커스텀 네이티브 __CAPGO_KEEP_0__를 설치하여 __CAPGO_KEEP_0__를 생성한 후 EAS 빌드 또는 로컬에서 네이티브 앱을 생성한 후 __CAPGO_KEEP_0__를 실행하는 것을 추천합니다. Expo는 워크플로 개요에서 자바스크립트만 변경하면 빠르지만, 네이티브 code 변경은 새로운 개발 빌드를 필요로 합니다.

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

기본 EAS 흐름

순서는 간단하지만 첫 번째 실행은 낯선 느낌이 들 수 있습니다:

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

EAS는 일관성을 제공합니다. 개발자 각자가 임의로 로컬 네이티브 빌드 상태를 만들지 않고, 팀은 공유 빌드 정의에서 바이너리를 생성할 수 있습니다.

빌드 프로필이 실제로 무엇을 하는지

A development 프로필은 단순히 레이블이 아닙니다. 빌드 시스템에 이 바이너리가 활성 개발을위한 것임을 알려줍니다. 스토어 배포를위한 것이 아닙니다.

그것은 일반적으로 설치된 앱이:

  • 개발 클라이언트 기능 포함
  • 개발자 및 테스터를 위한 쉽게 실행
  • 일상 작업 중 메트로 서버와 연결
  • 자연스럽게 재사용할 수 있는 상태 유지

CI가 실제로 유용해지는 곳입니다. 빌드 프로파일이 존재하고 예측 가능할 때, 자동화가 가능합니다.

리액트 네이티브가 더 넓은 현대화 작업에 어떻게 포함되는지 팀이 생각하고 있다면, Wonderment Apps는 유용한 관점을 제공합니다. 리액트 네이티브 AI 현대화. 개발 클라이언트는 팀이 모바일 표면에 더 빈번한 제품 변경을 배포할 때, 운영 기반 레이어가 되는 경우가 많습니다.

작업 흐름을 실제로 확인하고 싶다면, 짧은_walkthrough가 도움이 될 수 있습니다:

결과 설치

빌드가 완료되면, 출력을 실제 앱 바이너리처럼 다루세요. 그게 실제로 무엇인지 기억하세요.

  • 안드로이드: 일반적으로 .apk 물리 장치 또는 에뮬레이터에서
  • iOS에서: 팀원과 함께 일할 때: .ipa 팀원에게는
  • 개발 빌드는 팀이 한 가지 규칙에 동의할 때 가장 관리하기 쉽습니다: 첫 번째 빌드가 원시 복잡성을 제거하지는 않습니다.

새로운 원시 모듈을 추가하거나 권한을 변경하거나 code-레벨 원시 의존성을 업데이트하거나 플러그인으로 구동되는 원시 구성 변경 시 새로고침된 개발 빌드가 필요합니다.

새로고침된 개발 빌드는 정상입니다.

이것은 그만큼의 보상을 제공합니다:

If you add a new native module, change permissions, update SDK-level native dependencies, or modify plugin-driven native config, you’ll need a fresh development build. That’s normal. The reward is that your day-to-day JavaScript work still moves quickly inside a client that reflects your app.

클라이언트 실행 및 디버깅

첫 번째로 클라이언트를 설치하고 메트로에 연결하면 차이가 뚜렷합니다. Expo와 같은 느낌이지만, 이제는 장난감 상자에 넣은 것만큼의 느낌이 아닙니다.

서버를 시작하려면 npx expo start --dev-client. expo-dev-client그런 다음 시뮬레이터, 에뮬레이터 또는 물리 장치에서 개발 클라이언트를 열고 런처 UI를 통해 연결합니다. 런처는 Metro에 연결한 첫 번째 클라이언트에서 중요한 변경 사항 중 하나입니다. Expo SDK page for dev client.

소프트웨어 개발자 한 남성이 직장 사무실 환경에서 노트북 컴퓨터에 code를 작성하는 중입니다.

페이지에서 개발 클라이언트에 대한

개발자

개발자

일반적인 개발 세션

일반적인 세션은 다음과 같습니다.

일상 문제를 해결하는 도구가 아니다.

  • 런처 UI: 환경 또는 팀원 호스트 서버 간에-switching 시 유용합니다.
  • 개발자 메뉴: 활성 반복 중에 예상되는 동작을 제공합니다.
  • 네트워크 검사: UI가 깨져 보이지만 실제 문제는 요청 실패, 인증 상태 또는 환경 연결 오류일 때 도움이 됩니다.

When API calls fail in a development client, inspect the request path and environment assumptions before touching UI code. The bug is often outside the component you’re staring at.

실제 이점은 단일 설치된 바이너리에서 여러 환경을 검증할 수 있으며 재컴파일이 필요하지 않다는 것입니다. 특히 리뷰어가 PR 프리뷰를 테스트하고 QA 엔지니어가 스테이징을 테스트하고 개발자가 로컬 branch를 테스트할 때 유용합니다.

팀이 웹 기반 모바일 셸도 배포한다면 Capgo의 Capacitor 앱의 ultimate debugging guide __CAPGO_KEEP_0__ 앱의 ultimate debugging guide

어떤 것이 잘 작동하고 어떤 것이 잘 작동하지 않는지

어떤 것이 잘 작동하는가:

상황 개발 클라이언트가 도와주는 이유
인증 리다이렉트 테스트 네이티브 앱 동작이 실제 운영 환경에 가깝다
API 통합을 확인하는 방법 네트워크 검사로 피드백 루프가 단축된다
환경 Switching 런처 UI는 불필요한 재빌드를 피한다
팀 QA에서 하나의 바이너리 모든 팀원은 동일한 네이티브 설정을 테스트한다

어떤 것이 잘 작동하지 않는가:

  • 클라이언트를 폐기물로 간주하는 경우: 팀이 유지 관리하지 않으면 혼란이 빠르게 퍼지게 됩니다.
  • 자연 재건 경계를 무시하는 경우: 자연 의존성이 변경되면陈舊한 클라이언트가 시간을浪費합니다.
  • 모든 연결 실패가 앱 버그라고 가정하는 경우: 많은 경우는只是 지역 환경 문제입니다.

CI/CD와 Live Updates와의 통합:

엑스포 개발 클라이언트가 개인 설정에서 팀 운영으로 바뀌면 훨씬 더 가치가 있습니다.

숙련된 워크플로우는 일반적으로 관심사에 따라 분리됩니다. 자연 의존성이 변경되면 새로운 개발 빌드가 생성됩니다. 자바스크립트 및 자산 변경은 더 빠른 업데이트 경로를 통해 이동됩니다. 검토자 및 QA는 팀이 채널, 빌드 프로필 및 업데이트 목적지에 동의했기 때문에 올바른 것을 테스트하고 있는지 여부를 묻지 않습니다.

CI/CD pipeline 자동화 워크플로우 협업을 위한 전문 팀이 대형 사무실 디스플레이 화면에서 협력하고 있습니다.

CI/CD의 위치:

개발 클라이언트는 CI와 잘 작동합니다. 자동화에 안정적인 목표를 제공하기 때문입니다.

일반적인 패턴은 다음과 같습니다.

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

그 구조는 모호성을 줄입니다. 개발자들은 다시 빌드할 때 필요한지 알 수 있습니다. 테스터들은 네이티브 변경을 유효성 검사하는지 아니면 기존 바이너리 위에 전달된 업데이트와 함께 유효성 검사를 하는지 알 수 있습니다.

Live 업데이트의 역할

개발 클라이언트는 팀이 시간을 가장 많이 절약할 수 있는 작업을 허용합니다. 개발 클라이언트는 출시 전에 업데이트 동작을 유효성 검사할 수 있는 강력한 위치입니다. 개발 서버와 게시된 업데이트 사이에서 개발 클라이언트는 프로덕션-like 앱 셸에서 switch할 수 있습니다. 이는 이전에 Expo 문서에서 설명한 바와 같이.

그것은 유용한 분할을 열어줍니다.

변경 유형 배포 경로
새로운 네이티브 모듈 또는 권한 변경 새로운 개발 빌드
JavaScript 동작 수정 업데이트 배포
복사 또는 자산 조정 업데이트 배포
환경 유효성 검사 설치된 클라이언트에서 채널 또는 서버 Switch

팀이 Expo 업데이트 스택 외부에 있다면 Capgo의 CI/CD 통합 가이드 (OTA 업데이트) Capacitor의 CI/CD 통합 가이드

정확하고 신뢰할 수 있는 패턴은 간단합니다. 원시 code 변경 시 빌드하고, 변경이 포함된 바이너리가 이미 설치되어 있는 경우에는 배포합니다.

팀의 습관이 혼란을 막습니다.

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

  • 채널 이름을 명확하게 지정하세요: staging, production그리고 프리뷰 이름은 명확해야 합니다.
  • 재빌드 트리거를 문서화하세요: 새 플러그인, 권한 변경 또는 원시 SDK 업데이트는 절대 판단의 여지가 없어야 합니다.
  • 환경당 하나의 설치 가능한 클라이언트를 유지하세요: 많은 변형은 지원 오류를 일으킵니다.
  • 업데이트 유효성 검증을 명확하게 하세요: 누군가가 업데이트가 적용되고 기대하는 바이너리 내부에서 실행되는지 확인해야 합니다.

이 시점에서 엑스포 개발 클라이언트는 개발자 편의성에서 릴리스 인프라로 변합니다.

일반적인 문제와 해결 방법을 해결하는 방법

엑스포 개발 클라이언트 문제는 일반적인 문제일 때 문제를 해결하는 방법을 알면 됩니다. 그들은 비밀스럽게 느껴지기 때문에 실패가 종종 경계를 넘어 laptop에서 장치, Metro에서 앱, 네이티브 구성에서 자바스크립트 런타임으로 발생합니다.

가장 일반적인 문제 중 하나는 Metro에 물리 장치로 연결할 수 없게 되는 문제입니다. 이는 기업 및 분산 팀 환경에서 네트워크 분할, VPN, 또는 방화벽 규칙으로 인해 발생합니다. 이 점은 이 비디오에서 다루어집니다. 엑스포 개발 클라이언트 문제 해결 비디오.

클라이언트가 Metro와 연결되지 않는 경우

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

먼저 확인하세요:

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

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

앱 내에서 연결 실패를 디버깅하기 전에 장치가 실제로 Metro가 실행 중인 머신에 접근할 수 있는지 확인하십시오.

재빌드가 무작위로 느껴질 때

변경 사항이 즉시 나타날 때와 다른 변경 사항이 고집스럽게 나타나지 않을 때는 일반적인 좌절감입니다.

그것은 보통 팀이 재빌드 경계를 내부화하지 않았기 때문입니다.

증상 가능한 원인 해결
JavaScript 업데이트 가 정상적으로 적용됩니다. 기대되는 동작 기존 클라이언트에서 계속 작업
새로운 네이티브 의존성 나타나지 않음 네이티브 레이어 변경 새로운 개발 빌드 생성
권한 관련 동작이 일관되지 않음 네이티브 설정 변경 재빌드 및 재설치
한 팀원은 다른 동작을 보임 다른 클라이언트 바이너리 설치 같은 빌드에 맞춰

이것은 워크플로우의 결함이 아님. 이것은 워크플로우가 정확히 해야 할 일을 함.

빌드 실패 및 팀의 분열

빌드가 실패할 때, 일반적으로 원인은 다음과 같습니다:

  • 의존성 불일치: 프로젝트의 나머지 부분과 일치하지 않는 패키지 버전입니다.
  • 네이티브 플러그인 가정: 프로젝트가 갖고 있지 않은 설정 플러그인을 기대하는 경우입니다.
  • 인증 정보 혼란: 팀 내에서 일관되지 않은 인증 또는 계정 접근입니다.
  • 지속적인 지역적 기대: 새로운 빌드가 필요하다는 것을 가정하는 경우가 있습니다.

Capgo의 개발자들을 위한 일반적인 Capgo 문제와 해결책에 대한 기사 live update's article on common live update issues and solutions for developers 이 문제의 출시 측면에 대한 유용한 보충 자료입니다. 다른 스택, 동일한 교훈: 많은 '앱 버그'는 실제로 배포, 환경 또는 버전 일치 버그입니다.

엑스포 개발 클라이언트는 환경 신뢰성을 엔지니어링으로 다루는 팀이 가장 잘 작동합니다. 그것을 후thought로 다루지 마세요. 그 후에 설정이 예측 가능해지고, 예측 가능성이 모바일 도구에서 원하는 것입니다.


만약 팀이 Capacitor 앱을 배포하고 JavaScript, 자산 및 구성 업데이트 Delivery를 위해 제어된 방법으로 기다리지 않고 배포해야 한다면 Capgo Capacitor

라이브 업데이트를 통해 Capacitor 앱

웹层 버그가 라이브일 때, Capgo을 통해 픽스를 배포하는 대신 앱 스토어 승인까지 며칠 기다리지 말고. 사용자는 배경에서 업데이트를 받으면서 네이티브 변경은 일반적인 검토 경로를 유지한다.

마틴의 인간 지원

시작하기

최신 뉴스

Capgo은 여러분에게 전문적인 모바일 앱을 만들기 위해 필요한 최고의 통찰력을 제공합니다.