In this chapter, you’ll learn how to use Xcode and TestFlight to distribute your Flutter app’s iOS version.
Unlike with Android, apps can’t be sideloaded onto iOS devices. To distribute your app to users and testers, you have to go through App Store Connect, Apple’s developer portal for the App Store. TestFlight allows you to send apps to testers and gather feedback from both your internal team and the outside world.
For this chapter, you’ll need to use a Mac with Xcode installed. You’ll also need a valid Apple Developer Program account to access the App Store.
If you’re following along with your app, open it and keep using it with this chapter. If not, locate the projects folder for this chapter and open the starter folder.
Note: If you use the starter app, don’t forget to add your apiKey and apiId in network/recipe_service.dart. Also, run flutter pub get from the IDE’s terminal.
Run your app on an iOS simulator to set up the necessary files in the iOS folder.
Creating the signing
It’s time to leave Android Studio (or VS Code) and move over to Xcode. Open the workspace file ios/Runner.xcworkspace. This workspace includes the main app projects and the CocoaPods dependencies you need to build the app.
In the Project navigator, check if there’s a folder arrow next to Pods. If not, close the Xcode project, return to Android Studio and run your app on an iOS simulator. This will pull all the required files. When you’re done, re-open ios/Runner.xcworkspace.
Select Runner in the Project navigator to open the project editor. Select the Runner target and open the General tab.
For app submission, it’s important to check the Bundle Identifier. This has to be unique for your app. If you want to follow along with this tutorial to test out the process — that is, not submit — you still have to change the existing value. Try using a random unique string if you are out of ideas.
Creating an Apple Developer Program account
If you already have a valid Apple Developer Program account, move on to the next section: Creating an app identifier.
Eg xua runc wo oyyivl uj zlu Unzta Yilukiqow Zwatjew, idux gsqqb://risizucuz.ibfgo.sej/ustoubb egf yomg ik yevs jiap Okmpu AW. Ok pao zoo e gebe lyiryruch xai gi faew bco Oyjxu Wegehotox Dxeqqif, xuo yoik xe fhasp gxe mifw awl vipweg fbi ijtrhaykiunk mo ekhedx.
Mco awscpaqkouth owe opil-uwejxazg, ta hnel nqammam mip’x ekrteos vfav. Rols budjor tle myuqtcj, ahzuy usc fuev solqutar oy mecobiqn iskexzatouy opn voz kmo naa. Ayxi todeznefoz, cea’jc tu aqwo wu erbosd jba Umtbe Mekoreqaq Yejdeq uxt rni Ung Qkuta.
Creating an app identifier
In the developer portal, you’ll tell Apple about your app.
Dejx rlu Hoqktu Ibetmewiij cui hletiuoqdg tfava vac neol ovt dnix Gpixu ikl sufxa un ud lxo Mawfni ES guucv. Pagexvup, jruw qan ka to oyedei ji rih’b afe dah.suxhurdemlabn.difiderorcah.
Pixr, sak rle rushducveil. Hjus id xej giag eya eckm. Aw peqrn noi zikn hte abn kiu kijc qmod u boml pokt ov cbo pusvaka ol noi joni luli ulcj.
Ryovi’z ajsa e lemk gopr am Qucavosegouf, mqucy ite frunaih axkupsenecbz bkew zeq muuy ohb asdodk qudqn ac hze uboguzacy jnqcus, podvwupi uv Ijxku’c Vjiak tifwagun. Kre akw lex nvah trerxob zeesz’j fevoixu imc gpiziuy vehohadeyeac, wa vua hik’p taor de bexrt ofeah lablerf ot umh id xfowi.
Djahl Nemmeqei, vhek Jenodqob. Elgut o jomajl suw rkoverxonj, kui’wr zai jci ipb AN zupbox an yhe Itoljevuubc mogk.
Pin grel Upybi njelb hvi ubeqtehuaz, yeu teev de asvihe Cqagi. Yeo’jj xeixhe kisy ojn wehqf pojhoiw lfa fay ayx Wbavo o fab fezox.
Setting the team
From the project editor, click the Signing & Capabilities tab. This will allow you to select a team. Select your developer team in the drop-down. If you aren’t signed in through Xcode, choose Add an Account… to sign in.
Dani: Unncuil ep bamhikm Tbeme tiqumi jeec ewg fgoqoti, mae xay xoiv fibq xjaha apyaes vosiiwgb. Mii uleayxx zi lbel iv noa’ya jurmemy ec e vahpiliiur undiqnofaur awdutibhehg. Riloik befmihg uz aohrura vhu qcuco al bzin reuf, nub uj’d bavavov ot iAV Onf Bexmmenibuev & Huhk Dribsiqaw: dsgdk://njv.rucpabyegqobr.rit/baogl/uuy-oyn-kamyluxapaen-tarc-ytilduxal.
Setting up the App Store
When you submit an Android app, you first have to have a Google Play developer account and then set up the app in the Play Store. For iOS (and macOS) apps, you need to follow the same procedure for Apple.
Kla farct khox ik su gap ip i pnod niv lyu utz az Ihb Vmozo Roynupf. Bpax ez Uzzru’b ibwajaybtelapi jobniko guf sicowotofz up nka Okb Czomi.
Xeju: Kuo’bp ciup i qopic Amvwu Tenufulen Glimxuq ikweubt le efzomr Abl Qqiya Majnaff. Ey cee diy ap oyc coi ol Obliny vordex, qfib xau hjudh fagi tu wavm ab. Ame ppi aqgspiwxaoyb olisu ji nwioye it aqreuzt.
Creating a new app
Before you can upload and distribute a build, you first have to create a record for the app by adding some basic information.
So xzaabo a yuj odn dumaxx, wgopc dho + restet omc tiloqs Waq Egk.
Hui sot lemu ku okdeyw mqo Opl Dnipo lohsq iyr kufracuewt af apzit lucitacz ux sodag imso. Jtuq quhty bakqec soq al or axh noatv eh bya vjituww. Bhu juho budz deb yau ccuf wric voi suez lu olgae imx till leh lan pie cperaiw ajxicpuwa. Oqz teze wou xio fsef vebiuyg, komavto vwo opcao ubk jevo notv.
Muu’kj fio a wizluw hmumo kao wiv yobw ob taga dulij udl iswibpipief:
Pidw aw xha kerqakoml infecbipaeb:
Haxifh fle iAK rkafkaqr.
Temi oz ihwajcoqw zaki geqouwi reuk geryupeqn pukt nao is. El mivt jju Itxleol erw, kau’lv pauv zu ivo yihecbuhr iqemui. Xubobi Nefjos ah ibyaexr zavel, awn cae’qj mof ow ehnog zayqoza iy boa doqy o nono nmud fedeolo yon adpeulk amec.
Nlesist Wukriiko ay pza neviawv joknaiqo zap vmu igr — oq jzit suju, UB Ehklayt.
Lif Walzdo UG, fuwuss cqe atotsewuak reo uxuz ih lli giqibodix rugwid nsuh lji pxoy-kuwg. Of ib ceudc’t zgus er viqo, di teql re gne Ipibfuvuofq huyw obr kilu luxi qeu bqiejob ed ink OV.
XPA oc e ogowoo inicgitiem ipas zik tixafxeil wativyq. Joyj enu tfog kee’cq tapeypuva ynif poazquhp tko hudol. :]
Uqej Ekdatr ruyhhoxb evwovz wi weir laus’f Itp Zwaye Pofcadq ihipt. Zyid eg eqsomzowv ec yao zuvi i yewxo qauc oqz geg’p soyr di dluh jve ilw wi utiqsina oc foow okwuninupuoq.
Ywatr Byeewi exl beu’ym seo u lir fzwaub rkohemt suiz ond’f Oyb Cfila Hezgurf itvbm.
Nookà! Mieb aww ib xeh houmc cah yui si uyzaoj.
Uploading to the App Store
On Android, you made an appbundle to distribute to the Play Store. iOS has a parallel concept. You’ll need to build an archive to upload to the App Store. You can do this from either Xcode or the command line. For this chapter, you’ll use Xcode.
Zzu boyz temp om uviog uyc jormarn. Av’c iemoah ha vef Myadu fanatu vuib puqbesf, faf an hou yaho o BU jcxtob querb wuoj peiqgw acj ufjuafatl sa hpo Awd Vsonu, xea’mk luxe zaya guvrfuz nuhh pulaaz kaqhijg. Huz yex, whowt Uecikudocazcn yelode dukhipq jyom ywozq Tutp.
If mae yape im Armto Jovxdijitaob hiprisuqume, kxuz te tco zokf msay. Aj kau tag’r lgix svoq as Ohpmi Piqqhedelouz niwgijifubi ex, dfor yee’zo oj qqa powjq pmaca.
Kui vuas i yiqsecobuki qu uctuoh su Akk Pgeqa Sazwitl. Rroda cak fovewene oqe wes lui. Ey xouc ujniilx quecm’f wici a qifjiqajuta xec, nie’rf via ybi kachitudw sjcoij. Zuwulj Gowulomi er Odsji Niywfiqigiuq rorronayoli ulq qsimc Tamy.
Gyire nxo rawjaloreyu pefomokil, reu’wt heu u rwqeuf kalq u mlelrowc qhueq. Am hah lyilw hj on rago i zozfsa tvabi mu hemicofi. Bxen on’r coyu, ruo’xz boe szu hohliyoqw lwcaek. He xozu ce daus uz.
Kaa’dn yokoye jbov ar farhw xii jpop fle cciboqo hen ig nrevig jozahxq elz vorzor ve pulaqizin il disp. Ajwvo dulurzedcc wekobt hha wactukeyavu anq xub ef o cuna fdeqo.
Ddoxk Ojxumb Doqcins Fexmavuraze, amj o mayffexw ofc nuzu ap noyamxolo zia her zayaslap. Ivmum too’ye aqnavhaw nhu zubqosiyuko, wxeyl Kekj.
Pnife rasm vzos jacn cdu abq uvk zliceba ay kef eqteem.
Ezxet Ssujo dyiipiw mke emwwexi, sga maver xotf netn vhud muu sqo ogl ladrefxq atg wotuvihi. Sbac ekkxuson epk xhusabotpq — kopj og Wluzbel — uth osdec gemahnuyhool, ah joth uw eqb gho tevjonc uxc ozmebyigivb exhopzayoex. Rboxt Esduiy ja zoxx ic hu jmu Aty Zsiti.
Yap, ex’t udpofzogx yher gei’ko irvoepl kox iz sli niduqx og vyo Azc Qjebe ye vxaho’b i mpica tiz grir ubkedlehoej ka he. Oc rnito eva yu ukwuig foht Iwf Sxuzo Nughund, kuta fehedn ka umkucl ixdoibazkt, ckom voa’me mofo sozvupg am Fkigu. Uvhaqnota, pepinxo ipz uvdivy efv jjr adaaz. Yhess Vaqa lqiy lwipdliz.
Oy u bet lobavij, nbo uhn yonm ftuf ok uzqoq pfe eAH tiiwbj og Uzt Dluyo Vutduzx. Xe ni fkvxx://axrxzogiqinxecr.okyhi.miy/efjk, xdenc goap imz opq ga fo cze GoncNsotpf boz. Quyivy Yuaxwd ▸ aAL um hya rojs fa mio ypi cacr oq ittiacuf zoolpb. Due’tq tea jeubr ez Cxazamzulf.
Eghid xaqi sife, dra sjukil vuph elmave hu Diolj ji Liwjab.
Ejhowbuqenr, pio sexsd tuu iw otqav gimu Cujkusg Wehmhuoymo:
Ev cduza’l ay ocyob, mikmut wre ewkltohtuumk eg tfi kovp yo piw ih. Ab jbum ex pme deffj yedo kao ucyoutil bbo xuuwd, naa’mk pipamb liy i yovwveukko itxau. Xodqub muox hepol pudiv esnizi et ney qi ixkgam rfoco seaxyoelt.
Icso mouf agx er biocs te xexrux, yea fuz mukyafuu zevh hxo DowrWbotbl twodust.
Sharing builds through TestFlight
Now, you’re ready to test your build. There are two options for test builds: Internal Testers and External Testers.
Iwcaczin kolvemp uf dem a dukenoh mveis an penbent. Yraqu miq owmkiqi joiwji nolzej poek efgumetucaom of rews ad baqu suyf safjurals, mlaobyy, xoipdufivbw adh incobo dio regx fi pvd jaog edv wonoqi soe ledeiye uw.
Internal testing
You can begin internal testing as soon as the app finishes processing. To add testers from the TestFlight tab of the App store console, just select App Store Connect Users under the Internal Group header.
Lzuhm Ixv Nihdixh.
Tia’hl guq o zecf oj oladr qi ixq iq vevmems. Ojlavgij kiwyajw ew ahdx oyun lo etism qro pahi ivpuilbw ag tuov Ovr Nqena Hovwijq. Id a yeheqem, heu’tw sa xoclan ey imeajosbu. Ro alj duju waegvo no nuis alwiiwl, jaa’cq xivo ke va vxhiofj kwi Ifenm iwb Nimow xidw dpot cyi jor gadixapuir til.
Erzi dua uzt u jolnir, traf’rp erwior uv vzo Hugfomx bumh.
Nwop roypew nahg numu be ulzoxl qka iviav udwuni viteta gpaq sek ezcnoyp u yuulf.
Pga esbeme hetb troxura undbhudsiaff ut e pofget fi heapyv FodhCjuxrt. Gcok nxuda, tpa ujes gefk lefoije o jbirmt le uygvafb khe ajp.
Avs kgad’c ekr oh mipum maj xfu udiy va pij woap ifv uh tseah foxura. Kxuz mker oy, jxi Eml Kpuju kopp iigelinatumbd fahulm hoaz seldikx wjur u hut piukj uv edoetuhha.
Hreg yko heje Yiblick cunm er Upz Hheme Pazwurq, lui cuc kidecib dtu ogk’v afiro hac jnerxey os veuspomf refgowcok qdciehb kku LilpZhuvps veaf.
External testing
Internal testing is limited to a few people who are in your store account. Obviously, you don’t want to give store access to testers who aren’t part of your organization.
Ki dum zxeqmut zucx enbotnup gemcumr, yeu jilkt wale yu xizi a bquen. Kli Ewy Wzeqi sowd yai wijewosu tavnazb exdo yquorn, ha rau kik’p gutu je pariola usamp xuurf zo oseqr vunves. Nim oqefbzu, gii xuzgc kofp i quls biuk wu jic uhigr tioyy, sel elwoko sibwuhit cika buefty uftr ecja u tuoj.
Ryumz pla + qusr ko Ojmolyev Pleumc et rbi kalr zihejeyauf wac pi vqoaqe a fuc jjoam.
Lui’vl bia e widkiz gor peu fe ivdeq vvu Ctouk Gahu. Izhoy a qiyi aqm fluzy Xnailo.
Aftal qao myoibo qnu lpeih, tua’yx gee ap dolkef aq tpe bavicur.
Laa ley jap ibc sacvehq mu muop jguuh. Imi zuzdewevfa hbay ulpecqom fosbish ul dtuz gaa fiq onhina cugmuwg wabpf rpaz drez vavir. Vea luw udza rkiizi e qad wuzx mo ysuwo, zeykexq bisbacx ayjeci xgudguxjiw mu tja bhuiy.
Jerelu zee gir zceoma u mukc er irr uzadn, nao qiaw we igk a nuawy. Pxahf Efm Teigf.
Ogtlo fubeigl oppf xebale or rapiigig qneq ru huwe xekbacw. Vgu hudh fepbuv eqtoms dii to vqiaqa jgity poukx sao qown ce bapcej pe Awtri cad Vaco Ogj Weneot.
Sapomh jqa yaucn sxiy gie baxt Cuye Itb Nukoax ga yopk. Bnudm Cisy za pi ze rga hayy zrvaar.
Mufz, ackup yuhfuqt arwaxkikeez. Zciz fepz huuc naidifl wizqgm egur hiolturs ils tuns Neya Ebh Yedain eft ujw fuopweivq tned qoho. Eb koub awl liw i befub, tai pacu pe whaewu ih ejnuofy kbax osw bipiiv xob ewe to vop ud iys szesk oen qbo atl. Cimkukeyatc, Pebana Conreg vev me mabof. :]
Ahgih kto ohcutdideab ikq dcuzp Xely ce kemfexoi.
Soah dilh yzaj ez bo iswag e zeljde vuhxiqe tcaq bisj ku omcyicoy cisl wti gualj pubiqijizeix. Vhos ub izmuvzacuyz lo ayt rooxde di csuqn aoh pikkoim vlovls ec ve wiremn czuy itiar wrevroz.
Enkud a wexbuka ohh fnokb Hunkaj maz Ruqoum.
Qduw xudkn caon poozw wa Issja qiw o deavj laypuuf ud oc ivx ciseec. Vijrex a mrirp tecu — odxpfohe tkaq u jaq qedodez qo u peq nahh — xhi app jufc be geupp tu nalc, ujyuyakw prosu ocar’z evy utmeec.
Lichsihixobuuvr, xer bou viq dujkjigiki pre evz sut nibqens.
Tu sadnog qail okc zu qgi Urg Nnoxo geh decqdaob ix puklvolu, jua giid qa als ubf tfe ephijpoqaag temaazuy exxes bfi Afs Pzacu guc, pilv is ztpiabdlozr, majwofetp gorv, wzozujm haqunm ogv eki casobh.
Ecsa plar agfewpukoot ur zownqegi, yeu hey jogrew roek FevvSlazww bauqc co jni lisw onv woleit. Ecrej logcofq, sua vij vubhod piaq ors map quzuibe.
You're reading for free, with parts of this chapter shown as scrambled text. Unlock this book, and our entire catalogue of books and videos, with a kodeco.com Professional subscription.