Awọn ẹya ara ẹrọ ti ile ati jiṣẹ awọn ohun elo iOS
Ninu nkan yii, a pin iriri ti apejọ ati jiṣẹ awọn ohun elo iOS si awọn olumulo, eyiti ile-iṣere Plarium Krasnodar ti ṣajọpọ ninu ilana ti n ṣatunṣe aṣiṣe CI/CD.
Igbaradi
Gbogbo eniyan ti o wa ni ọna kan tabi omiiran ti o ni ipa ninu idagbasoke awọn ohun elo fun awọn ẹrọ Apple ti tẹlẹ riri irọrun ariyanjiyan ti awọn amayederun. Awọn iṣoro ni a rii nibi gbogbo: lati inu akojọ profaili idagbasoke si yokokoro ati awọn irinṣẹ kọ.
Ọpọlọpọ awọn nkan wa nipa “awọn ipilẹ” lori Intanẹẹti, nitorinaa a yoo gbiyanju lati ṣe afihan ohun akọkọ. Eyi ni ohun ti o nilo lati kọ ohun elo rẹ ni aṣeyọri:
ti ipilẹṣẹ ijẹrisi developer, eyi ti yoo ṣee lo siwaju sii lati fowo si ohun elo naa;
da ohun elo pẹlu oto ID (pataki ti idanimọ Bundle yẹ ki o ṣe akiyesi, nitori lilo ID wildcard jẹ ki o ṣee ṣe lati lo ọpọlọpọ awọn iṣẹ ti ohun elo, fun apẹẹrẹ: Awọn ibugbe ti o ni ibatan, Awọn iwifunni Titari, Wọle Apple ati awọn miiran);
Ijẹrisi olupilẹṣẹ gbọdọ jẹ ipilẹṣẹ nipasẹ Keychain lori eyikeyi ẹrọ macOS. Iru ijẹrisi jẹ pataki pupọ. Da lori agbegbe ohun elo (Dev, QA, Staging, Production) yoo yato (Idagbasoke tabi Pinpin), gẹgẹbi iru profaili Ibuwọlu ohun elo.
Awọn oriṣi akọkọ ti awọn profaili:
Idagbasoke - ti a pinnu fun wíwọlé ohun elo ti ẹgbẹ idagbasoke, a lo ijẹrisi Idagbasoke (iru orukọ iPhone Olùgbéejáde: XXXX);
Ad Hoc - ti a pinnu fun wíwọlé ohun elo idanwo kan ati ijẹrisi inu nipasẹ Ẹka QA, ijẹrisi Pinpin ti olupilẹṣẹ ti lo (iru orukọ Pipin iPhone: XXXX);
Ohun elo itaja - kikọ idasilẹ fun idanwo ita nipasẹ TestFlight ati ikojọpọ si Ile-itaja Ohun elo, ijẹrisi Pipin ti olupilẹṣẹ ti lo.
Nigbati o ba n ṣe ipilẹṣẹ Idagbasoke ati awọn profaili Ad Hoc, o tun tọka si ẹrọ akojọ, lori eyi ti o le fi sori ẹrọ kan Kọ, eyi ti o faye gba o lati siwaju ni ihamọ wiwọle fun awọn olumulo. Ko si atokọ ti awọn ẹrọ ninu profaili App Store, niwọn igba ti iṣakoso iwọle lakoko idanwo beta ti o ni pipade jẹ itọju nipasẹ TestFlight, eyiti yoo jiroro nigbamii.
Fun asọye, o le ṣafihan profaili ti olupilẹṣẹ ni irisi tabili ni isalẹ. Eyi jẹ ki o rọrun lati ni oye kini awọn aye ti a nilo fun apejọ ati ibiti o ti le gba wọn.
Apejọ
Lati jẹ ki o rọrun lati ya awọn apejọ sọtọ nipasẹ iṣẹ akanṣe ati agbegbe, a lo awọn orukọ profaili bii ${ProjectName}_${Instance}, iyẹn ni, orukọ iṣẹ akanṣe + apẹẹrẹ (da lori agbegbe ohun elo: Dev, QA, GD, Staging, Live, ati bẹbẹ lọ).
Nigbati o ba gbe wọle si olupin kikọ, profaili yi orukọ rẹ pada si ID alailẹgbẹ ati gbe lọ si folda naa /Users/$Username/Library/MobileDevice/Provisioning Profiles (Nibo $Username ni ibamu si orukọ akọọlẹ olumulo ti olupin kọ).
Awọn ọna meji lo wa lati kọ faili * .ipa - julọ (PackageApplication) ati igbalode (nipasẹ ẹda XcAchive ati okeere). Ọna akọkọ ni a gba pe o jẹ ti atijo, niwọn igba ti ẹya 8.3 ti yọkuro module iṣakojọpọ faili app lati pinpin Xcode. Lati lo, o nilo lati daakọ module lati Xcode atijọ (ẹya 8.2 ati tẹlẹ) si folda: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/
$Method - ọna ifijiṣẹ, ni ibamu si iru profaili Ibuwọlu ohun elo, iyẹn ni, fun Idagbasoke iye yoo jẹ idagbasoke, fun Ad Hoc - ad-hoc, ati fun Ile-itaja Ohun elo - itaja itaja.
$BundleID - ID ohun elo, eyiti o jẹ pato ninu awọn eto ohun elo. O le ṣayẹwo pẹlu aṣẹ naa:
defaults read $ProjectDir/Info CFBundleIdentifier
$DevAccName и $ProfileId - Orukọ olupilẹṣẹ ati awọn eto ID profaili ibuwọlu ti a lo tẹlẹ ati pe o gbọdọ baamu awọn iye ninu awọn eto okeere.
$TeamID - ID oni-nọmba mẹwa ni awọn biraketi lẹhin orukọ olupilẹṣẹ, apẹẹrẹ: Olùgbéejáde iPhone: …… (XXXXXXXXX); le ṣe ayẹwo ni Keychain.
Nigbamii, ni lilo pipaṣẹ okeere, a gba faili * .ipa pataki:
Bayi faili ti o gba ni lati fi jiṣẹ si olumulo ipari, iyẹn ni, fi sori ẹrọ lori ẹrọ naa.
Ọpọlọpọ awọn iṣẹ wa fun pinpin Idagbasoke ati awọn ile Ad Hoc, gẹgẹbi HockeyApp, AppBlade ati awọn omiiran, ṣugbọn ninu nkan yii a yoo sọrọ nipa olupin ti o ni imurasilẹ fun pinpin awọn ohun elo.
Fifi ohun elo fun iOS waye ni awọn ipele meji:
Ngba fifi sori ohun elo farahan nipasẹ Iṣẹ Awọn ohun kan.
Fifi sori ẹrọ * .ipa faili ni ibamu si alaye ti o pato ninu ifihan nipasẹ HTTPS.
Nitorinaa, a nilo akọkọ lati ṣe agbekalẹ ifihan fifi sori ẹrọ (iru faili * .plist) pẹlu aṣẹ naa:
Bii o ti le rii, iṣafihan naa ni o fẹrẹ to gbogbo awọn paramita ti o kopa ninu kikọ ohun elo naa.
Ẹya ohun elo ($AppVersion) le ṣe ayẹwo pẹlu aṣẹ:
defaults read $ProjectDir/Info CFBundleVersion
Apaadi $ipaUrl ni ọna asopọ taara lati ṣe igbasilẹ faili * .ipa. Lati ẹya keje ti iOS, ohun elo naa gbọdọ fi sii nipasẹ HTTPS. Ni ẹya kẹjọ, ọna kika ti iṣafihan ti yipada diẹ: awọn bulọọki pẹlu awọn eto fun awọn aami ohun elo bii
<images>
<image>...</image>
</images>
Nitorinaa, lati fi ohun elo naa sori ẹrọ, oju-iwe HTML ti o rọrun pẹlu ọna asopọ bii eyi ti to:
Nibo apiKey и apiIssuer ni awọn iye aaye lati oju-iwe iran bọtini API.
Nigbamii, lori aṣeyọri aṣeyọri, a gbe ohun elo naa pẹlu aṣẹ naa --upload-app pẹlu awọn paramita kanna.
Ohun elo naa yoo ni idanwo nipasẹ Apple laarin ọjọ kan tabi meji ati lẹhinna yoo wa fun awọn idanwo ita: wọn yoo jẹ awọn ọna asopọ imeeli fun fifi sori ẹrọ.
Ọna miiran lati ṣe igbasilẹ ohun elo nipasẹ altool ni lati lo Ọrọigbaniwọle-Pato App.
Lati gba Ọrọigbaniwọle-Pato App o nilo lati lọ si ọna asopọ ki o si ṣe ina rẹ ni apakan Aabo.
Nigbamii, o yẹ ki o ṣẹda igbasilẹ igbasilẹ olupin ni Keychain pẹlu ọrọ igbaniwọle yii. Lati ẹya 11 ti Xcode eyi le ṣee ṣe pẹlu aṣẹ:
Bi iye paramita -p o le gba iye $AppPswd ni unencrypted (ko boju mu) fọọmu.
Bibẹẹkọ, bi a ti sọ tẹlẹ, lati oju iwo iṣẹ, o dara lati yan Key API fun aṣẹ altool, nitori awọn ẹya oriṣiriṣi ti Xcode ni awọn iṣoro kan (“ko rii” Keychain, awọn aṣiṣe aṣẹ lakoko gbigbe, bbl).
Iyẹn ni gbogbo, ni otitọ. Mo fẹ ki gbogbo eniyan kopa ninu awọn iṣelọpọ aṣeyọri ati awọn idasilẹ ti ko ni wahala ninu Ile itaja App.