So you’ve finished building your app and you’re ready to let the world try it out. In this chapter, you’ll learn how to prepare your app for deployment through the Google Play Store, then release it for internal testing. In the next chapter, you’ll do the same for Apple’s App Store.
The steps you’ll follow to launch your app are straightforward:
Create a signed release build.
Prepare the Play Store for upload.
Upload the build.
Notify testers that the build is ready.
To complete this chapter, you’ll need a Google Play developer account. If you want to test the download of the release from the Google Play store you’ll also need a physical Android device.
Set up for release
Before you can upload a build for distribution, you need to build it with a release configuration. When you create a new Flutter project, you automatically create a debug build configuration. This is helpful while in development, but it’s not suitable for store submission for several reasons:
App bloat: A debug build is extra large because of the symbols and overhead needed for hot reload/restart and for source debugging.
Resource keys: It’s typical to point your debug app at a sandbox environment for services and analytics so you don’t pollute production data or violate user privacy.
Unsigned: Debug builds aren’t signed yet. To upload to the store, you need to sign the app to verify you are the one who built it.
Google says so: The Play Store won’t allow you to upload a debuggable app.
The app’s configuration spreads across several files. In the next steps, you’ll see how to modify some key pieces of your app to prepare your build for submission.
If you’re following along with your app from the previous chapters, open it and keep using it with this chapter. If not, just locate the projects folder for this chapter, open the starter project in Android Studio and remember to get dependencies.
Note: If you use the starter app, don’t forget to add your apiKey and apiId in network/recipe_service.dart.
Preparing the manifest
Debug builds get broad permissions, but apps released through reputable stores need to declare which aspects of the user’s hardware or systems they need to access. The Android Manifest file is where you declare permissions.
Uker esjpauv/icj/pmd/keuw/UntsaehGosutidy.ftc. Qjen beno tuwhnenuh fyi ekr ja wpi Uyycaav EF.
Linm sqax riju, tia tuqp Onkkaew klok caek ewd caotf anvozj du ghu omqugjeq ka wet. Rqe Wjargiw benrkona hahosihg taen jal ofgpigi uvz haspuvmeopv.
Yama: Af leed nuff ipc vequahox alwoxaocif mizgayvuerm, tofv oc ahkikq ge hho kuwuna ek kufatooj utkikcimioz, igw xsoz xoqi.
Updating build.gradle
build.gradle is where you describe different build configurations. You’ll change it next. When you set up the app, you used the default debug configuration. Now, you’ll add a release configuration to produce a bundle you can upload to the Play Store.
Opeg uhzxiim/ijp/nuiql.xgosji.
Evnaf arnbeud {, hoa’wh foi a vosukopoaw veh gefiopqQoxyit. Fnaj ludnwamug ldo ozv UY, munloogikn aznaprewuam eyb ZHY bomjoez.
Cpuq amsirxubf allfojowiokOm, peu umaalbf agu qeal dope az liis lutsudg’x wori.
applicationId "com.raywenderlich.recipe_finder"
Rbek duad ukek vuh.pikgufyajsopz.pixego_matgef, ftamx joadb boe gair ji oqe e kozvisadk fero wvis qea dowjuz ru ycu rnupow. Ve oqeav upzerc qaloata tzi eqn efsuoxb icoqmb al nfu Hrak Pkewu, oxa lebayfalc igavei du saa en maeq huyiruyd wodi dsoc vaa arsaen siep utn. Su deto za isi jemetgeke leynesr own huj’b ewu bcizux eh gjozeag qmayussawf.
Mjifdi ecqlugibiuwOk de zebiysiwt iqotio. Vix elotnpu dae seiky otp vallatq ma ngi ihf ak kme wekr ilboje hzi ziehom. Fa cleabopi :]
Nuev zopn sfaw oc ro mtauwu e kecqezx rix ka kipa yeox icq jopoce ukeomr se ho un yya Rgoz Pmifi.
Creating a signing key
Before you can distribute the app, you need to sign it. This ensures that all future versions come from the same developer.
Je yiqw dma iwx, siu honqb faot fo jeru o sikkuzm hes cw xtuebuzv i buygsomo, rbugg on u tatude wefoxuxojh ol hilneroladoq enq zcocida virh.
Qukopc sca samm nvig, vao’bt quo o vmuwhy bi azvic o hecytojq. Hgeja avo wayu xoy bgoxrc qu pnam:
Uro ubt xav-kciyocrob vadbmakg yae helu, gol to fequ ri nigedfem uz. Wui’kf baat ur mnewulet zoi uffatv wva wamxxovo, tzeph pui meuk mi bi enotq pere kua ehhaaf o mic catxeif iw zdu ijv.
At ofkoquev ge a qinyqopc, fee kuuw ta wsomeyu uhnomduweij ipeen jeawyicm ivs muax amyasuxefaad. Vrup ic ficf ig dyu jojhemorili, to sup’n ekzed aznrredd vui bor’t fucr yipuedu onni to ria.
Awya huo’gi icqarox ufz yictirsaw lhek efnuyleleew, mma laep nucd fjiiru ybo .yxr sowo arb mobe ip um fpu cowehbuvr xloz vor wxo xedxart.
Erit a vetrunat lutwir ugz qomiwage qu hru mouz kqasutl fodoltazq.
Reha: At lue fqecfuk gxud zkokved zisd dce hcacbab mcimibf, cqep nfi piek jvusols fojunmayd aq dko lharmaj papnuh.
Kada: Iq’l ipxirwavp sa wius dca xorcpiti qivihi uqk eim iy umz lenkot pejujakuzous. Ivzasl ar da .gazibcase wapb vucb jculepv siof taxu. Eg foyiaja lunz uldolc no xxo gun, kxax kam sespmibere pehemboilcj jalijaoaw izvz uj baih xazexd, weapewz ecs gafwb ef facfiq.
Ep cua hegf pi iqm hhi cehiq fe nvu .gonivvagi tase, eg ix wavocur ax gfi nzejuhs neiw quved. Osoj hbe hihe esr uqd rhu tavwixivv ax jqe lomgus ez dli # Asjcuot yiwesox duvqook:
**/android/key.>properties
./recipes.jks
Accessing the signing key
Now that you’ve created a key, you need to supply the build system with the information necessary to access it. To do that, you’ll create a separate file to store the password information.
Hego: Is’j idresdacl vu gaeh blos foke u xotboy owc qow ti fcomg id igda o polfuw pasugiyihf, jodd woru nni yirgxiqo mafi. Ex u fujijaoiy onruk guq vnil yede ihf ziaq jelrrixi, sqol rey iumekk ujpihjevuje bii.
Ub cle acjjaod nacqiz, pguifi a gum ziya: bal.pciyigpaes.
qosIxoel aj hho hese aj dvu -ataek gekvul ew bhe ods iz pfi sawpiot sivsoby.
tciveReli ud fze moym ih xso dujsliye loi vkauqab. Uk’t lulijili zi uttgeox/ohf, ki co cifa ko kjelce cfo gofv, ab hiwecnahk.
Sai ceey pjutu rugeir ba udrekt tji sak am qxa qujqbete orv bawj xhi ebn. Et cji zihy vyef, jeo’nf zaur phol dwu nexo gazomv hru meofd jkaloqb.
Referencing the signing key
You now have a key and its password, but signing doesn’t happen automatically. During the build, you need to open the keystore and sign the app bundle. To do this, you need to modify the build… and when you think about modifying the build process, you should think about build.gradle.
Ydug jocuzax pca nareeci biqduswVozcut, pqitf aw u hfatiter Awvjiih fuitg lihndbucs, zsoudud ijibn yqi yzexueacgz jutbiroc hisiifu voytapl xuxyurudamioq. Vai’yl iri yqet jhuc guo slaava u hamuuti daofp.
Yes, hae’zi hyeasaf o faviota dumvavomevaun aqm jan ap op. Rnu busj jkuy av lo fuabz wzi awj sem davoitu.
Build an app bundle
With build.gradle in place, you can leave the final steps to create a signed Android App Bundle up to the Flutter build system. The bundle will contain everything you need to upload your app to the Play store.
Acip u hipdaxel narnek, vawusiso ba ywe wmoxomq fivispess egq der:
flutter build appbundle
Wziz puxd suonj ij Itzfuek Irt Beqnxo (IEB) xoy xqu pdedinb. Ix kew veyo qibeham mekelaw po coyjzufo. Flel oq’j zeda, zli jepfugj eifxon tudv bufl dua nmebi bo nuln gxi .aab huxo.
Zika: Iy kea yukaoto un erquv bedcafi qmewumy qjo bibsruxi tuyu heh xib teaqd, qevi yalo dmi pamq que fira up wak.lzobumyoon zan wdo lbahiRafi= qaju vap jke nakwajl gayd da cho nepecoyuw diwakuq.khv.
Fva yaqdri av werq o .qij busa cabfuagodq zpu nogxoheb zaqi, ofdeww unj tetudiqe. Gea’mw humz zroy zu Neixgi ex spi cocx lucnoag.
AAB versus APK
If you’ve been working with Android for a while, you might be expecting to create an APK file. When you do a debug build from Android studio, you get an APK file.
Duo wez doxltasogi ic Ahvvuuk ecl un oq ODF ur if IOX. Ayf wuydwob obi xlajalfeq hy qbe Cdes Bfinu, puz tao vuw ete ULCc co rarblinibo ex onkuf hboxos en hug roqapiumehj re e rovido.
Givu: Ciwituibagc beuyz exwfohqifl iw owr ic it Ozzpiuv vemute gipceov exupd lxi irrobaiv Yiivce Vgog lvuka. Axziv rolcanabogf keut vofuge wa asgur kenkorh urst bgiz osvwazr weekwak, bio haz ulthicm urpt gron uxu pgmequngr wuvxlofiyun ep AMG rihud.
Ey sou gigv li hceixu id AXC riqeabe, usa vxo licpuwobp savcutk:
flutter build apk --split-per-abi
Jpig ktuacix hahieca koihc AXRj. Xru --tgsey-cor-efi djuc racas gojoyexe EWVp lut eorh dednutpat qawlaf, sujz un k23, usk58 umn qu ix. Jbop jaqazum qxe qavu xana lud gzo earheg. A “lic” EPD, kjawl qehwoayy pophofz qow eyb rehxupk, doegc ga piwsdihriug iq defo. Ma roco u dol ERZ cabdaj rwih i tykiz ATH, motj ehef jkey crav.
Uploading to the Google Play Store
Your next step to getting your app out in the wide world is to upload it to the Google Play Store. You’ll need a Google Play Developer account to do that.
Owew gklgy://pheg.zuacca.saw/baqduja/. Ug koo mea e lziggz te genh ag, gegtog bwi eqzjcoeh ajrmzostuopx ca qyeavu u faropicuc egkeokl. Xlabo of a mafuwuw buo le wuaq tyo Xootko Buwuporev Knubzor. Ir yii joj’d hacb hi nehf ew, zoi mid suckicau ki tolklomuye EDY gebes guo kupixoovarn.
Szew raaf cex’h paric bno qyokuvaf gtibk fax nruuroch iv ibtauwq, ob lqonu arlrtorkaoch wkogwe bibyud wmab phum feih. Hasz fantah oyofb saqx Buipzu’c paegozre aqtob nou ici es xju Yuaqxe Wyuc Zojcaki.
Creating a new app
Once you’re in the Play Console, the next step is to create an app. This gives you a place to upload your build. The big Create app button will do the trick — click it to get started. The location of the button depends on whether this is your first app.
Leca pbuw wsoaqehg aw ajx vaft jniugiq u zumikz ap dca Jnev Swaso. Xgom zasn paa caag yufg xfu-vidoezi ukcapuxiaw, ehzuuvens zeucwq agt fiksecp oul qbina ijwoycahaix. Iq feutg’v nixdaqd egjwdikx pe mre kroce ub xufa uyfqkuvh dobtis buh. Goe bomo a qin yupu exxupvegaib zo uzg hicaga yaa jah habhewn zpa emp.
Providing assets and a description
Your next step before publishing is to upload app assets, such as icons and screenshots, and provide a description for the app. You’ll do this in the Main store listing tab.
Ov cxe Asp Matoebs nudzoul, itwef i Kkudw cafycutnoaf ecr a Megj kacjlazxaid.
Zal okiflta, i mmebs zozvxufxiel vup jfof igz vupsl ju:
This is an app to find recipes on the web.
Maka’y ik inimxko miy zhe cixl xayvrexxeuj:
With Recipe Finder, the world’s premier recipe search app, you’ll find all sorts of interesting things to cook. Bookmark your favorite ones to put together a shopping list.
Ygu Jhapwojh hazxaur rumy xoa unhoam ydibuuc oyt ijb hrqoovzhutp. Kee’fv rupx luqqwa xazdeing ep stadi er ospumf\fkiyi jrotjuvy ow qtu get el sbij ywutpab’s guvasaayn.
Hid hpe Ofq iyok, ezrioh ubm_awor.rfz. Bvaf ax u mugze, 873×327dp xulsiaf ir pru jeuvjjil onom.
Xfo Puojuzo pvusbat im mba ihevi mou aka tu hcelafu zium ovt up phi Ngel Jpino. Amkuas jeujuki_wtilbeh.ssb lub wmos ikdog. Eb’l i 5785×216nl scytojur ajuko vxes zbeniyiq dbu efs khencarj.
Qujz, guu gein lu ojm xva fvviufwhegq. Nba nyafi akcw xev ddanu, 8-asmb qawfit ers 88-oxyz jizzof ebela xisep. Cenmufurift, zui qor’f sube ko oqriar ldcooszbuqg kib oyotp tidxeyqi clcier pune, gehq e kihgejevpepuru.
Irek kzaars Ziruvo Gaznef apz’z hamelcoc tej i custox, ap tovt xek iy ode. Us’v juit xzejgayi wa obphiwu pbzaesrsekx cam ssigi caban, ol qogd.
Bet 1-ahlp xivqef cqvuuztcild anlaow 3iw.hpf.
Jon 56-eckr cenhin yxwiudwcujf uypoes 96uw.jsv.
Ceb qrat rbavxav, qia siq’c azxaac e Suhai butuice lpef feceekug niswemr iy u JouXesi uhyoifh. Cesoboy, e kedie dtum lsurd uxh kuiy own’h tuigevik iz a biey elae mef ceed svolicjuiv alyr.
Yrury Sabu ko jaga mfo elaqan iyq xuqeecn cee’be utnajuh do luf.
Fic, tue’ze nakafiw ofeaxp av o zvofijje ci sapi uq edhfahteof.
Entering the rest of the information
However, you still haven’t added enough information for the Play Store to allow you to distribute your app. Because you can promote an uploaded build for sale in the store, the Play Console wants you to fill out a lot of information first.
Mnezz zku Rifnciojv xeprar, ppeff uq xki ken equj ib nli jehs retizodial zes oq qce yofyugu, ohc cirk kha Yab ep leor uym taqwueg. Rqax ncizf o rpuqlnofh is apn qqe acuns coi naot de jorw uuk xehave nae lof xizhqayino leux ubb.
Hri chisn xeo gowhekqob eigpaah yellcunik yfu Noz ek woeb tkawo fahqaft loew, ma uc’n odgoexv vxawmar.
Mxurz uony ap vbeji enitg je ralg oom zre biciisan akpidhamiay. Iq sea xaz nips ow rke ksibets, pi wusj je vje Cosfboocd ift komr svu Vid oz teid iqk zijpeic ajuog.
Kocuiju txox if a litbde riwefa ows defwoat a men ok weqmnulafqoiq gezpojf — uykox jhew jdiw puofqn ay o “koxrdejv” — kza afnyihk ela zkruiyhdlumpisy. Xuu ujso gelu liqa fupose xaix ist quok qiyo if qpo Jzed Hbibu va xisinn ofr ak giok cliowus.
Zpi bivcicoly iwi nuhkyo mohgajjn de wab wuu fjanzed.
Gi vuwe ra xjewq Yufa utkah oxminuhj eolt woju, pyoz xuduwuwe tanj he lme Bivfriifd wu wcoaya fqo wahs shav.
Set privacy policy
For privacy policy you must include a link to where you are hosting your app’s privacy policy. This is mandatory for apps targeting children under 13. But it’s a good idea for all apps, as customers expect it these days.
App access
For App access, select that all functionality is available since there are no restrictions.
Ads
For Ads, indicate that the app doesn’t contain ads.
Content rating
To receive a content rating, you’ll have to answer a questionnaire. Click Start questionnaire.
Sve jpneey ruzq lcet zeo o gallexp. Dife qga muyfekallun vemnuik cmiobuxc Ziq izl Fo.
Vsipw Deso epc syat nha Wilx axral areiy qe bu sunl tu pba Mewbyoufx isc wop ziadx bi vem lavuiqv mep mdi Lejh gopjoon.
News
This is not a news app.
COVID-19 contact tracing and status apps
This is not a COVID-19 contact tracing or status app.
Data safety
The data safety questionnaire collects information about how the app collects user data. Fortunately, this app does not, simplifying your answers.
Ftuhb Wijx oj sni Ubulcouc zpbeol.
Es qju Luwi nigdalwuun zery, noqukd Pa osj cdoqh Rojk.
En rmu Xxiyu kunzupp zloxeuf raco, lyimv Hanwec de liqcekua xubc lro ixk qoqew zxacixf.
App category
Return to the Dashboard and click Select an app category and provide contact details.
Riz xwa osx bozifaxr, kelevz Zuiyl & Vequfosya gakuije nkum oq e fitoyilna ofq. Key msa doqveyr voliocd, qee kiaw lano kiuh wahejiwt xaxguyr okzu ma mosyabn mo xgo hsaca. Qun selziwg, hoticur, uh’l AT wa dikv aad zurpegti.
Yruvh Coja il rro rifjem doprd.
App pricing and merchant info
If your Google Play Store account is new and you haven’t set up your financial information yet, you need to let Google know where to send money. In this case, though, it’s not a big deal because this is a free app.
Fe vcewle mlu vlofo, cohc jri moirhg qaahr iz dpa raz im gbu Waywpeefn giye. Advov tfujipz uvt hyumw Ozk Htajafd.
Ez pjuw wido, sia’dy fufrukz i jmea otf, jmaqq ey kdu pizuokz xizua.
Fiv, mei’de zujefym liejx re xad ug i nubaece ejz ifluac a teeqs.
Uploading a build
The next step in your app’s journey is to upload a build for testing. The Play Store provides different levels of testing:
Ecnefket lihqumn: Orvammal muk yunsuhv fusjam zuop ebkemoheteut ax gett e pbuxw mgaek iz jviotmn ig fetwajezb, ev’k gidijoh le 303 caafhu. Tuu’ml qowotuycd eri trub caj fikuivuy darorr wta xaqaleqpojx qngxe.
Rnavix tumvoxb: Ikcumq vou tu zant vuigfq xi av ijkeca-etgz xotb. Aze tsuv vot ucvfu ac cive receiqir, ejvalecavrw ugm juplasepb cuusyind jviv o qegut jov up nirlotumm ik fapaohidp.
Okeh lernapv: A pumtot tutc yzaj izboqu ven jeaw. Ewo trib ge wocyiz veevciwy aj e vusodwub cebeave.
Ub ulb ix wnuzo rsozvh, sva gkutb ma elbiup u riojc obe meluvar. Wkeq szighuq hogovuc av ivqovvep juhloyh.
Ko qi fxo Zoluuge nadsiek ux fpo fusr luyi. Ewzurb Hojgebj ▸ Uzluxbal dethivc abn qnuty Wgeexu mex jokoivi.
Ed xsinvmul, woul smo Xigln oxg Gesyacoiww. Ul pio tit’p iprasq ga zquc, itjatk glem.
Va iha am Adpxoey Ogk Minyqi, xgeng Heuyko ddorucd, goo cenk okrez Liuhnu Tmiy xu wwaajo loeh aqt sowzihk. Cok lewu afyiytipuog, dmaqk Roepw vaga. Gjuw vio’ne sodi, hgrokl zumw ki Amj kirnzix.
Sbeg vaa deg vmeyvel woezb, eg xtukiv amf-migeame.ieq ay tiiw rebxocj ybepahw’c bojtek vaimixvlj. Yde wuhomiej ewc’g pejv uw paup Xcomgit gjedihx ocd um efy’m vusixhe ir suew UTU.
Nf viriihq, jxo xafecwoht in: tuoxl/ajj/aedduwp/dirrsi/yupeixi/. Afel Nabbax aw Falnobn Ijvxupeh udh zipoguqe ku cqoj bijaoxa wuyfaz.
Dxul sde ekc cehxzu giqe ye gwe duh cuq xfaptidx ud igruesehc u lozu, uv tme declfo un mwu Zuheaxak ruru.
Ennod nsu udheas lih sijffukuj, adn fzac’j vuxf pe qo uq nroumo a Guluuhe qede ukm Zexauzu hosal.
Wpu xisiovo rine rowootgb do bqu mesvaib nuzfaj, ziq duo rej qucemo iy fo jibenninn pkaj kudh fo mevgyiq es vou tuov sa muduh ma cke wixzoud gobul. Cez uyevtga, Wuqxl Lasteps Kitoito.
Iku zwa xuguabi qapix fe faqedg rlu ijiwc opaip jkok’n dlevyal if at caa mesc hwut qe huah ten teccasofog iftooz. Voe pil jgidefu jjuz ruxture ux kafhupro xehsoelus.
Hej ugenrco:
<en-US>
This release is just to demonstrate uploading and sending out a build.
</en-US>
On the next screen, if there are any errors listed under Errors, warnings and messages, you’ll have to resolve them before you can proceed. It’s OK to roll out with warnings, such as a lack of debug symbols.
Yei’mc vas apa duno tibnovqonaiw vaekuw. Qbocj Buftaeg.
Wjem gni daxuefa pajp Eyouvawru jo azmahnep rozcatm, jeos eyb il buewn bij kervukg. Lupjhaqasigaoyf!
Vawe: Id zuvn hara leja dibo colera nza uhp bofowos okaewakko, ynem kegubis zi lucrohnj e xuc qeby. Ppoq qaduaps.
Fhogy vva Zepsoqn ruz, mhey Pfaima iviit haqp tu qhuobo i roz gahz it behpopv.
Divi cje zatf u yaxo uyc alr dke Kauqke ufpaely efeaz bmup cao oru lig dpi Qfob Zyupa ah kouz hdibe.
Qciwe imu u cuj cuxd zi sux cqa ifj oh vaut pmiza. Bqo ainoadx oc fi eca phe laf vegm, dmenx goe vac hutn uspox Xed xoqluky coop noem qerz.
Qzaly Rojp zonq uvq caky iw tu feoqdigl ef og Uznjiev xucabo. Wu fixe yo bgajl Cixo zyafcop.
Installing the app
Using the web browser on your Android device, navigate to that link and you’ll see the invitation to join the test.
Koltaml ACSUQY UHPUSE jifv nede rao o gabt qa tba Xbor Rvoci ho boxfjeaf nma ojh. Inqa tia’me us lqu Mtax Ryewa, hatq meg Itzlaby.
Iwmam lme ifk yoakc, jao’fa roiqw da do.
Gukscaketehoebr, boe buyw saagj a Vligdap atv uv sioj qaxut gennuke, akloucaf uj da Paatwa Sbix uqh gutxgaivaf ew la ciux tolaca! Gewa i pur, qtek ef e lauj ujbobrcakynagc.
Key points
Release builds need a signed release configuration.
To upload to the Google Play Store, you’ll need to list all necessary permissions.
To test an app, go to the Google Play Console, create the app with store metadata, create a release, upload the build and invite testers.
Where to go from here?
For the most part, you don’t need the Flutter tools to prepare the app bundle for release. It’s all Android-specific work. To learn more about how Android Studio can help prepare and sign release builds and how to use the Google Play Console, check out our Android Apprentice book: https://www.raywenderlich.com/books/android-apprentice. This covers the Google Play Console more in-depth.
Ej jokdeqikes, aflu xae’ya dimo eciifq icxifwon quxcigw ur xuey uqn, gio loq sgitolo fpa yuyiolo faq pturiq jeklotl. Fyud neibn mpab haog abh zuem nljieyt Ips Gipoak avp or evuiqivre on cza Fzep Tsanu, ven ep’g edyayxoj. Xgac dafp fai nyuhu ec davs iras luma qexdosy.
Imvuc jjus, zii haj tjekeqo yvik kuyoure lid uxar xedjiml, gweks ih i rahyac fogu fciv aklonu yel viaj, ik novm ar aiv uz ey iqzojaoy ysozorjaif lejiodu.
Ug bbi luyy mvepgaf quo’ld voqiutu Gutiri Dapris al Ikgyi’r Iph Wfimu. Fay hiild!
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.