Hauv tsab xov xwm no, peb muab cov kev paub dhau los ntawm kev sib sau thiab xa cov ntawv thov iOS no rau cov neeg siv, uas Plarium Krasnodar studio tau sau rau hauv cov txheej txheem ntawm kev debugging CI / CD.
Kev cob qhia
Txhua tus neeg uas nyob hauv ib txoj kev lossis lwm qhov kev koom tes hauv kev tsim cov ntawv thov rau Apple cov khoom siv tau txaus siab rau qhov tsis txaus ntseeg yooj yim ntawm cov txheej txheem. Cov teeb meem muaj nyob txhua qhov chaw: los ntawm tus tsim tawm profile ntawv qhia zaub mov mus rau kev debug thiab tsim cov cuab yeej.
Muaj ntau ntau cov lus hais txog "cov ntsiab lus" hauv Is Taws Nem, yog li peb yuav sim qhia qhov tseem ceeb. Nov yog yam koj xav tau los tsim koj daim ntawv thov kom tiav:
Ad Hoc - npaj rau kos npe rau daim ntawv thov kev xeem thiab kev txheeb xyuas sab hauv los ntawm QA department, tus tsim tawm daim ntawv pov thawj Distribution yog siv (hom npe iPhone Distribution: XXXXX);
App Store - tso tawm tsim rau kev sim sab nraud ntawm TestFlight thiab xa mus rau App Store, tus tsim tawm daim ntawv pov thawj Distribution yog siv.
Thaum tsim Kev Txhim Kho thiab Ad Hoc profiles, nws kuj tau qhia ntaus ntawv, ntawm qhov uas koj tuaj yeem nruab ib qho kev tsim, uas tso cai rau koj ntxiv txwv kev nkag mus rau cov neeg siv. Tsis muaj cov npe ntawm cov khoom siv hauv App Store profile, txij li kev nkag mus rau kev tswj xyuas thaum kaw beta xeem yog tswj hwm los ntawm TestFlight, uas yuav tau tham tom qab.
Txhawm rau kom pom tseeb, koj tuaj yeem nthuav qhia tus tsim tawm profile hauv daim ntawv hauv qab no. Qhov no ua rau nws yooj yim dua kom nkag siab txog qhov peb xav tau rau kev sib dhos thiab qhov twg yuav tau txais los ntawm.
Sib dhos
Txhawm rau ua kom yooj yim rau kev sib cais los ntawm qhov project thiab ib puag ncig, peb siv cov npe profile xws li ${ProjectName}_${Instance}, uas yog, lub npe project + piv txwv (nyob ntawm qhov chaw thov: Dev, QA, GD, Staging, Live, thiab lwm yam).
Thaum imported mus rau cov neeg rau zaub mov tsim, qhov profile hloov nws lub npe mus rau ib tus ID tshwj xeeb thiab raug hloov mus rau hauv daim nplaub tshev /Users/$Username/Library/MobileDevice/Provisioning Profiles (qhov twg $Username sib raug rau tus neeg siv tus account lub npe ntawm tus tsim server).
Muaj ob txoj hauv kev los tsim cov ntaub ntawv *.ipa - legacy (PackageApplication) thiab niaj hnub (ntawm XcAchive creation thiab export). Thawj txoj kev yog suav tias yog siv tsis tau, txij li txij li version 8.3 lub app ntim cov ntaub ntawv tau raug tshem tawm ntawm Xcode tis. Txhawm rau siv nws, koj yuav tsum luam cov module los ntawm Xcode qub (version 8.2 thiab ua ntej) mus rau lub nplaub tshev: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/
Txawm li cas los xij, txoj kev no suav hais tias tsis siv los ntawm Apple qhov kev xav. Nws yog qhov tseem ceeb kom tau txais *.ipa los ntawm kev xa tawm ntawm daim ntawv thov archive.
Ua ntej koj yuav tsum sau cov archive nrog cov lus txib:
$Method - txoj kev xa khoom, sib raug rau daim ntawv thov kos npe profile hom, uas yog, rau Kev Txhim Kho tus nqi yuav yog kev txhim kho, rau Ad Hoc - ad-hoc, thiab rau App Store - app-store.
$BundleID - Daim Ntawv Thov ID, uas tau teev tseg hauv daim ntawv thov teeb tsa. Koj tuaj yeem tshawb xyuas nrog cov lus txib:
defaults read $ProjectDir/Info CFBundleIdentifier
$DevAccName ΠΈ $ProfileId - tus tsim tawm lub npe thiab kos npe profile ID teeb tsa uas tau siv yav dhau los thiab yuav tsum phim cov txiaj ntsig hauv qhov chaw xa tawm.
$TeamID β Kaum-tus lej ID nyob rau hauv pawg tom qab tus tsim tawm lub npe, piv txwv li: iPhone Tus Tsim Tawm: β¦β¦ (XXXXXXXXXX); tuaj yeem tshawb xyuas hauv Keychain.
Tom ntej no, siv cov lus txib export, peb tau txais cov ntaub ntawv tsim nyog *.ipa:
Raws li koj tau pom, lub manifest muaj yuav luag tag nrho cov tsis muaj kev koom tes nyob rau hauv tsim daim ntawv thov.
Daim ntawv thov version ($AppVersion) tuaj yeem tshawb xyuas nrog cov lus txib:
defaults read $ProjectDir/Info CFBundleVersion
Parameter $ipaUrl muaj qhov txuas ncaj qha mus rub tawm cov ntaub ntawv *.ipa. Los ntawm lub xya version ntawm iOS no, daim ntawv thov yuav tsum tau ntsia ntawm HTTPS. Nyob rau hauv lub yim version, cov hom ntawv ntawm lub manifest tau hloov me ntsis: blocks nrog rau tej chaw rau daim ntawv thov icons nyiam
<images>
<image>...</image>
</images>
Yog li, txhawm rau nruab daim ntawv thov, nplooj ntawv HTML yooj yim nrog qhov txuas zoo li qhov no txaus:
Nws yog qhov zoo dua los rub tawm daim ntawv thov siv API Key.
Kom tau txais API Key, mus rau txuas thiab tsim kom muaj tus yuam sij. Ntxiv rau qhov tseem ceeb nws tus kheej hauv *.p8 hom, peb yuav xav tau ob qhov tsis muaj: IssuerID thiab KeyID.
Tom ntej no, import tus yuam sij downloaded rau tus tsim server:
Qhov twg apiKey ΠΈ apiIssuer muaj nuj nqis teb los ntawm API key tiam nplooj.
Tom ntej no, thaum ua tiav validation, peb thauj daim ntawv thov nrog cov lus txib --upload-app nrog tib yam tsis muaj.
Daim ntawv thov yuav raug kuaj los ntawm Apple hauv ib lossis ob hnub thiab tom qab ntawd yuav muaj rau cov neeg sim sab nraud: lawv yuav raug xa mus rau nruab los ntawm email.
Lwm txoj hauv kev los rub tawm daim ntawv thov los ntawm altool yog siv App-Specific Password.
Yuav kom tau txais App-Specific Password koj yuav tsum mus rau txuas thiab tsim nws hauv seem Security.
Tom ntej no, koj yuav tsum tsim cov ntaub ntawv tsim server hauv Keychain nrog tus password no. Los ntawm version 11 ntawm Xcode qhov no tuaj yeem ua tiav nrog cov lus txib:
Raws li tus nqi parameter -p koj tuaj yeem coj tus nqi $AppPswd nyob rau hauv unencrypted (paub meej) daim ntawv.
Txawm li cas los xij, raws li twb tau hais lawm, los ntawm qhov kev pom ntawm kev ua tau zoo, nws yog qhov zoo dua los xaiv API Key rau kev tso cai altool, vim ntau yam ntawm Xcode muaj qee yam teeb meem ("tsis pom" Keychain, kev tso cai yuam kev thaum upload, thiab lwm yam).
Qhov ntawd yog tag nrho, ua tau. Kuv xav kom txhua tus neeg koom nrog kev tsim ua tiav thiab tsis muaj teeb meem tso tawm hauv App Store.