Autonomy dokumentatsioon
Mobiil

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

VariableRequiredDescription
iOS .app (.zip, .tgz, .tar.gz)NoSimulaatorile mõeldud .app-pakett, mis on arhiveeritud nii, et rakendus asub arhiivi juurkaustas. Seda aktsepteerivad töölaud ja artefakti API.
Android .apkNoStandardne Androidi pakett. Seda aktsepteerivad töölaud ja artefakti API.
Android .aabNoAndroid 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:

Ehita .app iOS-i simulaatori jaoksbash
xcodebuild -workspace ios/MyApp.xcworkspace \
-scheme MyApp \
-configuration Release \
-sdk iphonesimulator \
-destination 'generic/platform=iOS Simulator' \
-derivedDataPath ios/build \
build

Pakett 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.

Paki .app-pakett ZIP-arhiivibash
cd ios/build/Build/Products/Release-iphonesimulator
zip -r MyApp.app.zip MyApp.app

Ehita Androidi jaoks

Standardse Androidi projekti puhul ehita projekti juurkaustast silumis-APK. Silumis-APK-d paigalduvad emulaatoritesse ilma allkirjastamiseta.

Ehita silumis-APKbash
./gradlew assembleDebug

APK 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

  1. Ava projekt ja lülitu vahekaardile Mobile.
  2. Klõpsa Browse files ja vali .app.zip / .app.tar.gz (iOS) või .apk / .aab (Android).
  3. Oota, kuni build'i töötlemine lõpeb.
  4. Ava test ja vali üleslaaditud build jaotises App Upload.
  5. Androidi testide puhul veendu, et paketinimi vastab APK-le. Autonomy loeb selle manifestist, kuid saad selle testis alistada.
  6. 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.

Laadi üles iOS-i simulaatori arhiivbash
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"
Käivita käivitus üleslaaditud build'igabash
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.

On this page