반응 네이티브는 자동 패키징을 어떻게 구현합니까? 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.plist
和ad-hoc.plist
。这个你自己其实能找到,那就是在xcode里打包并Export出来的文件夹里,都会有一个ExportOptions.plist
文件
根据你在Export时选择的是App Store 还是 Ad Hoc,分别复制进项目exportOptions/app-store.plist 和 exportOptions/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
참고:
플랫폼을 구축하지 않고 단순하게 만들고 싶다면 다음 코드를 통합할 수 있습니다. 쉘 스크립트에 넣은 다음 자신의 컴퓨터에서 실행하십시오.
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
android/app/build/outputs/apk/app-release.apkPackaging 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
과 같은 테스트 플랫폼에 업로드할 수 있습니다. App Store에 업로드하려면 공식 ipa 패키지를 내보내야 하며, Dandelion에 업로드하려면 테스트 ipa 패키지(ad-hoc)를 사용해야 하므로 두 번 실행해야 합니다
위 컴파일은 app-store.plist
파일 두 개가 누락되었기 때문에 확실히 실패합니다. > 및 ad-hoc.plist
. 실제로 이를 직접 찾을 수 있습니다. 즉, xcode로 패키징되어 내보낸 폴더에 ExportOptions.plist
파일
앱스토어 또는 Ad Hoc
, 프로젝트
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제











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

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

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

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

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

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

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

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