목차
재료 준비
打包android
打包ios
上传蒲公英
上传AppStore
웹 프론트엔드 HTML 튜토리얼 반응 네이티브는 자동 패키징을 어떻게 구현합니까? React-native 자동 패키징 방법

반응 네이티브는 자동 패키징을 어떻게 구현합니까? React-native 자동 패키징 방법

Aug 07, 2018 pm 02:36 PM
react-native

이 글의 내용은 리액트 네이티브에서 자동 패키징을 구현하는 방법에 관한 것입니다. 반응 네이티브 자동 패키징 방법에는 특정 참고 가치가 있습니다. 도움이 필요한 친구가 참고할 수 있기를 바랍니다.

코드를 작성한 후 xcode와 android studio를 열 필요 없이 쉘 스크립트를 실행하여 android와 ios를 모두 패키징하면 된다고 상상해 보셨나요? 그리고 자동으로 Dandelion과 App Store에 업로드되며, 테스트를 위해 제품이 자동으로 다운로드됩니다. 그리고 당신은~~직접 커피를 마시러 갔습니다.

참고: 이 글에서는 자동 스크립트 처리를 사용하는 방법만 설명하므로 독자가 정상적으로 수동으로 패키징할 수 있다고 가정합니다. 더 복잡한 세부 사항이 있는 경우 다른 장이 필요합니다.

재료 준비

macos 호스트 + 모니터(예: mac-mini)

자동 빌드 도구(예: gitlab-runner, travis-ci, jenkins)

Apple 개발자 인증

macos 호스트가 필요합니다. 도구의 빌드 노드로 사용되며 다음 소프트웨어 또는 작업을 설치해야 합니다: 节点,并且需要安装如下的软件或操作:

git

xcode 9.4+

xcode -> 设置 -> accounts -> 添加苹果公司认证或者个人认证所用的app_id

android studio

android sdk

java jdk 8

注意:如果你不想搞构建平台,只想简简单单地,那么你可以把下面的那么多代码整合成一个shell脚本,然后在自己的电脑里执行。

打包android

cd android
rm -rf build/ app/build/
./gradlew assembleRelease
로그인 후 복사

最后的apk文件在:android/app/build/outputs/apk/app-release.apk

打包ios

先构建基础包app

cd ios
# 必须先创建目录
mkdir -p build
rm -rf build/archive.xcarchive build/ipa-*

# 获取目录名
project_list=`ls | grep .xcodeproj`
project_name=${project_list%%.*}

# 打包出app
# 这和你点击 xcode -> Product -> Archive 是一样的效果的。
xcodebuild clean
xcodebuild archive \
  -project ./${project_name}.xcodeproj \
  -scheme ${project_name} \
  -configuration Release \
  -archivePath ./build/archive.xcarchive
로그인 후 복사

接着我们需要把app导出为ipa格式,这样才能上传到App Store或者测试平台比如:蒲公英 、 fir.im

传到App Store需要导出正式的ipa包,而传到蒲公英需要使用测试ipa包(ad-hoc),所以需要执行两遍

cd ios

# 正式ipa包
xcodebuild -exportArchive \
    -archivePath ./build/archive.xcarchive \
    -exportPath ./build/ipa-app-store \
    -exportOptionsPlist ./exportOptions/app-store.plist \
    -allowProvisioningUpdates
    
# 测试ipa包
xcodebuild -exportArchive \
    -archivePath ./build/archive.xcarchive \
    -exportPath ./build/ipa-ad-hoc \
    -exportOptionsPlist ./exportOptions/ad-hoc.plist \
    -allowProvisioningUpdates
로그인 후 복사

上面编译肯定是不通过的,因为你缺少两个文件app-store.plistad-hoc.plist。这个你自己其实能找到,那就是在xcode里打包并Export出来的文件夹里,都会有一个ExportOptions.plist文件

반응 네이티브는 자동 패키징을 어떻게 구현합니까? React-native 자동 패키징 방법
根据你在Export时选择的是App Store 还是 Ad Hoc,分别复制进项目exportOptions/app-store.plistexportOptions/ad-hoc.plist

上传蒲公英

笔者用的蒲公英,fir的看官自己去找

PGY_API_KEY=你的api_key
PGY_HOST=https://www.pgyer.com/apiv2/app/upload

# ios
IPA=`ls ./ios/build/ipa-ad-hoc/*.ipa`
curl \ 
    --form "file=@$IPA" \
    --form "_api_key=$PGY_API_KEY" \
    $PGY_HOST
    
# android
curl \ 
    --form "file=@./android/app/build/outputs/apk/app-release.apk" \
    --form "_api_key=$PGY_API_KEY" \
    $PGY_HOST
로그인 후 복사

上传AppStore

其实是先上传到 appstoreconnect.apple.com,和你在xcode里点击Upload To App Store

git

xcode 9.4+

xcode -> Apple 회사 인증 또는 개인 인증 app_id

android studio

android sdk

java jdk 8


참고:
플랫폼을 구축하지 않고 단순하게 만들고 싶다면 다음 코드를 통합할 수 있습니다. 쉘 스크립트에 넣은 다음 자신의 컴퓨터에서 실행하십시오.

Packaging android

APP_STORE_ACCOUNT=证书创建者账号
APP_STORE_PASSWORD=密码
IPA=`ls ./ios/build/ipa-app-store/*.ipa`

/Applications/Xcode.app/Contents/Applications/Application\ Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Versions/A/Support/altool \
    --validate-app \
    --file "$IPA" \
    --type ios \
    --username $APP_STORE_ACCOUNT \
    --password $APP_STORE_PASSWORD
로그인 후 복사
최종 apk 파일은

android/app/build/outputs/apk/app-release.apk반응 네이티브는 자동 패키징을 어떻게 구현합니까? React-native 자동 패키징 방법Packaging ios
기본 패키지 앱을 먼저 빌드하세요

APP_STORE_ACCOUNT=证书创建者账号
APP_STORE_PASSWORD=密码
IPA=`ls ./ios/build/ipa-app-store/*.ipa`

# xcode临时生成的目录,不删除可能导致上传到appStore时失败
rm -rf ~/.itmstransporter/ ~/.old_itmstransporter/

# 开始上传
/Applications/Xcode.app/Contents/Applications/Application\ Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Versions/A/Support/altool \
    --upload-app \
    --file "$IPA" \
    --type ios \
    --username $APP_STORE_ACCOUNT \
    --password $APP_STORE_PASSWORD
로그인 후 복사
그런 다음 앱 내보내기 ipa 형식이므로 App Store 또는 Dandelion, fir.im

반응 네이티브는 자동 패키징을 어떻게 구현합니까? React-native 자동 패키징 방법과 같은 테스트 플랫폼에 업로드할 수 있습니다. App Store에 업로드하려면 공식 ipa 패키지를 내보내야 하며, Dandelion에 업로드하려면 테스트 ipa 패키지(ad-hoc)를 사용해야 하므로 두 번 실행해야 합니다

rrreee

위 컴파일은 app-store.plist파일 두 개가 누락되었기 때문에 확실히 실패합니다. > 및 ad-hoc.plist. 실제로 이를 직접 찾을 수 있습니다. 즉, xcode로 패키징되어 내보낸 폴더에 ExportOptions.plist 파일

반응 네이티브는 자동 패키징을 어떻게 구현합니까? React-native 자동 패키징 방법

내보낼 때 선택하는 항목에 따라

앱스토어 또는 Ad Hoc
, 프로젝트

exportOptions/app-store.plist🎜 및 🎜exportOptions/ad-hoc.plist🎜🎜🎜Upload Dandelion🎜🎜에 복사하세요. 저자가 사용한 민들레, fir의 리뷰어가 직접 찾을 수 있습니다. 🎜 rrreee🎜AppStore를 업로드하면🎜🎜실제로는 appstoreconnect.apple.com에 먼저 업로드되는데, 이는 xcode에서 App Store에 업로드를 클릭하는 것과 같습니다🎜🎜먼저 업로드 가능한지 확인하세요🎜rrreee🎜 확인에 성공하면 업로드할 수 있고 그렇지 않으면 업로드가 실패하므로 시간을 낭비할 필요가 없습니다🎜rrreee🎜Android 업로드🎜🎜저자의 연구에 따르면 Xiaomi 애플리케이션만 업로드 인터페이스를 제공하고 다른 애플리케이션 플랫폼은 수동으로 업로드해야 합니다. 🎜🎜참고: 🎜🎜🎜1. 각 노드 머신에서 인증서를 생성해야 합니다. 수동으로 생성하거나 xcode를 사용하여 자동으로 생성해야 합니다. 이 단계를 수행하지 않으면 ios를 패키징할 수 없습니다🎜2. 처음 패키징하는 동안 Mac에서는 비밀번호를 입력하라는 메시지를 시간 내에 입력해야 하며, 버튼을 반드시 클릭해야 합니다. 3. gitlab-runner를 사용하면 .gitlab-ci에서 yml에서 alias altool=xx를 사용하는 것이 유효하지 않습니다. 즉, altool을 인식할 수 없습니다. 🎜4. iOS 패키징을 위해 macos 시스템을 사용해야 합니다. Linux를 사용하려고 하면 이득을 얻을 가치가 없습니다. 안드로이드 패키징은 리눅스를 사용해도 되지만, 역시 번거롭기 때문에 ios에서는 해보는 건 어떨까요? 🎜5. macos가 자동으로 구축된 하위 노드로 사용되는 경우 시작 스크립트 start.sh를 만들고 해당 스크립트를 사용자 관리 시작 항목에 추가해야 합니다. 디스플레이 소개를 열려면 이 sh 파일을 마우스 오른쪽 버튼으로 클릭한 다음 열기 방법을 터미널🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜추천 관련 기사: 🎜🎜🎜메타 정보 메타 태그 분석 HTML (첨부) 코드의 속성)🎜🎜🎜🎜Amap WEB 버전의 기본 컨트롤 표시 정보🎜 🎜🎜

위 내용은 반응 네이티브는 자동 패키징을 어떻게 구현합니까? React-native 자동 패키징 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

리액트 네이티브 버전을 변경하는 방법 리액트 네이티브 버전을 변경하는 방법 Jan 19, 2023 pm 02:31 PM

React Native 버전을 변경하는 방법: 1. React Native 프로젝트 디렉토리에 들어가서 명령줄에 "react-native --version"을 입력합니다. 2. npm 패키지에서 관리하는 React Native 버전을 확인합니다. .json" 파일에서 종속성 필드를 수정하고 "react-native" 버전을 대상 버전으로 변경합니다.

반응 네이티브 빨간색 화면 오류가 발생하면 어떻게 해야 합니까? 반응 네이티브 빨간색 화면 오류가 발생하면 어떻게 해야 합니까? Jan 03, 2023 pm 02:37 PM

기본 빨간색 화면 오류에 대응하는 솔루션: 1. "android/app/src/main/"에 폴더 자산을 생성합니다. 2. "react-native Bundle --platform android --dev false --entry-file index 명령을 실행합니다. .android.js..."; 3. 프로젝트에서 "react-native run-android"를 실행합니다.

반응 네이티브 업데이트가 실패하는 경우 수행할 작업 반응 네이티브 업데이트가 실패하는 경우 수행할 작업 Jan 09, 2023 am 10:41 AM

기본 업데이트 실패에 대응하는 솔루션: 1. 검토를 위해 IPA 패키지를 App Store에 직접 제출한 다음 IPA 패키지를 pushy 플랫폼에 업로드합니다. 2. 보관된 IPA 패키지를 pushy 플랫폼에 업로드한 다음 IPA 패키지를 제출합니다. 3. Xcode를 통해 릴리스 모드 패키지를 휴대폰으로 컴파일한 다음 iTunes를 사용하여 IPA 패키지를 내보낸 다음 IPA를 pushy 플랫폼에 업로드합니다.

반응 네이티브 라우팅 점프를 구현하는 방법 반응 네이티브 라우팅 점프를 구현하는 방법 Jan 06, 2023 am 10:26 AM

React Native 라우팅 점프를 구현하는 방법: 1. "yarn add React-navigation" 명령을 사용하여 "react-navigation"을 설치합니다. 2. "yarn add React-native-gesture-handler" 명령을 사용하여 "react-native"를 설치합니다. -gesture- handler" 구성 요소; 3. 초기 경로를 설정한 다음 이를 클래스 구성 요소로 내보냅니다.

반응 네이티브를 실행할 수 없으면 어떻게 해야 하나요? 반응 네이티브를 실행할 수 없으면 어떻게 해야 하나요? Dec 30, 2022 am 09:36 AM

반응 네이티브가 실행되지 않는 경우 해결 방법: 1. 터미널을 열고 프로젝트 폴더로 이동한 다음 "npm install jpush-react-native jcore-react-native --save"를 입력합니다. 2. "node_modules" 파일을 다음 위치에 저장합니다. 프로젝트 폴더를 삭제합니다. 3. 포트 8081에 해당하는 프로세스를 닫고 프로젝트를 다시 실행합니다.

React Native에서 페이지 배경색을 설정하는 방법 React Native에서 페이지 배경색을 설정하는 방법 Jan 03, 2023 am 10:31 AM

React Native에서 페이지 배경색을 설정하는 방법: 1. "yarn add React-native-linear-gradient"를 통해 "react-native-linear-gradient" 구성 요소를 설치합니다. 2. "<LinearGradient colors={['를 설정합니다. # 페이지의 FFD801', '#FF8040', '#F75D59']} style= {...}" 배경색을 구현합니다.

반응 탐색에서 오류를 보고하는 경우 수행할 작업 반응 탐색에서 오류를 보고하는 경우 수행할 작업 Dec 30, 2022 am 10:35 AM

탐색 오류에 대한 해결 방법: 1. "Stack.NavigatorinitialRouteName="Home""을 구성한 다음 "yarn android"를 다시 시작합니다. 2. "android\app\build\outputs\apk\debug" 디렉터리에서 패키지된 apk를 삭제합니다. 파일을 삭제하고 에뮬레이터나 실제 머신에서 원본 apk 패키지를 삭제한 후 "yarn android"를 다시 실행하세요.

React Native에서 오류를 잡는 방법 React Native에서 오류를 잡는 방법 Jan 04, 2023 am 10:46 AM

오류를 캡처하기 위한 기본 반응 방법: 1. 해당 반응 파일을 엽니다. 2. "require('ErrorUtils').setGlobalHandler(function(err) {...})" 메서드를 사용하여 오류를 캡처하고 사용자에게 합리적인 정보를 제공합니다. 메시지를 표시합니다.

See all articles