From b85c2b994f2bfcd35bc44919baf7866ef54dcf6c Mon Sep 17 00:00:00 2001 From: Jean Regisser Date: Tue, 17 Mar 2020 18:27:38 +0100 Subject: [PATCH] Support multiple env file in Xcode Idea is one env file per scheme Addresses #1156 --- packages/mobile/.env | 3 + packages/mobile/.env.alfajores | 3 + packages/mobile/.env.integration | 5 +- packages/mobile/.env.pilot | 3 + packages/mobile/.env.test | 3 + packages/mobile/ios/.gitignore | 5 +- .../GoogleService-Info.alfajores.plist.enc | Bin 0 -> 1285 bytes .../ios/GoogleService-Info.dev.plist.enc | Bin 0 -> 1273 bytes .../GoogleService-Info.integration.plist.enc | Bin 0 -> 1290 bytes .../ios/GoogleService-Info.pilot.plist.enc | Bin 0 -> 1277 bytes .../mobile/ios/GoogleService-Info.plist.enc | Bin 1273 -> 0 bytes packages/mobile/ios/Podfile | 14 ++ packages/mobile/ios/Podfile.lock | 2 +- .../mobile/ios/celo.xcodeproj/project.pbxproj | 36 +++-- .../xcschemes/celo-alfajores.xcscheme | 143 ++++++++++++++++++ .../{celo.xcscheme => celo-dev.xcscheme} | 20 ++- .../xcschemes/celo-integration.xcscheme | 143 ++++++++++++++++++ .../xcschemes/celo-pilot.xcscheme | 143 ++++++++++++++++++ packages/mobile/ios/celo/Info.plist | 2 +- .../scripts/copy_google_service_plist.sh | 7 + packages/mobile/scripts/run_app.sh | 2 +- .../scripts/xcode_scheme_build_pre_action.sh | 13 ++ scripts/key_placer.sh | 5 +- 23 files changed, 531 insertions(+), 21 deletions(-) create mode 100644 packages/mobile/ios/GoogleService-Info.alfajores.plist.enc create mode 100644 packages/mobile/ios/GoogleService-Info.dev.plist.enc create mode 100644 packages/mobile/ios/GoogleService-Info.integration.plist.enc create mode 100644 packages/mobile/ios/GoogleService-Info.pilot.plist.enc delete mode 100644 packages/mobile/ios/GoogleService-Info.plist.enc create mode 100644 packages/mobile/ios/celo.xcodeproj/xcshareddata/xcschemes/celo-alfajores.xcscheme rename packages/mobile/ios/celo.xcodeproj/xcshareddata/xcschemes/{celo.xcscheme => celo-dev.xcscheme} (84%) create mode 100644 packages/mobile/ios/celo.xcodeproj/xcshareddata/xcschemes/celo-integration.xcscheme create mode 100644 packages/mobile/ios/celo.xcodeproj/xcshareddata/xcschemes/celo-pilot.xcscheme create mode 100755 packages/mobile/scripts/copy_google_service_plist.sh create mode 100755 packages/mobile/scripts/xcode_scheme_build_pre_action.sh diff --git a/packages/mobile/.env b/packages/mobile/.env index 5dcfe3be4b6..b8e9711277f 100644 --- a/packages/mobile/.env +++ b/packages/mobile/.env @@ -11,3 +11,6 @@ SHOW_GET_INVITE_LINK=false DEV_SETTINGS_ACTIVE_INITIALLY=true # Enable for true hot reloading while dev-ing UI DEV_RESTORE_NAV_STATE_ON_RELOAD=false +IOS_BUNDLE_ID_SUFFIX=.dev +IOS_BUNDLE_DISPLAY_NAME=Celo (dev) +IOS_GOOGLE_SERVICE_PLIST=GoogleService-Info.dev.plist diff --git a/packages/mobile/.env.alfajores b/packages/mobile/.env.alfajores index fb9eb53297a..7dfbf78fab5 100644 --- a/packages/mobile/.env.alfajores +++ b/packages/mobile/.env.alfajores @@ -9,3 +9,6 @@ FIREBASE_ENABLED=true SECRETS_KEY=production SHOW_TESTNET_BANNER=true SHOW_GET_INVITE_LINK=true +IOS_BUNDLE_ID_SUFFIX=.alfajores +IOS_BUNDLE_DISPLAY_NAME=Celo +IOS_GOOGLE_SERVICE_PLIST=GoogleService-Info.alfajores.plist diff --git a/packages/mobile/.env.integration b/packages/mobile/.env.integration index 242453ae45e..edec64b5d22 100644 --- a/packages/mobile/.env.integration +++ b/packages/mobile/.env.integration @@ -8,4 +8,7 @@ DEV_SETTINGS_ACTIVE_INITIALLY=true FIREBASE_ENABLED=true SECRETS_KEY=integration SHOW_TESTNET_BANNER=true -SHOW_GET_INVITE_LINK=false \ No newline at end of file +SHOW_GET_INVITE_LINK=false +IOS_BUNDLE_ID_SUFFIX=.integration +IOS_BUNDLE_DISPLAY_NAME=Celo (int) +IOS_GOOGLE_SERVICE_PLIST=GoogleService-Info.integration.plist diff --git a/packages/mobile/.env.pilot b/packages/mobile/.env.pilot index f6fb4920f30..ae2a395ab45 100644 --- a/packages/mobile/.env.pilot +++ b/packages/mobile/.env.pilot @@ -9,3 +9,6 @@ FIREBASE_ENABLED=true SECRETS_KEY=production SHOW_TESTNET_BANNER=false SHOW_GET_INVITE_LINK=false +IOS_BUNDLE_ID_SUFFIX=.pilot +IOS_BUNDLE_DISPLAY_NAME=Celo (pilot) +IOS_GOOGLE_SERVICE_PLIST=GoogleService-Info.pilot.plist diff --git a/packages/mobile/.env.test b/packages/mobile/.env.test index b5e7df53018..b1a2437ace4 100644 --- a/packages/mobile/.env.test +++ b/packages/mobile/.env.test @@ -10,3 +10,6 @@ FIREBASE_ENABLED=false SECRETS_KEY=debug SHOW_TESTNET_BANNER=false SHOW_GET_INVITE_LINK=true +IOS_BUNDLE_ID_SUFFIX=.test +IOS_BUNDLE_DISPLAY_NAME=Celo (test) +IOS_GOOGLE_SERVICE_PLIST=GoogleService-Info.dev.plist diff --git a/packages/mobile/ios/.gitignore b/packages/mobile/ios/.gitignore index 8d2e78cad4c..e51040d2955 100644 --- a/packages/mobile/ios/.gitignore +++ b/packages/mobile/ios/.gitignore @@ -1,3 +1,6 @@ **/GoogleService-Info*.plist sentry.properties -Pods \ No newline at end of file +Pods + +# react-native-config codegen +tmp.xcconfig diff --git a/packages/mobile/ios/GoogleService-Info.alfajores.plist.enc b/packages/mobile/ios/GoogleService-Info.alfajores.plist.enc new file mode 100644 index 0000000000000000000000000000000000000000..b0af1efba51ec7f7984891a2c396005f77d986f7 GIT binary patch literal 1285 zcmV+g1^W65Bmi5&XOd;Sd_1ss8a+%^)i2np2a1h7#Nf02zV- zEUn@W@(U;%%)r_rLxOhu=*WsqZf2VfMMnBu6J}D)L4tzZ#AH$| zh_+if7mf)iU4fYNG~Qb_&(^?C{qyOn{hX_&kr}VjrjNfXH;2hj-8-Dx+4bm1lAXqh z56e11rcKm#15E$!EZPaEy$s$4)D=+dru8}OhKCpV5CJ(E@9!uu`tjyK#u5zFT z1CC|qU<^Pg9u1JRv z8xQG91U*~^t7}lQCx!+;v(b2`PERUmkPtb(vmB}(%8>ayB4MszxZ-M2wa}yLv*xgk z1A;IGBSgz^%^Drj5<;~CLmmSuu22>yw_C#;DjZxGV_c0XTUk6D3<#As>vOS9k^mFY zTVW_y#TernH`9~$Z;EpB{K#!pKKn4_Zbzy$FJw+DzvZ)aG@r(fZRzP1*4 zD@E`yPl*dz`~;Llsa^COMJ-MYxI6WE(tlcrh)pV9MT@Fv?ZMrt&u--1d%hk*fXLmo z%NK4=!1G1|^M=Tj?Z5>Y_xDxY8&TIOJ&}olH5_nHQFi$4$bBoVodzsc1CpKDzEzs+ zkE+!+AdbH9f&;ieNdKL#G*w2nsHu_PyqvZhg`ET}C?_iWs(EEwZDp-Am=3vM^v-M`S zJEwpLKUBnVKT`7O@GJG)nMI%`gNA>fpbOsGc<{Co%aXR)08JfU7))aDtIRCRagM} z%*%Hf)DUBy{TTXLhDL4Bh*HqK5DPzO?r%S=3Ut$Az`(A|6amP+LlA3iE4%23GT}{P z*7aRbW{f^$-E=Tcr}ZxAEeN_l6G51q2D#O`D!h4gZg_g#zvl)Obv|f!X^aY}v1q;W zzo1dZ+V(sA8@p)xaXJqt{v=V1E|5*fk-|TIYP9N3I>JwOKfslG8fYbj06t$}X9qB^ zM7hkTaPTBZnAda55pW433&|^vE1znlz!5_D=-&!Dg5CaApj7AXI1ItXI|+jvHje_D vcG5CA?Hl zV>ENl)8Tc z#7}uoYp-j#97^l9?hgI+~mh1Oe9pi0ouy}h`U}kw3cfS-VjQjpRswd z&SQ!Hq0jQ{dJ_yz^GH`jl%yXnAMk>_z4D|FwDhkLfXPaTCt}|s?3@}XoWJ(n^PnGG zFxNpf4=CCbm%(kRm)`^d+GdFzVlq3y@#>6b@I|gIE-A%@?Ilk$R)u63Br{tcmO;2i zz1Z+Nj9Jj(abma}tp*A%N^posF!D#7&yhG^@A^n4=p|AlJR$#+IqW+%`PN?1|CpZA zt@kQJ90yFNgaYE2u>^OJ(sagRpjJ*yW)|m|+z>w!;k*gBGvY#5Xt#sJepQRbz~z&u z+sNU=r;`6*ewiG)S2;PcbFy0=Ksv-NnAQ~Za3vdBp0cuP(`z}dxvq^`4004a|hS#8K#2p2B!%C&z|U zs{O1_KNkPSXnun`rk%zpuyQ#zt+ZwNt*9R=L#meP_WsRXk^How1z05t2aQeHZm4EO z+$s-Z(s=q%M7O+d+dQmRd#Xx$@RL7(?}q(AXRdY)rm)#XefUtwV+1QecVyfP^)(Y& z9mKj8id*RfA?~-1d!~2aVGQQqDeha1XC35i5TcKI8qf-d2F#L4L(wM$#|-h3 zl#91inX4zJ@8iD_DTub;wW^+O(lqgx%J4anGEW($ebK(XM6AZ$9jA9eV?f;DUEQ}2 z=n3I7Vpui^fjae)rJ#@w)3zXT9x=GiLuFkNstFoEob5f=p=g^8#IZ!K2x(L_rQgb* zeXEWlIkfUFsLY-r6vwmnXt<8(Z|Vl8f~^+7D7t2YCh1R|RV=GCsG8?pQ<_=}3!Ej{64VWZfNeSu3V3FSeAI*-rmD_iBS*P?NP jn-R6!w;fe69!{{{IMP6K<>+yD7!}}gL}nz*OOgfLwj*@* literal 0 HcmV?d00001 diff --git a/packages/mobile/ios/GoogleService-Info.integration.plist.enc b/packages/mobile/ios/GoogleService-Info.integration.plist.enc new file mode 100644 index 0000000000000000000000000000000000000000..cfafdf944a530681b40bdfbbb8f292a3b1bec2e8 GIT binary patch literal 1290 zcmV+l1@-z0Bmi5&XOgiPOU@Q65}Lh8wooQK;Gp^g8JDXL7^wBOGnIZ+1`^>302zV- zE)$rdJkUa`0infccR0XcaNlYY`$1(=pMR!i(!rrlavX#%oqe)nI+4F#RO2MWjJHQztbf|PNx0JZH)cKB z>ovoni<&LE(UB-&S$Rcm;--M;|3%pUs&R9{UFRdUbsFIaA|wfm^>V(pI{AUXWpq0CaKT~fW?e|C1> zIYUsb5-S0S`SGXX)H)GLys#MuG~VW+C-B> zx#0}h^UVE1dxzj% z9oDGI778)Z!7++#(&aHsKW+oRfk9}6n(9k46WVR6G_g8T+pSV~ATY}!oCiZ5nRj1R zGALQ@IBn^p+53|GqMwNeR#45_S*f?88C?v14A&{WQ!|;Tt$kviJAFb))Mk*#OT43$ zX{*xhq2j7fyTBQI>9kM3Z+UhsrYXuJ){P6421seEL>pL}0aQfOFw!>q_)v4t4L^ z|KKkXj!OAT4SD2bHNMT$|I+)c;IsJEgU(JBVIr4pmAJ95$-@Yo!Q~QjK*d>{kV%|2 zj_U6&{VU`1gntwb;*OiXmr(HL1|%Au?-KMXKMEanmI;zA{z5<^d>e#6Gn_#)bXDSd zk9^B<<6r!>J*n6Q&(p}{LwVBUxnePH@9=UNy@hf8Jsy^6%M|+>NA-yatXKZvn!kfp ze|PW6V=l7w%3g>XH^sNvMWmSPHIMSXTd^OF16irEf+>X;D-;&Qih~?jVIN71Uw|<-anHSn#xnx(=8t;T*}u9(NE8iP})&PWwyyzHpPUia!_QH z;0@ydkZ!%gO~J+7-B6oJCPcjC6fd-FFL_2FKw#7Asfw_9@ClQ4d9i7gSl0a)>&Tu% ze>BM7$uTCTR#yG8eiyZKM4NrPu3V;bXj(&oGXSkx)2$xP;d<~Rzt0CAzJY$JgIs} zvQRsmfr6Fbdgpmf2h45xrh)aX_GvEL2haOncFwtZR>W=P8eDli83}3k_;xSqZRNe+ zfl#m?Lb;YiMPx@?oldES$OOB~EmLBD6^vLQVELK|osOT#Gya<<4a1Z#ZAY(_v~z7i ztm4hG=RfHE`P1{s#@VLQ(eEI+J>R3<2f4c%kC|DTq57c6P2|P~z04pQ{R9>J3<@r< zb92qO4m`gBMD-@^Klo|SZg9=Omjcbr31o^1pGV*0QK6`{F*=wKx_^w zp!`^;rg`FNwXwBHbcvWi{+rD<-HGUq*uMS|W=(Agv)X0E187(k^G6 zPw}ChL7j%FndcacztjC1;80OWkvC?B3HIo(s>tWnL-JS&5)&mT~#4K z<$?Tb!^=s@@IkN5bHzDmO*L~=w2oK+IYrz+wf1so*kYJ1XGeH=><5Kbd(DM)-KM?U z3if0yX!qP{x~b^06Ezd5)5?P6D<#=SAdAFZog?%0-5}_I4W=6XVs05O=4fpi#R;2Ez$icXk;!#|{p?hP3#9d%*%#x?}-{Hyd5Jjaj8AmuNipGeJc>H{L!M$tu&7rLL@)<2F)<{_{x1`HTa z$~s*ltY@Vv)2GQ=ghIh@FnACTqv0pcq6#)jmEq=;et;gxy8?3KqqAa}jIy?$sEcoJ zmf(8}dI6`Kr3J6WIktdAOQziD8vv!G8p^w*+gX@LVG!iu^$909C}tt z@9&fDeEcSw{Rkh3wGeYRS;7auTU6(Y_12U0saRN%|BKLcE@GcuLY6MxWK@c;I1BAz zJa1E{zbaqIWo{f8FW<*!ro?80fMUaD=K0I8|N5jA)!C1^Lvxa9IZOHz6ev`IFXVsv z;%)UHoaBoFC%eD0W9=FZ-3-w&ux(skuKID6&XsLx#z@}!3zrvpVaYr@%G9#?ZjA0# zvMSd!*u;AEH)@Gyu;g9_7nkITij(=8|J)yp-FVsl!oer6}Qe-yi+3j+B>IGoa@cTTMKL}rmJK_8fnZT^<6jBE+IA3 ni(K8tPySG*(Sn50I;B4!37Zxy;heLYSx0+asZ=arMeNacsXcm2 literal 0 HcmV?d00001 diff --git a/packages/mobile/ios/GoogleService-Info.plist.enc b/packages/mobile/ios/GoogleService-Info.plist.enc deleted file mode 100644 index 3745b796f0e813bbda61ff6c7de66ab91d0750d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1273 zcmVV*~>j10>~hW~zo z7_ki`s=K!&kakR0t}&x!tOJATcf?MWD>rd~UwBj!z~{v2*N%wLf!wu-89orx!n~ z(i1V9FCXCcuMsK(!~B^56YFIm9f*qPj%#{n#XU*Kwu2{qE4L~G*|U92zMip1$(17S67!4;IqfaMHWP2D5!@dI)MXS( z0VhT1EBu9V$QKe_D7o9&O-fVs!G|ARn|J4Ln^5Spfy@SXpXuKQfenhPH z_!f%4^liA(0htJ#RFdvGl=wLO=Bv33H7Tc)>`OOr{m)#nW;a%qF!cMIG5V;%k|qd+ zso_})lh8zTf7@2OtTfO0v=^^fe9M?O*y0I8(Jyj#dkWk)8+X=LbA51g@tTsW^Yw>yBd9Y8*E3f_YR5*>qgT9&b49Fa}+eWLP84KFSzgB zTUZbOoSS*CoZ|k?AX%C1rlrg*;wZc*O7B)GCw?9t=<8&K?fld%3E?6!65f%y-{c@p z*RR2zWz~1ZGi;iLA_H%=QMG|XmW&W4kBH^Rd&0BttsXgQ!Ld*SM~#M{-(@qr?k*yd zJ9Z?x+1Ic*eS~AkDGhVF<;>5aU{2tzRwzB?%Ie|!OSeCe;*A#kfKWcYS=Q%Tb%Lil zXNxmy!_cNJ*rar>rf#1Yn-iL%#clZb!hzC+E@3HndzLjIjz z3{1g+{Q1N`bI}oUziGxz5au;0+r$Wi5_>^DY1^NV;gJaL`F>6I66y?wB9=-%&`|p?U7%YvVn(zuaAKa8LYE)|o4kQMNwlv|ZwDNq&*4Qs}zQp~| z5?@*W#-vs`r8^Ub3DgSsAh|%ao6C))+Tu_CsM_ z*Zr&IdWN!{+f7DGb-3@fu$tEBq7H%T4n8V;5b%?NoN!X2t0XMA@=|T|3X@e)1C^P^ jI}vM|T!1By_s33zY@{4no(D4oK;|h<8@eMh2y2tav;%vH diff --git a/packages/mobile/ios/Podfile b/packages/mobile/ios/Podfile index caa5ccad350..99075fea00b 100644 --- a/packages/mobile/ios/Podfile +++ b/packages/mobile/ios/Podfile @@ -70,4 +70,18 @@ post_install do |installer| rnfirebase.build_configurations.each do |config| config.build_settings["HEADER_SEARCH_PATHS"] = "$(inherited) ${PODS_ROOT}/Headers/Public/**" end + + # Include env xccconfig generated by React Native Config + installer.aggregate_targets.each do |target| + target.user_build_configurations.each_key do |key| + cocoapods_xcconfig = target.xcconfig_path(key) + rnconfig_xcconfig = target.client_root + "tmp.xcconfig" + File.open(cocoapods_xcconfig, 'a') do |f| + f.write <<~EOF + // Env config generated by React Native Config + #include? "#{rnconfig_xcconfig.relative_path_from(cocoapods_xcconfig.dirname)}" + EOF + end + end + end end diff --git a/packages/mobile/ios/Podfile.lock b/packages/mobile/ios/Podfile.lock index 889962c8927..16599898438 100644 --- a/packages/mobile/ios/Podfile.lock +++ b/packages/mobile/ios/Podfile.lock @@ -746,6 +746,6 @@ SPEC CHECKSUMS: Toast: 91b396c56ee72a5790816f40d3a94dd357abc196 Yoga: 14927e37bd25376d216b150ab2a561773d57911f -PODFILE CHECKSUM: c66da841c6399b1bc159ddb85a372fb50501e909 +PODFILE CHECKSUM: 5bb8bdd9fd2daf5091a61879babd6bcd7110300d COCOAPODS: 1.7.5 diff --git a/packages/mobile/ios/celo.xcodeproj/project.pbxproj b/packages/mobile/ios/celo.xcodeproj/project.pbxproj index 26e33075338..e24eeab6b17 100644 --- a/packages/mobile/ios/celo.xcodeproj/project.pbxproj +++ b/packages/mobile/ios/celo.xcodeproj/project.pbxproj @@ -5,6 +5,7 @@ }; objectVersion = 46; objects = { + /* Begin PBXBuildFile section */ 00E356F31AD99517003FC87E /* celoTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* celoTests.m */; }; 0350D7F2EBD64D0585FEF0AF /* Hind-Light.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 95E01263B685485BA7D5CEB0 /* Hind-Light.ttf */; }; @@ -12,7 +13,6 @@ 0581BC2D3AEB42D086D403E3 /* Hind-Medium.ttf in Resources */ = {isa = PBXBuildFile; fileRef = AAE92820119F4CC5B23C6636 /* Hind-Medium.ttf */; }; 0F1E1EB52346439C00274556 /* rings@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 0F1E1EB32346439C00274556 /* rings@2x.png */; }; 0F1E1EB62346439C00274556 /* rings@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 0F1E1EB42346439C00274556 /* rings@3x.png */; }; - 0FF4C5D62355F18C009E07DD /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 0FF4C5D52355F18B009E07DD /* GoogleService-Info.plist */; }; 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB11A68108700A75B9A /* LaunchScreen.xib */; }; 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; @@ -53,7 +53,6 @@ 0F1E1EB32346439C00274556 /* rings@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "rings@2x.png"; sourceTree = ""; }; 0F1E1EB42346439C00274556 /* rings@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "rings@3x.png"; sourceTree = ""; }; 0FE3DE8E2347740700EA87A0 /* celo.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = celo.entitlements; path = celo/celo.entitlements; sourceTree = ""; }; - 0FF4C5D52355F18B009E07DD /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; 114969FB1F3AA04FFDC6831F /* Pods-celoTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-celoTests.debug.xcconfig"; path = "Target Support Files/Pods-celoTests/Pods-celoTests.debug.xcconfig"; sourceTree = ""; }; 13B07F961A680F5B00A75B9A /* celo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = celo.app; sourceTree = BUILT_PRODUCTS_DIR; }; 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = celo/AppDelegate.h; sourceTree = ""; }; @@ -143,7 +142,6 @@ 13B07FAE1A68108700A75B9A /* celo */ = { isa = PBXGroup; children = ( - 0FF4C5D52355F18B009E07DD /* GoogleService-Info.plist */, 0FE3DE8E2347740700EA87A0 /* celo.entitlements */, 008F07F21AC5B25A0029DE68 /* main.jsbundle */, 13B07FAF1A68108700A75B9A /* AppDelegate.h */, @@ -216,14 +214,6 @@ name = Resources; sourceTree = ""; }; - 4FA6CD97B5DB4D8A8D85F318 /* Frameworks */ = { - isa = PBXGroup; - children = ( - ); - name = Frameworks; - path = Application; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -255,6 +245,7 @@ 13B07F8C1A680F5B00A75B9A /* Frameworks */, 13B07F8E1A680F5B00A75B9A /* Resources */, 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, + 0FA148AE242137AC009239C6 /* Copy GoogleService-Info.plist */, ED787910B2A9AE78802F0CBC /* [CP] Embed Pods Frameworks */, FAA606D3D7E04ED7985FC9FF /* Upload Debug Symbols to Sentry */, ); @@ -381,7 +372,6 @@ 0F1E1EB62346439C00274556 /* rings@3x.png in Resources */, 0F1E1EB52346439C00274556 /* rings@2x.png in Resources */, 0581BC2D3AEB42D086D403E3 /* Hind-Medium.ttf in Resources */, - 0FF4C5D62355F18C009E07DD /* GoogleService-Info.plist in Resources */, 2CE54C7D16D44C5380C53609 /* Hind-Regular.ttf in Resources */, 5575263ED1EA4F568D328DE9 /* Hind-SemiBold.ttf in Resources */, ); @@ -419,6 +409,24 @@ shellPath = /bin/sh; shellScript = "# First set the path to sentry.properties\nexport SENTRY_PROPERTIES=sentry.properties\n\n# Setup nvm and set node\n[ -z \"$NVM_DIR\" ] && export NVM_DIR=\"$HOME/.nvm\"\n\nif [[ -s \"$HOME/.nvm/nvm.sh\" ]]; then\n. \"$HOME/.nvm/nvm.sh\"\nelif [[ -x \"$(command -v brew)\" && -s \"$(brew --prefix nvm)/nvm.sh\" ]]; then\n. \"$(brew --prefix nvm)/nvm.sh\"\nfi\n\n# Set up the nodenv node version manager if present\nif [[ -x \"$HOME/.nodenv/bin/nodenv\" ]]; then\neval \"$(\"$HOME/.nodenv/bin/nodenv\" init -)\"\nfi\n\n[ -z \"$NODE_BINARY\" ] && export NODE_BINARY=\"node\"\n\n# Fixes bundling failing with our monorepo setup\nexport PROJECT_ROOT=\"$PROJECT_DIR/..\"\n\n$NODE_BINARY ../../../node_modules/@sentry/cli/bin/sentry-cli react-native xcode \\\n../../../node_modules/react-native/scripts/react-native-xcode.sh\n"; }; + 0FA148AE242137AC009239C6 /* Copy GoogleService-Info.plist */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Copy GoogleService-Info.plist"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/../scripts/copy_google_service_plist.sh\"\n"; + }; 2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -825,7 +833,7 @@ "-ObjC", "-lc++", ); - PRODUCT_BUNDLE_IDENTIFIER = org.celo.mobile.dev; + PRODUCT_BUNDLE_IDENTIFIER = "org.celo.mobile$(IOS_BUNDLE_ID_SUFFIX)"; PRODUCT_NAME = celo; SWIFT_OBJC_BRIDGING_HEADER = "celo-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -857,7 +865,7 @@ "-ObjC", "-lc++", ); - PRODUCT_BUNDLE_IDENTIFIER = org.celo.mobile.dev; + PRODUCT_BUNDLE_IDENTIFIER = "org.celo.mobile$(IOS_BUNDLE_ID_SUFFIX)"; PRODUCT_NAME = celo; SWIFT_OBJC_BRIDGING_HEADER = "celo-Bridging-Header.h"; SWIFT_VERSION = 5.0; diff --git a/packages/mobile/ios/celo.xcodeproj/xcshareddata/xcschemes/celo-alfajores.xcscheme b/packages/mobile/ios/celo.xcodeproj/xcshareddata/xcschemes/celo-alfajores.xcscheme new file mode 100644 index 00000000000..be76dea9c63 --- /dev/null +++ b/packages/mobile/ios/celo.xcodeproj/xcshareddata/xcschemes/celo-alfajores.xcscheme @@ -0,0 +1,143 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/mobile/ios/celo.xcodeproj/xcshareddata/xcschemes/celo.xcscheme b/packages/mobile/ios/celo.xcodeproj/xcshareddata/xcschemes/celo-dev.xcscheme similarity index 84% rename from packages/mobile/ios/celo.xcodeproj/xcshareddata/xcschemes/celo.xcscheme rename to packages/mobile/ios/celo.xcodeproj/xcshareddata/xcschemes/celo-dev.xcscheme index c9e20c85381..e1709b9c05c 100644 --- a/packages/mobile/ios/celo.xcodeproj/xcshareddata/xcschemes/celo.xcscheme +++ b/packages/mobile/ios/celo.xcodeproj/xcshareddata/xcschemes/celo-dev.xcscheme @@ -1,10 +1,28 @@ + version = "1.7"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/mobile/ios/celo.xcodeproj/xcshareddata/xcschemes/celo-pilot.xcscheme b/packages/mobile/ios/celo.xcodeproj/xcshareddata/xcschemes/celo-pilot.xcscheme new file mode 100644 index 00000000000..8e2f87f3f65 --- /dev/null +++ b/packages/mobile/ios/celo.xcodeproj/xcshareddata/xcschemes/celo-pilot.xcscheme @@ -0,0 +1,143 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/mobile/ios/celo/Info.plist b/packages/mobile/ios/celo/Info.plist index 8d533ce5312..16f91f22d44 100644 --- a/packages/mobile/ios/celo/Info.plist +++ b/packages/mobile/ios/celo/Info.plist @@ -5,7 +5,7 @@ CFBundleDevelopmentRegion en CFBundleDisplayName - Celo + $(IOS_BUNDLE_DISPLAY_NAME) CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier diff --git a/packages/mobile/scripts/copy_google_service_plist.sh b/packages/mobile/scripts/copy_google_service_plist.sh new file mode 100755 index 00000000000..de9ccaa7df4 --- /dev/null +++ b/packages/mobile/scripts/copy_google_service_plist.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env sh +# +# Xcode build phase script to copy the right GoogleService-Info.plist based on the configuration + +set -exu + +rsync -avyz "$SRCROOT/$IOS_GOOGLE_SERVICE_PLIST" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleService-Info.plist" diff --git a/packages/mobile/scripts/run_app.sh b/packages/mobile/scripts/run_app.sh index 36669cb6927..4ad037d5583 100755 --- a/packages/mobile/scripts/run_app.sh +++ b/packages/mobile/scripts/run_app.sh @@ -59,7 +59,7 @@ sed -i.bak "s/DEV_RESTORE_NAV_STATE_ON_RELOAD=.*/DEV_RESTORE_NAV_STATE_ON_RELOAD # Set Firebase settings in google service config files ANDROID_GSERVICES_PATH="./android/app/src/debug/google-services.json" -IOS_GSERVICES_PATH="./ios/GoogleService-Info.plist" +IOS_GSERVICES_PATH="./ios/$IOS_GOOGLE_SERVICE_PLIST" sed -i.bak "s/celo-org-mobile-.*firebaseio.com/celo-org-mobile-$NETWORK.firebaseio.com/g" $ANDROID_GSERVICES_PATH || true sed -i.bak "s/celo-org-mobile-.*firebaseio.com/celo-org-mobile-$NETWORK.firebaseio.com/g" $IOS_GSERVICES_PATH || true diff --git a/packages/mobile/scripts/xcode_scheme_build_pre_action.sh b/packages/mobile/scripts/xcode_scheme_build_pre_action.sh new file mode 100755 index 00000000000..320d2af1390 --- /dev/null +++ b/packages/mobile/scripts/xcode_scheme_build_pre_action.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env sh +# +# Xcode scheme pre action script + +set -exu + +# This makes the scheme use the specified envfile +# See https://github.com/luggit/react-native-config#availability-in-build-settings-and-infoplist +echo "$1" > /tmp/envfile + +# This makes envfile config available in xcode build settings +# See https://github.com/luggit/react-native-config#availability-in-build-settings-and-infoplist +"${SRCROOT}/../../../node_modules/react-native-config/ios/ReactNativeConfig/BuildXCConfig.rb" "${SRCROOT}/.." "${SRCROOT}/tmp.xcconfig" diff --git a/scripts/key_placer.sh b/scripts/key_placer.sh index fa4359a4ee5..00e1b27dccb 100755 --- a/scripts/key_placer.sh +++ b/scripts/key_placer.sh @@ -13,7 +13,10 @@ files=( "packages/mobile/android/app/src/debug/google-services.json" "packages/mobile/android/app/src/pilot/google-services.json" "packages/mobile/android/sentry.properties" - "packages/mobile/ios/GoogleService-Info.plist" + "packages/mobile/ios/GoogleService-Info.dev.plist" + "packages/mobile/ios/GoogleService-Info.integration.plist" + "packages/mobile/ios/GoogleService-Info.alfajores.plist" + "packages/mobile/ios/GoogleService-Info.pilot.plist" "packages/mobile/ios/sentry.properties" "packages/verifier/android/app/google-services.json" "packages/verifier/android/app/src/staging/google-services.json"