From 83d491c032d49d21f0a41029f3e7bb30ec00162c Mon Sep 17 00:00:00 2001 From: Hein Rutjes Date: Mon, 3 Feb 2020 11:31:53 +0100 Subject: [PATCH] [bare-expo] Add GoogleService-Info.plist to bare-expo (#6934) * [secrets][template-files] Add GoogleService-Info.plist secrets & templates for bare-expo * [bare-expo] Add optional GoogleService-Info.plist file linking --- .gitignore | 1 + .../ios/BareExpo.xcodeproj/project.pbxproj | 40 +++++++++++++++++- .../cp-bundle-resources-conditionally.sh | 11 +++++ .../Build-Phases/generate-dynamic-macros.sh | 12 ++++++ secrets/keys.json | Bin 1854 -> 2587 bytes .../android/app/google-services.json | 6 +-- template-files/ios-paths.json | 3 +- .../ios/BareExpo/GoogleService-Info.plist | 36 ++++++++++++++++ template-files/keys.json | 15 +++++-- 9 files changed, 116 insertions(+), 8 deletions(-) create mode 100755 apps/bare-expo/ios/Build-Phases/cp-bundle-resources-conditionally.sh create mode 100755 apps/bare-expo/ios/Build-Phases/generate-dynamic-macros.sh create mode 100644 template-files/ios/bare-expo/ios/BareExpo/GoogleService-Info.plist diff --git a/.gitignore b/.gitignore index f5ada1eab332e..9cb7ea721d294 100644 --- a/.gitignore +++ b/.gitignore @@ -74,6 +74,7 @@ jarjar-rules.txt /android/expoview/src/main/java/host/exp/exponent/generated/ExponentKeys.java /android/app/fabric.properties /apps/bare-expo/android/app/google-services.json +/apps/bare-expo/ios/BareExpo/GoogleService-Info.plist /ios/Exponent/Generated/EXKeys.h /ios/ExponentIntegrationTests/EXTestEnvironment.plist /exponent-view-template/ios/Podfile diff --git a/apps/bare-expo/ios/BareExpo.xcodeproj/project.pbxproj b/apps/bare-expo/ios/BareExpo.xcodeproj/project.pbxproj index 964a23b768f10..97a5b44931dff 100644 --- a/apps/bare-expo/ios/BareExpo.xcodeproj/project.pbxproj +++ b/apps/bare-expo/ios/BareExpo.xcodeproj/project.pbxproj @@ -187,10 +187,12 @@ buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "BareExpo" */; buildPhases = ( 4B0225741A3EE6614741CF8A /* [CP] Check Pods Manifest.lock */, + 2168BD7723E476FA00A94C0D /* Generate Dynamic Macros */, FD4C38642228810C00325AF5 /* Start Packager */, 13B07F871A680F5B00A75B9A /* Sources */, 13B07F8C1A680F5B00A75B9A /* Frameworks */, 13B07F8E1A680F5B00A75B9A /* Resources */, + 2168B70623E338A300A94C0D /* Copy Bundle Resources Conditionally */, 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, F6332E868606A56C9C6C2366 /* [CP] Copy Pods Resources */, ); @@ -273,7 +275,43 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh"; + shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh\n"; + }; + 2168B70623E338A300A94C0D /* Copy Bundle Resources Conditionally */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Copy Bundle Resources Conditionally"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/bash; + shellScript = "$SRCROOT/Build-Phases/cp-bundle-resources-conditionally.sh\n"; + }; + 2168BD7723E476FA00A94C0D /* Generate Dynamic Macros */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Generate Dynamic Macros"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/bash; + shellScript = "$SRCROOT/Build-Phases/generate-dynamic-macros.sh\n"; }; 4B0225741A3EE6614741CF8A /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; diff --git a/apps/bare-expo/ios/Build-Phases/cp-bundle-resources-conditionally.sh b/apps/bare-expo/ios/Build-Phases/cp-bundle-resources-conditionally.sh new file mode 100755 index 0000000000000..c47b877371fe8 --- /dev/null +++ b/apps/bare-expo/ios/Build-Phases/cp-bundle-resources-conditionally.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +set -exo pipefail + +SRC_FILE="${PROJECT_DIR}/BareExpo/GoogleService-Info.plist" +DST_FILE="${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/GoogleService-Info.plist" +if [ -f $SRC_FILE ]; then + if [[ $(grep -L "NO_CLIENT_ID" "$SRC_FILE") ]]; then + cp -r "$SRC_FILE" "$DST_FILE" + fi +fi diff --git a/apps/bare-expo/ios/Build-Phases/generate-dynamic-macros.sh b/apps/bare-expo/ios/Build-Phases/generate-dynamic-macros.sh new file mode 100755 index 0000000000000..57878b72734f7 --- /dev/null +++ b/apps/bare-expo/ios/Build-Phases/generate-dynamic-macros.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +set -exo pipefail + +if [ -z "$EXPO_TOOLS_DIR" ]; then + EXPO_TOOLS_DIR="${SRCROOT}/../../../tools" +fi + +source ${EXPO_TOOLS_DIR}/source-login-scripts.sh +export PATH="${SRCROOT}/../../../bin:$PATH" + +et ios-generate-dynamic-macros --configuration ${CONFIGURATION} diff --git a/secrets/keys.json b/secrets/keys.json index a6aa87e88043692ace9f18c3a1d57f5e2185dfa2..6d70a6e6a7f554b47a878840cd4b71b314c46380 100644 GIT binary patch literal 2587 zcmV+$3gq8-Bz`qa@NRu4EPZXkuxn_iR?$nm=xFh2R=& zTc$h4pVRD;LOD@%nZ$E`=VbX%e`CnXZ0po1JsWAZ1Ci;B4M!Byqb9_!j#DFd$)yMc zyB3_bQ1E-;U&{$Rte;&<&?U*zLh?$vq*f5y(#GaSlqs^c7M<9=u_Y24dMhg+MZy2H z`v|AZPI@k{rSU=;awB=^GjTz(cU5c zwCf{EN(eQ(!Ii!p#3JGk{rWIT%lEyXjAbk&7;?IR@w41OOC#qdIbq1? z3WcoDi)ANiNBs7u(cZ1uBS#4ZNTyhFZk~(neieVRjmTxCbStDZ2fkA*n6qd!$>Mx{ zto-&XighiM5+5;Pho!G5A*tig7u{ zy4Tv(WtJ#m|;eX62^e%@(zm{FH~go5t_;(RZQeh8{KRfTEdq3zO}+ zEadDQ$YLxw6ISH2z`LXwitHB8aXH=XBEuh(R}6FY`L(xS{hFbqwv7R%IKV5LnLQx3 z%0+*snn%m`oRq1Oik@U1E}fbZZNfVWUVAL!`!Xi7F%cAXstsZg#@)#k`PjWQGo)-m zA)Xr^`Bt$+Tm;nc!PN;sqK{`A_>26hz4GeZ^#0BNkqBkZ@e+OxaShM)zg438?SR{s;*>l8!C>T&3#BPKRQ*9VldSXF_tB#W}yH;512k(fHC@+k+Q71!;#v@7I?Z8 zO@C?DX-~acrQ3!v%Bur!z!d~lkok0spm=xxfnlbnCQ{57Q%8R+4>b$S<=RmT{h>uV zO0Z)93IF`HWyiNj1H}o>e1+no@P`UUU;Rx~Mol8YfaQ|20DdVu@fQdOTxgQ~Y6<0O z;mR^VUc*Bi+ACKiDpCGL=D+I+ADnB~PW=~74f-x>AyLHRBB8BQqKutZ4E1d3!1eSbICN2wRnF zjV={z2?$&0KaNpqXz{m)C#d+)d&8w2N{~iTWtg~mhn$Gc0*=ujbrViuMoEX8BHsk< z@IRmsOrUgk{K*enr<98HSg}N72)56ulIa7Jb!0|3cn{6ti#liiYMp)kB$xpT52@SZ zP3I3IZlgB(86qLE?b8^lTAI2E-XT(fISk~}>m((>`n2j4%3|hz{or47n-5`_DWtw- zF-_3Fcc8l{`O%AduqTbh+lZ=8JCpueZA${Ez2f{3EjKN-SXs!?5B4{JlxD%VnpKfg zt+AJ6=sAU52+t(a8`au%4^qpxOi2$MSMI2fX+rajiVpf-EHV?suzG ztJt;Be;hd)lpCct*xNn+wUBWPv>s{%eSsM7JY=#1<}JPSOIAHWftux2lQ927JY3(T z_=ZNzk>k27{IdrJziPTl9Rn6oeqDBLFJ@qlmB0nDZJr&0tT3lKT{35d)GshQZX%-6 zaI~U)Gc3{CC&ITyOve@1X6Qq-mI1TmD`)vO_y7#Rmg$Y;()vgL&;17sKEVhsI3O2y z(8vzt$^N|&6`K%=UiTCN1!tPR40aw8oNqjVrtbRdtvAUaavPp(-s8)KP%i>kHsC&~ z8j>kAac$4v5u4iL>Sa2jS`u>9vX3wy6T&zD+6C2%=+xRV-kBC4-py)yaq0JrI@-Z? z%?n#emun||WuVA&rEz|AvHc1YkUOc*(fTLc+24T0Xmg!tMH5!D|1V*@Um z9WNb+^^N{%$4iBP_wsox8|>L{x!1Bd_RJ5Nfz12K@H`FM@9UT0_*G*i#{U~ZOkz19 z=|69$>H|x}OEV_x46v8B-BLe-VkxMX9W@|PFk0^3aZ$Y#DfLe6P)Q|V2*+c`WpqJK xRH2~#p4X_Kk#x0ZvxSaRlCo;p<@vYr7qqI}NFuPJ^15@gAYWe`8MN}#BEIa`Ab9`) literal 1854 zcmV-E2f_FNM@dveQdv+`0O{Rb<_S8@0e|8cPxvO#){EVl{3YIrAH~#Kln1#5X`93Y zoVlr+Mub;LM5esu2 z5VecfUbYQPj$93@t29Zc-Ri0` z@Hf+oBSa4ozJJvLE%l5Q0AHLQAly?J3h6|q;{z1wxQDVOUSND|_L?%q4?(OvUv!vJ zhnBnNOB{@~c-~Be2YYR_%Sc+hAD;)B{f{d5EDIU+z&&2u1uz8Q?V4U%ZZ6jY_x=h0 z?G#EYwm=mJ;rx?>YvG}~ZTU^8Xe>8I1NS23@^!}&U`#mgTW#aFR=u8hCKpj$avK#T+ymP#2WJ9l%*5b zhTn1X!w|u?IoDq|srnSZ$`t#sLc}{I;=LjkwnrFPPT$+i>X9^;zYWMjK3UZ+FPaRL zAkle{x9ALGP&gSR2mYmD1N7PZaT!V(E+U;|2C6iI9H*XMC*4TKDx)a?#y29mls*ps zeEyh?^S7xVsQ(!WdE4PRY=5J(LbmR!Tgdcw9xnb6&g*Jf*lo+2#1<6`mbR$Pfh7{E zMXVpO)<_V5jBh0b!~fSrC`GPzMj7_b31pzX`#1(fJ`$!(p3qszfk+!`XKXrFw&;xj zYj5d&e7bY_R_xf=8JsbSiH@+6*57Eoeq5x@YL1_Gp-S8&{%jWP}&vOL3TTX<6i zl{I)-8~$4RN5yq^$b4A-r%B{wELEqQFE-#Ib^5ytJQ&>vgr&`JvMLuy3crl&gP@4m zEHofCwwEO~d_f4^Mad-|ajmm7g1S4k!SuUk7*sGu0<@s(ZxBRj6Q*dqrvCwFYDo7F zIc3uAc$YGD)7DEaqSC5Sz!&0HVi)Jukh1rK)p%_54mau3{;c@nVpaQ(U0i*jiYv|hZoSSK7t zWAw9L>0aR(T-FJSl(S`ZniixE`ooz4jMpsO_Y=EJ z27>%l)?zfx?Yg}_B@KV;hO?btuedoc57oACa?$io@H+OO|J>MXzgj)+yHi(EuJ~IM zPYzBtA<9P+A99J^0+o-H_}68t+akzU2Lq&tI>fJMitf7{$rc*|Ju#mPL1Y+}zZZ>;I3L(S;t6ZOnvuwe z+Tv0k^+~}0H}*oX=kMfu?w;IDl7UN_qNPUVR#D?+Hdm%J{WMV*SJ8w{-pVgLG687r z&dSoB_0zx`d-LmaM+YuQpr`x+y(9e{#viQB>UJFd;ovV6j_vCF95Rn@WUj#urev9FH{Umye`&S#Q1mvB*F-o3)X=QSOU*vjjAAza| zVzugmT`Qr3D2=W;zH`!kPmNKr;xEkyxlHuJ>y(?H-T8gi!>>mg!hxXYnD3VxQ=!p+ z^zZqN*>x$(f@27gE>;h!o_4$?NMhs;kvoY#M`gEolljb3FwQ5S)1Zesv&zQTw-C%f zH;!BsN?8;(L=xRv{WKet|1-DhU-83~U|w5C_LN8IOBw`@Gadn_i$GxL#x6sudq868 zTmgah+-UbdV-_QZPoJLwD6qE}*g_3udS_xsCVY&!Bi$f9sWg%+yK6*=0eP_yTV9&?QwVjeF&bb sEfAAA=1^3t75c>JfrIyCc=Fuq1bD-M_Y1ENy!z};@pd%Q+CF@_)#ihmRsaA1 diff --git a/template-files/android/bare-expo/android/app/google-services.json b/template-files/android/bare-expo/android/app/google-services.json index a63b1dcb63d02..a96407033626c 100644 --- a/template-files/android/bare-expo/android/app/google-services.json +++ b/template-files/android/bare-expo/android/app/google-services.json @@ -8,15 +8,15 @@ "client": [ { "client_info": { - "mobilesdk_app_id": "${BARE_EXPO_FIREBASE_GOOGLE_APP_ID}", + "mobilesdk_app_id": "${BARE_EXPO_FIREBASE_ANDROID_GOOGLE_APP_ID}", "android_client_info": { - "package_name": "${BARE_EXPO_FIREBASE_BUNDLE_ID}" + "package_name": "${BARE_EXPO_FIREBASE_ANDROID_BUNDLE_ID}" } }, "oauth_client": [], "api_key": [ { - "current_key": "${BARE_EXPO_FIREBASE_ANDROID_KEY}" + "current_key": "${BARE_EXPO_FIREBASE_ANDROID_API_KEY}" } ], "services": {} diff --git a/template-files/ios-paths.json b/template-files/ios-paths.json index 0b1b2b12daa80..86caa53574d6c 100644 --- a/template-files/ios-paths.json +++ b/template-files/ios-paths.json @@ -1,3 +1,4 @@ { - "GoogleService-Info.plist": "ios/Exponent/Supporting/" + "GoogleService-Info.plist": "ios/Exponent/Supporting/", + "bare-expo/ios/BareExpo/GoogleService-Info.plist": "apps/" } diff --git a/template-files/ios/bare-expo/ios/BareExpo/GoogleService-Info.plist b/template-files/ios/bare-expo/ios/BareExpo/GoogleService-Info.plist new file mode 100644 index 0000000000000..604b806d949c3 --- /dev/null +++ b/template-files/ios/bare-expo/ios/BareExpo/GoogleService-Info.plist @@ -0,0 +1,36 @@ + + + + + CLIENT_ID + ${BARE_EXPO_FIREBASE_IOS_CLIENT_ID} + REVERSED_CLIENT_ID + ${BARE_EXPO_FIREBASE_IOS_REVERSED_CLIENT_ID} + API_KEY + ${BARE_EXPO_FIREBASE_IOS_API_KEY} + GCM_SENDER_ID + ${BARE_EXPO_FIREBASE_GCM_SENDER_ID} + PLIST_VERSION + 1 + BUNDLE_ID + ${BARE_EXPO_FIREBASE_IOS_BUNDLE_ID} + PROJECT_ID + ${BARE_EXPO_FIREBASE_PROJECT_ID} + STORAGE_BUCKET + ${BARE_EXPO_FIREBASE_STORAGE_BUCKET} + IS_ADS_ENABLED + + IS_ANALYTICS_ENABLED + + IS_APPINVITE_ENABLED + + IS_GCM_ENABLED + + IS_SIGNIN_ENABLED + + GOOGLE_APP_ID + ${BARE_EXPO_FIREBASE_IOS_GOOGLE_APP_ID} + FIREBASE_DATABASE_URL + ${BARE_EXPO_FIREBASE_DATABASE_URL} + + diff --git a/template-files/keys.json b/template-files/keys.json index 09272f0d413b3..251f72fb216c9 100644 --- a/template-files/keys.json +++ b/template-files/keys.json @@ -25,7 +25,16 @@ "FIREBASE_STORAGE_BUCKET": "", "FIREBASE_GOOGLE_APP_ID": "", "FIREBASE_DATABASE_URL": "", - "BARE_EXPO_FIREBASE_GOOGLE_APP_ID": "1:300000000000:android:0000000000000000", - "BARE_EXPO_FIREBASE_BUNDLE_ID": "dev.expo.payments", - "BARE_EXPO_FIREBASE_ANDROID_KEY": "" + "BARE_EXPO_FIREBASE_DATABASE_URL": "", + "BARE_EXPO_FIREBASE_STORAGE_BUCKET": "", + "BARE_EXPO_FIREBASE_PROJECT_ID": "", + "BARE_EXPO_FIREBASE_GCM_SENDER_ID": "", + "BARE_EXPO_FIREBASE_ANDROID_BUNDLE_ID": "dev.expo.payments", + "BARE_EXPO_FIREBASE_ANDROID_GOOGLE_APP_ID": "1:300000000000:android:0000000000000000", + "BARE_EXPO_FIREBASE_ANDROID_API_KEY": "", + "BARE_EXPO_FIREBASE_IOS_BUNDLE_ID": "dev.expo.Payments", + "BARE_EXPO_FIREBASE_IOS_CLIENT_ID": "NO_CLIENT_ID", + "BARE_EXPO_FIREBASE_IOS_REVERSED_CLIENT_ID": "", + "BARE_EXPO_FIREBASE_IOS_API_KEY": "", + "BARE_EXPO_FIREBASE_IOS_GOOGLE_APP_ID": "" }