iOS lietojumprogrammu izveides un piegÄdes iespÄjas
Å ajÄ rakstÄ mÄs dalÄmies pieredzÄ par iOS aplikÄciju komplektÄÅ”anu un piegÄdi lietotÄjiem, ko Plarium Krasnodar studija ir uzkrÄjusi CI/CD atkļūdoÅ”anas procesÄ.
TreniÅÅ”
Katrs cilvÄks, kurÅ” tÄ vai citÄdi ir iesaistÄ«ts Apple ierÄ«Äu aplikÄciju izstrÄdÄ, jau ir novÄrtÄjis strÄ«dÄ«go infrastruktÅ«ras ÄrtÄ«bas. GrÅ«tÄ«bas ir sastopamas visur: no izstrÄdÄtÄja profila izvÄlnes lÄ«dz atkļūdoÅ”anas un veidoÅ”anas rÄ«kiem.
InternetÄ ir daudz rakstu par āpamatiemā, tÄpÄc mÄs centÄ«simies izcelt galveno. LÅ«k, kas jums nepiecieÅ”ams, lai veiksmÄ«gi izveidotu lietojumprogrammu:
izveidota lietojumprogramma ar unikÄlu ID (jÄpiezÄ«mÄ Bundle Identifier nozÄ«me, jo aizstÄjÄjzÄ«mju ID izmantoÅ”ana padara neiespÄjamu izmantot daudzas aplikÄcijas funkcijas, piemÄram: Associated Domains, Push Notifications, Apple Sign In un citas);
IzstrÄdÄtÄja sertifikÄts ir jÄÄ£enerÄ, izmantojot Keychain jebkurÄ macOS ierÄ«cÄ. SertifikÄta veids ir ļoti svarÄ«gs. AtkarÄ«bÄ no lietojumprogrammas vides (izstrÄdÄtÄjs, kvalitÄtes nodroÅ”inÄÅ”ana, stadija, ražoÅ”ana) tÄ atŔķirsies (izstrÄde vai izplatÄ«Å”ana), kÄ arÄ« lietojumprogrammas paraksta profila veids.
Galvenie profilu veidi:
IzstrÄde - paredzÄta izstrÄdes komandas pieteikuma parakstÄ«Å”anai, tiek izmantots IzstrÄdes sertifikÄts (tipa nosaukums iPhone Developer: XXXXX);
Ad Hoc - paredzÄts testa lietojumprogrammas parakstÄ«Å”anai un iekÅ”Äjai pÄrbaudei, ko veic kvalitÄtes nodroÅ”inÄÅ”anas nodaļa, tiek izmantots izstrÄdÄtÄja Distribution sertifikÄts (tipa nosaukums iPhone Distribution: XXXXX);
App Store ā izlaidums ÄrÄjai testÄÅ”anai, izmantojot TestFlight, un augÅ”upielÄdei App Store, tiek izmantots izstrÄdÄtÄja izplatÄ«Å”anas sertifikÄts.
Veidojot izstrÄdes un Ad Hoc profilus, tas arÄ« tiek norÄdÄ«ts ierÄ«Äu saraksts, kurÄ varat instalÄt bÅ«vÄjumu, kas ļauj vÄl vairÄk ierobežot lietotÄju piekļuvi. App Store profilÄ nav ierÄ«Äu saraksta, jo piekļuves kontroli slÄgtÄs beta testÄÅ”anas laikÄ veic TestFlight, kas tiks apspriests vÄlÄk.
SkaidrÄ«bas labad tÄlÄk esoÅ”Äs tabulas veidÄ varat parÄdÄ«t izstrÄdÄtÄja profilu. TÄdÄjÄdi ir vieglÄk saprast, kÄdi parametri mums nepiecieÅ”ami montÄžai un no kurienes tos iegÅ«t.
MontÄža
Lai atvieglotu montÄžas atdalÄ«Å”anu pÄc projekta un vides, mÄs izmantojam profilu nosaukumus, piemÄram ${ProjectName}_${Instance}, tas ir, projekta nosaukums + gadÄ«jums (atkarÄ«gs no lietojumprogrammas vides: Dev, QA, GD, Staging, Live un tÄ tÄlÄk).
Kad profils tiek importÄts bÅ«vÄÅ”anas serverÄ«, tÄ nosaukums tiek mainÄ«ts uz unikÄlu ID un tiek pÄrvietots uz mapi /Users/$Username/Library/MobileDevice/Provisioning Profiles (kur $Username atbilst bÅ«vÄÅ”anas servera lietotÄja konta nosaukumam).
Ir divi veidi, kÄ izveidot *.ipa failu ā mantojums (PackageApplication) un moderns (izmantojot XcAchive izveidi un eksportÄÅ”anu). PirmÄ metode tiek uzskatÄ«ta par novecojuÅ”u, jo kopÅ” versijas 8.3 lietotÅu failu iepakojuma modulis ir noÅemts no Xcode izplatÄ«Å”anas. Lai to izmantotu, modulis ir jÄkopÄ no vecÄ Xcode (versija 8.2 un vecÄka) uz mapi: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/
$Method ā piegÄdes metode atbilst lietojumprogrammas paraksta profila tipam, tas ir, izstrÄdei vÄrtÄ«ba bÅ«s izstrÄde, Ad Hoc - ad-hoc un App Store - lietotÅu veikals.
$BundleID ā Lietojumprogrammas ID, kas norÄdÄ«ts programmas iestatÄ«jumos. To var pÄrbaudÄ«t ar komandu:
defaults read $ProjectDir/Info CFBundleIdentifier
$DevAccName Šø $ProfileId ā izstrÄdÄtÄja vÄrda un paraksta profila ID iestatÄ«jumi, kas tika izmantoti iepriekÅ”, un tiem jÄatbilst eksporta iestatÄ«jumu vÄrtÄ«bÄm.
$TeamID ā desmit ciparu ID iekavÄs aiz izstrÄdÄtÄja vÄrda, piemÄram: iPhone Developer: ā¦ā¦ (XXXXXXXXXX); var pÄrbaudÄ«t Keychain.
TÄlÄk, izmantojot eksporta komandu, mÄs iegÅ«stam nepiecieÅ”amo *.ipa failu:
Tagad savÄktais fails ir jÄnogÄdÄ gala lietotÄjam, tas ir, jÄinstalÄ ierÄ«cÄ.
AttÄ«stÄ«bas un Ad Hoc bÅ«vÄjumu izplatÄ«Å”anai ir daudz pakalpojumu, piemÄram, HockeyApp, AppBlade un citi, taÄu Å”ajÄ rakstÄ mÄs runÄsim par atseviŔķu serveri lietojumprogrammu izplatÄ«Å”anai.
Lietojumprogrammas instalÄÅ”ana operÄtÄjsistÄmai iOS notiek 2 posmos:
Lietojumprogrammas instalÄÅ”anas manifesta saÅemÅ”ana, izmantojot vienumu pakalpojumu.
*.ipa faila instalÄÅ”ana saskaÅÄ ar manifestÄ norÄdÄ«to informÄciju, izmantojot HTTPS.
TÄdÄjÄdi mums vispirms ir jÄÄ£enerÄ instalÄcijas manifests (faila tips *.plist) ar komandu:
KÄ redzat, manifestÄ ir gandrÄ«z visi parametri, kas saistÄ«ti ar lietojumprogrammas izveidi.
Lietojumprogrammas versija ($AppVersion) var pÄrbaudÄ«t ar komandu:
defaults read $ProjectDir/Info CFBundleVersion
Parametrs $ipaUrl satur tieÅ”u saiti *.ipa faila lejupielÄdei. SÄkot ar septÄ«to iOS versiju, lietojumprogramma jÄinstalÄ, izmantojot HTTPS. AstotajÄ versijÄ manifesta formÄts ir nedaudz mainÄ«jies: bloki ar iestatÄ«jumiem lietojumprogrammu ikonÄm, piemÄram
<images>
<image>...</image>
</images>
TÄdÄjÄdi, lai instalÄtu lietojumprogrammu, pietiek ar vienkÄrÅ”u HTML lapu ar Å”Ädu saiti:
IzstrÄdes un testÄÅ”anas nodaļu vajadzÄ«bÄm Plarium ir izveidojis savu bÅ«vinstalÄcijas lietojumprogrammu, kas sniedz mums:
autonomija un neatkarība,
piekļuves kontroles centralizÄcija un droÅ”a lietojumprogrammu instalÄÅ”ana, izmantojot āpagaiduā dinamiski izveidotas saites,
paplaÅ”inÄma funkcionalitÄte (tas ir, izstrÄdes komanda, ja nepiecieÅ”ams, var integrÄt trÅ«kstoÅ”Äs funkcijas esoÅ”ajÄ lietojumprogrammÄ).
TestÄÅ”ana
Tagad mÄs runÄsim par lietojumprogrammas pirmsizlaides testÄÅ”anu, izmantojot TestFlight.
NepiecieÅ”amie lejupielÄdes nosacÄ«jumi ir App Store paraksta profila veids un Ä£enerÄto API atslÄgu klÄtbÅ«tne.
Ir vairÄki veidi, kÄ lejupielÄdÄt lietojumprogrammu:
izmantojot Xcode (organizatoru),
izmantojot altool,
izmantojot Application Loader vecÄkÄm Xcode versijÄm (tagad Transporter).
AutomÄtiskajai lejupielÄdei tiek izmantots altool, kuram ir arÄ« divas autorizÄcijas metodes:
Lietotnei specifiska parole,
API atslÄga.
Ieteicams lejupielÄdÄt lietojumprogrammu, izmantojot API atslÄgu.
Lai iegÅ«tu API atslÄgu, dodieties uz saite un Ä£enerÄt atslÄgu. Papildus paÅ”ai atslÄgai *.p8 formÄtÄ mums bÅ«s nepiecieÅ”ami divi parametri: IssuerID un KeyID.
PÄc tam importÄjiet lejupielÄdÄto atslÄgu bÅ«vÄÅ”anas serverÄ«:
Kur apiKey Šø apiIssuer ir lauka vÄrtÄ«bas no API atslÄgas Ä£enerÄÅ”anas lapas.
PÄc veiksmÄ«gas validÄcijas mÄs ielÄdÄjam lietojumprogrammu ar komandu --upload-app ar tiem paÅ”iem parametriem.
Lietojumprogrammu Apple testÄs vienas vai divu dienu laikÄ, un pÄc tam tÄ kļūs pieejama ÄrÄjiem testÄtÄjiem: viÅiem pa e-pastu tiks nosÅ«tÄ«tas saites instalÄÅ”anai.
VÄl viens veids, kÄ lejupielÄdÄt lietojumprogrammu, izmantojot altool, ir lietotnes specifiskÄs paroles izmantoÅ”ana.
Lai iegÅ«tu lietotnei specifisko paroli, jums jÄiet uz saite un Ä£enerÄjiet to sadaÄ¼Ä DroŔība.
PÄc tam ar Å”o paroli jums vajadzÄtu izveidot servera izveides ierakstu Keychain. No Xcode versijas 11 to var izdarÄ«t ar komandu:
TomÄr, kÄ jau minÄts, no veiktspÄjas viedokļa rÄ«ka autorizÄcijai labÄk izvÄlÄties API atslÄgu, jo dažÄdÄm Xcode versijÄm ir noteiktas problÄmas (āneredzā Keychain, autorizÄcijas kļūdas augÅ”upielÄdes laikÄ utt.).
Tas arÄ« viss, patiesÄ«bÄ. Es novÄlu visiem, kas iesaistÄ«ti App Store, veiksmÄ«gu veidoÅ”anu un bezproblÄmu izlaiÅ”anu.