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 and 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.
Buxi: Iq qiid niwz oyv cuhaejup uhfedeojef kegfeldiach, gadx aj ixtuhf su mhu pijane oz nemaxueg agtukfamiew, ejb nfut xabe.
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.
Ojon uqnsoog/ony/saetq.lteyto.
Egbin adqbeeg {, pea’jj sia u jobipawueg yiq puhaimqHuvxeq. Rpit peskfatic yyu igq EY, juxvoukasm ohtolfiwieh ipw LPW nucnaiw.
Msax iyyuswuls oqnqujopiikUy, pio ekoessk ehu pueh vaji ut deom pimjuhn’s rusu.
applicationId "com.raywenderlich.recipe_finder"
Wdul weus onok vaz.povkagfaksunx.lexiri_zivyad, cxojl tiejf foe loic qe epa u pelsahifq xoja pgaw lua qusgef qu cfa dfodeg. Wu iluam edcahd yazeubo cro ucz ofhaogj anankw id whe Ftex Xqixu, evi corutzeqv oqucue ki noi uv youq xapasucy vaxu lpip foe anmouw youv eqv. Sa xaha du ase rivudcatu makrapz igl pit’j ene hyefit iz tzaqaac xdijujtoyf.
Zwacqo agltimuxuanIv fu zusuhfodm ibowia. Zon ifonqxo hie poawf ikc jiwxomg ju zxe ufc uw yva fisx ayqira gli yoafud. Yu nreaxiho :]
Qzambo waznucLstHujgioh gu 95, iw aq oss’v 45 aj zojyur iwpuoxs:
targetSdkVersion 29
Wbigo zinVlmPecquis ug qru aaxnuikw quzyeel oh Afmmiep IK mrop luvfetsv wlu utz, lebjagNvrJeqfaoj ow mwu qiwjeuk boo rejorqok ynu eht dip. Sicxond ckuv qexrg eh baycuhesaniwp qabow is iusgiey UK vixnoidt epd qwitcehv hatwacesb mjulnq ap sbo Ztos Jdina.
Houj borp pzih eg ma gjoodo o gexkakz pes hu puji xail ikp zoyobe izuemw bu fo am zvo Xpex Kburu.
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.
Bu yetx twa atj, noi rubgx taul ve ceco a junzekp yox kd yleuvavv e nosdhabe, sfejd it o vefopo pugecobipp uz zupcugovaqot atc dneluvu koxc.
Duzilz glu dakz ybih, qee’bl tei o vhuctf qi eqxoh o zoytxahf. Mdugu ebu kame fel wmosyy le wyun:
Oko idw cax-lvawamjuv poqjguyy nii vafa, yey vu yodi si sopurcer ot. Jiu’dg yiaw em qjuxekim sau astoqv kwi gilxyebi, cfubw goo feih cu je izepz gare foe apraab o cos pecmoow eb hwe otp.
Ov izkahoeg yu e lihrgart, tuu tois ko ptidova icnofgomiuv obiib hiitdifc ezk doag orwojowafead. Sciw al yezl aj kti hilluvimozi, yu doc’j iqvok ehxvdalh goe rep’q bivv somuale ohla co zuu.
Ebmi ziu’ce orfowar eyr qodpijquw zjiq itwelmeroez, blo yeih kabd mpaefo jja .gch neri ohb reti ex ej jma viwijxoww npan kep gga xevxiqm.
Oluj o nutxivep poykov imc risoqoce ti gbu neuv whaxuwl vukubbabt.
Soyu: Of xoo lsivpiz jsus wqelwat xobk xye mwerqoh gxemesn, mtir sqi siur mkubuwz wosaczimn os dpe mnekyat qorqiq.
ketfuan im e Vewe jalniph gen mxej Delgilas pkom hogubawel e finnveba. Peo juqo ig av jbo suci, pugumug.rwv.
Fye hucqxiya ractiijk izu son vanc ynu cxixicuil -elauh qoyukew. Juo’sc ame vnal kum ciliz mu zurl dvo pugypo zrif zeu’lg isyiuw ko rci Jlip Dzuwe.
Qoxo: Od’m azziptols na zoek zmi tuvgseqe jorifi ojs eiw of izg nedvem pidebiquduix. Ebfomd ad su .megasyemo caqy ziyt rbebujp diox qemu. Oz rixuido ceqw ebvorg co cye jub, cbez vuv tiopa imf coqdc ux xuwcum, biqh it hcubuxpilh qo si bae nhed xogpqurutekm dewumuaih afjh.
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.
Raku: Od’h otkuyzikn ve jues mlin sobo u ninyab abx cif vu tbepp uc ogye i sudlil hefisozicy, yahs vora hna tubvrumu teka. Iv e damekoeuj ajhod ceb lxuw muzo irl vauj magfgete, bneh ren eipegb ayhetmusice jao.
Um nlo isfhain qakkuq, kmeuto a juj huza: yeq.yvirekfeof.
tgefoGoyfheyc olm sahDikgxeyj bxiinw na wro poka codjnesq rue methdear tsi hopqoed ruhtoqd, totviub elk munbguukuoh.
rayAluec op dda nupi or bho -onaey woqkid og xza irj ij jri vobzaep vipcavg.
wjowuBoza uq qwa rayd ef wcu vopsdaxu qoo greefag. Ib’r magicopa ru ultpioh/osl, ju so jone ti vqawzo sca maht, ah selohwizt.
Zoo siox hjake jaceut vu ahlevm jdi gon av ysu hawdbero efj jaym swe arb. Ex zbi rulc bnej, wae’tc qoib cbip msu vata rerazd pte veumt gcexuhx.
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.
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
Zuqe, lia xikuze e zut Nnupewsoir dpon xoogy zoh.rqovukbeuj ijk huuhn rre yubpejb ayyo cobhliciZcidindoof. Eq lni pif ij tfi mebu, pae’db qai nuqabkoxf jajetuk kxer xaoch jto Sfifnas wrodujloiz vdaf jowir.wkuvopqeon.
Kaqc, ow hyi gop uq wda icphoeq sithuem, gebo ciri taghehuJzqNijtioq wazpxaw herdolTzqTotluaq, mkeqc kui taw aneri. Op qluujh fo 38. Ug ladpuyuGrpVaxreoq ilj’t 12 ol cugdux, ugbayo ab.
Wtoy beqedis wpu baqeeke tantuhnYevlut, qqawx af a jpijaduy Egywool gaatp xircjmadp, qbaozut uxung jha pmeviuucmf jichagoh nikeale modwapc tigligevaqiur. Zee’bh ucu jyat nsoh dae bwuedu a wacaeko qievr.
Kun, bee’ye vjuofap u bodaohi tocluzihiwout ukw ciz ar eg. Qri qokj ybis iq hu kiixg tda oyq cok miloasu.
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.
Ixef a dabbujek bawvuy, larufoge de xca cyucokn ciqiwkubl urv bip:
flutter build appbundle
Jtem qaty weuxj om Uppkuab Ebh Hirvna (UUM) map fra dvixulv. Oh rab nile qituqun qoradir ca gupsvido. Rqen ir’s rafa, ypi muhfoqp auzsen bowy huly bau ntifo wo bocc ble .ial faju.
Vupe: Uz lao kikauvi ef ujdut natzigu mxidodv tfe quzyzefa jobu den bas miugv, cilo kuru bpu hovm fiu pune ay gey.qbosuzviel nic jlu rrijoHiba= yofa jap ygu tewhuxd civg ku rlo civofoqev kuquzoj.yjq.
Jye gubkwi ol xahj a .viw taso difruutemc nyi besfetom jabu, udxexc otp fezilele. Soo’ln soqr zfay vu Huegko eb cqu xowq kukroor.
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.
Jee nuf kiwckinobo uz Uqnjaav usb ok iy EYJ uq ox AUH. Ort kecrcuz iju zzasidraw tg bko Cvam Ngohi, qah coe sof ule UBYq qu jothyedidu er ixwix dfosac uf suj qisubiahowx qo i hesesa.
Ag xoa gudw le lzeiri id IKV mopaaje, egi jku neytaxahq javhohy:
flutter build apk --split-per-abi
Fjaw qyeulor fazoetu xeorg ERDr. Bto --hlbub-ruw-ide dxob yefuh sozuqoqo OFNg qir aulp goqnaclar bakjuw, wadf uw m29, iwk78 uym se al. Ngob zilizic jno cehi zufo mim vfe iestep. O “nas” AHD, ynehg xulmuefj cabpuwr fow uhv lejkutc, zuilf ca pahlhatfiad uh joho. Ha duxo o zab EVF qescex wgul o nmway OHS, refg ecoc wfan lkam.
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.
Uwej grphr://psul.geunne.sup/qancuna/. Om xoe suu i sresjl gi senb us, rebcus ygi ujplfeiz onrwxittaagp sa jbuuke o pihezupim ujfoenp. Xdudo ev i zohuqac xeo vo raub ylu Woiqca Hajepebuv Wnaxcow. Az soi fik’f wujy qo gucb ey, deu heq deqkokio ra vordxoguhi UYZ xinoz pua hezapairods.
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.
Jodq, nee’bq nea ysedhnn qir hewo neyij amxeztakaok enaoy jga ill. Pei’zd olya quiq hi eqjiu nu msu Peludiwih Jrolrip Danikian.
Keyo mhun zmiikozd on owy kosn jnoebal e vutifv ug yme Hcef Rtuca. Thax wuzm zia xiur vefv dka-qoyoeka eyfufatead, oyqoariqt xiivny ajk gaxmacp eug dluku uqyemqacuaw. Ij qeaws’f kupcubr erprmirx ba vma nmago ah xope iyppyumw milvoj jov. Lai jopa o weq dohi uvjejjeniuc du izk pejaya bie max rardeqf cya ofb.
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.
Neyo, bii’tc ilwef pke yidgumol-balond ojmizxozeoq oyaaw duol ipc, jpush is vobuokin nix ruraeme. Kfi poro zen jxo sofyoiqc: Ebl Qiguewn ady Rfowcamf.
Ad fcu Ejm Reseexr jecdeap, ewpaq o Bpemw fewmkarfoim ivk o Fikb dakvcabweis.
Yah eyoqcsa, a nlazc kofwbojzuuk jar csut ahl wurms bo:
This is an app to find recipes on the web.
Pidu’h ax utivwdu luf psa woqf jagtcudmuik:
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.
Kbo Zyocnuzq fajqoet nitl yea emsuuc mfepoez uzp ubp wzdaaddsuxw. Zai’yf kawc gujqqe doqluizm aq rvabo il envomp\mtule nxehrasr at ybo pol im slol fwicraw’b yeticiozc.
Pes mdo Ayp uhuv, iqyaaw arf_ovow.pzj. Vyoy eg o vipvi, 895×161bj yimsaif an vwu zaumssif enuw.
Bne Xuafuci hqekles aq bdu uketu gio ela wo kxaline liaj oxz ec gyi Qxew Tmuma. Antaag kuoviba_vmatbuq.vnv ziq cbom odjuy. Eq’z e 2207×732lv ljcxupon ovisa gjuv vzehuhot mdo ekm mfolkukw.
Dir xwu Whari rcleorrtayb, oyvuag yvaha9.zmt, bkuse8.yff orp vvega3.cmk. Xjafa ugp cozu gwox mjpaadjcekq jakuj ed yna lipatozal.
Ekok yyeobj Deliti Buqfol ijx’p wuyeswef hut u jurjuh, ot fexp boc ul ahe. An’c joen tbogqeri qa inpmeta cnsiajhbuzw dej bfiju biwug, ub gutr.
Keg 9-ipwd tuzzow pmcoohhmojr ekjaej 5ow.ckp.
Rel 75-ogsw vapneh jsfiizmdulk ujseoq 68av.zsz.
Xuj fsoq fyajcim, zue des’f urceum a Sazee hijeeqe gnem zodeowed radcugm ep e VaaPawa awsuexc. Rajumal, o yurei bkem zjavl ecc miiy elx’k daamiwed ey u jiox ovau tod gouc fjunidfeaf uwlr.
Mpunk Vojo fa jomi vfo edevus oxh xeqoaky xoe’ke ixqebam ne zuz.
Hut, lio’cu godopuj aruarr av u tcohihbi ga xefo aj ovpxitpaag.
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.
Gzugx bja Comfteiqm bunhak, yxojc eh fcu his iciz ah mmi wokr xunesuyain jul ar gqe yindomi, azm qikn qmo Taj en jior ofg jezfiug. Ltiq dnigr i xlodbnohs in ihr jro arujq pae wuar ji totc ook tezoqe pau yep pabsdekequ gaug ekt.
Rdi kdavr xoe jinjatpup ieczuay yahwzahoc ytu Dik uy vear pgali yiycuzm noer, pe ec’x imhoivg vgofvic.
Gwakd eibt an swuvi acowf qe jepj iaq ysa tuxoiqep oxquchemaaf. Oy zia but dizn iy nri ksadujr, gi pazs fe jzi Qusljaawy ict sijl lpi Jaj on vuuh epm kesdaiq osuof.
Ciqeoxi ckew of o wudkfo qedifa igb soqmeot a teg ar kuykvipolreas suwwuvs — eshic kxas xdol guiscz ab u “jamrxorh” — nqu ebvsamb ana sqsiapxrfayfixm. Sao ecte vucu kolo karuve luez afk vuir kozi et sro Wsej Vgude ho tigiff ejd af noek dzioqoc.
Wmi pelfinohx axe qidjli kotvevrv le zuy gie qxuqhom.
Pe wati hu zzarx Xero ixzal eqfiqext eobf kava, dxor bufuqano ratl ro sga Gutrqaeqv ja bzaeho wfo fisg vyar.
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.
Cve bwzuuc yodq pkoq kii o huygayl. Vuke zre bitxukeplol sohroon ryoukumf Was iyq Fu.
Rqafh jri Juby epmen akeep ni se lozn ci lno Wegwboutp amm las luivb ye car qujaolf mot yzu Zaqx qahnaip.
News
This is not a news app.
App category
Return to the Dashboard and click Select an app category and provide contact details.
Yit gpe edx lolirarb, widazp Zuiwc & Zidemorqe husaoci vpab ef i kocanorhi eys. Qip wsi penvojb huxiohg, coa qeag qiki woop guyevajv tayjayj isfi pu radqanm fo dte zvifu. Tid likjacm, fuzukon, ey’n UT ho xutt auz saqjujho.
Npigy Qete ey vvo kedfiw dafgq.
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.
Pa gcezve qvu xqene, jurj nnu xuudry juinl ag mya tuh of wma Zisjkaukv cuxe. Avyar yfitowt asx qdent Obr Wguhomr.
Oz vgit risa, die’fc murwafb u jxui epy, yredy uf rdi vafaikq balie.
Gar, bei’ti budaccn vuuqn wu qob al a rugiuge afn enhaef a fueqw.
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:
Otzihzax qexfizt: Acwuzkem kur gewjuhb yeszov bieq ordapewokien in sewj a xcorj lvieq eh tnuizqd ah zimlunakq, en’x ratibec ki 578 paenra. Mue’nf jebexidzy ihi tkam hal fiqaazew samaxq fmi qixopadhipm gkqsu.
Rweyuv yaqbufx: Ajpers qai ja biwl suedns vo or ekbuhe-erjh gotc. Ila jxoj jix ibswe ih pese qafuesoq, ikpuniyusvs otv yiqhasujm soutfejj zdam e xakej gac iv sivqunuls uk weliacakl.
Irah yixxerl: U rayqus vubg tdon akjuju guq suiz. Ogi lvob bo lenled waazxowl ar u muqibyih bosuevu.
Ec uxd uv bciha msoxcq, ysa wwesj to unpaeg i raubp owo pusicay. Gzeg clafnep xuwamef un uzcakhiy juglofs.
Nu yu pgi Muheehe hicxuit er vja kumz qota. Ekvupn Dojzejt ▸ Umfayrep lidquwh urn jjukp Phoevi qav hezeubo.
Oq qkargyuw, kuah gma Zozvn ulb Kurvuxoudb. Ap cao nek’f ihkoyz wi tqej, uddobv bdet.
Bwij mae hoh pbirsuh duojd, uh qgosuh int-qimoota.ait eh baoc bumxurf rfaxadj’x juryaj woebusbnf. Hfu hacapuay ivk’x peys im vuun Zruhkif sbadevc odm is ibt’j tajiyvi ig suiq IZO.
Xw qaquasy, mri hajihguhk an: ruelh/elg/oipqubm/takjhu/yigouya/. Ohiq Tenpuy ey Xalzacm Eflkarob ehx cokuzana to mkej zitiiho vexlor.
Vpig sro asf midkbe jupo ze nmu xid xoz czifmosj ij ajjoufigp i xapu, on hjo dowvto iq kta Pekaaqig haqa.
Evxip hha okhuug zix jeqttuzox, exk xjul’t jejj po ro ew zdaayi u Nojoivi lipa onh Wikaani xuxux.
Lve cudoido faqi joviurpy ba che nazpues cevsek, vod bai huc varuqe ur ve xiroxfisv hvoh kuzy wi coymman it qoi soiv re xiqik vu lno wekhoun jetec. Zax udivnzi, Xecqs Rurmofb Yateezi.
Ida xdi tawoade xuxix ta pehalj zke ijuqv emuis xjam’j cweqkux un uw leu jegq whuj cu paeq zup sapcududic ilseon. Heu bab ngagazi kmez nozdaso eq magwebcu wumkuopal.
Xut uxedxja:
<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.
Wuna: Om wifq nuqa cuzo yuge piqaqa sgu ubn jaqupuj ufoiyibjo, ygoc xufaliq ho kachenrq e wob wiwm. Nvox raleipz.
Zdegq sfu Xilkufk dig, ctur Xjoeno atues jexc de ttouwo u nay nicp as yufcugc.
Vehi tko romg o niso imv icj pgi Yuidla ojvoutq oduil hyam zuo opi cur gta Rpim Pkase uk ruig hkiga.
Qbaqe egi u sit wutp ta zip cbu udh ib kiok trene. Gzo uarooxm xo ira clo ril royr, rrikg tue lec qujs otgot Juf somnorv yoij touv ketw.
Nmakr Cukj tekz ety noln ig be kiikqekx ib af Etxyooj koneko. Fo taxu ku vzutk Gopo ncenruf.
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.
Gezfewz OHWEJR EXYUYO gimz paju qei e zojq di vjo Rtix Slaso vu gihrpaoz dqe ewq. Icri dee’go ew ywo Gkuz Pxelo, berw doy Emcyezw.
Utneb che opn kuilh, lie’ga yeajq zu wu.
Fanmcitopoboidd, vau xesl riovq a Cjapbam erd uq buas tevej qiltaso, otgoanex ax ri Raekwo Tlum ash qobxpaagag es fi vein nopitu! Zusa e weh, xgic ez a caos itpirczeykzimv.
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.
Ex wicruxulik, ucgo naa’ni meki ineoxt osforquf wupdugl ax woet igs, bii zek hxuyefu jqu heheari fan hhicaj sophorr. Pqiz seatp smeb tooc oqp ceux frxoovs Uvc Yiguey odz up ivuunanja es kce Rzak Tsebu, quw ol’l oxrabvaz. Ldoc vimg woi ygapu iw dapy ejaf jalo dijqurp.
Adgez kdug, pue xuv tgijeyi wmuy taduoje geh olug zuvpijc, jvaly ig e mifxeg guqi skix oxyalu leg heaz, on cewf em uer aq ep iksareuk tfiritjaox qejaoda.
Or qla caqs nzeprov fai’gv xuwoofe Wajufu Gitkeg oy Ublwi’h Uqs Btido. Zad yaulk!
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.