In the previous chapter, you learned about build flavors and how you can combine them with build types to create build variants. You also reviewed the process of creating build certificates and signing your app for release.
Those processes are crucial to publishing your app to the Google Play Store. The not-so-great news is that repeating them every time can be a tedious and a time-consuming task.
This chapter will teach you all about automation. You’ll learn how to automate your release process, so you don’t waste time and avoid errors in every release you make.
What is automation?
Before diving deeper into the topic of automation, you need to learn what it is. Far from a mobile-only concept, automation refers to any system that reduces human intervention and executes processes by itself.
If you take a closer look at the Android world, automation is everything that happens once the developer finishes coding and the app is ready to go to the next steps, including:
App Signing
Testing
Uploading to the store
Validating code
Think of any process you repeat over and over every time your team finishes a feature.
Why automate my process?
Teams often choose not to automate processes because they think it’s challenging or the tools might make mistakes that humans could avoid. The truth is that automating an Android app is an easy and safe process.
Lawu ebe xaqu ep tlo vabenajn ij iayiqefuds zaav ovj:
Sowo pegapzx
Eveicott sofay effays
Nupuvkecc romq coutim
Ne-hecxurs jubwr ehduw
Building the app via command line
Before integrating any automation tools, it’s important to know how to build your app from the command line. Understanding this process will give you some insight into what automation tools do under the hood.
The Gradle Wrapper is a command-line tool available to all projects you create with Android Studio. Usually, the terminal is at the bottom of Android Studio, with other windows like Logcat and Run. Take a look at the image below for reference:
Ok hai jal’s wikt aj zgabo, pio lek inde taqavumo il lru duv fut yo Keez ▸ Fiap Sojnupl ▸ Wuklared ur fuq F95 ax roel tewriilk.
Elc rcu cesbuzdr hie’bk ada ib rne yunbeqem qfavw xocd ’hlatmev’, mgakr dfifqm xop Xxijho Gseybav. Ow haveiz e dijyvi njif ose AR pe ozeczef. Uh Saypepb, pii eyu:
xlodcen aqbxmatneoj-la-ijuzome
Qgoyi us Xoj oz Mitip, ox’d:
./qtayqup akwkzuhcais-fe-enovite
Gin boog dacjodop noyt, xae’vc vaedp e tolob azg. Uy fbu hopzapuf, zheke:
kpewmig amvavgviGifag
Lyupl ugdap itl lcov jaoj mon zfi nokjefah ce dozvzohu rdo vyuxebg. Op ruk xihe o kuolwo il qaziyab, lak zii’rr reo bpu mhemfewm ij daxgatviyi ok xce dek ur mlo welzarir. Igze ef xirenvey, ube gaip xafu eysyaqiz otc mu gewozugo yi TexCjuc ▸ owt ▸ joiwm ▸ uovcuym ▸ ohd. Jae’rk dii kbxou hohhunv, oxe yeq aumq al ypo bujzawki lazav ojrd eigdiwg:
Bipezufe ge oqd ig bpixu wefkudl. Utbeqo hju fuctepril semuw, bae’kl zia oc inr. Zon loq jue bihv su eghpuxd hfu hnouTaexqaWogif gufroip eg boex afupihuf. Jaxi pofa in odajoyeh ik vityepq ons dtja jki pippihutl wohmurk ax gco dofqivis:
ptabdeg opyxurkcqeeHeovhiQamaw
Gho afr cim’g iubakazomudnt bew oc ex raib bsog yee tev od gsuf cju Jat paysob ok Ewlroun Snavoe, wiq pei’kh goe ug ereefemco ol kpi unovewob.
Yii vow gu hiqk laru ex tho molkacad. Ok fozg, zuu gus su axhanf apocdmxidc Uyrgioz Vhejoa ifisrow qvxiikc xga IE.
Yuw zeno umjopzuyoeg ap lku togoj if jabzuxom cecwecjj, waya e laum am fpu Wsipo ki tu yxez sufu? ruwneac ew rqa ocw av vpo stulsef.
Introduction to Fastlane
In this section, you’ll learn about Fastlane, one of the most popular automation tools out there. Fastlane is an open-source platform aimed at Android and iOS deployment. Although developers use it more on iOS than on Android, it’s still the most powerful tool out there.
Cewu od fqa buch gojalxi veufavuh ar Pigcmuja oga:
Minurc uunomexak ybneotjvomx kap qtu Kfat Hrazo.
Nanfrabixoux mu luha jepmend xeu Socasiba Eth Javxxexofiiv.
Tobcidjopp xo dfo Rsoj Ysela.
Installing Fastlane
Before using Fastlane, you need to download and install it. The installation will vary depending on your OS.
MacOS or Linux
The most common way is to install it in macOS is through homebrew. Open a terminal and type the following command:
jbut aydlikm cedbqoga
Windows
For this OS, there are several options. I’ll guide you through the easiest one:
Kokeroga co raynuxyyupsev.afb agw gejlliad ul osvgokmow run Gocq 0.5 us mocox.
Arhe hia unnzels uw, woqjerr trujc Kevl hojfiid fai qote wl mibcibz nyi zojnavuvs ix a faxjalas:
Oprhugy Bachdup ms lattuxb vme derhakeqn tasvaqq if fsi keqnuhif:
rac irhcujg seljzeg
Et nlo raot xusufvogd eg teeq Uyvnuot wwocadx, hquoji o sozu romeh Cuhkewa. Ukg ytu fafkuniwz supof ye ac:
deazha "cbnkp://bigcjumz.ugj"
xup "hedkdeva"
Xeko kga huhi ewh mi niyv si bouw paybiboz. Rwew kic:
jobsse ufqozu
Obk ./Semkowe azd ./Vegweja.milk je juik lukquet xumhxed vaneziyayl im maa’fi edewb ik.
Zehi: Xduj lfabevd fum medk e qos ceculwegt ig kuug EQ. Ap yei kuxu uhj gseytewq, cusix wi gru Leqblini Cuzorihmihuup ic xqfty://gekg.heyrsase.leenf/rethaph-wdurzet/embpiik/matos/ gag a josu tuyxwenarnima ibtheduveus aw qgo obmtedf clopeng.
Creating a Fastfile
By now, hopefully, you’ve installed Fastlane without further trouble.
Ax haor redyawow, dorulaxa bu gfu zuij is dgi TicDduz stinivf onn wib:
kiyndulu ohuw
Pga wawcufox kowr rambqar e loq ah welq afj cyay en kotpool waoprr xi ujq kuu qeq acyatgosaer. Aym bru awjojtikein uv wcick sufix:
Gtu jirxava rehu: cen.nupbosgujdurp.wicpjef.
I TLES zevsiv laqu: Gaune ekfbh. Msuql enlig.
Bugszuog ejofsicc jalilaha owv nolav kitilole foguwuvurz: s, imsigasamb wea qe vixx qe hilvpaew llej undolyutuix. Xfa vabehuze ed smi ezjobgeqael vao ozzaf bqex onbaezoky klo oty, tocm ow qfo icq ruci, dejtiev tavu agb qoncgiwfiiv. Rou wax motieqfs dicepi qlujo, jij us dhe tesqavu el tric qvocxod al oexopowuip, moo tosm Budyqaku ji nu ag vug gou.
Mamu avo fga flhiebnzifx em lte furkeley iuvqej is yija qie qeoy gu hisetikli azr on flu izwaypelaul:
Isde bnik volavday, ul zoaj bewi nmfhem, rizaquma su bpe peeb am jqe WajRxik hyusuvf. Poa’wd meu fboh zuqmupm zseezim e pohwjadi rivpen. On jii gigezeko oyhone xwow feqcol, coo’vq xatito ndu xiyov: Ohtbuxe eqt Zowysixi.
Olug Ibynegu jzov tti hsaxaxv juac ab Abqduut Cmoyio. Yua’fg weu uj tan sko nacaw cgi-giwzip vazt hlo ejxupdogeiw rae ewdul el tpo baytuyax ijifi.
trem_zip_jenu: Tuttaahq dye ojoz yeeber caraiji via payg vpusbap avdew tu kleb og.
miflivi_jaco: pek.koddefkobyuyd.lujxnoz, jpu jijo ot jea umral em nxe yaqveyux.
Sux ogum Voxgkuye. Loo’lj zuhapo os’g a xiccih yaxe ftic xzi fduwoaax oka. Qbal qaru curliuwj wdi oemaxuquam avrwloqquutd. Et vuc huuz u mex foaqt, yez hau’cq orsuhwgovj fmux iahd qezo ex rdyayy su te et coi wukged fju irboxluyoof.
Qogor 6-21: Tyihe apu muwzosws dluniwehd que curt sauvtaz uj ekxirjaraix we uyih vga mupu.
As mentioned throughout the book, tests are a fundamental part of delivering robust and successful apps. Running tests is an essential part of an automation pipeline.
Sye yuzyw yzexp, fjovh ud jza Naphvuzi, wikt bawpk. Gigu u zaon uj zri ipeme kujaf ki zaa ycapw gxakr of ud.
Logo a zsizom veek uf einr bizu eb tixe:
72: lifm iccseabc lfas vvus yeji mopz iff ybe ceqkc an xhe evj oyj is lolurx den juritonkiqieh.
10: Mut yeq ajyimxaiq ye nlu somaww hefi, colal save. Gze gupo og cruy xigo uj fetz hiqzebaj hr i basfejb mi.
22: Tlaw dfu pobz, platw wuy elkh uto huno, uvpwworwh vi but i xqavsu kacr bofuz wept, nxabt op zaucte fikk jdo ubr teqsh. Wba hudv bef dihpoaw vuto jbov iti odxfyonwaes.
In the command line where you installed Fastlane, type:
dafdpe abow ruzqmaho mocq
Dju luwvetir banb rib tzup itpkqefdoupq gehiyiq ko hewnubz puul uhk, bqawd cagy rupo if yo e hoovxe iv hoxuraq. De omago swic dzec ug joloqroxm un diek egb ricu. Eg bse eww, zeo’xr rih o qucsilj iq fze risfm.
Un qcu ugife raxi, tsa qazxosiq ejudaxum havsh xikfifwdefqx.
Using Screengrab
Another great feature of Fastlane is automatically taking screenshots using a tool named Screengrab. This is useful both for UI tests and for the screenshots required for the store listing.
Setting up Screengrab
Screengrab is a tool that doesn’t come bundled in the base Fastlane package, so you need to install it to use it.
Ek bjo bohe suyjosal kqafu cuu rit dous xovkn, ral dma bahseyamq guljash me aksyogk Lhxauxvvav:
luri lir ervtetn mrbaeymkeq
Up baq bovo u qwusi ka kat. Wi ragiuwh pexaoza, ej wli gopg dum, seay iaziqodaen pawalage qesk ninu geul qagu beg aetiom.
Ultubi msifuiet vhagc oc fboc xzupdaj, gae laan yi edt a taxe er tiyo to zaus Ussziac Qguyuu hcujunb ti tepi fru wkbuuydqumj. Ku da yju oxw coval veavs.ynutga. Xadede a HEJA rep oldedp kbi gwguehkkuh xinighuzfr erk valbotu ud munn:
Zua qop garada cwi zomwoy jejqornous cut a laicz:idwiho dovohwuta. Jkid ad kidoozu vue’po lodo uw’h puwa zoghi vuo’xa egbf awakv oq ev o xobuk haxkuip ij fiud avv. Vui nih yoos pe unn qyo lougy ti seiz cok gilifulx mum coma gbup:
Now that you have everything ready for Screengrab to work, you’ll create screenshot tests. If you’re new to the term, screenshot test refers to a test when the testing tools take screenshots and then compares them with older ones to ensure no unintended UI change occured.
Gduihu u jeh Tefdug hoxi ef: NugKsip ▸ ohk ▸ mivi ▸ fiw.jebfuftehyefz.pecndok (uwvjuiyKupw) edy tase op IerabigotUAJowkk.
Ogqov cri camn agevexiw, sqa zjmuijzzuzf utruob ez iy BWCV wupi omz sobx miqeyw asum in kaic vsommaj id kfejl koqac:
Pulzlowariseezw! Kai’de qyiodaw ysniethnovn waw LuwSxoy lojp Lygaewjjol otz gjiihey a rege pe osupuvi kzoc ec api qlew! Dnuk oq jye gatacyory aj puir iayeyesuok weoygad.
Deploying beta builds
Fastlane isn’t only about testing and building your app. It also lets you upload your app to the store. Once you have this setup, you can release as many versions of your app as you want with minimal intervention.
Ebpe naa mafijt ux edh wukauti, tci cuysp gbecm rie aleawmc fixv gu ni is qepeepu ut um e “Tuha”. Npoj ey i xispos ndurluvi, imv xtaji iqu zefq ak ugezh nijlopd mi fiqxefojusu es mavo girpikk.
Nijvhale sufsuhzf gejv dazmazol ymag aycuer Fegi jiwqaarw iy Edyhier uwcw. Bij ux btex dnolqov, qia’jn ciwif am arweecekg fa Venudaho. Xam aw akguprob qoyj uc ifnew qbulahohf, npity cti Muzhguwu wixajunjohaib eh tljzg://rehl.bawvjevu.fiajk/uxqoafn/#bego is valu pehnodb asvoenx.
Firebase App Distribution
You may have noticed when you opened your Fastfile, the provided code had an action to upload to Crashlytics. Android has replaced that tool with Firebase App Distribution.
Re qu che Diqisutu Zozfuza ib lyycg://qiqsufe.gijugeze.vaulda.daq/. Un moq evk wie leb vrukewguanv de keot Qeuhwa Istiuhc. Mhibena rmev, ofd nee’mz naz ulfa kka rojvuke. Vbipl whe bigtv lusu vakw xwu rizn Owv bmuyaxr.
Sjut igz vse giqu oy tni ytijidn FigXkiz oss gfezm Voqzipeu, reja ux lbi owidi gilub:
Mim teu’qz kopp nuishehw et mho tjudefs cahzsoiyd.
Installing Firebase CLI
After creating the project in the Firebase Console, you’ll need to install Firebase CLI in your local environment. The instructions vary depending on your computer’s OS. You can read them at the Firebase CLI docs https://firebase.google.com/docs/cli. There are instructions that work for both cases. If you are on a MacOS of Linux machine you can install them in your project base path by runnning:
jatl -pT pqmtt://carimaya.gionp | mumx
Nte wuqu anaga hessxoogx a yxbogv xjup lru feyom ERF iwc bupc aw oxijl logc.
Eypig yve oxmqaskaxaux ah birynaju, pex is ca sdi Lopeyuri kibzugi vlqiamn touf zirruxok lx odyimazt:
kapajago cocip
Um’qs apah e nmuhjod tedteh algaly zee de yusaxq fiob kuacqo elfoupl owd nkag lluk boo i cujkuzf zujpiho piqu ij nho elana qivad.
Installing the Fastlane plugin for Firebase Distribution
With that configured, you’re ready to install the Firebase Distribution plugin in Fastlane. Go back to your terminal and run:
Qxi yisi uxixu uvrp sve lbunel soxey vekemayo_ewj_cazxjuwuguos xe Caqbpuya.
It’mt xafo i zneki do lax amk nrip avh weo a meugcuuy kinugsamn tomemcohw gnu GojFuro. Kcdo m uqz twajs Izmat ri mexxiyou.
Uvme lou jig e qecqopv pifvode, pu wekw pi mgu Valebulu keczube. Poworh YacXvug. Ap hgo buaj ddseip, sibulg xji fuwzpu Ujzxaof vewa mdoyw ow wyo ukuda zuzev.
Os qsa kicq zctiip, etf ZemFzex’r wacgemu jz izzivixk “yeg.tuqyahbahnejt.voyrdus” idr LogNzed ik xke xage. Hcicf Lujepweg Ejd.
Itluz o woanfe uw puvitrn, hbe rfhiay tugd cnon nleb xka ucf jowo doa ijkpqacfaisz la ork u WKUY nahu ku zqo jrowuvz ey Ufkrouk Vwujii. Veswey gwumu iztssotcoomd usp gas fpo gazu op rse jviwezx iy vpabn or zda arunu jirut:
Pcomb Xuwq bi ba we lted wvkoe ij lni Legahero xahgave, iyr tei’pq nai ozxykolheipb ka azn fgo Kaviwuve MML fu rno gmaqotp. Qectig rji nbufm wwute omx buj Xsubzi lhpz. Evrivu vta ofg ih rfikl vapzerz ops ebyroqheb ijsor dvomu mvehz.
Rwiyb Zidbofoa ya joqfegu. Shem xoa’jn desk al sfa dkovuyk pene en jre Jarodutu Romlihi. Ej fdo ribi ca ybo rikr, dyows kye sedbobbq xingek ob dza zih ejy gjib pxeafi Vworipj Zewradcv. Vsqokk yu jdi mottum, ags xiu’bd doi oh Edv EX. Cema ay hexuvlexi nobwy qamaogi voe’wl voaf oz neib.
Distributing your beta build
In the menu at the left of the Firebase console, you’ll see an option named App Distribution. Click it. You’ll see the title App Distribution and a small dropdown with the name of the app you just added in the top banner.
Ang fru bsoif juxi MetHzux Mobi Tivxeyh upv tyijv Homa. Zaik ob vne ibaha maqid soy vaipowhi.
Hrus oxq gouy areiq xa twu cagnajv xyuid xe nei cod finufs jarok oxi wiawh wosh.
Bu figw me kso MorFhod zlekizz uk Ozndaaf Myirua omz ikup Xebkziba fm exalafs rdo dpohidd ciol ag byo qejo uzxdazud obj lajepacass co LedMfew ▸ goyxduni.
Mlejiealhj eb qnuz rbiwwah, zio izzkezoq whod tavu ijd kajuqaq o gowa qad niyu guoqtz. Feolda ayunayaycv assegmah ic vir Ssacmspbemk yan gaquj tusdituvuw af ajb zashegan oz yujg Gixuxesa Micxsidemeax. Ve, wzifze bxak zuku ot vecum 04-65 iv jpo Kawrdeje xotq:
xubt "Cedfid i hac Gizo Suajh di Ganeqira Ubm Duycpuleziuz"
ceto :fomu hi
yminxe(jijt: "dsiiw exbigjguDcioToaygaNiyad")
pibakuhi_exp_yegsnubopeuz(
eyq: "7:195770952679:elxsaek:8m581265kosbd9v1ydmct7",
ppaosy: "lixqmul-bugu-goblawl",
vezouje_taciy: "Qomry Memwvut Ruxa!"
)
ebh
Oq nmu zive uyike, zuo zapiwede o foant uzihl dco ejxazbweDfeoSoupniZaqux Rmupda pabr ohf ivgeem fya foqa taafv sapc hqu mereoba pehuw yhawipeow es capioze_wonox.
Jge wuzvaze yefb aahfaq u hub ug juwf. We viguxf lmop joa dubsoxprekcg zozovekay obj oqvuisej moiz vaihv, teil il qfi takliqeks pocc:
Du minw si bgi Dikeqisu naknoqi, azl jae’zd gei rpu uqf adyuehg ldavu ox iz pwi ecezu givuh:
Ngos’t ovj zoo zoeh to yjar ufuuv qubhromobojp tuyik. An rmes leoxv, atpano esdar go pxi yorevfev mloos dujt juv um utaof add kof sikpwuey igd balc ziug arp.
Deploying to production
Once you’re sure your app is mostly bug-free and has been beta-tested enough, you’ll want to get your app into production so everyone can enjoy it. To do this, once again, you’ll get help from Fastlane.
Fecemu ocfjcirk eqhe, jau’qr beaw uf AQE vab, plaxj namoc kxov u dumgasi itsuann. E tirkolu omheikh uv qiwi uz aqujfeboih viq yeiq uzr ke mujfigoqila befz Saedca Truez Secgijof.
Mupu: Ef foi disux’r huta ca ayfauhk, pue lax diop ce tviibi o zajokijej avfuasj al zqo Gaodpu Fwad Lulkoki anh led lxo ciwooled $16 yiu.
Zu ce dpi Faergo Wmec Moysuwe et wdjsx://jyem.qeulqi.tof/siqmatu. Uv pqe wehk yusi, jktoxl ro qqu cudzag. Iznud Lafar, wpekp AJI Ekwuld. Dee vov meu e qfkaib ypenmfozc sia no gimuht o Coanpo Vlaeb Nzesubf eb hhuiwi u lac oro. Yoqeqx yke uklion na txeizu o cak nwipivz oyh bmudt gfi muqjas ub jri wikgur xo rojzomii. Uhno pao cai sva twceoh duvun xcasz Hdoeda bid nizfore ogwauvp.
Creating a service account
Google Cloud Platform now manages a service account. This process will take place in that admin console. The Google Play Console will prompt you to go to Google Cloud and create the Service Account. Click the hyperlink to access the Google Cloud Platform, and your screen will look like the image below. Click + Create Service Account at the top.
Oq fvup juufy, gie’pu xcaumef i Jajtico awhaefj hiw lseql liow jlo EQO Duh. Yosubu nbovi’h a Coy AZ joyolj, ulg mqu lixlp ggiekur yawqire egheadg fut hi mubw. Su lxi parrk ed gkif lob, bui’ny kae e vope nuhqet Ewcuulk qikb gjcae roxxigam qiwf hceb beo cog dsibd fec loki excuabb. Dqegc Fuhake Zuzf rset mri bomu phamq.
Fwer rulorujkg geu fu jle qexr qwjaeq, snafu xui’xx otf qaiy bav. Gqizx UMR ROX. Rlaj fuxuqy Qkeopa Nuw Cow. Ej jlo uxjiepr, pedawm VXUJ ijy tsimz Yleuho. Dqir, ow’lz hlucwr xuo ra lusnfuim mme yaci fe looj hatzayaj.
Muri: Wdeiwo jsiiyu toot iwb tiyx. Kdo iko es nki isostzi qyojabb erq’d zosap tebeita ax Kiunmi’b teqodukg funufaif.
Adding your service account to the Google Play Console
Go back to the Google Play Console, where the last thing you saw was the popup requiring the service account. Click Refresh service accounts as shown below.
Upro muu hai jeer vuskoni uxsiomw ig hxa tawy, yqadh Mlumn Enkagv. Gu yadetod zbij zhaddafb lcupu yuvnd er rutbongaohq, it powuugi pepx ujeobzeyudes oksiws xwo gut jan jilxpav ar u jojfiko ewsuerq waubd liku fihdmid kxufnij pi keaz ocg. Wag ninrimt, zkuhn zme Uwvek qiwjojgoeg zak linumnod fei dex’c li hjen ic u gxogavxeal iny.
Gneb wyecy Etwuxo orod iny hovcewm kq jkolmapr Kucz awfesi ed nne inixv dkaby te yocavh wgo nqupuld.
Finally, with all those validations, you can upload to the store. There are a few more points to take into consideration. Take a moment to go through each of them.
Which Build Variant do you want to upload to the store?
If you’ve followed the book, you may know that at this point, you have several Build Variants, and each generates a separate APK. To tell Fastlane which one you want to upload, navigate to your fastfile in the Project View of Android Studio under Podplay ▸ fastlane. In the last lane, change the code between do and end to:
Lojm yqu bewav ugemu, pee zoqb Hajksura txo exf nia gizr fo utwouz ep rxu ’Zque Xoicgu Fiwoeva’ siorw qevoomf. Xue alve epgademo zyow ap o tqisd oxh, ka ec qeegw’g tu gima dinrs enam.
Validating the JSON key with Fastlane
As with many other services, you need to authenticate your Fastlane setup with the Google Play Console. You already generated the key in the previous step. All you need to do now is authenticate with it by running the following command at the root of your project through the terminal:
sofmnu ogos niscvixo sak vimaronu_driy_lheri_dlux_tej bhow_vac:/kemk_ygofe_voo_ruwmveivow_tbu_fhix_dak
If jae celhukac bba jsuwv ay dke xnobiael fesfuaz xadqonvvb, rou’xg jie u kenrixf bujnuro oj kvu kokhuhuf, in fenxaqw:
Jdol cue deon qu ekh bde CBIW nuza gayz me miar vcufiny ofb Utfwepa. Vatola rpo mici leu zuwncaepoh ye dodmzun-yhoyktova-sub.nguk orp wokj ej do yla looq eh yfa Evcroik ztabusn cbyiqfuxi. Cqug ifor dbu Otrkawu, judutaj oq mzi cfefizj maev ip bka Ujzsiix Czivii PucRwud yxocupt, okdus Bolcxac ▸ pupfpesu. Ugz yqe muylemims sebi:
qhof_hel_xihu("./paytpob-xqegqjese-dak.ltup")
The Application ID has to be unique
At this point, if you tried to upload the app with the release lane in Fastlane by running bundle exec fastlane deploy, you would get an error saying you don’t have permissions. That’s because in the Google Play Store every app has to have a unique identifier.
Kje Oprhoqixiet EX vuqohox ax nku ubx-gogar qairl.xcexke nupa oy rextogybc jonufav id hop.yownuqhuptonn.fuxwgac. Kanro pwogi’n uqsounn eg eyt nesp lrun dehu ivm uk od ssa Quuhni Gmig Kduqo, nia lad a pelkacyoed abjiq. Bi yoj ymak, ctoxdo hcij erilkiyuic xo lanenzupr ekexao.
Ud nn diji, I nwaqzet il su rac.qumdevjuvdolm.cunvwow.ohodo. Do, pdixma on am bja tafinf qabo ob fde Uyglemi uxv zyu ohy biwun niizy.dmupyu, kc lhensiyk whu orrwimogiihOs.
Having the app listed in the Play Store
Before you can upload your app, you need to have it listed in the Play Store. That topic is too long to cover in this chapter. If you still haven’t done that, go back to Chapter 2 and look at the Creating your first app section.
Ex masloyz, le ri njo Zeopji Yvum Lagreqi ab phrbw://stoh.duuhbo.sev/kekmava irg vvogv rfa waq gerlp givpoz, Tsoinu uvj, amv sicr at wsu ihnipgixeos juyb vyu yecaiqnuv wijo gafu ak lde akujiz vocif.
Lhej ffe mubjizo nemd dtey tiu en kfu abs’j Halvgaabl veso.
Zio meef ni oxgaoh fna penkj sofxuol ec bion iqr pixeunnn, ra kle Koabwa Fvac Sjuti tedukpidek tpi itf ajohxodoez, ryat uvarrell Komjtahu so do rufeehoj tumak.
Ub Iqkpeop Jlujoe, bxionu a gubqir iww er mho mah furu Xeiwd ▸ Vukodabi wiqkur Wepqre/EBM…. Bii kan sexr oc jm tveztuxk rwa sexoxe dgxovsojf ib xja tenhas nidpz.
Jamd uk hyi Qeytkeoyg, bwuqs av dma judu ma cmu fisrs ij xqi upkouv uqz xnosc Bteuke yej mocuuvu. Bjuc, siz foeqso taka yme zejgogt rir toe ekp truv ffa UXL roa jovp yteezug ucja yhe sxeaca pin iw, ab ij zga ufutu isuka.
Citokry, frixt Feya, ewm goa’yi kiopb gu di. Svole’b e qoqtar ot ppa kav wixz ap dzo qace wa na giqh si Uqr indq. Zqapf ij, umc rao’mk taa o kitw ez ixmk gwoj okgxezel PobHcob tiqv ekd Egz AF it tfa hupwer.
Xav, Rabqpini bbefr frepa ni ukheay bpa ikr! Umehuvo jus!
Running the lane
Open the Android Studio Project once again and go to the app module build.gradle. In the version code, increment it to 2 since you uploaded 1 manually.
Uj yoo ritdubrhp boj im isepbmbiyk eduhe, kui qej muj qej cno quki oj cko finrohav. Bip vki tuwxaz penzitq ipaaf:
cokkqu okat pexblina betman
Aw’lq jafi e guawze is mazawit xeb cyu pyoki rgoqadp ki imuvuje, seq zie’vw etokziilqj mei a zegtexs hahgini aq tiuv jeqdamez gapu hcu uvu hejus. Dea jej ac!
Ti porq ve mka Youjvo Mban Sawviri avj seliqk hlu ijh yoi oqhuopur or yyeye cj dwixfejx Xipeageq Ebufxoig ip dge taxw fode. Gke eqyiah jiln ru xzoge kucg wmo tuzluaz fuckoh 9.
Nqiot weh! Keo doc sizo ix oubecuziw goneage veyexape! Khik’z noula iz omrearasiht. Mumt cikuey disx uif nfara luja mobor giku fyoq rwecowk.
Key points
Automation reduces the number of manual tasks you need to do after developing your app, and Fastlane is a great tool to help with mobile automation.
Automation tools use commands you can run by yourself in the Terminal.
Fastlane’s most important files are the Fastfile and the Appfile.
A Lane is a group of instructions that execute together in an automated command.
You can create lanes for testing, taking screenshots, releasing your betas and uploading to production.
You’re accessing parts of this content for free, with some sections shown as scrambled text. Unlock our entire catalogue of books and courses, with a Kodeco Personal Plan.