Mobiilibuildid
Ehita, arhiveeri ja laadi üles iOS-i simulaatori rakendus või Androidi APK, et Autonomy saaks selle suhtes mobiiliteekondi käivitada.
Autonomy mobiilikäivitused vajavad sinu rakenduse build'i. Laadi see build üks kord üles ja taaskasuta seda käsitsi käivitustes, pull request'i käivitustes ja ajastatud käivitustes kuni järgmise versiooni väljaandmiseni.
Mida üles laadida
| Variable | Required | Description |
|---|---|---|
| iOS .app (.zip, .tgz, .tar.gz) | No | Simulaatorile mõeldud .app-pakett, mis on arhiveeritud nii, et rakendus asub arhiivi juurkaustas. Seda aktsepteerivad töölaud ja artefakti API. |
| Android .apk | No | Standardne Androidi pakett. Seda aktsepteerivad töölaud ja artefakti API. |
| Android .aab | No | Android App Bundle. Seda aktsepteerivad töölaud ja artefakti API. |
iOS-i puhul vajab Autonomy simulaatori build'i, sest käivitused toimuvad pilvesimulaatorites. iphoneos jaoks ehitatud allkirjastatud .ipa lükatakse käitaja poolt tagasi. Androidi puhul aktsepteeritakse nii .apk kui ka .aab; käivitused paigaldavad artefakti pilveemulaatorisse ja käivitavad selle paketinime järgi.
Ehita iOS-i simulaatori jaoks
Standardse Xcode'i projekti puhul ehita käsuga xcodebuild:
xcodebuild -workspace ios/MyApp.xcworkspace \
-scheme MyApp \
-configuration Release \
-sdk iphonesimulator \
-destination 'generic/platform=iOS Simulator' \
-derivedDataPath ios/build \
buildPakett luuakse asukohta ios/build/Build/Products/Release-iphonesimulator/MyApp.app. Expo või React Native'i projektide puhul käivita esmalt npx expo prebuild --platform ios ja seejärel sama xcodebuild-käsk genereeritud workspace'i suhtes.
Töölaua ja otse API-sse üleslaadimise puhul arhiveeri pakett enne saatmist. Hoia .app-pakett arhiivi juurkaustas, et Autonomy saaks selle ilma asukohta oletamata lahti pakkida.
cd ios/build/Build/Products/Release-iphonesimulator
zip -r MyApp.app.zip MyApp.appEhita Androidi jaoks
Standardse Androidi projekti puhul ehita projekti juurkaustast silumis-APK. Silumis-APK-d paigalduvad emulaatoritesse ilma allkirjastamiseta.
./gradlew assembleDebugAPK luuakse asukohta android/app/build/outputs/apk/debug/app-debug.apk. Expo või React Native'i projektide puhul käivita esmalt npx expo prebuild --platform android ja seejärel sama Gradle'i käsk genereeritud projekti suhtes.
App Bundle'i build'ide puhul kasuta ./gradlew bundleDebug ja võta .aab asukohast android/app/build/outputs/bundle/debug/. Mõlemad vormingud sobivad.
Laadi üles töölaualt
- Ava projekt ja lülitu vahekaardile Mobile.
- Klõpsa Browse files ja vali
.app.zip/.app.tar.gz(iOS) või.apk/.aab(Android). - Oota, kuni build'i töötlemine lõpeb.
- Ava test ja vali üleslaaditud build jaotises App Upload.
- Androidi testide puhul veendu, et paketinimi vastab APK-le. Autonomy loeb selle manifestist, kuid saad selle testis alistada.
- Käivita test üks kord käsitsi, et veenduda build'i käivitumises ja teekonna jõudmises esimese kontrollpunktini.
Laadi üles artefakti API-ga
Kasuta artefakti API-t CI-st või agendi käituskeskkonnast, kui build pole juba Autonomy salvestatud keskkonnas talletatud. Üleslaadimisvoog tagastab salvestus-ID, skannib artefakti ja edastab seejärel selle salvestus-ID käivitusele.
Otspunkti skeemi ja vastusekujude kohta vaata API viitest lehte Artefaktid.
UPLOAD_TARGET=$(curl -fsS -X POST "$AUTONOMY_API_URL/api/artifacts/upload-url" \
-H "Authorization: Bearer $AUTONOMY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"platform":"ios","fileName":"MyApp.app.zip"}')
UPLOAD_URL=$(printf '%s' "$UPLOAD_TARGET" | jq -r '.uploadUrl')
STORAGE_ID=$(printf '%s' "$UPLOAD_TARGET" | jq -r '.storageId')
curl -fsS -X PUT "$UPLOAD_URL" \
-H "Content-Type: application/zip" \
--data-binary "@ios/build/Build/Products/Release-iphonesimulator/MyApp.app.zip"
SCAN_BODY=$(jq -n \
--arg storageId "$STORAGE_ID" \
--arg fileName "MyApp.app.zip" \
'{ storageId: $storageId, platform: "ios", fileName: $fileName, contentType: "application/zip" }')
curl -fsS -X POST "$AUTONOMY_API_URL/api/artifacts/scan" \
-H "Authorization: Bearer $AUTONOMY_API_KEY" \
-H "Content-Type: application/json" \
-d "$SCAN_BODY"TRIGGER_BODY=$(jq -n \
--arg testPlanId "$AUTONOMY_TEST_PLAN_ID" \
--arg storageId "$STORAGE_ID" \
--arg bundleId "com.example.MyApp" \
--arg commitSha "$GITHUB_SHA" \
--arg idempotencyKey "github:${GITHUB_RUN_ID}:${GITHUB_RUN_ATTEMPT}:ios" \
'{
testPlanId: $testPlanId,
platforms: ["ios"],
branch: env.GITHUB_REF_NAME,
targets: {
ios: {
storageId: $storageId,
sourceMode: "upload",
bundleId: $bundleId,
fileName: "MyApp.app.zip"
}
},
deployment: {
provider: "github-actions",
commitSha: $commitSha
},
idempotencyKey: $idempotencyKey
}')
curl -fsS -X POST "$AUTONOMY_API_URL/api/v1/run.trigger" \
-H "Authorization: Bearer $AUTONOMY_API_KEY" \
-H "Content-Type: application/json" \
-d "$TRIGGER_BODY"Androidi puhul laadi .apk või .aab üles samal viisil ja käivita väärtustega platforms: ["android"], targets.android.storageId ning targets.android.packageName.
Kui sinu CI teenusepakkuja annab juba lühiajalise HTTPS-i artefakti URL-i, võid üleslaadimisetapi vahele jätta ja käivitada parameetriga artifactUrl koos väärtusega sourceMode: "url". Kasuta stabiilsete eeltootmiskeskkonna build'ide jaoks salvestatud keskkondi ja ühekordsete eelvaateartefaktide jaoks konkreetseid sihtmärke.
Piirangud
- iOS-i käivitused toimuvad ainult pilvesimulaatorites. Kaamera, biomeetrilised viibad (Face ID, Touch ID) ja kõik vood, mis nõuavad allkirjastatud seadmebuild'i, ei tööta.
- Androidi käivitused toimuvad pilveemulaatorites. Ainult riistvaral põhinevaid funktsioone (NFC, sõrmejälg, päris kaamera) ei simuleerita.
Tõrkeotsing
iOS-i üleslaadimine lükatakse seadmebuild'ina tagasi
Veendu, et build loodi parameetriga -sdk iphonesimulator ja simulaatori sihtkohaga. iphoneos jaoks loodud pakett on seadmebuild ja Autonomy lükkab selle üleslaadimisel tagasi.
Androidi üleslaadimine lükatakse vale vormingu tõttu tagasi
Autonomy aktsepteerib ainult .apk- ja .aab-faile. Kõik muu lükatakse üleslaadimisel tagasi.
Test ei leia üleslaaditud build'i
Build laaditi üles, kuid seda ei seostatud testiga. Ava test ja vali enne käivitamist üleslaaditud build jaotises App Upload.
CI täitub üleslaadimistega
Kasuta taaskasutatavate build'ide jaoks salvestatud keskkondi ja ühekordsete CI artefaktide jaoks konkreetseid käivitussihtmärke. Jäta töölaua kaudu üleslaadimine build'ide jaoks, mille väljalaskehaldur valib tootmiskäivitusteks.