Heim > Artikel > Web-Frontend > Wie implementiert React-Native die automatische Verpackung? React-native automatische Verpackungsmethode
Der Inhalt dieses Artikels befasst sich mit der Implementierung der automatischen Verpackung in React-Native. Die reaktive automatische Verpackungsmethode hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen.
Haben Sie sich auch vorgestellt, dass Sie nach dem Schreiben des Codes nicht xcode und Android Studio öffnen müssen, sondern einfach ein Shell-Skript ausführen müssen, um sowohl Android als auch iOS zu packen? Und es wird automatisch für Sie in den Dandelion und App Store hochgeladen, und dann wird das Produkt automatisch zum Testen heruntergeladen. Und du bist direkt gegangen, um Kaffee zu trinken.
Hinweis: In diesem Artikel wird nur die Verwendung der automatischen Skriptverarbeitung beschrieben. Daher wird davon ausgegangen, dass Leser das Paket manuell normal durchführen können. Bei komplizierteren Details ist ein weiteres Kapitel erforderlich.
Ein MacOS-Host + Monitor, wie zum Beispiel: mac-mini
Automatische Build-Tools, wie zum Beispiel: gitlab-runner, travis-ci, jenkins
Apple Developer Certification
macos host muss als Build-Tool verwendet werden节点
und die folgende Software oder Vorgänge müssen installiert werden:
git
xcode 9.4+
xcode -> app_id für Apple-Zertifizierung oder persönliche Authentifizierung hinzufügen
android sdk
Java JDK 8
Hinweis:Wenn Sie keine Plattform aufbauen und es einfach nur einfach halten möchten, können Sie den folgenden Code integrieren in ein Shell-Skript umwandeln und es dann auf Ihrem eigenen Computer ausführen. Paket android
cd android rm -rf build/ app/build/ ./gradlew assembleRelease
Paket ios
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
Dann müssen wir die App in das ipa-Format exportieren, damit sie in den App Store oder auf eine Testplattform hochgeladen werden kann, z. B.: Dandelion, fir. im
Um in den App Store zu übertragen, müssen Sie das offizielle ipa-Paket exportieren, und um nach Dandelion zu übertragen, müssen Sie das Test-ipa-Paket (ad-hoc) verwenden, also müssen Sie es zweimal ausführen
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
Die obige Kompilierung wird definitiv fehlschlagen, weil Ihnen zwei Dateien
und fehlen. Sie können dies tatsächlich selbst finden, d. h. im Ordner gepackt und app-store.plist
Exportierenad-hoc.plist
in xcode befindet sich eine DateiExportOptions.plist
Je nachdem, ob Sie beim Exportieren App Store
oder Ad Hoc wählen, kopieren Sie diese in die Projekte exportOptions/app-store.plist bzw. exportOptions . /ad-hoc.plistLöwenzahn hochladen
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 hochladen
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
Upload To App Store
Auf Android hochladen2. Bei den ersten paar Malen des Packens werden Sie von Mac aufgefordert, ein Passwort einzugeben und darauf zu klicken die Schaltfläche, um immer zuzulassen
3. Wenn Sie gitlab-runner verwenden, ist die Verwendung von alias altool=xx in gitlab-ci.yml ungültig, das heißt, altool kann nicht erkannt werden, ich weiß nicht, warum 🎜> 4. Sie müssen das MacOS-System für die iOS-Paketierung verwenden. Der Versuch, Linux zu verwenden, wird die Vorteile überwiegen. Sie können Linux für die Android-Paketierung verwenden, aber das ist auch sehr mühsam. Warum also nicht mit iOS?
Empfohlene verwandte Artikel:
Über Gao Anzeige der grundlegenden Steuerelemente der deutschen Karten-WEB-Version
Das obige ist der detaillierte Inhalt vonWie implementiert React-Native die automatische Verpackung? React-native automatische Verpackungsmethode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!