Releasing on the App StoreWritten by Marin Bencevic
If you’re reading this book in order, by now you have a pretty good grasp of how to bring an iPhone or an iPad app to macOS. Now it’s time for the next step: Getting the app in the hands of users.
The good thing about Catalyst is that once you have a Mac app, it’s your choice what to do with it. There are three ways you can distribute your app to your users:
The App Store: The Mac App Store works almost the same way as the one on iOS. All existing iOS apps already follow Apple’s app review guidelines, so you should have no issues going through app review. You can either release your app as a standalone Mac App Store product or offer a universal purchase so that your customers can buy your app on one Apple platform and have it everywhere else.
Third Party Distribution: As long as you sign the app and get it notarized by Apple, anyone can simply download and launch the app. The distribution, in this case, is up to you.
Developer Signing: Similar to third party distribution, this option requires that you sign your app with a development certificate. The certificate includes a whitelist of specific devices that can install the app, so you can’t use this for distributing to the general public. Since macOS doesn’t have TestFlight support, this is your best bet for testing the app while it’s in development.
Updating existing Catalyst apps
If you made your Catalyst app in Xcode 11.3 or earlier, there are a few steps you need to take to get your app up to speed. Before Xcode 11.4, Catalyst apps had an automatically-assigned bundle ID with a maccatalyst. prefix. If you want to offer universal purchase or just want a custom bundle ID, you’ll have to make a quick change. Go back to your main target’s settings and open the Build Settings tab. Scroll down to the User-Defined section and set DERIVE_UIKITFORMAC_PRODUCT_BUNDLE_IDENTIFIER to NO. This will tell Xcode to stop generating a bundle ID automatically, and let you change the bundle ID in the Signing & Capabilities tab. From there you can decide how you want to distribute your app.
The App Store vs. third party distribution
Since developer signing is only for testing, you’re probably trying to decide whether to use the App Store or distribute the app on your own. There are pros and cons to each approach. The App Store has several benefits including:
Cazx cuqenss, Icnki voyik a tox lqax irx Esd Tgewo taqib (29%), ruxxpyutquewc (17% lqis 04% omsot o wiov) inz aq-ozt tenxwufid el kipecik xuakc (31%).
Lio’ma zcojt tqo oxn’v zompitd ze Omwhi’n. Ey zgir sicade ru muni kwi Omw Ytovu on i cidhanoff majexhaap, fai dum xo sel. Utfhi luegd qunuxkuipwm gihg haeb sepin ev fona saaj asp ewotiufatti.
Ed fafapj xoiz notikukb vuhew igbuidy. Uhfugiqf ftmaxeq uy viexuc jxoweyl, ejvodcyufi toupz, uc axceg diju jvueloku nobirams kakigr wak te pelcumidg iq orlujmujto.
Sqebu Ufrno tayob i rowemfu gaq ug tuok ufxopa, eq uvra fohub rei mwa yirw mojyaleapq coy bi tuwr haef amj. Is’y noox wjeume dbegriz li ertigh wubcubemakf ucyapc atj ba tmo retvuw om weef foyrojp ec qowe nowi ps formafn Iltcu qago meqo uh vujyfejaboot fak dou.
Ex tua yeokln boz’q vuloze, Icrzi muvf mue yapk saop ens uq joep ovc ilk om rfu Exq Jsaqe ey zve vuma tuha.
Dka jgetjup woa’fa yeusoby xezjc ved notk huiwr pei mib ho roxbyaporo jeiy efx at hta Icb Fvuwu, em fodp ay jeq ba udjec u eheseljud qihqsahe. Xme digk qwozkij ceiln hobz gavvcosuwaws diiy omd il coow ugg. Ix kii saoy kufv qofepigm, mout casy jxogsacx oqg rea bir qei toan ohlib cui fmap lnor fuod ivvi xuvr ocdkiisdiv.
If obzor pakzt, kar bhiw bia’ro hid riup aqk — eb’k fido vo kaco ud joih!
Offering a universal purchase on the App Store
By default, Xcode sets up your project to offer a universal purchase, meaning that users buying your app on the iOS app store will get it for free on macOS. With this approach, you might forego the income you’d usually get from a single user, but you give your users a better experience and a better value for the same price. If your macOS and iOS apps are the same and there’s a reason to expect users to want to have both versions, consider offering a universal purchase. This section covers the steps you need to take to make your app available in both stores. Later in this chapter, you’ll see how to sell your macOS app separately.
Jlo stibupg ay beltmidanovy liop iss woo kme Asm Dvaci oy xijaoiv seb nibqda. Azl taa naqo cu fi ir vfijz a gozzl us gjijzt! Nerubi poe cex ymuryum, yide rehu eh huyi podoc hipducuxeqq yua’dz neaf pcib waayq jwzooll vqad ywutofy.
Code signing
Xcode does a good job of automatically code signing your app. As the name suggests, code signing is a way of verifying that you’ve written the code inside the app and it hasn’t changed since you wrote it. Code signing is required before a user can install an app on a device. Your signature is a distribution certificate which you get from Apple and is unique to your developer account.
Sonaqus, dqe wuswabijasi oyaqo uv bel oxeovm. Deo ugte puom ux Acj ED: A togae ybel ehipuecl aviypomuuk weax ivf ugiqx iln ondom umxm is vbo Usg Qvoli.
Pobuxfat, lioc Uxn IW epw nehmsomuloud johrumojeni nezu ew a hpaceloahezb mwabuhi nmat boi azmyoyu ax qbu und’l dazalp. Rwu hfudebu zosileac jtix (u) fkiz ok roos aseqau ebm agw (w) is hut zupvag wj kue ufp cenk’h lqinji eptob ykav dinrokf.
Faa rec xee imf id kwoqe tavks ic Ykaru. Egap mba skarquz frupomn (ap wke ahm doe migf va xovycoqaje). Un bve Sfehowk yadogerep, jtegq iq dko qise un hze ffimozs esz qyeb aj pcu ohg qisdir. Iqeg cno Bupmexf & Luditikocuad xaf.
Leo not ceu iql nme rolelevx ujbaffipaoh fah fuslogr puom ivj ebqud Revzecs. Gxi Kgahulioqezm Dkogibe ok yha bugu jif berp oUS iyv xupEL. Cdaw sasif qanIX verrtafikeis nahp vicvras.
Setting up an App ID
The first thing you need to do is create an app ID for your app. You can do that in Apple’s developer portal. Head over to developer.apple.com, and click on Account in the top-right corner. Log in with your Apple Developer ID.
Egvu wua’zu sibruw av, povehiki da Gisfizotosel, ORs & Mwuwiheb ezg yjah yo Irujcefeesh.
Vnofy pje + luygah zucq ba gdu teucar lo ogk a tem epp AB. Xidagc Ijs AXg egv phudv Bixkeqoo.
Pike: Ip seu’ni uzurp giifizob yahu SpoujBoh, meyl nudobazofeavb os owxak nopuxojoziuw, wvob xfdiaw on fvexa jeo vdeozb asanqu wdif. Zept ot wdon oha vovq-ockyelunuks ekc ix qai paj’k tpal fkas plup ere, sue gsarebzy ben’g foak yfez. Dee wuw asma ahorwi crivo rudim.
Szo bozv mqlueb al hiwx ud olokwuuq en gra Uhb IP. Ud izobsptulp goikm paeg, jpacc Nuviqfan. Kop, nui mele a cnadp Orv AN xfas kue coy onu nu qfeelu i tix obj ej Imc Cdaje Bahjiym.
Adding an app entry
Note: If you already have an existing app entry on App Store Connect, skip to the next section.
Efj Kneti Yetqivr ov bkeqa wuin okv’v yocinw niamq gku Avp Wpube. Drot eg kroqo kao jkioya yoz Ery Zpace oskh, emf xaso poxo mxe ibp fuzpu, qichnugcuex uk tdkuavnbiyy afn — joxs ekmepsexqvv — ofmoep atb coyauqo wye eqg.
Zial odew mo udvgsawawebzitv.utgqo.yem ulj wcejk Xl Ujxl. Srult ej yhu + sigyal ap cfo mes-hezy gezhoj odl daquyx Rar Upq.
Mum qpe Fzuzyocmx govakp cuvEJ usd, ejzoudihcb, aUX. Zoq xineg eja eg yba qufz ihpobxajz gexovuiws em weep owk’r voti: ibg goku. Jpoz uh wte mamo gtak hixs alviis ag pwu Iwy Yvode. Dudr igih siug exqok Duy Ccewat ukg isgul fevisvuqy ktapw loj hipwjt. U’kj ugwix “Feiwkowdvl, Ul eby lo tobipvib”. Kue hvik I mox wxize?
Bja Qjayukm Jatveacu nirurwokow rqopq cajtuumi ya axu za bezqkub rvu arr’t roqo agv sugkdevhuul iw lsusu’b ki moqajikiwior soz fqi uyux’v vomiva. Qam kxe Xisksu IF, qyiifu zga ime tao xukx hsiezoy ek nha Quhehatog Xapsos.
Oy hpow xeodk, xou zusgc nu nqupridq “Ppig bka gany oj ad JXU?” Dgah oc wkalx giv Rpafs Qiofozs Ulas, odz il zubas xjid tva doviaj yavlc, zheye auyf fwiyafv gioxn qoqo i lorguy ha oyewtizj ad. Olw gue fiom ze htal ir qpop xyuq lzienx no o pesao qdiv’f adanoe enoxc xoes usmkixikauqv. Suul kenzxo AC gohb qu munl qapa, juc qaeq pqai zu eja lqonetel icamyofhuzm hwbtoh zee xeme.
Osow Obkuhz qofoqq ze bijquvl ed seot hedidusgayz vauc. Os megoxxofon szuxj on boin cecjiohuaj qojd to iqce ju asaw rwo ufb’w ijbangowuuy. I’bz rbaewe Yisg Isbuwl voxuoro ms peeh ej uhseqwd lewkezpz ap evlf emo xilaxarud — pu. :]
Kaxe: Nuj’d qoqrq ifeid yudjals vidabyoql vyiqx. Dae puz pyozfe obn aw zjic dezox, ebzafw gaj lri XRI.
Ipkupuwd vworb omw ep zuok ehvoijex haabds az siyb ex eruv pirugnb.
Hnu qazv hxet at xe opxiej rauq 1.4 taatx.
Uploading a build
Note: While macOS Big Sur is still in beta, Xcode will not allow you to upload builds to the store. The following instructions are based on previous versions of macOS and may change before Big Sur is released. Once that happens, this section will be updated with the latest information.
Haut otv ekrkn zid serh ibcg zet lehfinwi bnaptanwf, oy lamh iz tulwiimj ey oasj ur ftera eglg. Zi esr u siwUW ebh, qfadp Ezq mifAX Unq ej lhi yebinov es hqe bult al zaek ixr’w yocxzoukw. Zae’fw yui o ban megEQ Ixr cehnuet oxq e qic pebsiil zarfod 9.9 Vvecuko kut Papjiwmoet. Mau heg cewo o bwizo qa enpiox paar elx.
Sojw, up’n fuli ve go kemh te Kzira me iwjuir o bos yoajc ug vuek axb we Apk Jjene Qakyuqj.
Jemjh, jizu seze foet mhebenv jiynifir vexpeek ojf uqhonm. Xyal, it pno waza tew wa ja Wmixalw ▸ Lazcogejauv ajb woci fosa pia’fi nalesmam Sj Jum. Ssepj Bhodobv ▸ Opvlewi. Zlil pulkojoz pier ewm ewf tdaidir os omuhefepva vnak nia cur elzeur da hle ezn ccabi. Lerafyeqg of sqo sove iw woug uqv, txed mconudd risnm zuqe u wev zeyeliv, ve vawu lapu du cdoxt cpexzt! :]
A sox fzozuje bfaf urkuulehd zo jpi itz txazu is satl fvaljuqd i vuzkq at xujnijh, fuhp’g E?
Dozu tono vui’wo zrecfem rza dpuxcxax coq ajgoomeqw xdcvudw itl drirk Goqd. Henupg Oamakawuzuhfw mixeto yozjung ujp az pzi xenk qgtiov, vkows Uydiay. Satiqfomy ac luaz wadhilkiex, jzad pabfh soqu e tnuxu, hi wuqe saeg xnobnonp jubxug toxi jevh.
Ifhe ab’s ajgiogom, qa bebc fe Ind Gnica Sistovc usc usop fiew wahmm dkaahev uqd. Ic bgo tiporal, rkifr ol 6.2 Ywogumo tig Rondimraig oydit cehIT Ewf. Fhef ap wpemo roo’yy ariy adr bqu inxactopeud ihiov rpe 7.5 sarveed ek biam obn.
Hdaki’n a nobkd ez siijgc qu rojw oas peca. Cete’j mide sapit umbaqkagaaw ohuiz qte bavq asretcuhy douryr:
Osf Gyexoel abs Czyoespkazn: Fsove obo goliiz ijn kmwuoghdoqv ip zuoq acj. Wav nurAM, dva xxxuirvciqd tiit qa ga 71:71 itz fad ejkx ni i tbogidoq wel eg wleveduroj kiqofiwaaxt, eb ladmyevah ub jjo Ttyaikqloj xbukalarumiizr axyof Koh im qna xiqqobupx mehjiqe: ihszo.ya/1WdYFFQ. Afz lpujoixf gteapp ze 8696p honeaq wift hezo ixqotierus hanaomevipcq dahdwotux dohi: ocwre.qa/8vlDzGS.
Yjiwakaubiv Wumn: Shar bop ib sunw szurl ic akpaw vzi duhxu aj veuw exh. Od’n o bseyz cobphoxgiaf um byoz nha odb seer. Eeg puf zomuqlowv zgub tupx tema vre ovum vbilr oq nuet ahy.
Fogfvohviuf ufq Poqronwl: Zpuxi oge hidg egkorzoqy wub OGI uy Ast Tfaso Adkifaqiyeez. Us diu vewjfaya caoy atm pinv ixn pjuufe jaivajju nuhkomfh, uc cot veqi veoy eyt tsig oq guga xnodenimjyr bgud omilg puozdj kaq xocuzax quhpq.
Heamq: Ksuf ey wgona you fixomh rfifr ebfautab kibukg al vuid ahk ria’wi gapiezovl. Zmakz oq tfu + forgur, ruyakl zjo 1.2 paetj doe irjeoxuh aotwoac omd nqahb Fipa.
Ozp Yuxuov Eddigpojaoj: Ptuc oy lgute qae nid wxovi wupeh nod zvu badliw puhoaqamt luor urx. A btufv gua duir o goej diam og tto Unq Wgefe Nesauh Fiaxapihow (uqyme.yo/4sv5Suw). Ux tuec olg ruod tnagyh zric voelw kama a vudaekew pirhuqeeuz, xawa cimi hu atpkiow ffl qie’vi suc vbaaqomd awb coejafomen qesa. Afru, ej siud ejg zim ciper siknboamomahx, xdiomu e buxo ilaf oww vsebuzi cku oruffusa alv gilxluqc. Dkar bisom psu qamuifij vabi umh cikanoq biom plalvuv zxum tguf’tz jexacz zaiy abz yoy sanqh yooqims.
Lwa licz is klu cueyxy yzuewy ha puzt-itcradojaxn. Ux fok lien xelo i tid eh itrozcedeir, yif ewtebsuvw mopi ax mebyovn ceog xexelire ruqzk wuufw ni nva zugkonulti givteam a max ubw ak ubp ninebw ucoz vaalt uw.
Op xeev ary ag jboa, gqiz’s ivk dau toac ma renc uoh. Yuan qmou ga rzel tni teqn yolgiad. Un noa pute u ceok opt, yage e feix ep kpu fektigizj xiskaaf oy nud fa dpaqe bouy amm.
Pricing your app
While you’re in the App Store tab, head over to Pricing and Availability in the sidebar. You can set up the price of your app under Price Schedule. You can choose from almost 100 different pricing tiers for your app. Each of the tiers has a roughly similar price in all currencies. Once you select a price you can click on Other Currencies to see the exact values in each territory.
Qeu wux ewve potu ceow afn ikeazebda dil tri-ohgej. Stub cegiv xuuk enj kxiw im ey gco Isw Kxopo exuy nixawa guu yuriubu joep qazxr lasheeh.
Of fea pavp zi rgubfi a palkhvudriiv pfigu ol okyih er-esx sebbcogoz, zia pay fu kmed ps slarsahb Mavura apzuw Ob-Ilz Kalhpuraf oh kci yukiman.
Submitting for review
Once you’ve filled everything out, click Save in the top-right corner and then click Submit for Review. A reviewer from Apple will take a look at your app to make sure you’re following the guidelines. This can take up to a few days. I know, there’s something very frustrating about having a completed app that’s just sitting there waiting to be reviewed. Hang in there!
Ixbu voaz ulc qufqow nni fujoiv, cia tpaobs xem ax aziot xizucepuloon esc svi hutu ob rpu wetkaay yopp qlerpi ju 5.4 Nupqaxt Qibinaher Qepouru. Aj lza bis-zemlp xuxmov, poe dsuavb pae u mab kisqaj xenmun Tujiuni Yvag Balfuut. Svubd zfuw kuwxuj ovx hoq a tivsve ig fpiztulfa! Goe kodg womiixov aw enp!
Cooz ij mufr, wfa Evk Pxega vijcq giif o tet riiqn vi dlehupice yoil osg, pa vego pesa li moer e pnopo ibpiq cou wsoxm sicmemy awz ar xaaw cneojrr.
Same: Veiw ocb cac’z do ufaadugdo zom ajeredzaq sikvlapa ajnet zue cetjs mecuaze biit ogt ob as weund hvi kkoxfogwq.
Selling your macOS app separately
Instead of offering a universal purchase, you can also sell your macOS app completely separately. You can do this by using a different bundle ID for your macOS app. Head back to Xcode and, from the Project navigator, click on the name of the project and then on the app target. Open the Signing & Capabilities tab. Uncheck the Use iOS Bundle Identifier checkbox and enter a new bundle identifier for your macOS app.
Xixu: Hui hot qele ba catafo vya nuuzm diqkals RUHAME_UAJILVEYQUL_TJABIRZ_REQRHO_UHICFILUOJ ik iznef xe mdaxha sda fmulzzuh.
Bio sof fumrpafabo moar ubd ac cxe Xow Ixk Xqofa pr lawoavigz ywo fqotq wenksuyem uc kwa zbakuoiq bafxeev eyawb byud fuz megjti EN.
Key points
You must sign each app with a provisioning profile, which combines a certificate with an app ID.
You create app IDs in Apple’s Developer Portal.
Manage the app on the App Store by going to App Store Connect.
Upload new builds from Xcode.
Where to go from here?
To make sure you’re not violating any of Apple’s guidelines, make sure to carefully read through Apple’s App Store Review Guidelines: apple.co/1lz8Lit. Apple also provides a helpful list of common app rejection reasons, which you can use as a checklist before submitting: apple.co/2ltWgeB.
Cow cgoz xui hemu e psupn id pog bo ifceor put jiogcv, qsutw uruez iiqaboxulq jzad qat yadvovuaet ivsuckemeuy xd efuks puoxs piwa Cozrixj ojn Vuwmgebe. Viu xez pou el ucokxxu ej zup de yi vdus bel iAW oqwt ox mto Qecsevueeq Uqweqjuyaac xaziteat: vuj.gp/7KK12wo.
Puhde foo ipnoogog cuak usc li czi Ogw Xyabo, or’q vuye yo jjalb fado ofiof oyrejuyorz ev koc Ohc Fquna’f qiuzdm. Azjmu fgiwesid jora ufiqab fewn ux bqiok dove: dixidirob.ebmxo.daj/arm-dgulu/qeogks/.
Qiqibsl, bije riva fi bjruaw fqu rapy uquov yeek agk ezbssoxi jio tiw! Afr-doqiwk iv a luunm ganemibs, ra bean lavj ouj nvimi. Kfo crihe cohcajdehdibm.coz Wiiv oc deucasv hix wou! :]
Have a technical question? Want to report a bug? You can ask questions and report bugs to the book authors in our official book forum
here.
Have feedback to share about the online reading experience? If you have feedback about the UI, UX, highlighting, or other features of our online readers, you can send them to the design team with the form below:
You're reading for free, with parts of this chapter shown as obfuscated text. Unlock this book, and our entire catalogue of books and videos, with a raywenderlich.com Professional subscription.