From 35233b4039628c932e4f5e25515c379d8724e3fc Mon Sep 17 00:00:00 2001 From: Jon Simantov Date: Fri, 21 Jun 2024 12:59:39 -0700 Subject: [PATCH 01/34] Update encrypted file secrets. (#1612) * Update encrypted file secrets. * Update GMA files too. * Update script to ignore reversed client ID error, and update GCS json. --- .../analytics/GoogleService-Info.plist.gpg | Bin 670 -> 670 bytes .../analytics/google-services.json.gpg | Bin 964 -> 962 bytes .../app/GoogleService-Info.plist.gpg | Bin 670 -> 670 bytes .../app/google-services.json.gpg | Bin 964 -> 962 bytes .../app_check/GoogleService-Info.plist.gpg | Bin 617 -> 619 bytes .../app_check/app_check_token.txt.gpg | Bin 107 -> 107 bytes .../app_check/google-services.json.gpg | Bin 518 -> 519 bytes .../auth/GoogleService-Info.plist.gpg | Bin 682 -> 681 bytes .../auth/google-services.json.gpg | Bin 1009 -> 1007 bytes .../database/GoogleService-Info.plist.gpg | Bin 702 -> 700 bytes .../database/google-services.json.gpg | Bin 726 -> 725 bytes .../GoogleService-Info.plist.gpg | Bin 650 -> 649 bytes .../dynamic_links/google-services.json.gpg | Bin 713 -> 711 bytes .../dynamic_links/uri_prefix.txt.gpg | Bin 87 -> 87 bytes .../firestore/GoogleService-Info.plist.gpg | Bin 598 -> 597 bytes .../firestore/google-services.json.gpg | Bin 525 -> 523 bytes .../functions/GoogleService-Info.plist.gpg | Bin 675 -> 674 bytes .../functions/google-services.json.gpg | Bin 526 -> 525 bytes scripts/gha-encrypted/gcs_key_file.json.gpg | Bin 1728 -> 1720 bytes .../gma/GoogleService-Info.plist.gpg | Bin 665 -> 663 bytes .../gma/google-services.json.gpg | Bin 955 -> 953 bytes .../GoogleService-Info.plist.gpg | Bin 596 -> 596 bytes .../installations/google-services.json.gpg | Bin 565 -> 564 bytes .../messaging/GoogleService-Info.plist.gpg | Bin 682 -> 681 bytes .../messaging/google-services.json.gpg | Bin 611 -> 609 bytes .../GoogleService-Info.plist.gpg | Bin 692 -> 614 bytes .../remote_config/google-services.json.gpg | Bin 850 -> 848 bytes .../storage/GoogleService-Info.plist.gpg | Bin 642 -> 641 bytes .../storage/google-services.json.gpg | Bin 780 -> 779 bytes scripts/gha/restore_secrets.py | 15 ++++++++++----- 30 files changed, 10 insertions(+), 5 deletions(-) diff --git a/scripts/gha-encrypted/analytics/GoogleService-Info.plist.gpg b/scripts/gha-encrypted/analytics/GoogleService-Info.plist.gpg index 41b2b8de632b3f76a9529d50a6694798f9514a88..a7fad00c750ca5f5dbea9480b71f296ba5c91778 100644 GIT binary patch literal 670 zcmV;P0%84(4Fm}T0;WqzTw6|j&;Qct0i2^tOioR>@Kcp;1g1!uk_aZ3C^`hX5j}}E zKlP6GSt)+Z>(`Fq;Ctxq8p$Obk8d@b6xoPDGq2&ZxSH;?(t7zIp*GCg#AYQ(i}1yH zs+Hhhi9NitnlPzMP99N%+cB)XS`L(H1MYrp-~KV!iYYprqV1o^g@<7^;0i9_R9S0oaJH9VaiuIAN7?_z6gPk(fJONZ3?dY1 zjlR0$hMA!FTj{#6XdQ53vVcm0F&b1Pfx703y{k!N1^I;0tS9FNNVFbXC_5WqXi_wd z46o2Ee$M^i8S0-5opNgjHLtR+qw`}0UGhybjY>-gTm(Mu!kl^p765QDknVHiNE>J7 zfcJcSkyg8t_XR$recyAn68a;(+3NWRAyxr6fQawDB7~>U{E4tWtttdB{l**J=3Tv- z_~KO0(4^8-AZYNLU8dD|KwN&7!n56XzdXLJUH_%;qrcT7LYwX<2%O}pAr!GLovxrf zl!URHVp|eG-vUz>+{ZUx7j_Gm_ex;&V!a79XygiazNsSwbptDSp7TEdBW$dh8Aw=H zyhr_lUmzDvW5!TC@J7SJj3wO;bUzYFt>nSN-u;WNQotl(u|PXrzT`w#x0urz=PN53 zl$QW+EPKH?P9cQPR?Z^^cy7|MyO+mmv8GiYdb$kfjn}L##!+MiVCM(2_g3jfmS0VzUqQ1b4;P{#XAdHzeteSB1$a_52Yi)8S9 z!eMcTe9y>9%^>_F-HzE^2GNglE}3i$3Na^z?|01R5i;==K}pJC;;a_VGBH?bf2Vu*l1$ z1XzEp@3fr^9n-tmGT!{CzH0CelJ5A2wJYBnxDY*I8?e+{2wfLlZ}7RNPkp`%UTiPL zW;Ay{IXLL2a`3?A|5O0+KIko?iE4b(KWXcV=p}JE-27O~$G>CkaI*ASxY!!YnT64Fu~DTXJw|&f`}W;KNd&$Ygu?y! z;W!J-9uJHujJxG70+vk4&oT+IN!i-uIHLz|;<#$%jb@MPVVCfc7|Lfc?E;|Y+k~EK zN@kmuyhmku?SX5gadK=4j2L0>P}uy+Q7BY_EFLr!fPR~AV9Tb-22^;|3#D)O9$3D) zPE^1ZG3fEml4-n!;>!1EzCLi@UGjOEN)x|S`*E|w^rqL>+kxqWII$ E@Guotl>h($ diff --git a/scripts/gha-encrypted/analytics/google-services.json.gpg b/scripts/gha-encrypted/analytics/google-services.json.gpg index cc73d92f29690a26b7bce95cba28390bf0f43c5f..8e2a09d3632c44e795411a6282fe5d901f16d900 100644 GIT binary patch literal 962 zcmV;z13mnV4Fm}T0$!46MC_qDvH#NP0b@M-?2@P-`n)1YV4CrfAMDE)uLPjzzGWdT zw+iU_^=hkl+aFSzKetJrFx5X4K7QuthEGu_t64cD3ft-_3mZtrX5so!oF5CM z5V!WN@AEYeT={zmV>{BI1WSqbKM)aNM!BK5v6Yr!=pvS353fQHJEUSWh(cXF8 z{LI5aGknz#fHbmAN1_hslh<9yhsvGPUYoVVrgP2aK1L6E1E!p3;*=1Fm%He?KdC=n zAo9g(V%L(f2+tGQVSCn4U23x)9l$C5$e_0d0-GD6ts`YobTgGYj?kRb{JRaz>*yBW zV=+U792B(6IE{&wbWkZYYBc%a+F9~pB{^}^9&*v-7)1neHCy#Un{1>!>CBSAvn&{l z2Cw6Fas;OE6)3N!>+=wh6{FF9Kn(@!7e%{kpnyX52plUB-?hTEX(>wVgMI1nj!p;j zf;69TK&A^QkN@XCpQGe+6!$wcw5ld)3HJ&Afh198x%}Z#{|1k-!q(VzR@U&s_o}om zn%}Jo%-Xwq>moXY@3x;X+$-1d_?t-LS>2P?7gb{)vAE=(fTTi=9*;8f9)hu7V8Yl1StQ>U-ZUEduMpf@+UH(zYVJx^-@2j2EdVUQP)0QS3n42ikLtu>+LP-WBe@+k}}TVs~t{NDa2CLa(fs?$b+pVGEcQ9b8#qmb->%<`< ziVe8ihbJRK$;Kl_&w%86%mif#OG_Zp91HsV+_*r)$hFd$-c*N+-gFfR3Ws!iI&^bL z9>GMqL?U8Y)KGnx&baI%nX^}oZ~Rcp-g~ZG`K_O;uM7uGpo)}z5HR9E!GbGLW4VhY zsa^b{*f$%(Lo5CBg_H;3=gczcJYn2mJ8Bduo-jmKU(Y*W-yhZ0fH3|;-n=^TG)h^P zQGa-gWA8oHilnCpvZ-z@mZi=#(C%KBJ;Ofg(Em2B#+6Z|EeV)*!c-(1qZYw{rRk3g z0j92(JQ`$Or1#Wyb#=8Fa^dN1fAx5jRb|Rw%Vx9nen>8l@G}z78Tg-@TXO_Aw!xGe kpw7T=*H!qXWQ&~}5Ao)oW8Q4TJBC;?mCsfBqAi*#&qs^sV*mgE literal 964 zcmV;#13UbT4Fm}T0+lT`8~Iv+{r}SG0lX>)V_RiQSuNL^cyhtCQIO6* zd>=G8g&le>pG4yR>ai{j5_nk8x$TOam@TTdy>FX986`1){g`yrs5cM;@1YnuBv*)uT}y`mX?p%O$6=n&DIAv$eG7&udOuSj$xyt&gj=@5nCH^ z_6y_=B|v`SWLV#tSW{<)pvB7C1=JAtm`r!Q1#ABzo`IewjA__QI!`ZHnDj}AEJ#)9U%NE`lQcwIQMdp7PuWp? zFM)ov0}Ipw;`5t|^qN!98n1mc&SKd3(XWEv67^VQ(8~iZ{=6%`Bo%0fEvMt8I)`}+ zYtRaTx~ZQGr8)%a?-!NJNuSe*c`cRz?{l+~fPT|6yG`^Z-BNxH5Up%@02t*F1Fsa0 zi~TW_C%(7Y7?(D(yWnkD!0~oJ_jUYP+|wikhejF1z?1$J)-LZ|qL*VS&JN;r^!ew5 zvW&ZoT!Dc^3c_zlfWYphKd6*h)`KSPk?XsnCg(<9nukYVPpVL@76IM@forH*hmm6S zp>Dwk@4I?JQ6|!Yh)nk3sTgcIcH7PhbR2tdm?bJvcoO;25OdAGhkY(imqt0$oTUIWl+9T$j+9@W zd4oK5tN^E`l5ja9ti;!iz#QGx8{l(CyX2&Zuyc5`q1BUam-^g&XMmd8f`#SRhp@z% zC5PX3D4>5@(};4Xn02xP*(j>6?_OrMBG*>=X`WkaMi#0nVdFFm#S%CumU3%$kj3JV zT)C=dnZoOS=kMIuRX(xa$qq1c5U=1*g(GF{GI!yuW9X~{#>az%Bu59rlu&9?^lmXn zwxH9VXPE?N)u6e2fGJa}`b<~m92nes>si*mkRaJOPsvS+DA`5xxnJcRiUr=l6^R)i mOVo^4kZzGJhb67(?xJO6dA@xL}OtvrrGxZ diff --git a/scripts/gha-encrypted/app/GoogleService-Info.plist.gpg b/scripts/gha-encrypted/app/GoogleService-Info.plist.gpg index a3403e4542bb941f9e78ee63666c45eecf6b2da4..c23fa61c3178bd3c133b545c047b46c41347eb19 100644 GIT binary patch literal 670 zcmV;P0%84(4Fm}T0v~U*@z*vaglSRHaoBzcgC)R|Wk zmfeO7Pw5R*!Fihsl{q{wRlw%&$V9cA3#NDa(e(EuzPnL;c=w-uF*zPO%$sM%Q&Woe z_^2YH+d&QT~gEM8|9}m0j+1 zyY*!B8lY}}ByfP5D`+^|jGBr9Hb?eRin_*GJS^d%G$vg1QV%{4=C0s)H3j><>J`EH zjN$~j?PxY>I}XDTBFbc8C{X{gAEo#k(6GHFkV;-M2`Aj8wt)mNA5mIP Ei*npg5&!@I literal 670 zcmV;P0%84(4Fm}T0#qq5A6&?k`Tx@C0fC}5IQ~vt=O8SLIPrAom5X&T^+-P*VVDhh zS?6dUpCEUQcXs{{^kC>ik>-MqS507F_$fsBJgah!HKCOawaif=k1EHN! zURTr`4_IaN;q+slH=E}(jj>Wt_D4?D4m|k`3|dMJBTVYI_!w`XGqM0yEtLciii6kpFK{{6GF6PJiO*!?@^$<~d$P!!kKM%km-I|pBFHREuavkr<~ zc*@?j%XjRP9t4|13m(iuurwYT7nGNZ^GB*aZmSoH{e!$LP)wQeBHu}4a2A{YA)e7K zh<{s$TM;*8%9{u8Z50Q@yY6jDK>>0f<1u|H#x?TRDAC55^DW7=Ot=&#-2?E5pgq ETrFBe{r~^~ diff --git a/scripts/gha-encrypted/app/google-services.json.gpg b/scripts/gha-encrypted/app/google-services.json.gpg index b244d8ffcdb9396a22444318dc796d2f97326415..05ef8e1d38fc460029d31e8888c5fdbee383adb6 100644 GIT binary patch literal 962 zcmV;z13mnV4Fm}T0vNo_bza9L7yr`f0a(JjH@7oM>EEOrbbTYt5rOf$?q%HAFtt0S zz1CELY`AGa8->aNxTed>L(M=H{~@hBD%RpmqVRy&>8e8tv?82h=a4b85=_i@a!hmj zyR#s#;>0Hm!>iSDMTKeG6&^Pl+i!Yq@Ds7ZLudfYBDRK6ws`~#&S!tik)&GV{PQrQF9evEIgNu z`ry!mDfq@e8J7(_v{gB*_?TsIf02JL`)lQ@)^STL+8Gxr$z=P-)oT8f~Byb2QJAfgt#U`KA%yW#~pCHag)VAwz}ZA4rKaqe?2Y3T@41H>dVU5UnGNZNB~h6^~04 z2!-NF7xqTGEn*(=Aumbx3F+LfB?y~*lB9gV$4R@Ik*8hfwG2$NRP}@Y$3a!9J=;FQ zv@5_{@B+Dh>zeEbuiB7TKT{53{?Mu$q4?}Ih=Q|=gy5(_@s67a_|@<;9WSt-d89tX z&i&qTMaA(5iKOot&Q$IPEQN5|dG#nPHUaCWPwcbv3~LWa{JB78y^KUyD?u$+RB?C> z>++=_$iznG>X{3v|Kqx`$njv&I;75*eb$MDm^uqIsLT`TZtfx$rnRacfILH9VNN|No5;x<(x_MZcWn|(egKW}{g}BmT zIDOv||ao`!atsfJfUeaAXsZkG@VUTjx;=^ zZCjH)wF!SoPRc){DFT?)HOMTy)?#>3bo7>xyCMo69`u&oGN24MgPzH(APae^C!7Sr zVjCo65vnkE!B(29dRPoA)wiCS0)HVwk zbq<>}pWI*F{6 zOqzG-$cn!eoF;sB;sN&(1HK_-*pW4B8b<(V`pIPnv{c%*VHxLU!zk)>gq)VFYbOhw zN{#7~Ui&{{Dr6g3_>F|&HhV*migRD-FF}JMJ#)NLfgG@IMTCnUn<+Oo6T}(35E;<0Zt+ZM&EexCy`9Ss`l{3mCQCRk0L`eIWW; zzQs2cI4|g=>f{i`Q6gQFR_@OpghX;DYVgTl@~%b#KTN`()M`3$a-Ybp;LM%o_pko; z)RR!8x>EiO@8C!c?56J(|P{iy*_h7mhm)DQ-D?*rwNG)`aGSJ#Pltul+s zxb$eqBq6cp%vT17HYBHw>E415k(~6bC`@>@fk9n z1MakSCc>E^_O8=$`NR@L*M_^#jMs;UdH>Ss0k3Ua=O(NFP>=_V8m6Zxd^(X5^D{M+?do`@ zqO0K$+ff= zCA}E5#h2gtCbaibiNiUYs2iXDCSv~^vq<4@Il{xI2KkJc|0jQ{1ZC2iyEx&IzX`%- zCEU1ur+Q2e7S4wuHDMz%+7SQ~m8+i%xijbN8i13?E(FD%RyC9$O`=h{2;3l{uJ>RY zR@(YiF1)x9Uc#GlU&yc%X#2*XzyVE0N+$jp_>lo|3udvMj%&aO1zQf%Z9pdQrBR{l zEWE$ors{2Rq&+8CIVKmna=Z@a3SS=Ug9d*uZ}0=)tMtXjTkY=P^}`QA2}WGh^UlUe z_#5w;VZGwyexQI%!Q8XV{Dr#VG(TjAs=Cc(UgQ%F6Zc>_zWHYwG*s&^TNBLr+iec{)N!h zNfMxH∋$PG(&3Er7PJ8uwhi>hK=;38rswJLsqUothVCF^PzFklac4f#Y&XDkC>r zx$)yxGG@5uxlGX}Ysx32_b)wek9->8ik-ng*=5nm48cAZt?wQEVQ+ec90B+%2w=68 zJ4^HJ)^3B#6WsS4j3x$*fa%QbQKk;oDUo5-kUK1b@+u>zn+e(|C9mF5htx8tB~}}G z#ck`8gWYjGV(qRXhZ3_w$|g3Vo(=2yeL+_UP$%@3khCLu*%q5SB+-7x(onW zxhq-HYE)cXzP{3a25%HsMXn(feNTdOG1#&^b5gc@_j&aOnj&n<@T|75Z4)6zT{-c) z*B!HNDI^YMccZZ-VlX2e*}t_hY&o6#;j>ifgpLZmCk3Q@4t0boJ_7yQKZ&7)tJ1q_Bd|8uyj7D D5Nj*? diff --git a/scripts/gha-encrypted/app_check/app_check_token.txt.gpg b/scripts/gha-encrypted/app_check/app_check_token.txt.gpg index 86502b1de02cc0e782d81cde9ebff33f8e6f8f89..6c5dd80f567badd7db1b539ab68269933c2e574a 100644 GIT binary patch literal 107 zcmV-x0F?iX4Fm}T0(reb$n?KDz5mi$0eYvtRZ5(Rz(TX?dFO$`)?qk;P<#QS!xCxN zgO~E(6pcSvc-Nw?RZ=A@GH_o3I;|QP;nYFsWPrm!xcBGl Nju5`_3D4t-K?xuCf>ce%0PDg@&F_e)iVS0NUc3gF4IY(g>H>2uwkZ|r_Oady_KZaZ#}CJ46KyN N61Sdsb=Zb0S5ohfFlkKRa=r^$ z(B6^CEll(!qTR-tL8ubGlq=gOZ2VXk++t}oLaE0YHSR{Hj+hGj%tWI=gyCkO1}eqx^k**(w&-}iVVue5#NbxpQMhR6m2(7GqW?LpQCr$8O` z5|Kh~D6_85eXLv(@kO^H9YAXe59H^RCicUI1%Y}gT>Y;V;;m%i=OgNM%C_Tz45)SW6+53-Cp>)UfmxJf z<@;g5grw-^hH_(H$hcnXTFEdHZZTxL$3zG|GH)nS8TD2Gi;4uGd|DGXeCn;SStAtp z=Q30IMcvN06$Mv$tw`5ON>~4%Q=B9f-!+g+{bBHN;;HPvjI&OMcOd>B{PI_qjmqgY zZTw*G5uIHy;*Oo_?h6LaM#zt^(>m_tm64by&E(y-UFMb9#<;+B)!ai9#LHT|5*3@4 zBPyN{=Z-#wR-%8Ab3P+b6^O_KnBMDt`VZ)BO`Zx9bAUjd6q-Dv9;sVbejk$eYtA@f Jd>Ub_tOoqx0$%_C literal 518 zcmV+h0{Q)n4Fm}T0-+O$A@ID{g8$ONGyzik6(E14DvrF5(E7+t+iu>|BB_GITF`=u z+#xnJK{XpTSH(ffSc;``A51Z8MBm_Em4EOv(k!fYepJw4ImgB7KNl?Xp_Zb{#2>#> z&r_>lGu?Kx!*J%YtwVOJef!R)^MmM%gf+1eSdpQ7FSEcgD+noN1$`#Vw(B(foG#Ny zM-?E=(}3WNu%mZUSIT-^;F#ge7*^C)CH#mWDMN%%S0dp=W*w6@z?{%HYNvaBNLc1) zgH273zfMujRgy}h>W3`O#0>F^L>x0h9}A{MRDM_mz5-Je74v4Z%rV^O$i6X5Ov~Z0 z7kKhm+)k3{p@qw{#;U9*@Isjp9E`4V2;9sGhXXXt9HP4`tF%XOe(DY?2JCP1UsJ|o zE0_dvF*aR$(MYz>dSMUtvg6z#B{e&ahWdkTQnbcVvWZ#w=mMM>mY1*z?uv0OIVJQfr}VH>^o$f@b-g6g`7MW2 zPb%}{?eO(%gB1c%iV{a{+AwrN*Y675PQ*pdrWE^yg42J`tJ#j%qLHdDwyS%3<(|4a zR94X@1dPR7Az@wzR|u4WWhf*uyV(DNu~+1hXO_M=ZQA7s@n9HFw?*n0Du zIb%z-3)g>_4?w*WqA5#|xDN-oXMQPECzjD|e%?qgJ{DNE;~B=#HZ;3Wr`V=@HBPiG zh*qAhnJ;tbcjEryss18FW|NfQK8+`L-4;O6T&9qPm#{)2T&ocN z^F(m*zO*wn^0jH{?X6%Svr5t^g2s{*&(-sh3#Aw*^ILj^M~I& zHds!x@QSmEYRP;}+evop%(krSQZ+F`WHi+0?FsLnC&PHX#(&BvLCP_O5;aOlHm~h_ zNR9+R#V-lM4z}MLe5*-P)?Wur=p>wqTNSecX#yaD&VQi+4xKB4KZ5L>bI`{3=AhmN zUYe3lR0nx_>EB~raV{-eO?nN8|H8IU^ztSMWmDE1c5-Y%W3*B=^!Wva7=pj>fvj>9 zn@fK7f`RDT&WQ}6RPPE~m($`w*xh1UXJh%(w5E#gAJw{8lA^NIH9=E+rqR=l} z>x^Ydg~xpmLg5a3jk9S8RC3Ko$&DMaJ6rxm%>_YFi}Ax&Aw+8;`Ra_cm!I=p_#Rs9QfDx(UJ8O#q$!wl=YG%u(YW4# z!4AQ%=z4}l;$xpnkpf^Fo#iKRFx$JrRh6ElN>)NR+t!gh{GQsYv+@jVdZ84rGdA^y z;9bs~yZ_oWZb6NMRb61`b3PzQPbn`VOvXeHquVhtlHdL9K%QV?Qb5{k2D0%=a^Ww) zi6IJ2q|e@!&+uMnKcccHD`CZWVJ8A%vNOl=?&({r+HQ7lH2fvM^bO=BX&Oicl zrEr7B$HYe@)w*kHfo|OL7#?d)cvWR=(x*Uj#6IC4$!32E|- ziw`jNg=LJ2cr4i9fJ(Q1C7(h39&2Y_`VkHHj^@3B+o!Zv{6RsMSh@as>{$HfnZ5kz z>#CuaV;o3u{u+pbiE~p{nBiBJ;^~hlXKCQ!cC352!)|XaBy)1#AUw?tZomt_9)> Q&QTuB!M$j)HSj#JfyEq{6y@7%eWBzshrzeHbW(QPUh?1M%oN+ zl<#`oRRC)&L%l+yI5nrM(VO6&>7~!Gt*C_{*YPS$9&f$Au)UpZ8sY&(F@VmKT}mY& z#5C4Y@3zI`^>OS)5L+3UZj95$8X_6L$>?GoMe(2XG2OoLB+n`*0aV14*m|TXO%3vs z`#fR`)PVW-y<wD2UoZA5!4)tv-}w5O7GS@As$FYVSPE)Jy@f) zzgD2`C0KIc2N~IsAiBxlXeR66oCm;sw>(-%ZT6y-nJ&I2;{NXM%MuFqCXA{993tWg zJXMSsI6H}~gLpr59QJK%QjmeZ|I2b_GS7$L%6pJ`NgquEE>D6s2Q+^g>6sgk#{adh zamwNrSy-@NDnAc2umh$X4J%#vS{=W}mGoOJlRYgz`#T$Z?fG`jib)Ww!H(Ai+A|9( zCGD!5y)^2oOz1{DT18uC!5l&V2k3+ZIt^SVCDtNzn^fcR% zkR2H&^gUlwy%tbxBys(V%!sFdjcOsFNop zf}m7$cKvLevhAYfVDjuQ-tD(q8bKb47W{5(xY-&@b{r)RIL2WbXZRjo)d29MxnpSP zIN1VKmTH_zD~4*gDG|#;b9B{es}}-re5);FI5ymotn~{aG3+vxLEJ^C@|)JbgYC{n z&WV8T@)nMWydPPq-XvHsGz<>wG$x%K+zsFgNiCxGG(o6kv_j0$H6-HjK^7)xIS6Nr zwlIg-NLFM`T9I21@pqK`pDO3uyv6vrpI7z9&-HESydH}dUlCY-In(OK=4S%mMneLy deaS|)YNQ1sc8c)S(J0XeiL%r>S?SoKUA+l2_Kg4l literal 1009 zcmV*0a*R8mRpcym})Ho*xgg5X6~H%bG;)vWBkeJ z+fb(7do7@pAb$Kb8Fp%f{vLHn|MMJ4XjO(zpfg7YPSF7alj7*-%Vdy)Ul1qHMaVIc3B^r*W;c54-kDN@zf_>0 zI!=Nk&cRx}(vhyT>m)2_?_L&uba)cHb1I#kk2fZJlR{iWgD)&n;zk!uGnh+`>-o3r zRS+DRfdGh3RwrXp!{vV%^f?QMl0WruX_>3q7JhY=eN$-2*IGn3Y$vHT{tCUHLp{ zeE0|U5FM*!@*W4Ai%Ol2o7Mcc-2WZg85u8Rf;pVx4lj*R)=x8IOo#Za*Kc2PU`3H{ z4IX|FVTtDb3EQtw?V$bi*_7|%L28^P=(|xSEtVvL=~L&i4At0b=I9co@pF(<97lY} znUXcj2$y(*rjm9|fPn~zaKPvXo+~n}D|EY}?m-3G1KAr(6L0L5bg#)Ye)O_ET`6&0 zd}uxDETw+ocO=i;uguV8ECan zSdc#T_gVk*D%VIw*@e$;M^nt1iwVH)J_lbox18|c!PZR)L{>L<0CGs^sKkU4N}m%) zq}FBsBX?qqbug9Yg{?=ORG@+sY-vyso<1zGdY)pAUPT`--^~Gu7>GPT5!jj4ql{)w zIT+l>vD)dWT6|!=UdJ65*yAPT<%ux?%WPk-$E(Eq6o_b4Fm}T0(cJzehBA^?f=s00kcdA;5yS0EZ$;S0;$G?7>n8yJ(K!2&67ZF zWWR%SiD@5z=E^$ia~fPU{lSn$yiaAyWXYK2gUl2K#MZGBU;*&)j$R?VO`@K)^{c5D zDBzRFLGU>DK=rLle1% zQ&7ikKvoe{EWv0&<(fe)<|U`v?6b8WtmPa_Ob+?;0l-rI4Ucc3d&+6r-Ve`8=aO-^ zFaQF+Pp~yVNA&>RPg5W=!iW>Jt1y&Q%T!7+5Cimob<#=#!B2eLAfI}<%jXh4q((c) zC0?3|yN0x4>R@Fs!X)V!0{T%qu`ZyhO=HHQ1~w8~N<}TV9V8Zt^adEK=kT)vH`rKC zlWPa$GP!%l<`H#wt(5L%XJopqq49F3qxLr{ew?j2!J$)#0hJ&9w}KxIdovPA0M&QN zs1WNk(ucwAs5lM8B+3@shTTVdYOws$oGLI9>)!l4`%T!p+nO=L-}nGzH-$^D?ip!9 zhD8i8)crGxVk1ak@l>v9&=sWWh!|eQW(rrJu6332F^v4$pB8dptoVhgNxN#WqAdKm zMm5H@Dlb^_JNw5#O;)GyUA?@Scmo1GD9q??a(D;1Cf--Psmas`y_Cbo@XC(@le18v z@;9nvMxO-LPxF77j~wKAs=J#5O@nNV@-0Rnopzc1rg!fI_G4ARkw_PQ$#Um+vHV#M z@B$p9qJm>+CS~2{gjdU8@kJFV$#eR1z(T(=DS`0*Pl^?lpZnojFe%OMuO2yhGF;tu zh*tB@Fbhl*Blgw%MxDH6%#X<%$QL{?Qe?@S-Z;lt9u9H)K(guImHxx1573}Mhznfu i0ZCbQ9@F%tASpgo6Iv~MWx$&}Bm-LBzWPXW4=kaDAX+B? literal 702 zcmV;v0zv(Z4Fm}T0y!k|_a3K!-v83+0r|a`=+aX}ot~*B+s1!~JK0U^{Yn(eqp9iI z(aW1x{(6Vh7mG!?Hz4r5>#7*AWqwNP!>q2up;F1wkW^rmDP3p(f!aXTtvFK$8zFDa zj`o{%;4^WD0R7X)!Xn3D><D)H$9zyh*MyaG9gve;zWjZxY@63%Tm zT|^|9SQP6RT>%$-1-ViNSuRNY#?$5j(d9z2pC%EFnS%0ZzBRP#fTf50Qw1^-zRT9@ zv8Ywfemk2gBIBsuYo_R4M=P!LSU*8{Z6nhODga7?kWYS%cvl0IEqQX?!PRquI!NO|l;Ew-r1P zXT#+bq5l&vbwSrt%D#okmi;$hTmn9+tlBTFJD({caHgFyA85u_$5rdwuW>*b*KgvZ zCeiqMOVYfGtAuYSEu#nfrDG$YDa;|ipA1Z&L~hSx5BwEK)Pkr}@q&9JLfd@DyZrxe z7}?aXvB0zt1*p0PcNoYh%5n*n!D7br9O8@<#r}#yIp{_2Xk*DFAMmM(^}|4Pv$d9PQ8F5@s#n7ptJdIfWwV>C^fmTjsN2Is_;svF)jo1 zUd1-mNG`6x0-c%H@&@*lN@#G|LZy=pQ>b`5j$936PW*?j?9RX0mg14A$LN%geHR*t4VgLXD diff --git a/scripts/gha-encrypted/database/google-services.json.gpg b/scripts/gha-encrypted/database/google-services.json.gpg index fea24ec8167e0f113d63854da79ffd950dc84f31..a9421faae4990e4cbac78dde074564a183198e5e 100644 GIT binary patch literal 725 zcmV;`0xJEC4Fm}T0z{6KDZ~|>lK;}_0XBiO5((1Dx)2khkzu`aON|@;Vh{*jeNDD~ zi}#_Cy_i+!6lM+42$j{L4(c1^$%c?M6~#uzWZ_!((?{@NK%%cr*@Q(+pqJiz z(P-R8_|!Ks|{pQaQeY=ZcX#UL{QAEl+(sGUFi%s zW&WU*l)R6TsJta8Rg3fMG1;yH<%D|)syp+q^GYl|HQd`M`b8td^iMQt9qslQCT$bT zURH?DZj{ovE5Ai6k{V^TT?l+x*9%F;+l+7|O;rBPfMwjK7ea3mu^7~wIHbZw3aD(- zTz9q#dwdwBeETp2Hy4{01?J|LMAI zHp}cU5op)eQ0HlcfHoJG(nxd*imlmmah@FDqs`Nq8rHFEhL~`?FDH`4$@^9^{VN-R z?erSZ&AcyW$sh0{@iamdFaVac$G9H^u!nF-Hh3*fP)&(u)!^vHVzb#x8%hhR_TxmO z50buX>fQX11U1DptB38*Gc3b?Y#SV%_C4FE~&7O)zaVF@o7t@|;>?lb?5a zTVb)Gt&2?<>Q9HDQYX+CT$uBgdq?kkJCy366&N81OfWk3k60AAMQdlW-sC5Rx z_2lb2z&`)n??HLhp-HVDzygf7d9G@CBHD$D!~n~eu{3|CW37X z@)@nH#!9CCd3}X*zk~~4W;4Co=sP#wJ$8J>4zdrBHDDp3oGI&MVZS}eqt^n`hE+t@ z0-fhWA9GF#Pl3oZ3w^8Y!@8?4Nkb~u{zS2+j5x!zHd>Mhsr~#-Cb~tu@DuPr*k1=g zjq7y4sl2NZF{D|03)&1q*uk~;d1NRWLRBy({!v$15YY{jrvmszOdSft-XySWS8YuQ H8CqjunkZxu literal 726 zcmV;{0xA8B4Fm}T0~FWjWC&!c!Ut>pTI?yOddo{KCERC@2NwTXlYnRNx01}`r)t0BnWT5$E>mJbt1 zK_l4*26x=3_wlZ;ZV=11#PgI=bM7#6n`eGg9{v&CCbY0na$x^r0!W+_Bu{ zhVsz|oq1zqx0unsjn;iCxe^flY$r#!)qZQBE~0U+6Jh>%=1wld>{PI6)L53x6l`Q{ zEf+(@X?VBIcR+MsrlwoHLr;_cf4f;y%{3#=+3RvEu+d9g#FYr)pTwZ?GYVN(!VUxY zKFqU#5#v(hXEB584MYUZlW8!`X&yBgOp;vHtz>0p%%;B{WDcjy^C-0#qkb`_Z@3)X zT3c)7?(_l@(7CM_++_{;8YznbYLwJUu2c3 zlM5q?Ex~{yGIWtyB7fo#esyN|n6MZrcixkeru=tuID(FFd8ov^8z65o1vqPYb`JyM z^Sa9;`jG8CC@wsF!+P1=Epg3(0sZ4 znkwUcYReZigxnPZwLCpv^2nR-g)+N_+2AqcP`?s0lCcoly4R}V3w*$KA{XfX#1ty(Ilm*#1${sL%>|y3!fy9JvCM!pnXZVspdq%KnD@ IrP48&DIox5`~Uy| diff --git a/scripts/gha-encrypted/dynamic_links/GoogleService-Info.plist.gpg b/scripts/gha-encrypted/dynamic_links/GoogleService-Info.plist.gpg index de36a45f3ab62801a5830f66f51cea629446f115..7d577bef1b38f967ce4e02edc3e611a517f52944 100644 GIT binary patch literal 649 zcmV;40(Sk34Fm}T0-Dh`Owg>JQ2)~D0aY1%yW!%9C4D+&6AtW4i+d0Z!YipN;u2b4 zGAfd*u_^DP&|{np4Gyof>Fm!*Aptt&AtnYaZ@nIY8OQ&Fljd>$hTeOWs`Q#6i`298 zx(P`77eg-Q8c{Hp!TZe-WnR`)=3;nav5~#l`R!%fT%_=#hP02bPMRkcZOSX`^yKv~ zymiROQy9=q(vPYJk~+9asS-1<#6ZHr-FcM%8Xf0`1(7F?@*&H703^>{>F-RH=G00s zB*sEexU{Y4d1M~yq6k|)VBe061ma4$`E|SQMe2rhMd;2VBV1BM+!?yUa_=5Qa%1M9 zU&DA%8o01d4V-&od>C)B5+juu9l&t1frY>{~?M&Fi1LP}IYsuaMzCKu`{>2vUbkAHFZ^@6mvTDEL`uR-O zCb)(iU7^*?K$@jKtNwusNDD|Djl3()*?V0=x9F8jf;9yn*YRGkz*HGED^XY}Yo_WT zpBy}$3-fV(XqKecyR_Gw;D?3rhzCd~fe;CDmfbOm)>oX}1EP z`3Xq6MEGe&iqFOj%&d>QVVZ@iai82pDti$c@1z_GVGvt(ANtQ&99jd|y!U)lA?)bZ zFHvM500{_zK0nErp8%-8eMKvoC>^aJE4iY1~pj-CL-3E7B zr@#&%39mYhA3I`(&dQ`W@tkg(BKe-|I6Y_NAtr|4x@dEzFjYrq1U84C+UA?W&uRJs z;lvEQrJf?}{TX}=)-18!-FoC9*CqWQoX07-wkkx{*0~vP8GJ2>;As zzuah~NshQa?9QQ)?jH#oG1fEm%*P+p4T}|5n+(G^9>%U43RS$}W%pi2()57pE&vZQ z3+0f3QIFazy%IXwMJoFVkRiIdf0+lcqVV7&+xb1ps2{l3iwEwlcsg ztf94CcpCbDqD!LO-4@!)0f6+1*-oAt%zL2DJ@>d!jX)5mWw;1lBObSaf&NduhWs~8 z;Fq{A=+Yh}?Ox9x9kN?E)Uzf`%0akM!{p>^tHng?Q0U-{2z4@XNomR|yI6%`H}gUI ziJS2nu&PM-ngfFwyRe6NK8HFb(ceogbpf&~8f5U{}w{*w6z#W z#Plj_@drIhKjswjmNxqucqgr8#sq?5^c8)wzQ)qU;eD`YVOcdwUMo9=*mNF3*Le4A z(?|ruy6@XOV!Qk|I>}^V+!!*D7{yOyuF_L=0IOR&f1|a@eRkD5XEK&A%E|(Q9v(G{ k%2{_Rizu-ZJRh_R#RR7rQTw4*-;gV#?u_*h=Yp|!UPpM z_Hy_ZMG{*Z1EtwL%j>4wg)WM2-)cR2RggY4gQcBlrYV-^T48dr3{dm<*>WP4{5Yth zajXTX{=PM&DC`uYb#DybKSRHj$^N2*X-;1{ zSj|5AfsJ-bu(-hsTPL({P z@}t;!3mKH-Wh%ZOFU%iYXCQA+O`Iop4BU!lSqTacXQm=cMskq_zhQ$m5Lgn|yo9JR zkmNW&*si=ujCB?KGD7WbwT7_w`JS2`=Xk|F*lk)nR*!B7ZfFSA3n*7TK@)zPZ{Kye+^ z>}0Z5_t9hGzPg_Q{ckNrl&tX*)7NI4PL-2D&&aMkc#Y_e6@%*rTDZekyFU_9hG-SL zl(eK5H}eI~A^hTB z;Z)&%3LVEnxug%yMmN3fYpf z5U|TDy#+&u_DAuAy3lW$d#efO6wJS)Iwo*7cIW{+q0~`2_v#$>?C&@D4*}mc$j@cjhB_J$LHyJ1F@Pfyou=X zZ8*wPbR`>=tJn&`8=XV^X~e3!6$Wdudd7gF-rH3# z=sR-LGg{hA{ODg+wVj|u8NT6EqG{mugGcP|HsP<1HR zF%PJfP78>!1&;1H1ib5hx2+V1s;;6!bNs)<-N}^|hgrSIm?yw*a5{j$Jj>HT&1&HF z^X0c}-j7os z?NwqvzxQU!$iGS4#ix`t#IefU6)#{HLCCfc3q30FES9P3y0^3@IIb?r!978fD6LT; vu^CW?zyk4Rib3|35@H-H)26o742*ag&p2Q6_;1K;%c_(dKnmtTD)hlT;kJ t7s~&DHXXLGj#curw?x0skZszi|M)`Ziw$1uw7jB=nfJi%n|g3QnA6S%ER_HN literal 87 zcmV-d0I2_r4Fm}T0>It4Fm}T0<3j;`}*~etpC#K0dM$E_Klms7qhh{e<*<_@<>z^i2PIsRL>`i-lu_e_^Hl7y4t zw~#KE-$j4xHTgQ5ARZr#QEL^J;NQR$87uzMN>@r;1IpcwSu7wgq`UG^k|AQT7v80}*a9QDczqwM8yOkz4d ze^PIUV{e-He8t$uRK_Y9HaqOH_p3%yQSqzd`{&jJ8Fp>y0??BqX#w~iX{K<)Pf;ww zaT~ika#*TZIiU@H_vl8unSHxBTl!baKuKv3MoAKs8G||*HR!A_f)5SzuL;@_?uoSN zR_GO3)P)zgYNzMC#_^G#LoaKzsdn@*N-O|WoKFt@Yb9a_N<i^Q|0l_22{j#QvbgtdxF~p-dRjG+Yv{O*ytM^>3 zRna_C`TrCA{XPmBjlI$-Auh;JFPfs0Yl|!lEZS8G(j51Rd-%jU2}hb}zAhc~iB+N*nKWm0qRr^)xkZ@akRFsP~&u+`ABD?o*r&*yD z61W=nhl=P4@AlG#i~my_3xfyY#Um&|JYn!ME+7D>GOKE?FXJU5sg0VHz|uevu#Z&0 z1eS-LHsUEw1dXQ&QAGDdqpyCIKHY>qVk=Y36RpaF{dLVqK$rHvr2N0LmJNZ zEX@qrA9xtTy7Z|TNo3qr0sup~nzVQS$>QNw3Iu)jZ0gfKmX>?HnNo(E<^B%3D-4RE zDYCA;9DLUZV&W!Q#FboIBRNBTM=dcpx1yn6?nhGK6#vYsw~j4-Xq(K6;nsYW)Dbo~ zbWlrv91YA7&Y{9)8#O#HO`tzcJ?b?#D1Ymi2y@cJSpW{kWwzwY2*{^|qo8fM^T4kP z{h;@jsYq%vA|HCxJ+0{qAL7nPu|r50O9dCNe7&agCu*mD^_TzRXd@``NKj2L39C)T z%Nd*fC2qz1q!rWw4){SfL?KhF51@xLzp#xSS}+Ea{TXy`Y&!*Ll#qH8+7G0DIe032 kw!b?TQigVT^F#(8Si3^PI_Af}sRD_+iW=xu))L%}i2L3qg8%>k diff --git a/scripts/gha-encrypted/firestore/google-services.json.gpg b/scripts/gha-encrypted/firestore/google-services.json.gpg index e68131024eb5e3a17796598e934dbd9fc04eb03f..9807334757f549f43b8e539c8e3f07272f57526f 100644 GIT binary patch literal 523 zcmV+m0`&ci4Fm}T0{pq`U*2ysTL03)IRW_&7 z*?~T&hUCDY5Zgl%eXy;Zv{&$f;FTYGPu(8%;i_)rSa<`{9@-y=OM06!dMSFZhj+fT z;C*YAzeny)arJMqI)D@$zO}JZJ2OIvte%buc$Gbzuhw4YOR|_jm-VcGX@d!nTS8ik z0Kf*J*DQWK*KkxJ{AV!Qp9K^$Q-z>0j+OWhdND5H8cJPW+E4x@i3mJ-DRHXTkuc4K z@a-^J@O5IwHp`Zu!{|cFLdCo3U8l1+daI`)cWj;iUQE@w{m>8gH3w;O)t4G$${WCA Nvp@Mw`)_THcA!*b0BryO literal 525 zcmV+o0`mQg4Fm}T0vtDLWXO!GQ2)}wI|0ZVMfS)=@%V0n3wU;C(VSe?rsaYhKiFZ4 zxo#Cqj9D!fXU_1pcDDK!v+U2qwzj&^yRgRir`I)=o|PVx12-L)mrOae`o_$KU@?Ju!C;Gxa394CoCIss&<|8enf}v;FqP zfrP}iqdamqQgFQ?+3?HhheW!@4sxbX2Aidftu`mlCU$PZ57F^5>>s(n1|FR8D?miZ zIVe#q7q~i`oli%F&B_XM-TkOLD`>&k*_m2agdTw>Oc-S#5VX-fH-TEj#pmLAeK|p? zVEQA_h2o6+`HO_OpCwo=Y;Yu7T5!WpU)Nes-qZe%BLUf1To>l0R=2st4r3}=S@jN5 zf~D|Y^kKkux>b@F$feAtzI82F+}szeqI}14#lCI4kxZ(Szh8qqmM-88tDN9v3J P9ruNx9}4I6E^SP^LlgaQ diff --git a/scripts/gha-encrypted/functions/GoogleService-Info.plist.gpg b/scripts/gha-encrypted/functions/GoogleService-Info.plist.gpg index 5d5fd9d2379e4e2248d6db1e9f506243846d3a3e..6ed5b9d8f0a81ecf7159779b063d5761e8b8a91e 100644 GIT binary patch literal 674 zcmV;T0$u%#4Fm}T0{+I-3o$$IIRDb=0X=l4a@*bqyT-s#vf6D=ZjQVLrtngcdl3@X zc%26e$Bjijl3_LnV2<9#tiKqzPNofg#DPN`#&aiG8DBZ9d~uH=*;2YwLFc) zD(7rm1_}~6aooE{YAbeg9}f3A{<86qh*J3Wj4HS8TU>>V#tMAm8#2q|M=da)0dO6& zj?EBG&Y%gUA2%}A)75+h>5J>z?& zTgB+G+KJ@Fv|yeH0|d~rT4Oz=v`_TFm0bi(6*%1Wv9n3j;_|}PvBNU-_|=F~quo|P z!%(`KAZ`??1yTd-hScyLq@=jSg?wNtNScRh5?`R_hjf=1`CR?Scw_xQgRP%-$g0~%zPwCi&s1vG!Xi5;m(F?yjthQt+`-$56C^6zDx6U$Vlz;(n8R3MoPe zkPs$9{{)Q94|aZwwV7)rGhVCgf5oQjYw+%^qF8cq28a@puY52DT@jH%X?z2c*MkQ! z`KywMVlhSG-!3BaKXa0=kcRt`sVCIgmOCHFSfZ4D!B<4XYdzb??HR1lw^?dL7VsQ> zV+j#r{i9)Wim^LQ+arg&{3r_Y=oH+pa{l>qwFJ~8_aYMN@;zn=SaI^$V}0t8C~#z4 zIau9b?1w55xL0;4dvgfO<=GJ%zoc^#$vrpWJb+t(oZ&WP!c(FxdH8wRiyy I+!#PABySN=A@gy=CKKYhROdr--LnoHFVQSiP|{KQU`v9;0K?Ad>cto_e`eWNBY zG-CI`?KA3r6pnd709GDQRm0~sUiG{e==K!stnJ3y)mXkBW31w1(kE6>Z#U5cp;B#6 zioHV$53ldpb<#+zPCK}LZ`iE2u^Xx{U_Gi#w7_E5reaY3%C4vYUvaC@au{jY4F13L zO9akw0RMfRf7o#g`tG-6Zq6U8Z(dUsyEY+ErQZnUHp8yW$Bh^FAMCEEZXVA#r0|Jk zUR_J3Z9SwSbZ(&!rF%setobRkIg$P@On|vvW&@H14=Q_`ecC4kzqr%xiIpwhTxTY# z$$b9&mKlRf(-D(~|M#V%>iZQbkzBex&|Xrc(O-5HyO87&XeFW3nhaFRdcBeeB2s|gaDcizmYJAPw@njr0< zo@ag=M(_u zvpYQTg<;rm)^)rPw1p!xk;*YXmjGbvSs2R8N{nv8jW=cgQOXnB;j~C{#u&T$%RNt_g0l-8a`2I7?jNM_IZN z_6{`x^*;f7ZorFe0DO=19xq$N+Z8rLi{eOSqWX=KkgeBelrkmqul20CD}S|3u^{l+ J8MNYxC^@drQp*4U diff --git a/scripts/gha-encrypted/functions/google-services.json.gpg b/scripts/gha-encrypted/functions/google-services.json.gpg index 38bbb36bc12adf1b7b3d1dab1cdfccf0a4b0ad96..c9edac069d757c27369db388fb9c7c2fc48b1977 100644 GIT binary patch literal 525 zcmV+o0`mQg4Fm}T0pqeG z7XX_S2QE~FouFMOWTJcUPXB)JlC0^R60hrm6*Y_vxqw*D?7{vefHl!k4jl9kAIdfa z&^eWi)4);g{xX_)sIl6&^F`?Q?V~ls8SYT_mL;;&P+;@yw8~be6+IUMR+Y!>gESbu zrP+<0AZo+HIT3IPyj&;uLDTg|xhUX9i~Z(ya(VitBu{;Og^CYY=Ks~@M68xdL#56! zO|!TdV(<*&ynf^__C5-_lJE}^I~`vWZ*15@O(yYO3Mzq$Z2lFp16+aO?=CiD8~9%+ zm^k!ht*5(T@bN(1C-b{b5R&X^YRz4non5hdQLJ~OcNKNWIqo+tSWIFU#%(<1J`}=8 zbY%?n?*z*(aEBryXuzAVo(~kG$-kllOH2#+t8|!b^N!)7j4s!|wgtFu!8apX-Zlc(3_+p;YvBTU9F;X>FP?Z-0LyD#%yd P<^++o`2!*$pGGt{EocN) literal 526 zcmV+p0`dKf4Fm}T0??59{g*$3*#FYOJOKqwg`DC#j}hpJ487OHZGYtzYGbz!HAgc( zdyo`XZgTPbgYI9Ne^A6+rtrg)a|?I|UT)a)LvUaV2!emHXdtH2Fvl%!n~N{*HXy9g zT8>h>??}L=#GNZj4Ed5ijH`DYov+^aRb}Oj@!njj=bu6EfX2a<4_^E?3_Wg){kZyW=YB8i2cZ#1(f6NxMsJS< z7~mnc3SYv`3>uw>hJMN-J7j+}Xtd1ZiD07rfb>ndnHa4&rAUCwwH?|FyUV!cmYGeJ zZMHo#Ub5ti7x`w3we6AI9YJXZF55WGL^T->r5oeaqLAA)M=Osfdvf0VrTGSK0fC

IE`V!d zjI|w=&Fv5bjG~~Jx%18fNbA)^N3t438>)Ju5I?7`c#LI3~& diff --git a/scripts/gha-encrypted/gcs_key_file.json.gpg b/scripts/gha-encrypted/gcs_key_file.json.gpg index 15fbf850d20e6bb1b63989862cf882db71dacfa4..d792ec8bb6f13a6be0ab208e54d551df1a5b9413 100644 GIT binary patch literal 1720 zcmV;p21ogf4Fm}T0zu^=`#LEMGXK)*0V7*r*`LlD4O4lwpo1=Mc=F0J!oP1V*~WT7 zg1+ICuXNx{2}KZDI+}eLM}PxGaq%#f9;B|%M(JURJ)K2Ey-4Mp6y>PJK6%KWaP~K! zm?X?%jqCdpT@NA(lQc&|GICVuZ#plRb6a1G1BPcyl&t8NhoOrQRlt}pu;YpKrvY)B zq*lqk>b8+bUyp|ihhycR82u{1V@E+A7TO>ALGkR1ggMU|cehrv!LQ%k+oV8OiW%+n z_TvGh6C_C}ZhZ5L<|M3MSg@GnD z@z4qAdq>(J`qAUjoM4mBuUX7m=b;w5`YE^n=zI2>H~Gml`_ICGPKZ6W{D<$e{Ey@P z{lzF#hS`y(FT}x~YH{~2+E+apIqI5d!jpG|ra_~KIJwZ-d|5yC`IPxx)0^vr<@b9h zP#T^OTVI?E%@ zX<-KtGEXgRNQj=ck6um^7r}i4ed(4KbTp_6cR77KCg7?-E@?6X>P`+#3Z0>!&F;`J zO{UIMMOgL~;=q;ElOfH+f`wl{aV-%*$|A{IE5SB21vyAf0;n2r%wvrfRFBXgu`rxD z99n<)ZCUP!Qg9id4y7-3*}8RQXwyW6g%&7HDRwk5PmhSME_?4aRI1kUzS)|F*FRbTI(9 z2p1G=R~=&$mGR4PAYnP6v=7j;pl9#&d#sYpnXUm(9TO?a9Zgt)489W=(cf?NJ5JV) zuxMSxd@$KhyQU$E1sC?CM>ZcN45`%^!l{a$He$CPbJ}j=lY(oN3TpezwU|6DPXO6- zvPiPMG<%7HVrrsAXzS04IGpoReY;`XOf--yrpQ)(R0UfC7im9#w?46|`L7XQj3uk} z5)DYUjLhjQL76n@EEz5^s{B@9LeV~Wd^#JKBsDIBra z5)StDeDfsZrU;V%GdjK7r1O3&Xh=SEUJ@yakyhrJXPCbIVVyH&MFb5F29*-}!wG7g*&eGW( z;CC;ZeiWAtAmylz?gz)f)}kzMH{?OnS2B>ZHN3`h$wWuN6)Clj|BG|ibk$E9XlTiP zkIs%4Kj|=g!e9HBT1a(nf2%eAzf`=-bBhBYP=MI+%EgxZ^_M5ZPG~ynCqq=}>nUTY zu;AdA!}~s$0*fa!x}OI?D(4@*E3{(x-icTax-@maYZgfPP>}_uDi>-&+o!o+cQYGm!wU0ApP7 zbsW@a&ejjHGiEeP$o#q`UYdN1jln4MPJy!7ld6O9nIT&DQ$GlF7wEM_wrcU=AI OP5ep(Nd{G0epWUSJzH!5 literal 1728 zcmV;x20!_X4Fm}T0-*085Ppg4QsvU>0ZWU(q%`+7g3F#@^f^-lBcH_Q!Et4pSoX*W z`@OrvWAg%V_yIUAu4oVlZHgHbHsARoV`9-VEIcn4^J1`Ey{O`Bi*G4_`eDN=%Mt+A z47LulE2@8{&Z{m#QZk~g)Hph+#AG2u+X68 znZasI93Wqy>3;C$gNY;1lX+lILoOGp?I4Pqlw87Q?Sff$XVF+bU+x+kT?xo4jj$cJw%?yVA)`xwV~ zegkhPaQZ?q5QszLV{@|pvK?L~QIS)JERYC%zC*3a)3huVO~L1{Kf#nWQ&Z!xpgDpr zP6Bjg0CNd6Eu9%mK*$pF9{NPd=>gcBIc*X!vlj^vYelJ@fowEB8k=z~-_v;G!Q9!z z51LB%H@|fJz1N}XS1Ef4G_axt@BDB3GQJeIIs24vcUn(_>~q1rxGs3|jX|J?Q2hB_ zWDv4ioIadSKUl(h2QVkaxt;&i(M&r}Jv{fACY!GKSJO?76;32Fl62d#fA=BzSZBRJ z=Rwx2CmekmMW{q0qey25XQL}6 z;7u+*?E7U$+Na))?j(O#H|l1j1}caI)-c7?bxsQP-q@o$;&ZA5&87z`)9qkvcAqA% zwN5lEO~LcA1=vxITaP?DJ#euFCY+y9?(RBm&8jdB7BYA7<#|~8I$LfBW=RmT=ncoK zl`&b)n%Ei4_eha(eRP`a=C#i0Do{Z zvwq-3`{egOH!Mxtkt+#>By`^5HW$Qg7Ip2}3Fp#x-yQJSzx|EDI>P?fm_Z*pKwg+O z^mF0lkU5W*NANuy<-*zz5>@N#L<)V_Q{LHzwU5Ne#6w_v-q+^R=8Z;)r3*Dc=W)xM zAF>q9a8yC|FVW@r75%XreckWmJU$W?7JY{6H+)f=2nravTz&$$I6aRkkg8f>APQ@L zwb};3r}!i&C`1B*yM}E=SzVsyR_^`xqymPcsZXDoi1Wu)nIvk}NHM5yN{QOU$I8(! z#7pCCrh*0fA3?@SO+B~C#MyVJQtYq1Ahu)P#uezkH)J^kn! zx`gN^265>F>8j5_sTW~r6jZ_-ZY8;M4_i>Fi-$-P!QxH7hDfvf&cc|Gi7%na#apfp z;u@*c>jr2#M#Tn8&6r#~WjJ5%|0u+;w)C3!IIP<8Z5HpdXG1yA-u5d4L`rPu&3a`R z(nkcD2LNM)^k>6xfwBXy9j3F%<*c~G#pfBy+6@pHAF-&bp%Nou1)<74t%k`4CAAg+$7 z_mIG&c3WVWR>s1P;s$yVi;*fZ0oY|V*Tb$5t5*X`4jAp?g8RCatq(arN4rKj+ za2kwOPv?2ZQNQ;ZLd*s8`w(>(6Rq0>B6D)}awFU1J(?tbTvH?_`H5;Q(4s-C5@Ee~ zfKh(jOgk@N5=C+5?R`pGf;x@vdr{jM+shMCcr@)v98HivHxwZ>hV$d1jAljGY4sXH4o+jXZ!`m zT+a@ExE_O|70;g2x&r#95N&7vZO&+RK9m1Yh&)v4*b$`H3*CQ7*Vq#ke}wHgGARyA WKlzX}JTeZ7{1FEfpw?qdT3?Bq zjPBP~k2>%=QT6e(ZG>MNm7#5O(Tt)6z3idw07jl=zmH+QdQwr!bWyx1XVPt(Y69$O zD4AO!?IvhRONC0FbWiJT`zhZmbn27_AYEmd>+nnOdpgf=n_!lIL zK)jN{X+d{4{S4FtlNI9nxr_#!x(Q%I``z*)J2;DCGM_|iX3|-W)CQ5^yN1O75hO)q zOAm}cNOC&k9UUh(06a3A3f}Rm%cuh@98<4}TzGKY(o zb$4E@E=$QI0G*5t)3w8Lpzo)!43vQH3lnr~U&CRUz|*s$yPy~p$lLU7|2?8b{0dPY xG>ERw<<0y28k literal 665 zcmV;K0%rY;4Fm}T0vPW$NvhFq+W*q&0TpiVdrGD81<-`FJGr_0KAPTy7YOlTJ>S&n zcMkhOL8X%(4xm}Y&ihfjhJJ%Z`7_CplxgUg=G6)N3pdsAEtZ{HtA5dCWWrhxtMZV) z50FoV9KQlR`vX*9+efMg%P{Wo-T(M$C03eC7>)8#|1oDW8B(xYTh2r#=~A3Wj&~|~ zQ1h5ER_7mZI(=PUq7LN5{_k^mP#d$z8vHI{SIremqFLHDgf4`J^huhlg`X6EM?yh6 z8Mqpw&H>f0vO*M@=%dS2oA4m^RGVDt2)#a0FK(5Gn?geMHVi^Q;@%5KIBv8RS3Zst4;}{Ha<8`f zv|Nai@3IOA4;{4(~AFm2T+ z*2qgAYW3e6Bz}2^LWLqyvRC*N#8MURD<|bzLy=m@At-?hp+Sr)1Hn|r!V_A6yCD>k zvO%GZ(SQ_<$61+J$;|P+0I68R$H(*e9fH{$nzrzN5Su8?#QM4-bqP|^LFJH4nfgt` diff --git a/scripts/gha-encrypted/gma/google-services.json.gpg b/scripts/gha-encrypted/gma/google-services.json.gpg index c4fb97533c42192b5a1a9cfa48829263a1b5d54f..c46f596425a5955ec5b958766883ee90eb2ecf91 100644 GIT binary patch literal 953 zcmV;q14jIe4Fm}T0?5jj8X$yf(Erlu0o=SNVA9@O)Q#w6U2MVR(@sDoEKw4ruNO3O zPmJZ;D5%EpUdQb|p#VZcUSnlVF@HZ;Wo}Mq^r98p=hBMmONvOFn$0sn^L@iCqmP0F=UD9qsJblrIkqLol4tEpjp=eNY6-X z3b1{x7dV}KDG(ANS!?UAG=_uE%pR_G)fWWN=y3INqb`x*r;Qh`aW8c@%WR>J#-RSH z_yZ@%%_g%i!9NC5P8?4F*Q|}lID-2sQh`i3YbzJbE9Cv3R^QvR9b;>>avs%oXYmSZ z(s}B$Z%QQ#9*42A>|_%5lapchw(xLZ$O#HE7)Vtk;xn~`iH2pd{n2prmB}cn2+yHM z_KWm!Y7DPfg{`p<;raH;-q*N2tRG0zIdUPVn>knZifwyjUFtzxxP+pI2SIo$vq(7K zH(MHzZk5pMUByZtm?FxuJ5p@_pu|0(kvV5~7acIy|Ek-FrC2v9Xp<3(e<7|m<^>?% zg0PrAonln~Hd;|_%R*5#vo4#5d_|1?ZRSQzeZKDpUbZCyk|Y0PAtCl1xHz#^FFSZ^ z!1yU~KTei^?nVUonbM^qeEz;g^!3Dg#mNS;O`_ULM_J63hHe;7BL&mO>=K zwc<{Q4XsD%oc#^bfC`Biz~;ot-)Ku86zZ3) z-lCqPSZH;ue>aJDQ`eQ3FPi6QjYI@Rf&YQRqoCJu<<)m$PbpSakN-)z+b>_w;MdEA zM-w?Vvsh7EOK4T_iJEF2mPPu~{F~3me5AD}r)>`h)%;#B9;Mn=PX0M3s`>C?WSNK9vak2` zenu+TM-u+s2hgi?MXENJ{8#AIW@jq7BUic?=b7+v3gOs9KYZp literal 955 zcmV;s14R6c4Fm}T0>uawmFy;CP5;vA0b}->Od7o>T|E>93aw<&g{rR{?zVWb8)1zY z_)q)0(9WjsgHi{IxaG>^>ppJ^*G5JwUc?-(tnbkikjlCm!Hs!VgQCxk&ExrMSDvMa zv7d57eDl~z3lzgH&HV>>?9S_n|08*3f%4#E-!Us+YN3P_HXCK~43fz6N~&O<9O}gR z?(ox&Rd2<&VFnzfW#(n*E~x9k zg^5_Qvy8OBsYXH0zgxF5`KP2yz9p-|&!)RPqt5a0Y;D8s$11Js`_4vzeu z%;n%_kvvO;v_I+l+-eF1{N@F?VqMu37`WQPPrN{3DfXq1W)p28cd$aUc%HHMRXZ9V z6Ztij*@H4|c9T59L$PI?N4%YuM1}35pcFJP0S1g)I?IZJpbytuk`7m~6Z8FbILBt= zNq`LNrH$Qfqn$W(sYTt2cC@T0*KGjbwmbaMvaVul`S77D5*C8bR1B&32LtT2UQ7ie zofkrkJLA`(s?iB#mN_A~aw{TpTYK&L3vlaA>}tvQqQT%8or6Co??t=pNlKmVkWKq8 z^%}&xwLyFwnIY}Ffg3J-!03x^jox7WY(R00^f-CEhoT^J9vk=wGJMh8)Q!mIV`UZ! z$tHW9oJv$Pw5x1sSm{I87$?-RWt+IR6SZth;wZEYzw5ZVG6lQu&=W8nj^PET z+L`+;efsOscw%=yu=5kO25a9xs@_33B>ZlRhC6}tS4Sj6CH_qEGgrenHSKS1Q68J) zAn~_jxy4)&ysY?9{fXEt_41>VX+y&I{v$+U65Q{h_i2K)s(zM-;=wm|GP*ok{(0ZM z3PTSlLl!OP7-aeo0Uu5y|B0m`VJ5ZEX;fjyo=j{B8(Iv3%o({VXa&FJQI0hgP4cLA z>!s*{os;A#9AyEVXDQ_s?)h^J21(Ewf=I7NhT|`XmFP{qVpDFz=?TbFT!B8aH-ooh z?c#Pz&LHC)Dd|}I(xM>##0AcZ=3F(4&p(}R!|b(NN{x3$mw+>>)CX5oFBEgay-IH+ dw}8C0xiBK^oiBEtooGc);tdg-w^-+ diff --git a/scripts/gha-encrypted/installations/GoogleService-Info.plist.gpg b/scripts/gha-encrypted/installations/GoogleService-Info.plist.gpg index bd3777a19a27bd2a0e99a483c2f406f72320f3d8..ec47259fe099074e05ff094611d4c75f02cf7c49 100644 GIT binary patch literal 596 zcmV-a0;~Ou4Fm}T0^u9xz7Enc3IEdR0pv~sfC)i?wlXDcAex0nOqzbMehZipmZ@bb zbGYy)AbIZvLTLLjz^=Fl=2_X);eqFW90F|OgV{URRs17?fRE?6S)E!;NNrz!z>@th zlwJ~}7);&|Kby>7-rtJPJt(EY`&nUe1+m~S%hsne4payNd5yZtDAIlHT=Dt4FT^1U{1T-?1`e`gD6!?@nuKC|{}lAGk@~3OSTxdir1^tsty<%Q{=?eE zR(&b_n2eQbuq3->c9 zGL>0Zv&->Ah9L-=zP)*wT`$6VjzqK@;uu?DwCjvH#NP0fPF8yUM{(oNCOpw*G}%i_O(@_XJ+puZgd| zCVxjKcvv`qt6j~5GpQ%mB+kQ`l07cpv}CfN1d8JK8oh_%d22B9)xz?@WKK5MZep6Q z7x2X6G^!VI1?XC$#2XW=nAMk#xlaHZ`pb;-Yh#}K6KxP7E#8Nh)Z8l2-hsL(hGZH+ z6lI@G+I@RS_*Y4m2PUFM_m*>y4^>YBeK)u|{}ga7B0P4x>RpH&GI1BA93i(Q1t9$I zU~XH4W`1ArY{)R+e9)rPJI2?5jOKEi_&Bo@)aKCEv~QNB1Wegiw3y>q7D~j}QxOy4 z$EWWoT@T90b4E@h9?Wwd7L6Oz3Sqw4Xe}D9-vI+r%3#7gsTzEjkF%pQ*WhvGG2Z>h zVi5p;HxQ@e6JOp5)9Ved_+!W2#PIlGZOAVw(s`Ng^KpWHG|aBU=QSSAa^&NOa+)u3 zh_Xc;(C8?qeas8LJMF$iqPOh{UWq(@TGDZm=r#>8KTB8nTupw*;W=4su5EzyfTRfd zzZa(@o_g7b)5del>krI^`Gt1?rAR?HuY~yt9&ixL94a;iJ_#VUK5G-Onj5{m-LX2b zhEr+OI!!QOT^#4MQDMrMiernJs)UjdY*P7mXZ|_M^`w1t9?&3N6wyKlz+d{aY*#_= z4o|f;xdYC&dqm#GTlyqKLY0D!{2=+8sGyMIq&SIm@w5ei#)kRjmzlM=Y8&xRuL6(S iPcXvI=FhaGJ`@5P>b|x!N|O!IyNlPE%JlPzIfWve5ihO) diff --git a/scripts/gha-encrypted/installations/google-services.json.gpg b/scripts/gha-encrypted/installations/google-services.json.gpg index 87f969e34aaf7bb2c7e2c98b290c00c59fc1a8c8..ca21cd1005f74f9aced5d4d72c673b6b9f5a84a7 100644 GIT binary patch literal 564 zcmV-40?Yl34Fm}T0x48os0G%yY5&sc0htzDgqqfb??0Yr#WWMU>@iX|RxHg`Rfm}P zekziFlLW{*s=j>T=NsA@_#n17XFW^mc;*4$8cHek1=vx%>l55@Fb6-6y*E}Q3 z?M^S|2Oc{!Wig(d!4O1wVWjNq>Gbg6VNTiH0nV%*|Ugm=h5pS8(6N6Hs0!R+6!;F z>l~A1bIHN1n3?7Y0*;$U{oS333h_snt8(0-Z7@w}C5TwL;_YM+WNH}%2D9lT+Icb&S9Nk<;8stY(GG!wc zkbG%;i{C`eaziw97i`txHw#l|L`|WKflci^oUB{}pvw`eSC9@GHe%is^dolUyS(BAgfPghc_fd}`wJtxD4%VF=goPv29!Fy^}h+u0EGGcNv- C6AqgI literal 565 zcmV-50?Pf24Fm}T0x;-}lb%C6R{zrJ0ZF;PsrhjLIu_{?uGS_A?_R~v%BoaOu-AU$ z#!dc9qT_rafm!O@%X7+Cxx62j5>JlP%0#2FtYV?gQ3dJ$ZKlr;Jr!2$G#oZ65N9#L zj0E|*XhWdaebpR7kP*mjIU?0t@JRGxp=I^y|G4j$#Z0!l8&$mf>3GHA1%Cyap@`M zt3yeVz8yQr1*`T#^7Fwg-VEEkMLiQA8Hb!}L1PH5f&g+WUz1$dt{Rfw!OQ7oQ~e}Y z6VW{;tJtO(<}@h~xqv!jy;hG(GQ>`cPj%Miw)mYomV!OJE58#jKq#pSPJE#;KZ;eP zH0$sa7_o-_~^CWBR)x9o&jD0Gw6-YX%P_IM^zEDVj&jngk%l=*fmW?wHhcK D*C`Wv diff --git a/scripts/gha-encrypted/messaging/GoogleService-Info.plist.gpg b/scripts/gha-encrypted/messaging/GoogleService-Info.plist.gpg index fdbff295849f8590b8d5695decbcfdc9528f1392..cf95c652d8c3f4a8e1ced8e26ee693973b5d74f7 100644 GIT binary patch literal 681 zcmV;a0#^Nu4Fm}T0;FEs)peJ;@&D540h3?tHNL7~)BKD4v@4NWlr=pQilhSDjI(iF z1(VC?G|7B+^l)N*wBnzv=ff#48S7FhKjTGX6qJj#qbWpzs3X`M7jYiGa6YUW#qrs7 z$~{vT7&@}ERtlW)R~RBTQr_}>Fd3Za#vMrx_nM(ue3%zya0#Nue%6;3%2j6GNQE=V zHD4ThD>{GO+iJZ)1$%~CC4+{UT-Mx|Jsuzv^KhjdzCR?}3d+NbQiNe@Irgq6nh`VgjVY8XywJei9c?o_9aaV^(DPu% zS;tSQUS;lZFjZN)pq`-w1A?RUi`_b;FMN%^1&pYg!sZLxZ+9dv-YSA#OYh6vijEk z3E3-Ov+T4V!tI=hXAuO}LUZJcmlX=$oz=4$cL4|HL%Z?7wrgzfah%9k0N z4xJ)O^H!mk?{Mr1y~rnoFSt4b(e-G+rI@BwjhS0%K2IIQnWluOuAAKPp?Y zlo{7-*c8EDQO~sG%)YWsW)#%(A6eYmg_oVkjw9iVv{H;z4*W~*c_?k&`|S+g1GSY{ z`8Ec;ud=NE-DdICA7LcYXLCTr_rke$*}V4&(Rd=m;ky~DXr=^V0^Z$bBY38uHH2Gh z_=4V)bfKA6@&$_xAwSPI=0w+ZT>HD$+k>#iD?Qmbx0pt6J6atzKs5Pq$G8|tC7!7U z8FAvC5lwvB)ANOF^UGX7WYS#OfEm7_F0Np|_+UtY(K$L(@J)^`S5Nk%k28ydn-d02 z7iKDnp|GzV_bM#~y|VA$c4Ez|0^uRyZh`4rLECl zzPHXvB%Dht8{-aag?7>rGlU2g;dP9Fra_hsPMVP=8Y9z}IgO411zzt%F3x&slc)!b*R>W@Y{@cwQc5crYA~A7Q1wb_#Iq^kF4?cldQMK;1#|&pNignl> zfWjINT|F8EhcCrJFy&u58G=!B@XzbGzn$9=i>a6rnqz5>+qn5|@V3RZUFqap0k}rp zin!oVeF0j%4Y3+HkHUH0nB$8>JEBYp)Q(Oj_h_ow*LWqUSLs=6@h;2>%Pc6is29HM z#+mV= zJjHoS255Fx-Wl${`Gm}80o#OP>4nc+(W_9bleu+DokYj_XGS3TJ>#{-DMZ=_donVZ Q3C__t&3WFSTECKAK32m|>;M1& diff --git a/scripts/gha-encrypted/messaging/google-services.json.gpg b/scripts/gha-encrypted/messaging/google-services.json.gpg index 60646cbdf921f978cbcb87234922d8adc8821b88..8ad06ccf68abcd4364010bc42f9dec5e63c0a24a 100644 GIT binary patch literal 609 zcmV-n0-pVh4Fm}T0%hd^>={|fS^v`M0X;|)8~MWIq;;LywHFxnc6g{6OU$<8J3d(Z zDG_BIhEH?I&mMS4d8JPoN4MfS%^@c6db%X{O*6G54C(5)nG) z+T~qulRbQr^8EB({5m0xt3*KI+o{bm=+>spRyA1dL=`2Azpf71+M0sz_1zZ&;+2vB zS?s)I^+8WnSZ2OYB-q9;CrtNil=`o{{75)38dwMN%4Gvn2dNPf8b$C*X=2dU2GmHa zm&5MzqXebRAdUf$xLRgbT;@5WzA2JsW`2rX&v(KcD3{yo(77UYy4l9NUqaFX;TJ|9 za8H%NO!Yfl#PmbnufEnInb^7KpY`R)PT{$q0)kzrD#uztDx&@1j1Nef@6M{h5^FEu zL9@_G)ZdKY%Jhhc0~}_kK(`+}GR>1AH((#+?~ap@wt{NA`Q&CzoE?%KNJ=Y-@vbK% z)swGWEC{;@zbbO8Sqn5-Pq=UjaTB?ozA;r}n0pcKF2CU$+AqU0=0B*L46ptlCaBMg vPD~IzIRHz)j-tlSqT&%x5p2?6e(xKAWJfnzBs(C?QMLBN33UZmQW_K?5Pl{+ literal 611 zcmV-p0-XJf4Fm}T0uUSKYJ})AS^v`M0r|2^Ew1Nh1~vVl_-q1eWDUdBz~{$`GB;zR zEhuIN8(J!YXM}xfHptI)g<_7h1>u;tSsHO`k@|q4cmkt74;A|v&|07|y$#G7jo;9% z3N$r}L5@!@!`8zVg$=aGuoD#wt4eiwF^SW|QpTGF2(1@tONVputkUJ#DHq@mm6PpU zSp2()=8Mx;jCI2{5)k(B2L)w|}JNFPx~1%M16)Le{1XviE_#4n*-u-6kIWUbBd z24zWS-Tse-=AaFuWf+3!2N2X$uI~_P%jR61+i-V5^R_*;Ag=_i7VHo`aT#eK%ip1TY zlFE3|K}IjzK3R=kNiCOYxedy#3{7E;hRiyho;?{-efTb^@!lDApu#v*AzI~JyYI}EvUYcT$z8FSv#^m<@_^2 xvJJVR+X=#vDYBD=J!UCt_kMi>6CRjbY8-y8`M4Qy_lugu0MQ%NHw8QI>>p#fB9;IE diff --git a/scripts/gha-encrypted/remote_config/GoogleService-Info.plist.gpg b/scripts/gha-encrypted/remote_config/GoogleService-Info.plist.gpg index 40e7cddc02f759f73e865ddbfaeb95c3a02d15d6..ea9dc946108db17d9abceca676221ca110659982 100644 GIT binary patch literal 614 zcmV-s0-61c4Fm}T0+!@LUVw)oga6X$0fm6UEhysKH8@d}V0ZtUPzYhNql4l=?%x}4 zZmy^lPM-hGQ^`3_SU5V}t?<$7wO#lRYbS#NJbKiC?$Om(>ySGh;2*mM`*0v6w{yfT zFVpiXcM&7eXSbsspzE%VSPYa^+6V~B9h8~|;s~X6i z3D;Fg9=y~7=|%nk81WNAj5>uFWF9~Wq#hWDw5T5(Xu*KJgjIPWU-xWxoaDH@AmeM9hU8mCRDr z$uy6Ya$`mTX;DyDaU1165bob?{>|t5z-v{b|K;zTNj+_GN+mRX1j|G`n`{68)cO0K za`4~>iOmCsTIK99CDNgX)`g*27>jnR8;V3(J@}4d=^OATG zyfY;(0ff)9RO16P==~yQ8CO#~gAgmt;Ej$_RgwxX@1S?5AwG^`7EJv0^?qCo=bSedPEu6uPY=pv zX8-ga0A`RM10Rl#o08^YqG@7!&>@1*RXUrVcDRV)&F;R76la@n>m|-&p(%eaT7O?YM|$A(s)($en#{`k~89;V4r2$bs1= z9lkm($n8m##0Ip<-af0=v-ByF-+-0r$G@|gsSy@S!iGX@`nYGJeZeaGx+j``NGD|) z_Y&`VcQ*nCW8PcbY-6JPZSxA7g`q1u4(qXx^4EJw`h!djA0&G-yTI4*PZoxEXQ@-O zCABKG9UD?-P!Cphe_lB}P{{bAPY3sQz(_}X`AzRRil7UE{kl~C{@i5>Rz$L6q)?WI zv#@3t6E82FG!F>IM%&P7Pkv1?>xwS$%9W6r|HY`>ZIo+x*s~pNzm0q~d4aY^_2*>SRg7L(O*EKUvpJdXoQ=FQqYJHdX1q$~ygT@|tQe z#R_sHCk#&K?<6rgAhHPUD$+o4Ram)ShpyNq)pQJ>peQ z3RRC2a@Y+O2ONvPIB9rAO02(x)*Qnbx|G@e)t-GN{**l9uk6*3Z`6f^#C9=-Wj_Bs zky7Aie}I|s!19^h$Sv3Q03R;tnk4#^wF;=Za5Vda#IYQ;4 z3IKSrMkKQe5VL%v#oJG7%TmMXfK3+rk^wqFZA(+@k2H2?;4!-u%LgaWE3ENhRc&y6 z+>QmjPCAF7A@s}0jw>%!aAU%ShZEOmQX$i;ESCa{w*~wTi5HpD{`+cA__c7Q>cX}R z6+93?dp#!gelrsBu_NOw=KI^DojPY4HU;yuIEcuf>h zWW{*LZQ6KL3?YM$XO*EC&9_}HOli>A=8fA|`?I{ITbn(r1l!n+K)O-{3IM8yYqHiD z`D3B(KX^u+uNaoBwokDam0Q*2lkgEB--!ov44iN7EytQ!yvlc_+JW6$pdfQ&TX~QY zF+#PhS@RDmKfJ#LW}$H92{NYja>N$oty;18BCSCxh~UuAij(!h?J7|dW)xXGW`&Kq a@DVqWc|5L*rEG4scQP@*HM&^F@@MEq9-0gQ literal 850 zcmV-Y1Figw4Fm}T0%6}%@1s!F)c?}y0eKIZ%Sp%nYSgSk*3NB96-<(@XlqbE z+7gt`_+l~q3W@(ppm<#3uPWW`Cp6cY?VvBNpXk5}*UgU*{+ZqrmVPNZP_R|tvdMZU zZVH;iTUBPAvs${zTu8`%sXry&6g$n@C8Q*yLl?s(m&P4*7x@7x)IZO1)ZZ%I|EKIa z|A$L6R|722D^{|ihD-#`UtX=FRwX^~O&6;Q#>Tm{`%R$#{tyxy{sPXzy11+_mz#4nWt3jx6m0<*<60t1A0go-hQUJ;H zwC-gXcOEVmQ3?hZ^k-?%dQzp@8&dycC@PgK8%JEjP2=dpF5Nt|ovJA$`SGx61#>B! z@~;9FUk-eYJHxh;i_wiNz<(bQ<5@)C(PjfCX(*41_KzF`2R}G5a9^JFl~E)eE$ry0 z4u;95^8RBxAq`@4qRi^*bc?uFXU5WRrqk(K?nEeq*PT^@ooz6E zlJi*6z3`}+|980Jm;*4llFSS6-u!?Ei^mGrv%m@1mLNdn&s}|$zB)yQT##y0wAMku z`p#B>fMNslQo4$pDhdlar3gQFY{dyfg5iiN=`+T8Uv_Y?2RFy+u_dOe>@S!K;yA}H ziq?;%v@TPRyXFiDeKTxr}6;n(lm~PDA?H cBad9!4WejT<@alRbb~EXqdg<|r}m9~OcisVSpWb4 diff --git a/scripts/gha-encrypted/storage/GoogleService-Info.plist.gpg b/scripts/gha-encrypted/storage/GoogleService-Info.plist.gpg index 06bc08010a8d4c110a1d8c2c77ab707996fe88e5..01d28ec9c68dc2093039e5ef88d1b62e35c50863 100644 GIT binary patch literal 641 zcmV-{0)G9B4Fm}T0@BxCNCa2Mb^p@o0qtuiw?`tmd2RrUYRplF_cg~tu&`l%UZu36 zW0MRzaLxexhJhCfA|3TEiVMjoR0g|Ev<&_Vby6z0Esd`#5J`H{XGDoH?Th*BD?~wl z>&nNarqtokGHhG~MyqIYPd5@{=u^NAX%v;qpGq6@sI=4-~{0Nv73!Qd^ztPq)LTOE)Q+8 z+8rQw@R_hYkjkHRD{j;!jUVyU5~W!JF6xXofC?4?-5m&9adv!qB1 zG)WQ1&8goO)Ix|y2z3Q^8R|P&VCARg$3^&pOcXY{G+Ev6^+Wr7 zYn_il4A8BAPO3TpS-v?AGqn0=9&sg1fwHv3g@n=fL2ASJ$#uXTbB?Ck9Iw%~-Gbf= z{CuV)zbfK>m2pbZ5c=7UZ+uaBN8WID4!>K_X7Dv@ovP-*%J7VrJDQ|%v8D!iJ(H6y zowMHM(~G5nZYfLQ;hY4qMDEYch^&#t|5(0TMrK3;<|wn3kWMIuB9bE#?BN78xN|YY btXortgjczDJQD$D!1QIdm0!5@WZL-o7G^nu literal 642 zcmV-|0)73A4Fm}T0z@g&X?5WA0RPhI0Uh%*tIu~)Rs@S5_hm6KE_^LZrFc)LQN)b9 z(kNczG^L{_v@)g{vCx%)kPEb<+hQdeqzpCWuDeO~&VdG`+&1X?E$n0+*>`Rl1z;Lg+seJmB1d%bZXVik_pAbw%`xQ4@j7O0E^Zlz@)ANFo6*90 zZ(>8YFf77_3^_OxWLMhFz>;!P@LqV@TWf2D(t+_{lr`0bXo|D?-xI4Z8DiEkgKINY zVR9>K_7G3_!JI5|FBTJ^K#A^fA+#Yq zjn0cSj_S<*(eZvdMAQ|k-&A(1MNFe>IsJBDb1`mi3i_0wz{x-D7}&OzmhHf=OPLCH ze;qAUeL#da`825eX!fQ3aQIPLgKt}Akp5xM0>3o}s`GLMj2xs`NsS?*H1hyNq{ZO?re;l*D1A$8N}pL?F; cu5e?l+JL3pWf=v$;&{v-h_g}YwD##46c)`r(*OVf diff --git a/scripts/gha-encrypted/storage/google-services.json.gpg b/scripts/gha-encrypted/storage/google-services.json.gpg index 481d6bd168d93d01d2486ece52e1fb03f22bc08b..57ba134aa519fd3e9fd4c6fe3e35bdfa7ab9f86c 100644 GIT binary patch literal 779 zcmV+m1N8ii4Fm}T0v}cjW*B7vvj5WQ0ddkb%Cwn*48_buW^@!uuT2?GV5}3TWRcaf z;2`T3gm||t~4(epM>5nKUnE1@cp zPB2p_6Sp_yGdE||m$yrkQC^U@B;`XBw4Cet#xE?0YMb#6G8d@)6V8x_sIk*A!hSxG zV{PUZD7#3x#tBKMIPUcS1L+?mTpz}NpgT?TVik0fopDg~XHo}Han$mf&N+!=2RR0gg4x(OqNwmUSzJr!dDiKul zx4T?gU)+wP%ZyMcWyP-F1mj{B_r+&$(3!qGN9*s%2Fpx>PdS+CD z9)wXN&TGX3ETIOI33%(0z&K5s*DR9}URZ%=kPuF(MhucM9GUcTZHp$xW)tyCW2|*q zo(#ZVKbkUg8s6MV zTFNY@&bsgi{{4(Hu5z^t51z8LB)Nkhez1gAY|&{QQ7p4;6-}>|E=j}bzt+9+2KA;_ z(?K^!D$*b~S80>8bJe}pa8wUq#4~28*g$H=Jv-D7>>I;SSk_fs;B zOiGw|(LyUVcd2k^$kR0la8Hk2p9@00;uiF3sVCa;`Xi+iu>4-qAy*Dz%2K?)5Ok*4|6pJ+1=Sa5(%#e0+F1#h4UM%VHxv2ewR8;Ic%mBO62>}Gq*iUg`m^}xq+A%1{yRDz|x(#I5PNn;zuGx7?oyJ)SiP418apz+(jHPIc zgAACIQz;N(`F#vj^CHY)$l0)7#dDt7l&5QB*9Sawdbe@&pTn&l)nG_bE>X0r=lL0x zPJspLU|DW?hMySnMWg{x8JIv`wTibX@hzSnr)0`^b(|HMJ6&0P==tf?|G>2M`z4lX z)Oea)0&d^%71@l!QmW31{Bj!H(f+tx$10JluS+YXv{>Eh&fOVpw!?6nc)T_(QKPMoLlxWY=sJ}G+ zqkyENmcLof2n@!vnB?fgw*Vr=o&I%uZIQ_eFH%r)->J?%PvVCmZAgp~S$X6}!u=dv zKIbY11mqMTcUt~8>zOMU*4=?*JgeqdtB+&RNECZ%DN2!BL?KSp_D0mnt4qI+4N}5H zV+2fofMg}gP{rxEpB%;nCN+O(VqrV1L+ET@XwFz77frsFjs5TH%7!KZrKT@9P+H}i z&k^z?_uG0JCi6wVh2B+V Date: Mon, 24 Jun 2024 16:25:09 -0700 Subject: [PATCH 02/34] Update mobile dependencies - Mon Jun 24 2024 (#1614) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update mobile dependencies - Mon Jun 24 2024 ### Android - com.google.android.gms.play_services_base → 18.5.0 - com.google.firebase.firebase_bom → 33.1.1 ### iOS - Firebase/Analytics → 10.28.1 - Firebase/AppCheck → 10.28.1 - Firebase/Auth → 10.28.1 - Firebase/Core → 10.28.1 - Firebase/CoreOnly → 10.28.1 - Firebase/Crashlytics → 10.28.1 - Firebase/Database → 10.28.1 - Firebase/DynamicLinks → 10.28.1 - Firebase/Firestore → 10.28.1 - Firebase/Functions → 10.28.1 - Firebase/Installations → 10.28.1 - Firebase/Messaging → 10.28.1 - Firebase/RemoteConfig → 10.28.1 - Firebase/Storage → 10.28.1 > Created by [Update Android and iOS dependencies workflow](https://github.com/firebase/firebase-cpp-sdk/actions/runs/9650421680). * Update readme. --------- Co-authored-by: firebase-workflow-trigger-bot Co-authored-by: Jon Simantov --- Android/firebase_dependencies.gradle | 4 +- analytics/integration_test/Podfile | 4 +- analytics/ios_headers/FIREventNames.h | 2 +- analytics/ios_headers/FIRParameterNames.h | 2 +- analytics/ios_headers/FIRUserPropertyNames.h | 2 +- app/app_resources/build.gradle | 2 +- app/google_api_resources/build.gradle | 4 +- app/integration_test/Podfile | 2 +- app/invites_resources/build.gradle | 2 +- app_check/app_check_resources/build.gradle | 2 +- app_check/integration_test/Podfile | 20 +++--- auth/auth_resources/build.gradle | 2 +- auth/integration_test/Podfile | 4 +- cmake/external/firestore.cmake | 2 +- database/database_resources/build.gradle | 2 +- database/integration_test/Podfile | 8 +-- dynamic_links/integration_test/Podfile | 2 +- firestore/firestore_resources/build.gradle | 2 +- firestore/integration_test/Podfile | 8 +-- firestore/integration_test_internal/Podfile | 8 +-- functions/integration_test/Podfile | 8 +-- gma/gma_resources/build.gradle | 2 +- gma/integration_test/Podfile | 2 +- installations/integration_test/Podfile | 4 +- ios_pod/Podfile | 26 +++---- messaging/integration_test/Podfile | 8 +-- messaging/messaging_java/build.gradle | 2 +- .../Android/firebase_dependencies.gradle | 4 +- release_build_files/readme.md | 72 ++++++++++--------- remote_config/integration_test/Podfile | 4 +- .../remote_config_resources/build.gradle | 2 +- storage/integration_test/Podfile | 8 +-- storage/storage_resources/build.gradle | 2 +- 33 files changed, 115 insertions(+), 113 deletions(-) diff --git a/Android/firebase_dependencies.gradle b/Android/firebase_dependencies.gradle index 1465af1f5d..ecba080954 100644 --- a/Android/firebase_dependencies.gradle +++ b/Android/firebase_dependencies.gradle @@ -20,7 +20,7 @@ def firebaseDependenciesMap = [ 'app_check' : ['com.google.firebase:firebase-appcheck', 'com.google.firebase:firebase-appcheck-debug', 'com.google.firebase:firebase-appcheck-playintegrity'], - 'play_services' : ['com.google.android.gms:play-services-base:18.4.0'], + 'play_services' : ['com.google.android.gms:play-services-base:18.5.0'], 'analytics' : ['com.google.firebase:firebase-analytics'], 'auth' : ['com.google.firebase:firebase-auth'], 'database' : ['com.google.firebase:firebase-database'], @@ -159,7 +159,7 @@ project.afterEvaluate { // Add the bill-of-materials project.dependencies { - implementation platform('com.google.firebase:firebase-bom:33.0.0') + implementation platform('com.google.firebase:firebase-bom:33.1.1') } for (String lib : firebaseCpp.dependencies.libSet) { // Generate and include the proguard file diff --git a/analytics/integration_test/Podfile b/analytics/integration_test/Podfile index 623fc24da5..cc2b93c7db 100644 --- a/analytics/integration_test/Podfile +++ b/analytics/integration_test/Podfile @@ -5,12 +5,12 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Analytics', '10.25.0' + pod 'Firebase/Analytics', '10.28.1' end target 'integration_test_tvos' do platform :tvos, '12.0' - pod 'Firebase/Analytics', '10.25.0' + pod 'Firebase/Analytics', '10.28.1' end post_install do |installer| diff --git a/analytics/ios_headers/FIREventNames.h b/analytics/ios_headers/FIREventNames.h index 6fcd8c28fd..cdab3ebab4 100644 --- a/analytics/ios_headers/FIREventNames.h +++ b/analytics/ios_headers/FIREventNames.h @@ -1,6 +1,6 @@ // Copyright 2024 Google LLC -// Copied from Firebase Analytics iOS SDK 10.25.0. +// Copied from Firebase Analytics iOS SDK 10.28.1. /// @file FIREventNames.h /// diff --git a/analytics/ios_headers/FIRParameterNames.h b/analytics/ios_headers/FIRParameterNames.h index 357fd600ec..4f60b2f9dc 100644 --- a/analytics/ios_headers/FIRParameterNames.h +++ b/analytics/ios_headers/FIRParameterNames.h @@ -1,6 +1,6 @@ // Copyright 2024 Google LLC -// Copied from Firebase Analytics iOS SDK 10.25.0. +// Copied from Firebase Analytics iOS SDK 10.28.1. /// @file FIRParameterNames.h /// diff --git a/analytics/ios_headers/FIRUserPropertyNames.h b/analytics/ios_headers/FIRUserPropertyNames.h index 56bcf776fd..f7af176e5b 100644 --- a/analytics/ios_headers/FIRUserPropertyNames.h +++ b/analytics/ios_headers/FIRUserPropertyNames.h @@ -1,6 +1,6 @@ // Copyright 2024 Google LLC -// Copied from Firebase Analytics iOS SDK 10.25.0. +// Copied from Firebase Analytics iOS SDK 10.28.1. /// @file FIRUserPropertyNames.h /// diff --git a/app/app_resources/build.gradle b/app/app_resources/build.gradle index 7edb61108c..7cd22afb7f 100644 --- a/app/app_resources/build.gradle +++ b/app/app_resources/build.gradle @@ -50,7 +50,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.0.0') + implementation platform('com.google.firebase:firebase-bom:33.1.1') implementation 'com.google.firebase:firebase-analytics' } diff --git a/app/google_api_resources/build.gradle b/app/google_api_resources/build.gradle index d93916c1b0..19dec0345f 100644 --- a/app/google_api_resources/build.gradle +++ b/app/google_api_resources/build.gradle @@ -53,9 +53,9 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.0.0') + implementation platform('com.google.firebase:firebase-bom:33.1.1') implementation 'com.google.firebase:firebase-analytics' - implementation 'com.google.android.gms:play-services-base:18.4.0' + implementation 'com.google.android.gms:play-services-base:18.5.0' implementation project(':app:app_resources') } diff --git a/app/integration_test/Podfile b/app/integration_test/Podfile index a87700f7e6..5be3f21f65 100644 --- a/app/integration_test/Podfile +++ b/app/integration_test/Podfile @@ -4,7 +4,7 @@ platform :ios, '13.0' use_frameworks! :linkage => :static target 'integration_test' do - pod 'Firebase/Analytics', '10.25.0' + pod 'Firebase/Analytics', '10.28.1' end post_install do |installer| diff --git a/app/invites_resources/build.gradle b/app/invites_resources/build.gradle index 55d3f65fb8..6c893215db 100644 --- a/app/invites_resources/build.gradle +++ b/app/invites_resources/build.gradle @@ -49,7 +49,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.0.0') + implementation platform('com.google.firebase:firebase-bom:33.1.1') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-dynamic-links' implementation project(':app:app_resources') diff --git a/app_check/app_check_resources/build.gradle b/app_check/app_check_resources/build.gradle index b1f0c1785d..41fc49625e 100644 --- a/app_check/app_check_resources/build.gradle +++ b/app_check/app_check_resources/build.gradle @@ -49,7 +49,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.0.0') + implementation platform('com.google.firebase:firebase-bom:33.1.1') implementation 'com.google.firebase:firebase-appcheck' } diff --git a/app_check/integration_test/Podfile b/app_check/integration_test/Podfile index 01cc2bf297..d17e04dc72 100644 --- a/app_check/integration_test/Podfile +++ b/app_check/integration_test/Podfile @@ -4,20 +4,20 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/AppCheck', '10.25.0' - pod 'Firebase/Database', '10.25.0' - pod 'Firebase/Auth', '10.25.0' - pod 'Firebase/Storage', '10.25.0' - pod 'Firebase/Functions', '10.25.0' + pod 'Firebase/AppCheck', '10.28.1' + pod 'Firebase/Database', '10.28.1' + pod 'Firebase/Auth', '10.28.1' + pod 'Firebase/Storage', '10.28.1' + pod 'Firebase/Functions', '10.28.1' end target 'integration_test_tvos' do platform :tvos, '12.0' - pod 'Firebase/AppCheck', '10.25.0' - pod 'Firebase/Database', '10.25.0' - pod 'Firebase/Auth', '10.25.0' - pod 'Firebase/Storage', '10.25.0' - pod 'Firebase/Functions', '10.25.0' + pod 'Firebase/AppCheck', '10.28.1' + pod 'Firebase/Database', '10.28.1' + pod 'Firebase/Auth', '10.28.1' + pod 'Firebase/Storage', '10.28.1' + pod 'Firebase/Functions', '10.28.1' end post_install do |installer| diff --git a/auth/auth_resources/build.gradle b/auth/auth_resources/build.gradle index f3f1500188..96f229908a 100644 --- a/auth/auth_resources/build.gradle +++ b/auth/auth_resources/build.gradle @@ -49,7 +49,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.0.0') + implementation platform('com.google.firebase:firebase-bom:33.1.1') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-auth' implementation project(':app:app_resources') diff --git a/auth/integration_test/Podfile b/auth/integration_test/Podfile index 93df932bfd..bd89bb51a5 100644 --- a/auth/integration_test/Podfile +++ b/auth/integration_test/Podfile @@ -4,12 +4,12 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Auth', '10.25.0' + pod 'Firebase/Auth', '10.28.1' end target 'integration_test_tvos' do platform :tvos, '12.0' - pod 'Firebase/Auth', '10.25.0' + pod 'Firebase/Auth', '10.28.1' end post_install do |installer| diff --git a/cmake/external/firestore.cmake b/cmake/external/firestore.cmake index cad3404dbc..0d432f8d8e 100644 --- a/cmake/external/firestore.cmake +++ b/cmake/external/firestore.cmake @@ -20,7 +20,7 @@ endif() # If the format of the line below changes, then be sure to update # https://github.com/firebase/firebase-cpp-sdk/blob/fd054fa016/.github/workflows/update-dependencies.yml#L81 -set(version CocoaPods-10.25.0) +set(version CocoaPods-10.28.1) function(GetReleasedDep) message("Getting released firebase-ios-sdk @ ${version}") diff --git a/database/database_resources/build.gradle b/database/database_resources/build.gradle index 96ee2b4e6b..d75ae209d8 100644 --- a/database/database_resources/build.gradle +++ b/database/database_resources/build.gradle @@ -45,7 +45,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.0.0') + implementation platform('com.google.firebase:firebase-bom:33.1.1') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-database' //implementation project(':app:app_resources') diff --git a/database/integration_test/Podfile b/database/integration_test/Podfile index 1ce27b882f..557e9eaa0c 100644 --- a/database/integration_test/Podfile +++ b/database/integration_test/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Database', '10.25.0' - pod 'Firebase/Auth', '10.25.0' + pod 'Firebase/Database', '10.28.1' + pod 'Firebase/Auth', '10.28.1' end target 'integration_test_tvos' do platform :tvos, '12.0' - pod 'Firebase/Database', '10.25.0' - pod 'Firebase/Auth', '10.25.0' + pod 'Firebase/Database', '10.28.1' + pod 'Firebase/Auth', '10.28.1' end post_install do |installer| diff --git a/dynamic_links/integration_test/Podfile b/dynamic_links/integration_test/Podfile index 0b46900b4c..237e58d4e6 100644 --- a/dynamic_links/integration_test/Podfile +++ b/dynamic_links/integration_test/Podfile @@ -5,7 +5,7 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/DynamicLinks', '10.25.0' + pod 'Firebase/DynamicLinks', '10.28.1' end post_install do |installer| diff --git a/firestore/firestore_resources/build.gradle b/firestore/firestore_resources/build.gradle index 63ba21a1b6..6cc43bd3ae 100644 --- a/firestore/firestore_resources/build.gradle +++ b/firestore/firestore_resources/build.gradle @@ -53,7 +53,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.0.0') + implementation platform('com.google.firebase:firebase-bom:33.1.1') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-firestore' } diff --git a/firestore/integration_test/Podfile b/firestore/integration_test/Podfile index 35832a90ad..fa8f9fe252 100644 --- a/firestore/integration_test/Podfile +++ b/firestore/integration_test/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Firestore', '10.25.0' - pod 'Firebase/Auth', '10.25.0' + pod 'Firebase/Firestore', '10.28.1' + pod 'Firebase/Auth', '10.28.1' end target 'integration_test_tvos' do platform :tvos, '12.0' - pod 'Firebase/Firestore', '10.25.0' - pod 'Firebase/Auth', '10.25.0' + pod 'Firebase/Firestore', '10.28.1' + pod 'Firebase/Auth', '10.28.1' end post_install do |installer| diff --git a/firestore/integration_test_internal/Podfile b/firestore/integration_test_internal/Podfile index 7561273ffb..f43b5d970a 100644 --- a/firestore/integration_test_internal/Podfile +++ b/firestore/integration_test_internal/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Firestore', '10.25.0' - pod 'Firebase/Auth', '10.25.0' + pod 'Firebase/Firestore', '10.28.1' + pod 'Firebase/Auth', '10.28.1' end target 'integration_test_tvos' do platform :tvos, '12.0' - pod 'Firebase/Firestore', '10.25.0' - pod 'Firebase/Auth', '10.25.0' + pod 'Firebase/Firestore', '10.28.1' + pod 'Firebase/Auth', '10.28.1' end post_install do |installer| diff --git a/functions/integration_test/Podfile b/functions/integration_test/Podfile index 692253dba9..9fa495b0d3 100644 --- a/functions/integration_test/Podfile +++ b/functions/integration_test/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Functions', '10.25.0' - pod 'Firebase/Auth', '10.25.0' + pod 'Firebase/Functions', '10.28.1' + pod 'Firebase/Auth', '10.28.1' end target 'integration_test_tvos' do platform :tvos, '12.0' - pod 'Firebase/Functions', '10.25.0' - pod 'Firebase/Auth', '10.25.0' + pod 'Firebase/Functions', '10.28.1' + pod 'Firebase/Auth', '10.28.1' end post_install do |installer| diff --git a/gma/gma_resources/build.gradle b/gma/gma_resources/build.gradle index 06c4e36ee4..0598c018ef 100644 --- a/gma/gma_resources/build.gradle +++ b/gma/gma_resources/build.gradle @@ -50,7 +50,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.0.0') + implementation platform('com.google.firebase:firebase-bom:33.1.1') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.android.gms:play-services-ads:23.0.0' implementation 'com.google.android.ump:user-messaging-platform:2.2.0' diff --git a/gma/integration_test/Podfile b/gma/integration_test/Podfile index e07e6a117d..3f35ccaa75 100644 --- a/gma/integration_test/Podfile +++ b/gma/integration_test/Podfile @@ -5,7 +5,7 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/CoreOnly', '10.25.0' + pod 'Firebase/CoreOnly', '10.28.1' pod 'Google-Mobile-Ads-SDK', '11.2.0' pod 'GoogleUserMessagingPlatform', '2.3.0' end diff --git a/installations/integration_test/Podfile b/installations/integration_test/Podfile index c5d63ddfbe..4b7eda38f0 100644 --- a/installations/integration_test/Podfile +++ b/installations/integration_test/Podfile @@ -5,8 +5,8 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Analytics', '10.25.0' - pod 'Firebase/Installations', '10.25.0' + pod 'Firebase/Analytics', '10.28.1' + pod 'Firebase/Installations', '10.28.1' end post_install do |installer| diff --git a/ios_pod/Podfile b/ios_pod/Podfile index 84414ddd0c..12540faf0a 100644 --- a/ios_pod/Podfile +++ b/ios_pod/Podfile @@ -3,22 +3,22 @@ platform :ios, '13.0' use_frameworks! target 'GetPods' do - pod 'Firebase/Core', '10.25.0' + pod 'Firebase/Core', '10.28.1' pod 'Google-Mobile-Ads-SDK', '11.2.0' pod 'GoogleUserMessagingPlatform', '2.3.0' - pod 'Firebase/Analytics', '10.25.0' - pod 'Firebase/AppCheck', '10.25.0' - pod 'Firebase/Auth', '10.25.0' - pod 'Firebase/Crashlytics', '10.25.0' - pod 'Firebase/Database', '10.25.0' - pod 'Firebase/DynamicLinks', '10.25.0' - pod 'Firebase/Firestore', '10.25.0' - pod 'Firebase/Functions', '10.25.0' - pod 'Firebase/Installations', '10.25.0' - pod 'Firebase/Messaging', '10.25.0' - pod 'Firebase/RemoteConfig', '10.25.0' - pod 'Firebase/Storage', '10.25.0' + pod 'Firebase/Analytics', '10.28.1' + pod 'Firebase/AppCheck', '10.28.1' + pod 'Firebase/Auth', '10.28.1' + pod 'Firebase/Crashlytics', '10.28.1' + pod 'Firebase/Database', '10.28.1' + pod 'Firebase/DynamicLinks', '10.28.1' + pod 'Firebase/Firestore', '10.28.1' + pod 'Firebase/Functions', '10.28.1' + pod 'Firebase/Installations', '10.28.1' + pod 'Firebase/Messaging', '10.28.1' + pod 'Firebase/RemoteConfig', '10.28.1' + pod 'Firebase/Storage', '10.28.1' end diff --git a/messaging/integration_test/Podfile b/messaging/integration_test/Podfile index dd70df720b..e819022057 100644 --- a/messaging/integration_test/Podfile +++ b/messaging/integration_test/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Messaging', '10.25.0' - pod 'Firebase/Functions', '10.25.0' + pod 'Firebase/Messaging', '10.28.1' + pod 'Firebase/Functions', '10.28.1' end target 'integration_test_tvos' do platform :tvos, '12.0' - pod 'Firebase/Messaging', '10.25.0' - pod 'Firebase/Functions', '10.25.0' + pod 'Firebase/Messaging', '10.28.1' + pod 'Firebase/Functions', '10.28.1' end post_install do |installer| diff --git a/messaging/messaging_java/build.gradle b/messaging/messaging_java/build.gradle index 8eb9292ffd..3121a3148a 100644 --- a/messaging/messaging_java/build.gradle +++ b/messaging/messaging_java/build.gradle @@ -59,7 +59,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.0.0') + implementation platform('com.google.firebase:firebase-bom:33.1.1') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-messaging' implementation 'com.google.flatbuffers:flatbuffers-java:1.12.0' diff --git a/release_build_files/Android/firebase_dependencies.gradle b/release_build_files/Android/firebase_dependencies.gradle index bf1cbbc2ff..c076938eaa 100644 --- a/release_build_files/Android/firebase_dependencies.gradle +++ b/release_build_files/Android/firebase_dependencies.gradle @@ -20,7 +20,7 @@ def firebaseDependenciesMap = [ 'app_check' : ['com.google.firebase:firebase-appcheck', 'com.google.firebase:firebase-appcheck-debug', 'com.google.firebase:firebase-appcheck-playintegrity'], - 'play_services' : ['com.google.android.gms:play-services-base:18.4.0'], + 'play_services' : ['com.google.android.gms:play-services-base:18.5.0'], 'analytics' : ['com.google.firebase:firebase-analytics'], 'auth' : ['com.google.firebase:firebase-auth'], 'database' : ['com.google.firebase:firebase-database'], @@ -132,7 +132,7 @@ project.afterEvaluate { // Add the bill-of-materials project.dependencies { - implementation platform('com.google.firebase:firebase-bom:33.0.0') + implementation platform('com.google.firebase:firebase-bom:33.1.1') } for (String lib : firebaseCpp.dependencies.libSet) { // Messaging includes an aar, which to be depended on properly requires diff --git a/release_build_files/readme.md b/release_build_files/readme.md index fb3f8972e6..9c7cdfe443 100644 --- a/release_build_files/readme.md +++ b/release_build_files/readme.md @@ -86,7 +86,7 @@ distributed as part of the core Firebase Feature | Required Libraries and Gradle Packages -------------------------- | -------------------------------------- -All Firebase SDKs | platform(com.google.firebase:firebase-bom:33.0.0) +All Firebase SDKs | platform(com.google.firebase:firebase-bom:33.1.1) | | (Android Bill of Materials) Firebase Analytics | libfirebase_analytics.a | | libfirebase_app.a @@ -174,7 +174,7 @@ Firebase Storage | libfirebase_storage.a | | (Maven package) | | com.google.firebase:firebase-auth | | (Maven package) -Google Play services module| com.google.android.gms:play-services-base:18.4.0 +Google Play services module| com.google.android.gms:play-services-base:18.5.0 | | (Maven package) The Firebase C++ SDK uses an Android BoM (Bill of Materials) to specify a single @@ -230,50 +230,50 @@ Feature | Required Frameworks and Cocoapods -------------------------- | --------------------------------------- Firebase Analytics | firebase_analytics.xcframework | | firebase.xcframework -| | Firebase/Analytics Cocoapod (10.25.0) +| | Firebase/Analytics Cocoapod (10.28.1) Firebase App Check | firebase_app_check.xcframework | | firebase.xcframework -| | Firebase/AppCheck Cocoapod (10.25.0) +| | Firebase/AppCheck Cocoapod (10.28.1) Firebase Authentication | firebase_auth.xcframework | | firebase.xcframework -| | Firebase/Auth Cocoapod (10.25.0) +| | Firebase/Auth Cocoapod (10.28.1) Firebase Dynamic Links | firebase_dynamic_links.xcframework | | firebase.xcframework -| | Firebase/DynamicLinks Cocoapod (10.25.0) +| | Firebase/DynamicLinks Cocoapod (10.28.1) Cloud Firestore | firebase_firestore.xcframework | | firebase_auth.xcframework | | firebase.xcframework -| | Firebase/Firestore Cocoapod (10.25.0) -| | Firebase/Auth Cocoapod (10.25.0) +| | Firebase/Firestore Cocoapod (10.28.1) +| | Firebase/Auth Cocoapod (10.28.1) Firebase Functions | firebase_functions.xcframework | | firebase_auth.xcframework (optional) | | firebase.xcframework -| | Firebase/Functions Cocoapod (10.25.0) -| | Firebase/Auth Cocoapod (10.25.0) +| | Firebase/Functions Cocoapod (10.28.1) +| | Firebase/Auth Cocoapod (10.28.1) Google Mobile Ads | firebase_gma.xcframework | | firebase.xcframework -| | Firebase/CoreOnly Cocoapod (10.25.0) +| | Firebase/CoreOnly Cocoapod (10.28.1) | | Google-Mobile-Ads-SDK Cocoapod (11.2.0) | | GoogleUserMessagingPlatform Cocoapod (2.3.0) Firebase Installations | firebase_installations.xcframework | | firebase.xcframework -| | FirebaseInstallations Cocoapod (10.25.0) +| | FirebaseInstallations Cocoapod (10.28.0) Firebase Cloud Messaging | firebase_messaging.xcframework | | firebase.xcframework -| | Firebase/Messaging Cocoapod (10.25.0) +| | Firebase/Messaging Cocoapod (10.28.1) Firebase Realtime Database | firebase_database.xcframework | | firebase_auth.xcframework | | firebase.xcframework -| | Firebase/Database Cocoapod (10.25.0) -| | Firebase/Auth Cocoapod (10.25.0) +| | Firebase/Database Cocoapod (10.28.1) +| | Firebase/Auth Cocoapod (10.28.1) Firebase Remote Config | firebase_remote_config.xcframework | | firebase.xcframework -| | Firebase/RemoteConfig Cocoapod (10.25.0) +| | Firebase/RemoteConfig Cocoapod (10.28.1) Firebase Storage | firebase_storage.xcframework | | firebase_auth.xcframework | | firebase.xcframework -| | Firebase/Storage Cocoapod (10.25.0) -| | Firebase/Auth Cocoapod (10.25.0) +| | Firebase/Storage Cocoapod (10.28.1) +| | Firebase/Auth Cocoapod (10.28.1) Important: Each version of the Firebase C++ SDK supports a specific version of the Firebase iOS SDK. Please ensure that you reference the Cocoapod versions @@ -293,50 +293,50 @@ Feature | Required Libraries and Cocoapods -------------------------- | ----------------------------------------- Firebase Analytics | libfirebase_analytics.a | | libfirebase_app.a -| | Firebase/Analytics Cocoapod (10.25.0) +| | Firebase/Analytics Cocoapod (10.28.1) Firebase App Check | firebase_app_check.xcframework | | firebase.xcframework -| | Firebase/AppCheck Cocoapod (10.25.0) +| | Firebase/AppCheck Cocoapod (10.28.1) Firebase Authentication | libfirebase_auth.a | | libfirebase_app.a -| | Firebase/Auth Cocoapod (10.25.0) +| | Firebase/Auth Cocoapod (10.28.1) Firebase Dynamic Links | libfirebase_dynamic_links.a | | libfirebase_app.a -| | Firebase/DynamicLinks Cocoapod (10.25.0) +| | Firebase/DynamicLinks Cocoapod (10.28.1) Cloud Firestore | libfirebase_firestore.a | | libfirebase_app.a | | libfirebase_auth.a -| | Firebase/Firestore Cocoapod (10.25.0) -| | Firebase/Auth Cocoapod (10.25.0) +| | Firebase/Firestore Cocoapod (10.28.1) +| | Firebase/Auth Cocoapod (10.28.1) Firebase Functions | libfirebase_functions.a | | libfirebase_app.a | | libfirebase_auth.a (optional) -| | Firebase/Functions Cocoapod (10.25.0) -| | Firebase/Auth Cocoapod (10.25.0) +| | Firebase/Functions Cocoapod (10.28.1) +| | Firebase/Auth Cocoapod (10.28.1) Google Mobile Ads | libfirebase_gma.a | | libfirebase_app.a -| | Firebase/CoreOnly Cocoapod (10.25.0) +| | Firebase/CoreOnly Cocoapod (10.28.1) | | Google-Mobile-Ads-SDK Cocoapod (11.2.0) | | GoogleUserMessagingPlatform Cocoapod (2.3.0) Firebase Installations | libfirebase_installations.a | | libfirebase_app.a -| | FirebaseInstallations Cocoapod (10.25.0) +| | FirebaseInstallations Cocoapod (10.28.0) Firebase Cloud Messaging | libfirebase_messaging.a | | libfirebase_app.a -| | Firebase/CloudMessaging Cocoapod (10.25.0) +| | Firebase/CloudMessaging Cocoapod (10.28.1) Firebase Realtime Database | libfirebase_database.a | | libfirebase_app.a | | libfirebase_auth.a -| | Firebase/Database Cocoapod (10.25.0) -| | Firebase/Auth Cocoapod (10.25.0) +| | Firebase/Database Cocoapod (10.28.1) +| | Firebase/Auth Cocoapod (10.28.1) Firebase Remote Config | libfirebase_remote_config.a | | libfirebase_app.a -| | Firebase/RemoteConfig Cocoapod (10.25.0) +| | Firebase/RemoteConfig Cocoapod (10.28.1) Firebase Storage | libfirebase_storage.a | | libfirebase_app.a | | libfirebase_auth.a -| | Firebase/Storage Cocoapod (10.25.0) -| | Firebase/Auth Cocoapod (10.25.0) +| | Firebase/Storage Cocoapod (10.28.1) +| | Firebase/Auth Cocoapod (10.28.1) Important: Each version of the Firebase C++ SDK supports a specific version of the Firebase iOS SDK. Please ensure that you reference the Cocoapod versions @@ -631,8 +631,10 @@ workflow use only during the development of your app, not for publicly shipping code. ## Release Notes -### Upcoming Release +### 12.1.0 - Changes + - General (Android): Update to Firebase Android BoM version 33.1.1. + - General (iOS): Update to Firebase Cocoapods version 10.28.1. - Analytics (iOS): Add support for `InitiateOnDeviceConversionMeasurementWithHashedEmailAddress` and `InitiateOnDeviceConversionMeasurementWithHashedPhoneNumber`. diff --git a/remote_config/integration_test/Podfile b/remote_config/integration_test/Podfile index 8be5b9df52..6898897435 100644 --- a/remote_config/integration_test/Podfile +++ b/remote_config/integration_test/Podfile @@ -4,12 +4,12 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/RemoteConfig', '10.25.0' + pod 'Firebase/RemoteConfig', '10.28.1' end target 'integration_test_tvos' do platform :tvos, '12.0' - pod 'Firebase/RemoteConfig', '10.25.0' + pod 'Firebase/RemoteConfig', '10.28.1' end post_install do |installer| diff --git a/remote_config/remote_config_resources/build.gradle b/remote_config/remote_config_resources/build.gradle index 3b50188258..5da476ff93 100644 --- a/remote_config/remote_config_resources/build.gradle +++ b/remote_config/remote_config_resources/build.gradle @@ -49,7 +49,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.0.0') + implementation platform('com.google.firebase:firebase-bom:33.1.1') implementation 'com.google.firebase:firebase-config' } diff --git a/storage/integration_test/Podfile b/storage/integration_test/Podfile index d97a029981..33f9cb06a1 100644 --- a/storage/integration_test/Podfile +++ b/storage/integration_test/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Storage', '10.25.0' - pod 'Firebase/Auth', '10.25.0' + pod 'Firebase/Storage', '10.28.1' + pod 'Firebase/Auth', '10.28.1' end target 'integration_test_tvos' do platform :tvos, '12.0' - pod 'Firebase/Storage', '10.25.0' - pod 'Firebase/Auth', '10.25.0' + pod 'Firebase/Storage', '10.28.1' + pod 'Firebase/Auth', '10.28.1' end post_install do |installer| diff --git a/storage/storage_resources/build.gradle b/storage/storage_resources/build.gradle index 064541bd70..4d5d251e6d 100644 --- a/storage/storage_resources/build.gradle +++ b/storage/storage_resources/build.gradle @@ -49,7 +49,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.0.0') + implementation platform('com.google.firebase:firebase-bom:33.1.1') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-storage' } From 53d1d13867942b431cd423379610b2c33d49b545 Mon Sep 17 00:00:00 2001 From: Jon Simantov Date: Tue, 25 Jun 2024 00:29:43 -0700 Subject: [PATCH 03/34] Add GMA C++ deprecation notice (#1613) * Add deprecation warning to GMA initialization method. * Add deprecation notices to the headers. * Format code. * Add release note about GMA SDK. * Rephrase slightly. --- gma/src/include/firebase/gma.h | 18 +++++++++++++++--- gma/src/include/firebase/gma/ad_view.h | 12 ++++++++---- gma/src/include/firebase/gma/interstitial_ad.h | 9 ++++++--- gma/src/include/firebase/gma/rewarded_ad.h | 9 ++++++--- release_build_files/readme.md | 4 +++- 5 files changed, 38 insertions(+), 14 deletions(-) diff --git a/gma/src/include/firebase/gma.h b/gma/src/include/firebase/gma.h index eca1666a6a..002bbf8125 100644 --- a/gma/src/include/firebase/gma.h +++ b/gma/src/include/firebase/gma.h @@ -61,6 +61,9 @@ class Future { /// /// The GMA API allows you to load and display mobile ads using the Google /// Mobile Ads SDK. Each ad format has its own header file. +/// +/// @deprecated The Google Mobile Ads C++ SDK is now deprecated. Please see +/// https://developers.google.com/admob/cpp/sdk for more information. namespace gma { /// Initializes Google Mobile Ads (GMA) via Firebase. @@ -78,7 +81,10 @@ namespace gma { /// @return If init_result_out is kInitResultSuccess, this Future will contain /// the initialization status of each adapter once initialization is complete. /// Otherwise, the returned Future will have kFutureStatusInvalid. -Future Initialize( +/// +/// @deprecated The Google Mobile Ads C++ SDK is now deprecated. Please see +/// https://developers.google.com/admob/cpp/sdk for more information. +FIREBASE_DEPRECATED Future Initialize( const ::firebase::App& app, InitResult* init_result_out = nullptr); #if FIREBASE_PLATFORM_ANDROID || defined(DOXYGEN) @@ -107,7 +113,10 @@ Future Initialize( /// @return If init_result_out is kInitResultSuccess, this Future will contain /// the initialization status of each adapter once initialization is complete. /// Otherwise, the returned Future will have kFutureStatusInvalid. -Future Initialize( +/// +/// @deprecated The Google Mobile Ads C++ SDK is now deprecated. Please see +/// https://developers.google.com/admob/cpp/sdk for more information. +FIREBASE_DEPRECATED Future Initialize( JNIEnv* jni_env, jobject activity, InitResult* init_result_out = nullptr); #endif // defined(__ANDROID__) || defined(DOXYGEN) @@ -126,7 +135,10 @@ Future Initialize( /// will contain the initialization status of each adapter once initialization /// is complete. Otherwise, the returned Future will have /// kFutureStatusInvalid. -Future Initialize( +/// +/// @deprecated The Google Mobile Ads C++ SDK is now deprecated. Please see +/// https://developers.google.com/admob/cpp/sdk for more information. +FIREBASE_DEPRECATED Future Initialize( InitResult* init_result_out = nullptr); #endif // !defined(__ANDROID__) || defined(DOXYGEN) diff --git a/gma/src/include/firebase/gma/ad_view.h b/gma/src/include/firebase/gma/ad_view.h index b2a1cba24d..a935e38ba1 100644 --- a/gma/src/include/firebase/gma/ad_view.h +++ b/gma/src/include/firebase/gma/ad_view.h @@ -63,6 +63,9 @@ struct BoundingBox; /// ad_view->LoadAd(your_ad_request); /// } /// @endcode +/// +/// @deprecated The Google Mobile Ads C++ SDK is now deprecated. Please see +/// https://developers.google.com/admob/cpp/sdk for more information. class AdView { public: /// The possible screen positions for a @ref AdView, configured via @@ -86,7 +89,7 @@ class AdView { /// Creates an uninitialized @ref AdView object. /// @ref Initialize must be called before the object is used. - AdView(); + FIREBASE_DEPRECATED AdView(); ~AdView(); @@ -94,12 +97,13 @@ class AdView { /// @param[in] parent The platform-specific UI element that will host the ad. /// @param[in] ad_unit_id The ad unit ID to use when requesting ads. /// @param[in] size The desired ad size for the ad. - Future Initialize(AdParent parent, const char* ad_unit_id, - const AdSize& size); + FIREBASE_DEPRECATED Future Initialize(AdParent parent, + const char* ad_unit_id, + const AdSize& size); /// Returns a @ref Future that has the status of the last call to /// @ref Initialize. - Future InitializeLastResult() const; + FIREBASE_DEPRECATED Future InitializeLastResult() const; /// Begins an asynchronous request for an ad. If successful, the ad will /// automatically be displayed in the AdView. diff --git a/gma/src/include/firebase/gma/interstitial_ad.h b/gma/src/include/firebase/gma/interstitial_ad.h index 4680537178..8db7acfd28 100644 --- a/gma/src/include/firebase/gma/interstitial_ad.h +++ b/gma/src/include/firebase/gma/interstitial_ad.h @@ -69,21 +69,24 @@ class InterstitialAdInternal; /// interstitial->Show(); /// } /// @endcode +/// +/// @deprecated The Google Mobile Ads C++ SDK is now deprecated. Please see +/// https://developers.google.com/admob/cpp/sdk for more information. class InterstitialAd { public: /// Creates an uninitialized @ref InterstitialAd object. /// @ref Initialize must be called before the object is used. - InterstitialAd(); + FIREBASE_DEPRECATED InterstitialAd(); ~InterstitialAd(); /// Initialize the @ref InterstitialAd object. /// @param[in] parent The platform-specific UI element that will host the ad. - Future Initialize(AdParent parent); + FIREBASE_DEPRECATED Future Initialize(AdParent parent); /// Returns a @ref Future containing the status of the last call to /// @ref Initialize. - Future InitializeLastResult() const; + FIREBASE_DEPRECATED Future InitializeLastResult() const; /// Begins an asynchronous request for an ad. /// diff --git a/gma/src/include/firebase/gma/rewarded_ad.h b/gma/src/include/firebase/gma/rewarded_ad.h index a3c5431486..e2bf38a3e3 100644 --- a/gma/src/include/firebase/gma/rewarded_ad.h +++ b/gma/src/include/firebase/gma/rewarded_ad.h @@ -71,6 +71,9 @@ class RewardedAdInternal; /// rewarded->Show(&my_user_earned_reward_listener); /// } /// @endcode +/// +/// @deprecated The Google Mobile Ads C++ SDK is now deprecated. Please see +/// https://developers.google.com/admob/cpp/sdk for more information. class RewardedAd { public: /// Options for RewardedAd server-side verification callbacks. Set options on @@ -86,17 +89,17 @@ class RewardedAd { /// Creates an uninitialized @ref RewardedAd object. /// @ref Initialize must be called before the object is used. - RewardedAd(); + FIREBASE_DEPRECATED RewardedAd(); ~RewardedAd(); /// Initialize the @ref RewardedAd object. /// @param[in] parent The platform-specific UI element that will host the ad. - Future Initialize(AdParent parent); + FIREBASE_DEPRECATED Future Initialize(AdParent parent); /// Returns a @ref Future containing the status of the last call to /// @ref Initialize. - Future InitializeLastResult() const; + FIREBASE_DEPRECATED Future InitializeLastResult() const; /// Begins an asynchronous request for an ad. /// diff --git a/release_build_files/readme.md b/release_build_files/readme.md index 9c7cdfe443..fb162b26ec 100644 --- a/release_build_files/readme.md +++ b/release_build_files/readme.md @@ -638,7 +638,9 @@ code. - Analytics (iOS): Add support for `InitiateOnDeviceConversionMeasurementWithHashedEmailAddress` and `InitiateOnDeviceConversionMeasurementWithHashedPhoneNumber`. - - Messaging (Android): Addressed potential race condition on receiving + - GMA: The GMA C++ SDK is now deprecated. For more information, see the + [SDK documentation](https://developers.google.com/admob/cpp/sdk). + - Messaging (Android): Fixed a potential race condition on receiving messages after cleanup. ### 12.0.0 From e048269ab9fe1db604136b581dc62b015d64e327 Mon Sep 17 00:00:00 2001 From: orangepanda83 <165642881+orangepanda83@users.noreply.github.com> Date: Tue, 25 Jun 2024 10:30:43 +0300 Subject: [PATCH 04/34] Fix typo in storage/integration_test/readme.md (#1611) I just fixed a small typo which was bothering me. --- storage/integration_test/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/storage/integration_test/readme.md b/storage/integration_test/readme.md index 6b9efa6fcd..24f677cdfc 100644 --- a/storage/integration_test/readme.md +++ b/storage/integration_test/readme.md @@ -85,7 +85,7 @@ Building and Running the integration test the build settings. Scroll down to "Search Paths", and add your path to "Framework Search Paths". - In XCode, build & run the sample on an iOS device or simulator. - - The integration test has no interativity. The output of the app can be + - The integration test has no interactivity. The output of the app can be viewed via the console or on the device's display. In Xcode, select "View --> Debug Area --> Activate Console" from the menu to view the console. From 13a31955ca42c4ced3290df13444ed8334d6ec51 Mon Sep 17 00:00:00 2001 From: Ed Date: Tue, 25 Jun 2024 12:29:34 -0500 Subject: [PATCH 05/34] Always forward received UNNotifications notifications to an overridden user delegate, even before the messaging SDK is initialized. (#1604) --- messaging/src/ios/messaging.mm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/messaging/src/ios/messaging.mm b/messaging/src/ios/messaging.mm index 5a44264bfc..3029bc21c0 100644 --- a/messaging/src/ios/messaging.mm +++ b/messaging/src/ios/messaging.mm @@ -906,11 +906,11 @@ - (void)userNotificationCenter:(UNUserNotificationCenter *)notificationCenter #endif ::firebase::messaging::g_message_notification_opened = true; ::firebase::messaging::NotifyApplicationAndServiceOfMessage(userInfo); - id user_delegate = ::firebase::messaging::g_user_delegate; - [user_delegate userNotificationCenter:notificationCenter - didReceiveNotificationResponse:response - withCompletionHandler:completionHandler]; } + id user_delegate = ::firebase::messaging::g_user_delegate; + [user_delegate userNotificationCenter:notificationCenter + didReceiveNotificationResponse:response + withCompletionHandler:completionHandler]; } #endif // FIREBASE_PLATFORM_IOS From 5a814f8e3e1da93b5e31101b0805751f10d79ec6 Mon Sep 17 00:00:00 2001 From: Jon Simantov Date: Tue, 25 Jun 2024 10:31:01 -0700 Subject: [PATCH 06/34] Update version to 12.1.0, and add readme for messaging fix. --- cpp_sdk_version.json | 6 +++--- release_build_files/readme.md | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/cpp_sdk_version.json b/cpp_sdk_version.json index a44408e9ed..aa00031b76 100644 --- a/cpp_sdk_version.json +++ b/cpp_sdk_version.json @@ -1,5 +1,5 @@ { - "released": "12.0.0", - "stable": "12.0.0", - "head": "12.0.0" + "released": "12.1.0", + "stable": "12.1.0", + "head": "12.1.0" } diff --git a/release_build_files/readme.md b/release_build_files/readme.md index fb162b26ec..f0ba0827df 100644 --- a/release_build_files/readme.md +++ b/release_build_files/readme.md @@ -642,6 +642,8 @@ code. [SDK documentation](https://developers.google.com/admob/cpp/sdk). - Messaging (Android): Fixed a potential race condition on receiving messages after cleanup. + - Messaging (iOS): Fixed an issue with notifications being lost if they + were received before Firebase Messaging was initialized. ### 12.0.0 - Changes From d170cb6f141971545e63561c1e196717a0552dfc Mon Sep 17 00:00:00 2001 From: Jon Simantov Date: Tue, 25 Jun 2024 13:19:48 -0700 Subject: [PATCH 07/34] Modify deprecation notice. (#1616) * Update deprecation link in headers. * Update the text. --- gma/src/include/firebase/gma.h | 32 ++++++++++++++++--- gma/src/include/firebase/gma/ad_view.h | 3 +- .../include/firebase/gma/interstitial_ad.h | 3 +- gma/src/include/firebase/gma/rewarded_ad.h | 3 +- 4 files changed, 33 insertions(+), 8 deletions(-) diff --git a/gma/src/include/firebase/gma.h b/gma/src/include/firebase/gma.h index 002bbf8125..0d95f536f5 100644 --- a/gma/src/include/firebase/gma.h +++ b/gma/src/include/firebase/gma.h @@ -55,6 +55,14 @@ template class Future { // Empty class (used for documentation only). }; + +/// @brief Firebase App class. For more information, see the Firebase +/// C++ SDK documentation. +class App { + // Empty class (used for documentation only). +}; + #endif // defined(DOXYGEN_ADMOB) /// @brief API for Google Mobile Ads with Firebase. @@ -62,8 +70,17 @@ class Future { /// The GMA API allows you to load and display mobile ads using the Google /// Mobile Ads SDK. Each ad format has its own header file. /// -/// @deprecated The Google Mobile Ads C++ SDK is now deprecated. Please see -/// https://developers.google.com/admob/cpp/sdk for more information. +/// @deprecated **The Google Mobile Ads (GMA) C++ SDK is _deprecated_ as of June +/// 17, 2024 and should not be adopted in projects that don't already use it. It +/// will enter _End-of-Maintenance (EoM)_ on June 17, 2025. Note that versions +/// of the SDK released before the EoM date will continue to function, but no +/// further bug fixes or changes will be released after the EoM date.** +/// +/// Instead of the Google Mobile Ads C++ SDK, consider using the +/// [iOS](/docs/admob/ios/quick-start) and +/// [Android](/docs/admob/android/quick-start) SDKs from AdMob. For support, +/// reach out to the [Google Mobile Ads SDK Technical +/// Forum](https://groups.google.com/g/google-admob-ads-sdk). namespace gma { /// Initializes Google Mobile Ads (GMA) via Firebase. @@ -83,7 +100,10 @@ namespace gma { /// Otherwise, the returned Future will have kFutureStatusInvalid. /// /// @deprecated The Google Mobile Ads C++ SDK is now deprecated. Please see -/// https://developers.google.com/admob/cpp/sdk for more information. +/// the [SDK reference +/// documentation]( +/// /admob/cpp/reference/namespace/firebase/gma) +/// for more information. FIREBASE_DEPRECATED Future Initialize( const ::firebase::App& app, InitResult* init_result_out = nullptr); @@ -115,7 +135,8 @@ FIREBASE_DEPRECATED Future Initialize( /// Otherwise, the returned Future will have kFutureStatusInvalid. /// /// @deprecated The Google Mobile Ads C++ SDK is now deprecated. Please see -/// https://developers.google.com/admob/cpp/sdk for more information. +/// https://developers.google.com/admob/cpp/reference/namespace/firebase/gma +/// for more information. FIREBASE_DEPRECATED Future Initialize( JNIEnv* jni_env, jobject activity, InitResult* init_result_out = nullptr); @@ -137,7 +158,8 @@ FIREBASE_DEPRECATED Future Initialize( /// kFutureStatusInvalid. /// /// @deprecated The Google Mobile Ads C++ SDK is now deprecated. Please see -/// https://developers.google.com/admob/cpp/sdk for more information. +/// https://developers.google.com/admob/cpp/reference/namespace/firebase/gma +/// for more information. FIREBASE_DEPRECATED Future Initialize( InitResult* init_result_out = nullptr); #endif // !defined(__ANDROID__) || defined(DOXYGEN) diff --git a/gma/src/include/firebase/gma/ad_view.h b/gma/src/include/firebase/gma/ad_view.h index a935e38ba1..d2d73db67d 100644 --- a/gma/src/include/firebase/gma/ad_view.h +++ b/gma/src/include/firebase/gma/ad_view.h @@ -65,7 +65,8 @@ struct BoundingBox; /// @endcode /// /// @deprecated The Google Mobile Ads C++ SDK is now deprecated. Please see -/// https://developers.google.com/admob/cpp/sdk for more information. +/// https://developers.google.com/admob/cpp/reference/namespace/firebase/gma +/// for more information. class AdView { public: /// The possible screen positions for a @ref AdView, configured via diff --git a/gma/src/include/firebase/gma/interstitial_ad.h b/gma/src/include/firebase/gma/interstitial_ad.h index 8db7acfd28..4173209f42 100644 --- a/gma/src/include/firebase/gma/interstitial_ad.h +++ b/gma/src/include/firebase/gma/interstitial_ad.h @@ -71,7 +71,8 @@ class InterstitialAdInternal; /// @endcode /// /// @deprecated The Google Mobile Ads C++ SDK is now deprecated. Please see -/// https://developers.google.com/admob/cpp/sdk for more information. +/// https://developers.google.com/admob/cpp/reference/namespace/firebase/gma +/// for more information. class InterstitialAd { public: /// Creates an uninitialized @ref InterstitialAd object. diff --git a/gma/src/include/firebase/gma/rewarded_ad.h b/gma/src/include/firebase/gma/rewarded_ad.h index e2bf38a3e3..6aaafbb798 100644 --- a/gma/src/include/firebase/gma/rewarded_ad.h +++ b/gma/src/include/firebase/gma/rewarded_ad.h @@ -73,7 +73,8 @@ class RewardedAdInternal; /// @endcode /// /// @deprecated The Google Mobile Ads C++ SDK is now deprecated. Please see -/// https://developers.google.com/admob/cpp/sdk for more information. +/// https://developers.google.com/admob/cpp/reference/namespace/firebase/gma +/// for more information. class RewardedAd { public: /// Options for RewardedAd server-side verification callbacks. Set options on From 11045e1ce4fef8b961fe9848ba49ab2879ac7290 Mon Sep 17 00:00:00 2001 From: a-maurice Date: Wed, 10 Jul 2024 13:16:57 -0700 Subject: [PATCH 08/34] Remove comments specifying downstream messages (#1624) * Remove comments specifying downstream messages * Update messaging.h --- messaging/src/include/firebase/messaging.h | 30 +--------------------- 1 file changed, 1 insertion(+), 29 deletions(-) diff --git a/messaging/src/include/firebase/messaging.h b/messaging/src/include/firebase/messaging.h index e7c7f57768..3d1535279a 100644 --- a/messaging/src/include/firebase/messaging.h +++ b/messaging/src/include/firebase/messaging.h @@ -192,8 +192,7 @@ struct Notification { AndroidNotificationParams* android; }; -/// @brief Data structure used to send messages to, and receive messages from, -/// cloud messaging. +/// @brief Data structure used to receive messages from cloud messaging. struct Message { /// Initialize the message. Message() @@ -241,9 +240,6 @@ struct Message { /// Authenticated ID of the sender. This is a project number in most cases. /// /// Any value starting with google.com, goog. or gcm. are reserved. - /// - /// This field is only used for downstream messages received through - /// Listener::OnMessage(). std::string from; /// This parameter specifies the recipient of a message. @@ -266,9 +262,6 @@ struct Message { /// This means a FCM connection server can simultaneously store 4 different /// send-to-sync messages per client app. If you exceed this number, there is /// no guarantee which 4 collapse keys the FCM connection server will keep. - /// - /// This field is only used for downstream messages received through - /// Listener::OnMessage(). std::string collapse_key; /// The metadata, including all original key/value pairs. Includes some of the @@ -300,9 +293,6 @@ struct Message { /// Parameters: "message_id" and "error" /// /// If this field is missing, the message is a regular message. - /// - /// This field is only used for downstream messages received through - /// Listener::OnMessage(). std::string message_type; /// Sets the priority of the message. Valid values are "normal" and "high." On @@ -319,9 +309,6 @@ struct Message { /// /// For more information, see [Setting the priority of a message][1]. /// - /// This field is only used for downstream messages received through - /// Listener::OnMessage(). - /// /// [1]: /// https://firebase.google.com/docs/cloud-messaging/concept-options#setting-the-priority-of-a-message std::string priority; @@ -331,24 +318,15 @@ struct Message { /// supported is 4 weeks, and the default value is 4 weeks. For more /// information, see [Setting the lifespan of a message][1]. /// - /// This field is only used for downstream messages received through - /// Listener::OnMessage(). - /// /// [1]: https://firebase.google.com/docs/cloud-messaging/concept-options#ttl int32_t time_to_live; /// Error code. Used in "nack" messages for CCS, and in responses from the /// server. /// See the CCS specification for the externally-supported list. - /// - /// This field is only used for downstream messages received through - /// Listener::OnMessage(). std::string error; /// Human readable details about the error. - /// - /// This field is only used for downstream messages received through - /// Listener::OnMessage(). std::string error_description; /// Optional notification to show. This only set if a notification was @@ -359,9 +337,6 @@ struct Message { /// to make a copy of either the Message or Notification. Copying the Message /// object implicitly makes a deep copy of the notification (allocated with /// new) which is owned by the Message. - /// - /// This field is only used for downstream messages received through - /// Listener::OnMessage(). Notification* notification; /// A flag indicating whether this message was opened by tapping a @@ -370,9 +345,6 @@ struct Message { bool notification_opened; /// The link into the app from the message. - /// - /// This field is only used for downstream messages received through - /// Listener::OnMessage(). std::string link; /// @cond FIREBASE_APP_INTERNAL From ff3561ece210e31c218bccf7e5e13a8945b4b69b Mon Sep 17 00:00:00 2001 From: a-maurice Date: Wed, 10 Jul 2024 18:29:20 -0700 Subject: [PATCH 09/34] Remove unnecessary cmake quotes (#1625) --- cmake/external_rules.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/external_rules.cmake b/cmake/external_rules.cmake index bdd38b0eda..b2416191c1 100644 --- a/cmake/external_rules.cmake +++ b/cmake/external_rules.cmake @@ -167,7 +167,7 @@ function(build_external_dependencies) # Propagate MacOS build flags. if(CMAKE_OSX_ARCHITECTURES) set(CMAKE_SUB_CONFIGURE_OPTIONS ${CMAKE_SUB_CONFIGURE_OPTIONS} - -DCMAKE_OSX_ARCHITECTURES="${CMAKE_OSX_ARCHITECTURES}") + -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}) endif() elseif(MSVC) # Propagate MSVC build flags. From 53630131e2d756d63f9f4dae2516564f8eed4864 Mon Sep 17 00:00:00 2001 From: "firebase-workflow-trigger[bot]" <80733318+firebase-workflow-trigger[bot]@users.noreply.github.com> Date: Wed, 17 Jul 2024 22:01:45 +0000 Subject: [PATCH 10/34] Update Android dependencies - Mon Jul 15 2024 (#1626) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [Triggered](https://github.com/firebase/firebase-android-sdk/actions/runs/9944091998) by [firebase-android-sdk Jul 15 release](https://github.com/firebase/firebase-android-sdk/commit/515ab8ff0afff94dbd55db8b8ed24efc5088cac7). ### Android - com.google.firebase.firebase_bom → 33.1.2 > Created by [Update Android and iOS dependencies workflow](https://github.com/firebase/firebase-cpp-sdk/actions/runs/9944098197). Co-authored-by: firebase-workflow-trigger-bot --- Android/firebase_dependencies.gradle | 2 +- app/app_resources/build.gradle | 2 +- app/google_api_resources/build.gradle | 2 +- app/invites_resources/build.gradle | 2 +- app_check/app_check_resources/build.gradle | 2 +- auth/auth_resources/build.gradle | 2 +- database/database_resources/build.gradle | 2 +- firestore/firestore_resources/build.gradle | 2 +- gma/gma_resources/build.gradle | 2 +- messaging/messaging_java/build.gradle | 2 +- release_build_files/Android/firebase_dependencies.gradle | 2 +- release_build_files/readme.md | 2 +- remote_config/remote_config_resources/build.gradle | 2 +- storage/storage_resources/build.gradle | 2 +- 14 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Android/firebase_dependencies.gradle b/Android/firebase_dependencies.gradle index ecba080954..81ea08c322 100644 --- a/Android/firebase_dependencies.gradle +++ b/Android/firebase_dependencies.gradle @@ -159,7 +159,7 @@ project.afterEvaluate { // Add the bill-of-materials project.dependencies { - implementation platform('com.google.firebase:firebase-bom:33.1.1') + implementation platform('com.google.firebase:firebase-bom:33.1.2') } for (String lib : firebaseCpp.dependencies.libSet) { // Generate and include the proguard file diff --git a/app/app_resources/build.gradle b/app/app_resources/build.gradle index 7cd22afb7f..8351e562db 100644 --- a/app/app_resources/build.gradle +++ b/app/app_resources/build.gradle @@ -50,7 +50,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.1.1') + implementation platform('com.google.firebase:firebase-bom:33.1.2') implementation 'com.google.firebase:firebase-analytics' } diff --git a/app/google_api_resources/build.gradle b/app/google_api_resources/build.gradle index 19dec0345f..7ee92162e2 100644 --- a/app/google_api_resources/build.gradle +++ b/app/google_api_resources/build.gradle @@ -53,7 +53,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.1.1') + implementation platform('com.google.firebase:firebase-bom:33.1.2') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.android.gms:play-services-base:18.5.0' implementation project(':app:app_resources') diff --git a/app/invites_resources/build.gradle b/app/invites_resources/build.gradle index 6c893215db..1adbca0ae7 100644 --- a/app/invites_resources/build.gradle +++ b/app/invites_resources/build.gradle @@ -49,7 +49,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.1.1') + implementation platform('com.google.firebase:firebase-bom:33.1.2') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-dynamic-links' implementation project(':app:app_resources') diff --git a/app_check/app_check_resources/build.gradle b/app_check/app_check_resources/build.gradle index 41fc49625e..6cc09ba1df 100644 --- a/app_check/app_check_resources/build.gradle +++ b/app_check/app_check_resources/build.gradle @@ -49,7 +49,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.1.1') + implementation platform('com.google.firebase:firebase-bom:33.1.2') implementation 'com.google.firebase:firebase-appcheck' } diff --git a/auth/auth_resources/build.gradle b/auth/auth_resources/build.gradle index 96f229908a..00564f2957 100644 --- a/auth/auth_resources/build.gradle +++ b/auth/auth_resources/build.gradle @@ -49,7 +49,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.1.1') + implementation platform('com.google.firebase:firebase-bom:33.1.2') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-auth' implementation project(':app:app_resources') diff --git a/database/database_resources/build.gradle b/database/database_resources/build.gradle index d75ae209d8..4cfb882e01 100644 --- a/database/database_resources/build.gradle +++ b/database/database_resources/build.gradle @@ -45,7 +45,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.1.1') + implementation platform('com.google.firebase:firebase-bom:33.1.2') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-database' //implementation project(':app:app_resources') diff --git a/firestore/firestore_resources/build.gradle b/firestore/firestore_resources/build.gradle index 6cc43bd3ae..93439900aa 100644 --- a/firestore/firestore_resources/build.gradle +++ b/firestore/firestore_resources/build.gradle @@ -53,7 +53,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.1.1') + implementation platform('com.google.firebase:firebase-bom:33.1.2') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-firestore' } diff --git a/gma/gma_resources/build.gradle b/gma/gma_resources/build.gradle index 0598c018ef..bd1a8144c3 100644 --- a/gma/gma_resources/build.gradle +++ b/gma/gma_resources/build.gradle @@ -50,7 +50,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.1.1') + implementation platform('com.google.firebase:firebase-bom:33.1.2') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.android.gms:play-services-ads:23.0.0' implementation 'com.google.android.ump:user-messaging-platform:2.2.0' diff --git a/messaging/messaging_java/build.gradle b/messaging/messaging_java/build.gradle index 3121a3148a..a268401ee7 100644 --- a/messaging/messaging_java/build.gradle +++ b/messaging/messaging_java/build.gradle @@ -59,7 +59,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.1.1') + implementation platform('com.google.firebase:firebase-bom:33.1.2') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-messaging' implementation 'com.google.flatbuffers:flatbuffers-java:1.12.0' diff --git a/release_build_files/Android/firebase_dependencies.gradle b/release_build_files/Android/firebase_dependencies.gradle index c076938eaa..b80aed1531 100644 --- a/release_build_files/Android/firebase_dependencies.gradle +++ b/release_build_files/Android/firebase_dependencies.gradle @@ -132,7 +132,7 @@ project.afterEvaluate { // Add the bill-of-materials project.dependencies { - implementation platform('com.google.firebase:firebase-bom:33.1.1') + implementation platform('com.google.firebase:firebase-bom:33.1.2') } for (String lib : firebaseCpp.dependencies.libSet) { // Messaging includes an aar, which to be depended on properly requires diff --git a/release_build_files/readme.md b/release_build_files/readme.md index f0ba0827df..f3e8af087f 100644 --- a/release_build_files/readme.md +++ b/release_build_files/readme.md @@ -86,7 +86,7 @@ distributed as part of the core Firebase Feature | Required Libraries and Gradle Packages -------------------------- | -------------------------------------- -All Firebase SDKs | platform(com.google.firebase:firebase-bom:33.1.1) +All Firebase SDKs | platform(com.google.firebase:firebase-bom:33.1.2) | | (Android Bill of Materials) Firebase Analytics | libfirebase_analytics.a | | libfirebase_app.a diff --git a/remote_config/remote_config_resources/build.gradle b/remote_config/remote_config_resources/build.gradle index 5da476ff93..9a766490da 100644 --- a/remote_config/remote_config_resources/build.gradle +++ b/remote_config/remote_config_resources/build.gradle @@ -49,7 +49,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.1.1') + implementation platform('com.google.firebase:firebase-bom:33.1.2') implementation 'com.google.firebase:firebase-config' } diff --git a/storage/storage_resources/build.gradle b/storage/storage_resources/build.gradle index 4d5d251e6d..12282470b4 100644 --- a/storage/storage_resources/build.gradle +++ b/storage/storage_resources/build.gradle @@ -49,7 +49,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.1.1') + implementation platform('com.google.firebase:firebase-bom:33.1.2') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-storage' } From bb8ee5dd5162b4f3d81837d365cf37d63ce76b7d Mon Sep 17 00:00:00 2001 From: "firebase-workflow-trigger[bot]" <80733318+firebase-workflow-trigger[bot]@users.noreply.github.com> Date: Fri, 2 Aug 2024 15:22:32 -0700 Subject: [PATCH 11/34] Update iOS dependencies - Tue Jul 30 2024 (#1631) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update iOS dependencies - Tue Jul 30 2024 ### iOS - Firebase/Analytics → 11.0.0 - Firebase/AppCheck → 11.0.0 - Firebase/Auth → 11.0.0 - Firebase/Core → 11.0.0 - Firebase/CoreOnly → 11.0.0 - Firebase/Crashlytics → 11.0.0 - Firebase/Database → 11.0.0 - Firebase/DynamicLinks → 11.0.0 - Firebase/Firestore → 11.0.0 - Firebase/Functions → 11.0.0 - Firebase/Installations → 11.0.0 - Firebase/Messaging → 11.0.0 - Firebase/RemoteConfig → 11.0.0 - Firebase/Storage → 11.0.0 > Created by [Update Android and iOS dependencies workflow](https://github.com/firebase/firebase-cpp-sdk/actions/runs/10168827736). * Fixes for Auth * Fix Firestore, and format files * File formatting * Update integration_test tvOS target * Fix Firestore internal test deployment target * Fix OAuth sign-in not disabling tvOS correctly --------- Co-authored-by: firebase-workflow-trigger-bot Co-authored-by: a-maurice --- analytics/integration_test/Podfile | 6 +- .../project.pbxproj | 4 +- analytics/ios_headers/FIREventNames.h | 2 +- analytics/ios_headers/FIRParameterNames.h | 2 +- analytics/ios_headers/FIRUserPropertyNames.h | 2 +- app/integration_test/Podfile | 2 +- app_check/integration_test/Podfile | 22 +- .../project.pbxproj | 4 +- auth/CMakeLists.txt | 2 + auth/integration_test/Podfile | 6 +- .../project.pbxproj | 4 +- auth/src/ios/auth_ios.mm | 8 +- auth/src/ios/common_ios.h | 8 +- auth/src/ios/credential_ios.mm | 12 +- auth/src/ios/user_ios.mm | 4 - cmake/external/firestore.cmake | 2 +- cmake/toolchains/apple.toolchain.cmake | 2 +- cmake/toolchains/ios.cmake | 2 +- cmake/toolchains/ios_simulator.cmake | 2 +- database/integration_test/Podfile | 10 +- .../project.pbxproj | 4 +- dynamic_links/integration_test/Podfile | 2 +- firestore/integration_test/Podfile | 10 +- .../project.pbxproj | 4 +- firestore/integration_test_internal/Podfile | 10 +- .../project.pbxproj | 4 +- ...eate_app_check_credentials_provider_ios.mm | 2 +- .../main/create_credentials_provider_ios.mm | 2 +- functions/integration_test/Podfile | 10 +- .../project.pbxproj | 4 +- gma/integration_test/Podfile | 2 +- installations/integration_test/Podfile | 4 +- ios_pod/Podfile | 26 +- .../swift_headers/FirebaseAnalytics-Swift.h | 4 +- ios_pod/swift_headers/FirebaseAuth-Swift.h | 6060 +++++++++++++++++ .../FirebaseCoreInternal-Swift.h | 4 +- .../swift_headers/FirebaseDatabase-Swift.h | 4 +- .../swift_headers/FirebaseFirestore-Swift.h | 4 +- .../swift_headers/FirebaseFunctions-Swift.h | 8 +- .../FirebaseInAppMessaging-Swift.h | 4 +- .../FirebaseMLModelDownloader-Swift.h | 4 +- .../FirebaseRemoteConfig-Swift.h | 4 +- .../swift_headers/FirebaseSessions-Swift.h | 4 +- .../swift_headers/FirebaseSharedSwift-Swift.h | 4 +- ios_pod/swift_headers/FirebaseStorage-Swift.h | 170 +- ios_pod/swift_headers/Promises-Swift.h | 4 +- ios_pod/swift_headers/SwiftProtobuf-Swift.h | 4 +- messaging/integration_test/Podfile | 10 +- .../project.pbxproj | 4 +- release_build_files/readme.md | 64 +- remote_config/integration_test/Podfile | 6 +- .../project.pbxproj | 4 +- storage/integration_test/Podfile | 10 +- .../project.pbxproj | 4 +- 54 files changed, 6379 insertions(+), 195 deletions(-) create mode 100644 ios_pod/swift_headers/FirebaseAuth-Swift.h diff --git a/analytics/integration_test/Podfile b/analytics/integration_test/Podfile index cc2b93c7db..cc5bd5c1b4 100644 --- a/analytics/integration_test/Podfile +++ b/analytics/integration_test/Podfile @@ -5,12 +5,12 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Analytics', '10.28.1' + pod 'Firebase/Analytics', '11.0.0' end target 'integration_test_tvos' do - platform :tvos, '12.0' - pod 'Firebase/Analytics', '10.28.1' + platform :tvos, '13.0' + pod 'Firebase/Analytics', '11.0.0' end post_install do |installer| diff --git a/analytics/integration_test/integration_test.xcodeproj/project.pbxproj b/analytics/integration_test/integration_test.xcodeproj/project.pbxproj index bac325982d..c9f051f91c 100644 --- a/analytics/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/analytics/integration_test/integration_test.xcodeproj/project.pbxproj @@ -565,7 +565,7 @@ SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.3; TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 12.0; + TVOS_DEPLOYMENT_TARGET = 13.0; }; name = Debug; }; @@ -616,7 +616,7 @@ SDKROOT = appletvos; SWIFT_VERSION = 5.3; TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 12.0; + TVOS_DEPLOYMENT_TARGET = 13.0; }; name = Release; }; diff --git a/analytics/ios_headers/FIREventNames.h b/analytics/ios_headers/FIREventNames.h index cdab3ebab4..38c09e4c4f 100644 --- a/analytics/ios_headers/FIREventNames.h +++ b/analytics/ios_headers/FIREventNames.h @@ -1,6 +1,6 @@ // Copyright 2024 Google LLC -// Copied from Firebase Analytics iOS SDK 10.28.1. +// Copied from Firebase Analytics iOS SDK 11.0.0. /// @file FIREventNames.h /// diff --git a/analytics/ios_headers/FIRParameterNames.h b/analytics/ios_headers/FIRParameterNames.h index 4f60b2f9dc..8249dc97f3 100644 --- a/analytics/ios_headers/FIRParameterNames.h +++ b/analytics/ios_headers/FIRParameterNames.h @@ -1,6 +1,6 @@ // Copyright 2024 Google LLC -// Copied from Firebase Analytics iOS SDK 10.28.1. +// Copied from Firebase Analytics iOS SDK 11.0.0. /// @file FIRParameterNames.h /// diff --git a/analytics/ios_headers/FIRUserPropertyNames.h b/analytics/ios_headers/FIRUserPropertyNames.h index f7af176e5b..ae5d7595ad 100644 --- a/analytics/ios_headers/FIRUserPropertyNames.h +++ b/analytics/ios_headers/FIRUserPropertyNames.h @@ -1,6 +1,6 @@ // Copyright 2024 Google LLC -// Copied from Firebase Analytics iOS SDK 10.28.1. +// Copied from Firebase Analytics iOS SDK 11.0.0. /// @file FIRUserPropertyNames.h /// diff --git a/app/integration_test/Podfile b/app/integration_test/Podfile index 5be3f21f65..744e0590cd 100644 --- a/app/integration_test/Podfile +++ b/app/integration_test/Podfile @@ -4,7 +4,7 @@ platform :ios, '13.0' use_frameworks! :linkage => :static target 'integration_test' do - pod 'Firebase/Analytics', '10.28.1' + pod 'Firebase/Analytics', '11.0.0' end post_install do |installer| diff --git a/app_check/integration_test/Podfile b/app_check/integration_test/Podfile index d17e04dc72..5e46862ca5 100644 --- a/app_check/integration_test/Podfile +++ b/app_check/integration_test/Podfile @@ -4,20 +4,20 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/AppCheck', '10.28.1' - pod 'Firebase/Database', '10.28.1' - pod 'Firebase/Auth', '10.28.1' - pod 'Firebase/Storage', '10.28.1' - pod 'Firebase/Functions', '10.28.1' + pod 'Firebase/AppCheck', '11.0.0' + pod 'Firebase/Database', '11.0.0' + pod 'Firebase/Auth', '11.0.0' + pod 'Firebase/Storage', '11.0.0' + pod 'Firebase/Functions', '11.0.0' end target 'integration_test_tvos' do - platform :tvos, '12.0' - pod 'Firebase/AppCheck', '10.28.1' - pod 'Firebase/Database', '10.28.1' - pod 'Firebase/Auth', '10.28.1' - pod 'Firebase/Storage', '10.28.1' - pod 'Firebase/Functions', '10.28.1' + platform :tvos, '13.0' + pod 'Firebase/AppCheck', '11.0.0' + pod 'Firebase/Database', '11.0.0' + pod 'Firebase/Auth', '11.0.0' + pod 'Firebase/Storage', '11.0.0' + pod 'Firebase/Functions', '11.0.0' end post_install do |installer| diff --git a/app_check/integration_test/integration_test.xcodeproj/project.pbxproj b/app_check/integration_test/integration_test.xcodeproj/project.pbxproj index 3a1e31ed11..3fd980e78d 100644 --- a/app_check/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/app_check/integration_test/integration_test.xcodeproj/project.pbxproj @@ -514,7 +514,7 @@ SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.3; TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 12.0; + TVOS_DEPLOYMENT_TARGET = 13.0; }; name = Debug; }; @@ -565,7 +565,7 @@ SDKROOT = appletvos; SWIFT_VERSION = 5.3; TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 12.0; + TVOS_DEPLOYMENT_TARGET = 13.0; }; name = Release; }; diff --git a/auth/CMakeLists.txt b/auth/CMakeLists.txt index 5ffbc2ec71..7749c68bc4 100644 --- a/auth/CMakeLists.txt +++ b/auth/CMakeLists.txt @@ -174,6 +174,7 @@ target_include_directories(firebase_auth ${CMAKE_CURRENT_LIST_DIR}/src/include PRIVATE ${FIREBASE_CPP_SDK_ROOT_DIR} + ${FIREBASE_CPP_SDK_ROOT_DIR}/ios_pod/swift_headers ${additional_include_DIR} ) target_compile_definitions(firebase_auth @@ -201,6 +202,7 @@ elseif(IOS) POD_NAMES FirebaseCore FirebaseAuth + FirebaseAuthInterop/FirebaseAuth/Interop ) if (FIREBASE_XCODE_TARGET_FORMAT STREQUAL "frameworks") set_target_properties(firebase_auth PROPERTIES diff --git a/auth/integration_test/Podfile b/auth/integration_test/Podfile index bd89bb51a5..f3d81ceb4a 100644 --- a/auth/integration_test/Podfile +++ b/auth/integration_test/Podfile @@ -4,12 +4,12 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Auth', '10.28.1' + pod 'Firebase/Auth', '11.0.0' end target 'integration_test_tvos' do - platform :tvos, '12.0' - pod 'Firebase/Auth', '10.28.1' + platform :tvos, '13.0' + pod 'Firebase/Auth', '11.0.0' end post_install do |installer| diff --git a/auth/integration_test/integration_test.xcodeproj/project.pbxproj b/auth/integration_test/integration_test.xcodeproj/project.pbxproj index 6d2510ae09..5781ea7d39 100644 --- a/auth/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/auth/integration_test/integration_test.xcodeproj/project.pbxproj @@ -592,7 +592,7 @@ SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.3; TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 12.0; + TVOS_DEPLOYMENT_TARGET = 13.0; }; name = Debug; }; @@ -643,7 +643,7 @@ SDKROOT = appletvos; SWIFT_VERSION = 5.3; TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 12.0; + TVOS_DEPLOYMENT_TARGET = 13.0; }; name = Release; }; diff --git a/auth/src/ios/auth_ios.mm b/auth/src/ios/auth_ios.mm index e98fd6aaa7..a0292ba3b8 100644 --- a/auth/src/ios/auth_ios.mm +++ b/auth/src/ios/auth_ios.mm @@ -14,11 +14,13 @@ * limitations under the License. */ -#import "FIRAdditionalUserInfo.h" -#import "FIRAuthDataResult.h" +#import + #import "FIRAuthErrors.h" -#import "FIROAuthCredential.h" #import "FIROptions.h" +#import "FirebaseAuthInterop/FIRAuthInterop.h" +// This needs to be after the FIRAuthInterop import +#import "FirebaseAuth-Swift.h" #include "app/src/app_ios.h" #include "app/src/assert.h" diff --git a/auth/src/ios/common_ios.h b/auth/src/ios/common_ios.h index 0915f514ab..797c73686e 100644 --- a/auth/src/ios/common_ios.h +++ b/auth/src/ios/common_ios.h @@ -18,13 +18,13 @@ #define FIREBASE_AUTH_SRC_IOS_COMMON_IOS_H_ #import +#import #import "FIRAuth.h" -#import "FIRAuthCredential.h" -#import "FIROAuthProvider.h" #import "FIRUser.h" -#import "FIRUserInfo.h" -#import "FIRUserMetadata.h" +#import "FirebaseAuthInterop/FIRAuthInterop.h" +// This needs to be after the FIRAuthInterop import +#import "FirebaseAuth-Swift.h" #include "app/src/log.h" #include "app/src/util_ios.h" diff --git a/auth/src/ios/credential_ios.mm b/auth/src/ios/credential_ios.mm index c40944228d..a308437a17 100644 --- a/auth/src/ios/credential_ios.mm +++ b/auth/src/ios/credential_ios.mm @@ -19,6 +19,7 @@ #include "auth/src/ios/common_ios.h" #import +#import #import "FIREmailAuthProvider.h" #import "FIRFacebookAuthProvider.h" @@ -26,7 +27,9 @@ #import "FIRGameCenterAuthProvider.h" #import "FIRGitHubAuthProvider.h" #import "FIRGoogleAuthProvider.h" -#import "FIROAuthProvider.h" +#import "FirebaseAuthInterop/FIRAuthInterop.h" +// This needs to be after the FIRAuthInterop import +#import "FirebaseAuth-Swift.h" #if FIREBASE_PLATFORM_IOS // PhoneAuth is not supported on non-iOS Apple platforms (eg: tvOS). @@ -442,6 +445,7 @@ explicit PhoneAuthProviderData(FIRPhoneAuthProvider* objc_provider) assert(auth_data); ReferenceCountedFutureImpl& futures = auth_data->future_impl; const auto handle = futures.SafeAlloc(kAuthFn_SignInWithProvider, AuthResult()); +#if FIREBASE_PLATFORM_IOS FIROAuthProvider* ios_provider = (FIROAuthProvider*)[FIROAuthProvider providerWithProviderID:@(provider_data_.provider_id.c_str()) auth:AuthImpl(auth_data)]; @@ -462,6 +466,12 @@ explicit PhoneAuthProviderData(FIRPhoneAuthProvider* objc_provider) AuthResult()); return future; } + +#else // non-iOS Apple platforms (eg: tvOS) + Future future = MakeFuture(&futures, handle); + futures.Complete(handle, kAuthErrorApiNotAvailable, + "OAuth provider sign-in is not supported on non-iOS Apple platforms."); +#endif // FIREBASE_PLATFORM_IOS } Future FederatedOAuthProvider::Link(AuthData* auth_data) { diff --git a/auth/src/ios/user_ios.mm b/auth/src/ios/user_ios.mm index 66af881947..f05bb23b14 100644 --- a/auth/src/ios/user_ios.mm +++ b/auth/src/ios/user_ios.mm @@ -17,10 +17,6 @@ #include "app/src/time.h" #include "auth/src/ios/common_ios.h" -#if FIREBASE_PLATFORM_IOS -#import "FIRPhoneAuthCredential.h" -#endif - namespace firebase { namespace auth { diff --git a/cmake/external/firestore.cmake b/cmake/external/firestore.cmake index 0d432f8d8e..3223822c8f 100644 --- a/cmake/external/firestore.cmake +++ b/cmake/external/firestore.cmake @@ -20,7 +20,7 @@ endif() # If the format of the line below changes, then be sure to update # https://github.com/firebase/firebase-cpp-sdk/blob/fd054fa016/.github/workflows/update-dependencies.yml#L81 -set(version CocoaPods-10.28.1) +set(version CocoaPods-11.0.0) function(GetReleasedDep) message("Getting released firebase-ios-sdk @ ${version}") diff --git a/cmake/toolchains/apple.toolchain.cmake b/cmake/toolchains/apple.toolchain.cmake index 68d38a8133..1549b7662c 100644 --- a/cmake/toolchains/apple.toolchain.cmake +++ b/cmake/toolchains/apple.toolchain.cmake @@ -257,7 +257,7 @@ if(NOT DEFINED DEPLOYMENT_TARGET) set(DEPLOYMENT_TARGET "13.0") else() # Unless specified, SDK version 11.0 is used by default as minimum target version (iOS, tvOS). - set(DEPLOYMENT_TARGET "11.0") + set(DEPLOYMENT_TARGET "13.0") endif() message(STATUS "[DEFAULTS] Using the default min-version since DEPLOYMENT_TARGET not provided!") elseif(DEFINED DEPLOYMENT_TARGET AND PLATFORM STREQUAL "MAC_CATALYST" AND ${DEPLOYMENT_TARGET} VERSION_LESS "13.0") diff --git a/cmake/toolchains/ios.cmake b/cmake/toolchains/ios.cmake index 7cbe5c4a72..dcdf533d7f 100644 --- a/cmake/toolchains/ios.cmake +++ b/cmake/toolchains/ios.cmake @@ -35,7 +35,7 @@ set(CMAKE_OSX_ARCHITECTURES arm64 CACHE STRING "") set(CMAKE_XCODE_EFFECTIVE_PLATFORMS "-iphoneos") set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "NO") set(CMAKE_XCODE_ATTRIBUTE_ENABLE_BITCODE "YES") -set(CMAKE_OSX_DEPLOYMENT_TARGET "8.0" CACHE STRING "") +set(CMAKE_OSX_DEPLOYMENT_TARGET "13.0" CACHE STRING "") # skip TRY_COMPILE checks set(CMAKE_CXX_COMPILER_WORKS TRUE) diff --git a/cmake/toolchains/ios_simulator.cmake b/cmake/toolchains/ios_simulator.cmake index cc3095b551..1336faef89 100644 --- a/cmake/toolchains/ios_simulator.cmake +++ b/cmake/toolchains/ios_simulator.cmake @@ -17,7 +17,7 @@ set(CMAKE_OSX_ARCHITECTURES x86_64 CACHE STRING "") set(CMAKE_XCODE_EFFECTIVE_PLATFORMS "-iphonesimulator") set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "NO") set(CMAKE_XCODE_ATTRIBUTE_ENABLE_BITCODE "YES") -set(CMAKE_OSX_DEPLOYMENT_TARGET "8.0" CACHE STRING "") +set(CMAKE_OSX_DEPLOYMENT_TARGET "13.0" CACHE STRING "") set(IOS_PLATFORM_LOCATION "iPhoneSimulator.platform") # skip TRY_COMPILE checks diff --git a/database/integration_test/Podfile b/database/integration_test/Podfile index 557e9eaa0c..ca5752145b 100644 --- a/database/integration_test/Podfile +++ b/database/integration_test/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Database', '10.28.1' - pod 'Firebase/Auth', '10.28.1' + pod 'Firebase/Database', '11.0.0' + pod 'Firebase/Auth', '11.0.0' end target 'integration_test_tvos' do - platform :tvos, '12.0' - pod 'Firebase/Database', '10.28.1' - pod 'Firebase/Auth', '10.28.1' + platform :tvos, '13.0' + pod 'Firebase/Database', '11.0.0' + pod 'Firebase/Auth', '11.0.0' end post_install do |installer| diff --git a/database/integration_test/integration_test.xcodeproj/project.pbxproj b/database/integration_test/integration_test.xcodeproj/project.pbxproj index b5d9bfd544..93dafe662f 100644 --- a/database/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/database/integration_test/integration_test.xcodeproj/project.pbxproj @@ -514,7 +514,7 @@ SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.3; TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 12.0; + TVOS_DEPLOYMENT_TARGET = 13.0; }; name = Debug; }; @@ -565,7 +565,7 @@ SDKROOT = appletvos; SWIFT_VERSION = 5.3; TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 12.0; + TVOS_DEPLOYMENT_TARGET = 13.0; }; name = Release; }; diff --git a/dynamic_links/integration_test/Podfile b/dynamic_links/integration_test/Podfile index 237e58d4e6..b28257ec21 100644 --- a/dynamic_links/integration_test/Podfile +++ b/dynamic_links/integration_test/Podfile @@ -5,7 +5,7 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/DynamicLinks', '10.28.1' + pod 'Firebase/DynamicLinks', '11.0.0' end post_install do |installer| diff --git a/firestore/integration_test/Podfile b/firestore/integration_test/Podfile index fa8f9fe252..b791854bcd 100644 --- a/firestore/integration_test/Podfile +++ b/firestore/integration_test/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Firestore', '10.28.1' - pod 'Firebase/Auth', '10.28.1' + pod 'Firebase/Firestore', '11.0.0' + pod 'Firebase/Auth', '11.0.0' end target 'integration_test_tvos' do - platform :tvos, '12.0' - pod 'Firebase/Firestore', '10.28.1' - pod 'Firebase/Auth', '10.28.1' + platform :tvos, '13.0' + pod 'Firebase/Firestore', '11.0.0' + pod 'Firebase/Auth', '11.0.0' end post_install do |installer| diff --git a/firestore/integration_test/integration_test.xcodeproj/project.pbxproj b/firestore/integration_test/integration_test.xcodeproj/project.pbxproj index c2ab69f010..befed2f456 100644 --- a/firestore/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/firestore/integration_test/integration_test.xcodeproj/project.pbxproj @@ -613,7 +613,7 @@ SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.3; TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 12.0; + TVOS_DEPLOYMENT_TARGET = 13.0; }; name = Debug; }; @@ -667,7 +667,7 @@ SDKROOT = appletvos; SWIFT_VERSION = 5.3; TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 12.0; + TVOS_DEPLOYMENT_TARGET = 13.0; }; name = Release; }; diff --git a/firestore/integration_test_internal/Podfile b/firestore/integration_test_internal/Podfile index f43b5d970a..a1450d3cd1 100644 --- a/firestore/integration_test_internal/Podfile +++ b/firestore/integration_test_internal/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Firestore', '10.28.1' - pod 'Firebase/Auth', '10.28.1' + pod 'Firebase/Firestore', '11.0.0' + pod 'Firebase/Auth', '11.0.0' end target 'integration_test_tvos' do - platform :tvos, '12.0' - pod 'Firebase/Firestore', '10.28.1' - pod 'Firebase/Auth', '10.28.1' + platform :tvos, '13.0' + pod 'Firebase/Firestore', '11.0.0' + pod 'Firebase/Auth', '11.0.0' end post_install do |installer| diff --git a/firestore/integration_test_internal/integration_test.xcodeproj/project.pbxproj b/firestore/integration_test_internal/integration_test.xcodeproj/project.pbxproj index c4238c5c7d..b1df9429a5 100644 --- a/firestore/integration_test_internal/integration_test.xcodeproj/project.pbxproj +++ b/firestore/integration_test_internal/integration_test.xcodeproj/project.pbxproj @@ -948,7 +948,7 @@ SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.3; TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 12.0; + TVOS_DEPLOYMENT_TARGET = 13.0; }; name = Debug; }; @@ -1018,7 +1018,7 @@ SDKROOT = appletvos; SWIFT_VERSION = 5.3; TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 12.0; + TVOS_DEPLOYMENT_TARGET = 13.0; }; name = Release; }; diff --git a/firestore/src/main/create_app_check_credentials_provider_ios.mm b/firestore/src/main/create_app_check_credentials_provider_ios.mm index 13549a14ac..dfc6d8d6fe 100644 --- a/firestore/src/main/create_app_check_credentials_provider_ios.mm +++ b/firestore/src/main/create_app_check_credentials_provider_ios.mm @@ -17,10 +17,10 @@ #include "firestore/src/main/create_credentials_provider.h" #import "FIRAppInternal.h" -#import "FIRAuthInterop.h" #import "FIRComponent.h" #import "FIRComponentContainer.h" #import "FIRComponentType.h" +#import "FirebaseAuthInterop/FIRAuthInterop.h" #import "FirebaseCore.h" #include "Firestore/core/src/credentials/firebase_app_check_credentials_provider_apple.h" diff --git a/firestore/src/main/create_credentials_provider_ios.mm b/firestore/src/main/create_credentials_provider_ios.mm index abbf74c5b2..a6999a3b69 100644 --- a/firestore/src/main/create_credentials_provider_ios.mm +++ b/firestore/src/main/create_credentials_provider_ios.mm @@ -19,10 +19,10 @@ #include #import "FIRAppInternal.h" -#import "FIRAuthInterop.h" #import "FIRComponent.h" #import "FIRComponentContainer.h" #import "FIRComponentType.h" +#import "FirebaseAuthInterop/FIRAuthInterop.h" #import "FirebaseCore.h" #include "Firestore/core/src/credentials/firebase_auth_credentials_provider_apple.h" diff --git a/functions/integration_test/Podfile b/functions/integration_test/Podfile index 9fa495b0d3..31e68d92bf 100644 --- a/functions/integration_test/Podfile +++ b/functions/integration_test/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Functions', '10.28.1' - pod 'Firebase/Auth', '10.28.1' + pod 'Firebase/Functions', '11.0.0' + pod 'Firebase/Auth', '11.0.0' end target 'integration_test_tvos' do - platform :tvos, '12.0' - pod 'Firebase/Functions', '10.28.1' - pod 'Firebase/Auth', '10.28.1' + platform :tvos, '13.0' + pod 'Firebase/Functions', '11.0.0' + pod 'Firebase/Auth', '11.0.0' end post_install do |installer| diff --git a/functions/integration_test/integration_test.xcodeproj/project.pbxproj b/functions/integration_test/integration_test.xcodeproj/project.pbxproj index b88ff637fc..f41dfd0e5a 100644 --- a/functions/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/functions/integration_test/integration_test.xcodeproj/project.pbxproj @@ -599,7 +599,7 @@ SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.3; TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 12.0; + TVOS_DEPLOYMENT_TARGET = 13.0; }; name = Debug; }; @@ -654,7 +654,7 @@ SDKROOT = appletvos; SWIFT_VERSION = 5.3; TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 12.0; + TVOS_DEPLOYMENT_TARGET = 13.0; }; name = Release; }; diff --git a/gma/integration_test/Podfile b/gma/integration_test/Podfile index 3f35ccaa75..9d1b9753fc 100644 --- a/gma/integration_test/Podfile +++ b/gma/integration_test/Podfile @@ -5,7 +5,7 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/CoreOnly', '10.28.1' + pod 'Firebase/CoreOnly', '11.0.0' pod 'Google-Mobile-Ads-SDK', '11.2.0' pod 'GoogleUserMessagingPlatform', '2.3.0' end diff --git a/installations/integration_test/Podfile b/installations/integration_test/Podfile index 4b7eda38f0..98a738136b 100644 --- a/installations/integration_test/Podfile +++ b/installations/integration_test/Podfile @@ -5,8 +5,8 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Analytics', '10.28.1' - pod 'Firebase/Installations', '10.28.1' + pod 'Firebase/Analytics', '11.0.0' + pod 'Firebase/Installations', '11.0.0' end post_install do |installer| diff --git a/ios_pod/Podfile b/ios_pod/Podfile index 12540faf0a..ffa3e49260 100644 --- a/ios_pod/Podfile +++ b/ios_pod/Podfile @@ -3,22 +3,22 @@ platform :ios, '13.0' use_frameworks! target 'GetPods' do - pod 'Firebase/Core', '10.28.1' + pod 'Firebase/Core', '11.0.0' pod 'Google-Mobile-Ads-SDK', '11.2.0' pod 'GoogleUserMessagingPlatform', '2.3.0' - pod 'Firebase/Analytics', '10.28.1' - pod 'Firebase/AppCheck', '10.28.1' - pod 'Firebase/Auth', '10.28.1' - pod 'Firebase/Crashlytics', '10.28.1' - pod 'Firebase/Database', '10.28.1' - pod 'Firebase/DynamicLinks', '10.28.1' - pod 'Firebase/Firestore', '10.28.1' - pod 'Firebase/Functions', '10.28.1' - pod 'Firebase/Installations', '10.28.1' - pod 'Firebase/Messaging', '10.28.1' - pod 'Firebase/RemoteConfig', '10.28.1' - pod 'Firebase/Storage', '10.28.1' + pod 'Firebase/Analytics', '11.0.0' + pod 'Firebase/AppCheck', '11.0.0' + pod 'Firebase/Auth', '11.0.0' + pod 'Firebase/Crashlytics', '11.0.0' + pod 'Firebase/Database', '11.0.0' + pod 'Firebase/DynamicLinks', '11.0.0' + pod 'Firebase/Firestore', '11.0.0' + pod 'Firebase/Functions', '11.0.0' + pod 'Firebase/Installations', '11.0.0' + pod 'Firebase/Messaging', '11.0.0' + pod 'Firebase/RemoteConfig', '11.0.0' + pod 'Firebase/Storage', '11.0.0' end diff --git a/ios_pod/swift_headers/FirebaseAnalytics-Swift.h b/ios_pod/swift_headers/FirebaseAnalytics-Swift.h index e8874893c0..cb79f4bb10 100644 --- a/ios_pod/swift_headers/FirebaseAnalytics-Swift.h +++ b/ios_pod/swift_headers/FirebaseAnalytics-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 10.25.0. +// Copied from Firebase iOS SDK 11.0.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -338,7 +338,7 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 10.25.0. +// Copied from Firebase iOS SDK 11.0.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) diff --git a/ios_pod/swift_headers/FirebaseAuth-Swift.h b/ios_pod/swift_headers/FirebaseAuth-Swift.h new file mode 100644 index 0000000000..4e06d458dc --- /dev/null +++ b/ios_pod/swift_headers/FirebaseAuth-Swift.h @@ -0,0 +1,6060 @@ +#if 0 +#elif defined(__arm64__) && __arm64__ +// Copyright 2024 Google LLC +// Copied from Firebase iOS SDK 11.0.0. + +// Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 +// clang-1500.1.0.2.5) +#ifndef FIREBASEAUTH_SWIFT_H +#define FIREBASEAUTH_SWIFT_H +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wgcc-compat" + +#if !defined(__has_include) +#define __has_include(x) 0 +#endif +#if !defined(__has_attribute) +#define __has_attribute(x) 0 +#endif +#if !defined(__has_feature) +#define __has_feature(x) 0 +#endif +#if !defined(__has_warning) +#define __has_warning(x) 0 +#endif + +#if __has_include() +#include +#endif + +#pragma clang diagnostic ignored "-Wauto-import" +#if defined(__OBJC__) +#include +#endif +#if defined(__cplusplus) +#include + +#include +#include +#include +#include +#include +#include +#else +#include +#include +#include +#include +#endif +#if defined(__cplusplus) +#if defined(__arm64e__) && __has_include() +#include +#else +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wreserved-macro-identifier" +#ifndef __ptrauth_swift_value_witness_function_pointer +#define __ptrauth_swift_value_witness_function_pointer(x) +#endif +#ifndef __ptrauth_swift_class_method_pointer +#define __ptrauth_swift_class_method_pointer(x) +#endif +#pragma clang diagnostic pop +#endif +#endif + +#if !defined(SWIFT_TYPEDEFS) +#define SWIFT_TYPEDEFS 1 +#if __has_include() +#include +#elif !defined(__cplusplus) +typedef uint_least16_t char16_t; +typedef uint_least32_t char32_t; +#endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +#endif + +#if !defined(SWIFT_PASTE) +#define SWIFT_PASTE_HELPER(x, y) x##y +#define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +#endif +#if !defined(SWIFT_METATYPE) +#define SWIFT_METATYPE(X) Class +#endif +#if !defined(SWIFT_CLASS_PROPERTY) +#if __has_feature(objc_class_property) +#define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +#else +#define SWIFT_CLASS_PROPERTY(...) +#endif +#endif +#if !defined(SWIFT_RUNTIME_NAME) +#if __has_attribute(objc_runtime_name) +#define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +#else +#define SWIFT_RUNTIME_NAME(X) +#endif +#endif +#if !defined(SWIFT_COMPILE_NAME) +#if __has_attribute(swift_name) +#define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +#else +#define SWIFT_COMPILE_NAME(X) +#endif +#endif +#if !defined(SWIFT_METHOD_FAMILY) +#if __has_attribute(objc_method_family) +#define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +#else +#define SWIFT_METHOD_FAMILY(X) +#endif +#endif +#if !defined(SWIFT_NOESCAPE) +#if __has_attribute(noescape) +#define SWIFT_NOESCAPE __attribute__((noescape)) +#else +#define SWIFT_NOESCAPE +#endif +#endif +#if !defined(SWIFT_RELEASES_ARGUMENT) +#if __has_attribute(ns_consumed) +#define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) +#else +#define SWIFT_RELEASES_ARGUMENT +#endif +#endif +#if !defined(SWIFT_WARN_UNUSED_RESULT) +#if __has_attribute(warn_unused_result) +#define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +#else +#define SWIFT_WARN_UNUSED_RESULT +#endif +#endif +#if !defined(SWIFT_NORETURN) +#if __has_attribute(noreturn) +#define SWIFT_NORETURN __attribute__((noreturn)) +#else +#define SWIFT_NORETURN +#endif +#endif +#if !defined(SWIFT_CLASS_EXTRA) +#define SWIFT_CLASS_EXTRA +#endif +#if !defined(SWIFT_PROTOCOL_EXTRA) +#define SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_ENUM_EXTRA) +#define SWIFT_ENUM_EXTRA +#endif +#if !defined(SWIFT_CLASS) +#if __has_attribute(objc_subclassing_restricted) +#define SWIFT_CLASS(SWIFT_NAME) \ + SWIFT_RUNTIME_NAME(SWIFT_NAME) \ + __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +#define SWIFT_CLASS_NAMED(SWIFT_NAME) \ + __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) \ + SWIFT_CLASS_EXTRA +#else +#define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +#define SWIFT_CLASS_NAMED(SWIFT_NAME) \ + SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +#endif +#endif +#if !defined(SWIFT_RESILIENT_CLASS) +#if __has_attribute(objc_class_stub) +#define SWIFT_RESILIENT_CLASS(SWIFT_NAME) \ + SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) +#define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) \ + __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) +#else +#define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) +#define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) +#endif +#endif +#if !defined(SWIFT_PROTOCOL) +#define SWIFT_PROTOCOL(SWIFT_NAME) \ + SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +#define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) \ + SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_EXTENSION) +#define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +#endif +#if !defined(OBJC_DESIGNATED_INITIALIZER) +#if __has_attribute(objc_designated_initializer) +#define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +#else +#define OBJC_DESIGNATED_INITIALIZER +#endif +#endif +#if !defined(SWIFT_ENUM_ATTR) +#if __has_attribute(enum_extensibility) +#define SWIFT_ENUM_ATTR(_extensibility) \ + __attribute__((enum_extensibility(_extensibility))) +#else +#define SWIFT_ENUM_ATTR(_extensibility) +#endif +#endif +#if !defined(SWIFT_ENUM) +#define SWIFT_ENUM(_type, _name, _extensibility) \ + enum _name : _type _name; \ + enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +#if __has_feature(generalized_swift_name) +#define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) \ + enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); \ + enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) \ + SWIFT_ENUM_EXTRA _name : _type +#else +#define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) \ + SWIFT_ENUM(_type, _name, _extensibility) +#endif +#endif +#if !defined(SWIFT_UNAVAILABLE) +#define SWIFT_UNAVAILABLE __attribute__((unavailable)) +#endif +#if !defined(SWIFT_UNAVAILABLE_MSG) +#define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) +#endif +#if !defined(SWIFT_AVAILABILITY) +#define SWIFT_AVAILABILITY(plat, ...) \ + __attribute__((availability(plat, __VA_ARGS__))) +#endif +#if !defined(SWIFT_WEAK_IMPORT) +#define SWIFT_WEAK_IMPORT __attribute__((weak_import)) +#endif +#if !defined(SWIFT_DEPRECATED) +#define SWIFT_DEPRECATED __attribute__((deprecated)) +#endif +#if !defined(SWIFT_DEPRECATED_MSG) +#define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) +#endif +#if !defined(SWIFT_DEPRECATED_OBJC) +#if __has_feature(attribute_diagnose_if_objc) +#define SWIFT_DEPRECATED_OBJC(Msg) \ + __attribute__((diagnose_if(1, Msg, "warning"))) +#else +#define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) +#endif +#endif +#if defined(__OBJC__) +#if !defined(IBSegueAction) +#define IBSegueAction +#endif +#endif +#if !defined(SWIFT_EXTERN) +#if defined(__cplusplus) +#define SWIFT_EXTERN extern "C" +#else +#define SWIFT_EXTERN extern +#endif +#endif +#if !defined(SWIFT_CALL) +#define SWIFT_CALL __attribute__((swiftcall)) +#endif +#if !defined(SWIFT_INDIRECT_RESULT) +#define SWIFT_INDIRECT_RESULT __attribute__((swift_indirect_result)) +#endif +#if !defined(SWIFT_CONTEXT) +#define SWIFT_CONTEXT __attribute__((swift_context)) +#endif +#if !defined(SWIFT_ERROR_RESULT) +#define SWIFT_ERROR_RESULT __attribute__((swift_error_result)) +#endif +#if defined(__cplusplus) +#define SWIFT_NOEXCEPT noexcept +#else +#define SWIFT_NOEXCEPT +#endif +#if !defined(SWIFT_C_INLINE_THUNK) +#if __has_attribute(always_inline) +#if __has_attribute(nodebug) +#define SWIFT_C_INLINE_THUNK \ + inline __attribute__((always_inline)) __attribute__((nodebug)) +#else +#define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline)) +#endif +#else +#define SWIFT_C_INLINE_THUNK inline +#endif +#endif +#if defined(_WIN32) +#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL) +#define SWIFT_IMPORT_STDLIB_SYMBOL __declspec(dllimport) +#endif +#else +#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL) +#define SWIFT_IMPORT_STDLIB_SYMBOL +#endif +#endif +#if defined(__OBJC__) +#if __has_feature(objc_modules) +#if __has_warning("-Watimport-in-framework-header") +#pragma clang diagnostic ignored "-Watimport-in-framework-header" +#endif +@import FirebaseAuthInterop; +@import Foundation; +@import ObjectiveC; +@import UIKit; +#endif + +#endif +#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" +#pragma clang diagnostic ignored "-Wduplicate-method-arg" +#if __has_warning("-Wpragma-clang-attribute") +#pragma clang diagnostic ignored "-Wpragma-clang-attribute" +#endif +#pragma clang diagnostic ignored "-Wunknown-pragmas" +#pragma clang diagnostic ignored "-Wnullability" +#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension" + +#if __has_attribute(external_source_symbol) +#pragma push_macro("any") +#undef any +#pragma clang attribute push( \ + __attribute__((external_source_symbol(language = "Swift", \ + defined_in = "FirebaseAuth", \ + generated_declaration))), \ + apply_to = \ + any(function, enum, objc_interface, objc_category, objc_protocol)) +#pragma pop_macro("any") +#endif + +#if defined(__OBJC__) +enum FIRActionCodeOperation : NSInteger; +@class NSString; + +/// Manages information regarding action codes. +SWIFT_CLASS_NAMED("ActionCodeInfo") +@interface FIRActionCodeInfo : NSObject +/// The operation being performed. +@property(nonatomic, readonly) enum FIRActionCodeOperation operation; +/// The email address to which the code was sent. The new email address in the +/// case of ActionCodeOperation.recoverEmail. +@property(nonatomic, readonly, copy) NSString *_Nonnull email; +/// The email that is being recovered in the case of +/// ActionCodeOperation.recoverEmail. +@property(nonatomic, readonly, copy) NSString *_Nullable previousEmail; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +/// Operations which can be performed with action codes. +typedef SWIFT_ENUM_NAMED(NSInteger, FIRActionCodeOperation, + "ActionCodeOperation", open){ + /// Action code for unknown operation. + FIRActionCodeOperationUnknown = 0, + /// Action code for password reset operation. + FIRActionCodeOperationPasswordReset = 1, + /// Action code for verify email operation. + FIRActionCodeOperationVerifyEmail = 2, + /// Action code for recover email operation. + FIRActionCodeOperationRecoverEmail = 3, + /// Action code for email link operation. + FIRActionCodeOperationEmailLink = 4, + /// Action code for verifying and changing email. + FIRActionCodeOperationVerifyAndChangeEmail = 5, + /// Action code for reverting second factor addition. + FIRActionCodeOperationRevertSecondFactorAddition = 6, +}; + +@class NSURL; + +/// Used to set and retrieve settings related to handling action codes. +SWIFT_CLASS_NAMED("ActionCodeSettings") +@interface FIRActionCodeSettings : NSObject +/// This URL represents the state/Continue URL in the form of a universal link. +/// This URL can should be constructed as a universal link that would either +/// directly open the app where the action code would be handled or continue to +/// the app after the action code is handled by Firebase. +@property(nonatomic, copy) NSURL *_Nullable URL; +/// Indicates whether the action code link will open the app directly or after +/// being redirected from a Firebase owned web widget. +@property(nonatomic) BOOL handleCodeInApp; +/// The iOS bundle ID, if available. The default value is the current app’s +/// bundle ID. +@property(nonatomic, copy) NSString *_Nullable iOSBundleID; +/// The Android package name, if available. +@property(nonatomic, copy) NSString *_Nullable androidPackageName; +/// The minimum Android version supported, if available. +@property(nonatomic, copy) NSString *_Nullable androidMinimumVersion; +/// Indicates whether the Android app should be installed on a device where it +/// is not available. +@property(nonatomic) BOOL androidInstallIfNotAvailable; +/// The Firebase Dynamic Link domain used for out of band code flow. +@property(nonatomic, copy) NSString *_Nullable dynamicLinkDomain; +/// Sets the iOS bundle ID. +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; +/// Sets the Android package name, the flag to indicate whether or not to +/// install the app, and the minimum Android version supported. If +/// installIfNotAvailable is set to true and the link +/// is opened on an android device, it will try to install the app if not +/// already available. Otherwise the web URL is used. \param androidPackageName +/// The Android package name. +/// +/// \param installIfNotAvailable Indicates whether or not the app should be +/// installed if not available. +/// +/// \param minimumVersion The minimum version of Android supported. +/// +- (void)setAndroidPackageName:(NSString *_Nonnull)androidPackageName + installIfNotAvailable:(BOOL)installIfNotAvailable + minimumVersion:(NSString *_Nullable)minimumVersion; +@end + +/// This class will allow developers to easily extract information about out of +/// band links. +SWIFT_CLASS_NAMED("ActionCodeURL") +@interface FIRActionCodeURL : NSObject +/// Returns the API key from the link. nil, if not provided. +@property(nonatomic, readonly, copy) NSString *_Nullable APIKey; +/// Returns the mode of oob action. +/// The property will be of ActionCodeOperation type. +/// It will return .unknown if no oob action is provided. +@property(nonatomic, readonly) enum FIRActionCodeOperation operation; +/// Returns the email action code from the link. nil, if not provided. +@property(nonatomic, readonly, copy) NSString *_Nullable code; +/// Returns the continue URL from the link. nil, if not provided. +@property(nonatomic, readonly, copy) NSURL *_Nullable continueURL; +/// Returns the language code from the link. nil, if not provided. +@property(nonatomic, readonly, copy) NSString *_Nullable languageCode; +/// Construct an ActionCodeURL from an out of band link (e.g. email +/// link). \param link The oob link string used to construct the action code +/// URL. +/// +/// +/// returns: +/// The ActionCodeURL object constructed based on the oob link provided. +- (nullable instancetype)actionCodeURLWithLink:(NSString *_Nonnull)link + OBJC_DESIGNATED_INITIALIZER SWIFT_METHOD_FAMILY(init); +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +@class NSCoder; + +SWIFT_CLASS_NAMED("AdditionalUserInfo") +@interface FIRAdditionalUserInfo : NSObject +/// The provider identifier. +@property(nonatomic, readonly, copy) NSString *_Nonnull providerID; +/// Dictionary containing the additional IdP specific information. +@property(nonatomic, readonly, copy) + NSDictionary *_Nullable profile; +/// The name of the user. +@property(nonatomic, readonly, copy) NSString *_Nullable username; +/// Indicates whether or not the current user was signed in for the first time. +@property(nonatomic, readonly) BOOL isNewUser; +/// Indicates whether or not the current user was signed in for the first time. +- (BOOL)newUser SWIFT_WARN_UNUSED_RESULT; +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly) + BOOL supportsSecureCoding;) ++ (BOOL)supportsSecureCoding SWIFT_WARN_UNUSED_RESULT; +- (nullable instancetype)initWithCoder:(NSCoder *_Nonnull)aDecoder + OBJC_DESIGNATED_INITIALIZER; +- (void)encodeWithCoder:(NSCoder *_Nonnull)aCoder; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +@interface FIRAdditionalUserInfo (SWIFT_EXTENSION (FirebaseAuth)) < + NSSecureCoding> +@end + +@class FIRApp; +@class FIRUser; +@class FIRAuthSettings; +@class FIRAuthDataResult; +@protocol FIRFederatedAuthProvider; +@protocol FIRAuthUIDelegate; +@class FIRAuthCredential; +@protocol NSObject; +@class NSError; +@class NSData; +enum FIRAuthAPNSTokenType : NSInteger; + +/// Manages authentication for Firebase apps. +/// This class is thread-safe. +SWIFT_CLASS_NAMED("Auth") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) @interface FIRAuth + : NSObject +/// Gets the auth object for the default Firebase app. +/// The default Firebase app must have already been configured or an exception +/// will be raised. ++ (FIRAuth *_Nonnull)auth SWIFT_WARN_UNUSED_RESULT; +/// Gets the auth object for a FirebaseApp. +/// \param app The app for which to retrieve the associated Auth +/// instance. +/// +/// +/// returns: +/// The Auth instance associated with the given app. ++ (FIRAuth *_Nonnull)authWithApp:(FIRApp *_Nonnull)app SWIFT_WARN_UNUSED_RESULT; +/// Gets the FirebaseApp object that this auth object is connected +/// to. +@property(nonatomic, readonly, weak) FIRApp *_Nullable app; +/// Synchronously gets the cached current user, or null if there is none. +@property(nonatomic, readonly, strong) FIRUser *_Nullable currentUser; +/// The current user language code. +/// This property can be set to the app’s current language by +/// calling useAppLanguage(). +/// The string used to set this property must be a language code that follows +/// BCP 47. +@property(nonatomic, copy) NSString *_Nullable languageCode; +/// Contains settings related to the auth object. +@property(nonatomic, strong) FIRAuthSettings *_Nullable settings; +/// The current user access group that the Auth instance is using. +/// Default is nil. +@property(nonatomic, readonly, copy) NSString *_Nullable userAccessGroup; +/// Contains shareAuthStateAcrossDevices setting related to the auth object. +/// If userAccessGroup is not set, setting shareAuthStateAcrossDevices will +/// have no effect. You should set shareAuthStateAcrossDevices to its desired +/// state and then set the userAccessGroup after. +@property(nonatomic) BOOL shareAuthStateAcrossDevices; +/// The tenant ID of the auth instance. nil if none is available. +@property(nonatomic, copy) NSString *_Nullable tenantID; +/// The custom authentication domain used to handle all sign-in redirects. +/// End-users will see +/// this domain when signing in. This domain must be allowlisted in the Firebase +/// Console. +@property(nonatomic, copy) NSString *_Nullable customAuthDomain; +/// Sets the currentUser on the receiver to the provided user +/// object. \param user The user object to be set as the current user of the +/// calling Auth instance. +/// +/// \param completion Optionally; a block invoked after the user of the calling +/// Auth instance has been updated or an error was encountered. +/// +- (void)updateCurrentUser:(FIRUser *_Nullable)user + completion:(void (^_Nullable)(NSError *_Nullable))completion; +/// [Deprecated] Fetches the list of all sign-in methods previously used for the +/// provided email address. This method returns an empty list when Email +/// Enumeration Protection is enabled, irrespective of the number of +/// authentication methods available for the given email. Possible error codes: +/// AuthErrorCodeInvalidEmail - Indicates the email address is +/// malformed. \param email The email address for which to obtain a list of +/// sign-in methods. +/// +/// \param completion Optionally; a block which is invoked when the list of sign +/// in methods for the specified email address is ready or an error was +/// encountered. Invoked asynchronously on the main thread in the future. +/// +- (void)fetchSignInMethodsForEmail:(NSString *_Nonnull)email + completion: + (void (^_Nullable)(NSArray *_Nullable, + NSError *_Nullable))completion + SWIFT_DEPRECATED_MSG( + "`fetchSignInMethods` is deprecated and will be removed in a future " + "release. This method returns an empty list when Email Enumeration " + "Protection is enabled."); +/// Signs in using an email address and password. +/// When Email +/// Enumeration Protection is enabled, this method fails with an error in +/// case of an invalid email/password. Possible error codes:

    +///
  • +/// AuthErrorCodeOperationNotAllowed - Indicates that email and +/// password accounts are not enabled. Enable them in the Auth section of +/// the Firebase console. +///
  • +///
  • +/// AuthErrorCodeUserDisabled - Indicates the user’s account is +/// disabled. +///
  • +///
  • +/// AuthErrorCodeWrongPassword - Indicates the user attempted +/// sign in with an incorrect password. +///
  • +///
  • +/// AuthErrorCodeInvalidEmail - Indicates the email address is +/// malformed. +///
  • +///
+/// \param email The user’s email address. +/// +/// \param password The user’s password. +/// +/// \param completion Optionally; a block which is invoked when the sign in flow +/// finishes, or is canceled. Invoked asynchronously on the main thread in the +/// future. +/// +- (void)signInWithEmail:(NSString *_Nonnull)email + password:(NSString *_Nonnull)password + completion:(void (^_Nullable)(FIRAuthDataResult *_Nullable, + NSError *_Nullable))completion; +/// Signs in using an email address and email sign-in link. +/// Possible error codes: +///
    +///
  • +/// AuthErrorCodeOperationNotAllowed - Indicates that email and +/// password accounts are not enabled. Enable them in the Auth section of +/// the Firebase console. +///
  • +///
  • +/// AuthErrorCodeUserDisabled - Indicates the user’s account is +/// disabled. +///
  • +///
  • +/// AuthErrorCodeWrongPassword - Indicates the user attempted +/// sign in with an incorrect password. +///
  • +///
  • +/// AuthErrorCodeInvalidEmail - Indicates the email address is +/// malformed. +///
  • +///
+/// \param email The user’s email address. +/// +/// \param link The email sign-in link. +/// +/// \param completion Optionally; a block which is invoked when the sign in flow +/// finishes, or is canceled. Invoked asynchronously on the main thread in the +/// future. +/// +- (void)signInWithEmail:(NSString *_Nonnull)email + link:(NSString *_Nonnull)link + completion:(void (^_Nullable)(FIRAuthDataResult *_Nullable, + NSError *_Nullable))completion; +/// Signs in using the provided auth provider instance. +/// Possible error codes: +///
    +///
  • +/// AuthErrorCodeOperationNotAllowed - Indicates that email and +/// password accounts are not enabled. Enable them in the Auth section of +/// the Firebase console. +///
  • +///
  • +/// AuthErrorCodeUserDisabled - Indicates the user’s account is +/// disabled. +///
  • +///
  • +/// AuthErrorCodeWrongPassword - Indicates the user attempted +/// sign in with an incorrect password. +///
  • +///
  • +/// AuthErrorCodeWebNetworkRequestFailed - Indicates that a +/// network request within a SFSafariViewController or WKWebView failed. +///
  • +///
  • +/// AuthErrorCodeWebInternalError - Indicates that an internal +/// error occurred within a SFSafariViewController or WKWebView. +///
  • +///
  • +/// AuthErrorCodeWebSignInUserInteractionFailure - Indicates a +/// general failure during a web sign-in flow. +///
  • +///
  • +/// AuthErrorCodeWebContextAlreadyPresented - Indicates that an +/// attempt was made to present a new web context while one was already +/// being presented. +///
  • +///
  • +/// AuthErrorCodeWebContextCancelled - Indicates that the URL +/// presentation was cancelled prematurely by the user. +///
  • +///
  • +/// AuthErrorCodeAccountExistsWithDifferentCredential - +/// Indicates the email asserted by the credential (e.g. the email in a +/// Facebook access token) is already in use by an existing account, that +/// cannot be authenticated with this sign-in method. Call +/// fetchProvidersForEmail for this user’s email and then prompt them to +/// sign in with any of the sign-in providers returned. This error will only +/// be thrown if the “One account per email address” setting is enabled in +/// the Firebase console, under Auth settings. +///
  • +///
+/// \param provider An instance of an auth provider used to initiate the sign-in +/// flow. +/// +/// \param uiDelegate Optionally an instance of a class conforming to the +/// AuthUIDelegate protocol, this is used for presenting the web context. If +/// nil, a default AuthUIDelegate will be used. +/// +/// \param completion Optionally; a block which is invoked when the sign in flow +/// finishes, or is canceled. Invoked asynchronously on the main thread in the +/// future. +/// +- (void)signInWithProvider:(id _Nonnull)provider + UIDelegate:(id _Nullable)uiDelegate + completion:(void (^_Nullable)(FIRAuthDataResult *_Nullable, + NSError *_Nullable))completion + SWIFT_AVAILABILITY(watchos, unavailable) + SWIFT_AVAILABILITY(macos, unavailable) + SWIFT_AVAILABILITY(tvos, unavailable); +/// Asynchronously signs in to Firebase with the given 3rd-party credentials +/// (e.g. a Facebook login Access Token, a Google ID Token/Access Token pair, +/// etc.) and returns additional identity provider data. Possible error codes: +///
    +///
  • +/// AuthErrorCodeInvalidCredential - Indicates the supplied +/// credential is invalid. This could happen if it has expired or it is +/// malformed. +///
  • +///
  • +/// AuthErrorCodeOperationNotAllowed - Indicates that accounts +/// with the identity provider represented by the credential are not +/// enabled. Enable them in the Auth section of the Firebase console. +///
  • +///
  • +/// AuthErrorCodeAccountExistsWithDifferentCredential - +/// Indicates the email asserted by the credential (e.g. the email in a +/// Facebook access token) is already in use by an existing account, that +/// cannot be authenticated with this sign-in method. Call +/// fetchProvidersForEmail for this user’s email and then prompt them to +/// sign in with any of the sign-in providers returned. This error will only +/// be thrown if the “One account per email address” setting is enabled in +/// the Firebase console, under Auth settings. +///
  • +///
  • +/// AuthErrorCodeUserDisabled - Indicates the user’s account is +/// disabled. +///
  • +///
  • +/// AuthErrorCodeWrongPassword - Indicates the user attempted +/// sign in with an incorrect password, if credential is of the type +/// EmailPasswordAuthCredential. +///
  • +///
  • +/// AuthErrorCodeInvalidEmail - Indicates the email address is +/// malformed. +///
  • +///
  • +/// AuthErrorCodeMissingVerificationID - Indicates that the +/// phone auth credential was created with an empty verification ID. +///
  • +///
  • +/// AuthErrorCodeMissingVerificationCode - Indicates that the +/// phone auth credential was created with an empty verification code. +///
  • +///
  • +/// AuthErrorCodeInvalidVerificationCode - Indicates that the +/// phone auth credential was created with an invalid verification Code. +///
  • +///
  • +/// AuthErrorCodeInvalidVerificationID - Indicates that the +/// phone auth credential was created with an invalid verification ID. +///
  • +///
  • +/// AuthErrorCodeSessionExpired - Indicates that the SMS code +/// has expired. +///
  • +///
+/// \param credential The credential supplied by the IdP. +/// +/// \param completion Optionally; a block which is invoked when the sign in flow +/// finishes, or is canceled. Invoked asynchronously on the main thread in the +/// future. +/// +- (void)signInWithCredential:(FIRAuthCredential *_Nonnull)credential + completion:(void (^_Nullable)(FIRAuthDataResult *_Nullable, + NSError *_Nullable))completion; +/// Asynchronously creates and becomes an anonymous user. +/// If there is already an anonymous user signed in, that user will be returned +/// instead. If there is any other existing user signed in, that user will be +/// signed out. Possible error codes:
    +///
  • +/// AuthErrorCodeOperationNotAllowed - Indicates that anonymous +/// accounts are not enabled. Enable them in the Auth section of the +/// Firebase console. +///
  • +///
+/// \param completion Optionally; a block which is invoked when the sign in +/// finishes, or is canceled. Invoked asynchronously on the main thread in the +/// future. +/// +- (void)signInAnonymouslyWithCompletion: + (void (^_Nullable)(FIRAuthDataResult *_Nullable, + NSError *_Nullable))completion; +/// Asynchronously creates and becomes an anonymous user. +/// If there is already an anonymous user signed in, that user will be returned +/// instead. If there is any other existing user signed in, that user will be +/// signed out. Possible error codes:
    +///
  • +/// AuthErrorCodeOperationNotAllowed - Indicates that anonymous +/// accounts are not enabled. Enable them in the Auth section of the +/// Firebase console. +///
  • +///
+/// +/// returns: +/// The AuthDataResult after the successful signin. +- (void)signInAnonymouslyWithCompletionHandler: + (void (^_Nonnull)(FIRAuthDataResult *_Nullable, + NSError *_Nullable))completionHandler + SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13); +/// Asynchronously signs in to Firebase with the given Auth token. +/// Possible error codes: +///
    +///
  • +/// AuthErrorCodeInvalidCustomToken - Indicates a validation +/// error with the custom token. +///
  • +///
  • +/// AuthErrorCodeCustomTokenMismatch - Indicates the service +/// account and the API key belong to different projects. +///
  • +///
+/// \param token A self-signed custom auth token. +/// +/// \param completion Optionally; a block which is invoked when the sign in +/// finishes, or is canceled. Invoked asynchronously on the main thread in the +/// future. +/// +- (void)signInWithCustomToken:(NSString *_Nonnull)token + completion:(void (^_Nullable)(FIRAuthDataResult *_Nullable, + NSError *_Nullable))completion; +/// Creates and, on success, signs in a user with the given email address and +/// password. Possible error codes:
    +///
  • +/// AuthErrorCodeInvalidEmail - Indicates the email address is +/// malformed. +///
  • +///
  • +/// AuthErrorCodeEmailAlreadyInUse - Indicates the email used +/// to attempt sign up already exists. Call fetchProvidersForEmail to check +/// which sign-in mechanisms the user used, and prompt the user to sign in +/// with one of those. +///
  • +///
  • +/// AuthErrorCodeOperationNotAllowed - Indicates that email and +/// password accounts are not enabled. Enable them in the Auth section of +/// the Firebase console. +///
  • +///
  • +/// AuthErrorCodeWeakPassword - Indicates an attempt to set a +/// password that is considered too weak. The +/// NSLocalizedFailureReasonErrorKey field in the NSError.userInfo +/// dictionary object will contain more detailed explanation that can be +/// shown to the user. +///
  • +///
+/// \param email The user’s email address. +/// +/// \param password The user’s desired password. +/// +/// \param completion Optionally; a block which is invoked when the sign up flow +/// finishes, or is canceled. Invoked asynchronously on the main thread in the +/// future. +/// +- (void)createUserWithEmail:(NSString *_Nonnull)email + password:(NSString *_Nonnull)password + completion:(void (^_Nullable)(FIRAuthDataResult *_Nullable, + NSError *_Nullable))completion; +/// Resets the password given a code sent to the user outside of the app and a +/// new password for the user. Possible error codes:
    +///
  • +/// AuthErrorCodeWeakPassword - Indicates an attempt to set a +/// password that is considered too weak. +///
  • +///
  • +/// AuthErrorCodeOperationNotAllowed - Indicates the +/// administrator disabled sign in with the specified identity provider. +///
  • +///
  • +/// AuthErrorCodeExpiredActionCode - Indicates the OOB code is +/// expired. +///
  • +///
  • +/// AuthErrorCodeInvalidActionCode - Indicates the OOB code is +/// invalid. +///
  • +///
+/// \param code The reset code. +/// +/// \param newPassword The new password. +/// +/// \param completion Optionally; a block which is invoked when the request +/// finishes. Invoked asynchronously on the main thread in the future. +/// +- (void)confirmPasswordResetWithCode:(NSString *_Nonnull)code + newPassword:(NSString *_Nonnull)newPassword + completion: + (void (^_Nonnull)(NSError *_Nullable))completion; +/// Checks the validity of an out of band code. +/// \param code The out of band code to check validity. +/// +/// \param completion Optionally; a block which is invoked when the request +/// finishes. Invoked asynchronously on the main thread in the future. +/// +- (void)checkActionCode:(NSString *_Nonnull)code + completion:(void (^_Nonnull)(FIRActionCodeInfo *_Nullable, + NSError *_Nullable))completion; +/// Checks the validity of a verify password reset code. +/// \param code The password reset code to be verified. +/// +/// \param completion Optionally; a block which is invoked when the request +/// finishes. Invoked asynchronously on the main thread in the future. +/// +- (void)verifyPasswordResetCode:(NSString *_Nonnull)code + completion: + (void (^_Nonnull)(NSString *_Nullable, + NSError *_Nullable))completion; +/// Applies out of band code. +/// This method will not work for out of band codes which require an additional +/// parameter, such as password reset code. \param code The out of band code to +/// be applied. +/// +/// \param completion Optionally; a block which is invoked when the request +/// finishes. Invoked asynchronously on the main thread in the future. +/// +- (void)applyActionCode:(NSString *_Nonnull)code + completion:(void (^_Nonnull)(NSError *_Nullable))completion; +/// Initiates a password reset for the given email address. +/// This method does not throw an +/// error when there’s no user account with the given email address and Email +/// Enumeration Protection is enabled. Possible error codes:
    +///
  • +/// AuthErrorCodeInvalidRecipientEmail - Indicates an invalid +/// recipient email was sent in the request. +///
  • +///
  • +/// AuthErrorCodeInvalidSender - Indicates an invalid sender +/// email is set in the console for this action. +///
  • +///
  • +/// AuthErrorCodeInvalidMessagePayload - Indicates an invalid +/// email template for sending update email. +///
  • +///
+/// \param email The email address of the user. +/// +/// \param completion Optionally; a block which is invoked when the request +/// finishes. Invoked asynchronously on the main thread in the future. +/// +- (void)sendPasswordResetWithEmail:(NSString *_Nonnull)email + completion: + (void (^_Nullable)(NSError *_Nullable))completion; +/// Initiates a password reset for the given email address and +/// ActionCodeSettings object. This method does not throw an error +/// when there’s no user account with the given email address and Email +/// Enumeration Protection is enabled. Possible error codes:
    +///
  • +/// AuthErrorCodeInvalidRecipientEmail - Indicates an invalid +/// recipient email was sent in the request. +///
  • +///
  • +/// AuthErrorCodeInvalidSender - Indicates an invalid sender +/// email is set in the console for this action. +///
  • +///
  • +/// AuthErrorCodeInvalidMessagePayload - Indicates an invalid +/// email template for sending update email. +///
  • +///
  • +/// AuthErrorCodeMissingIosBundleID - Indicates that the iOS +/// bundle ID is missing when handleCodeInApp is set to true. +///
  • +///
  • +/// AuthErrorCodeMissingAndroidPackageName - Indicates that the +/// android package name is missing when the androidInstallApp +/// flag is set to true. +///
  • +///
  • +/// AuthErrorCodeUnauthorizedDomain - Indicates that the domain +/// specified in the continue URL is not allowlisted in the Firebase +/// console. +///
  • +///
  • +/// AuthErrorCodeInvalidContinueURI - Indicates that the domain +/// specified in the continue URL is not valid. +///
  • +///
+/// \param email The email address of the user. +/// +/// \param actionCodeSettings An ActionCodeSettings object +/// containing settings related to handling action codes. +/// +/// \param completion Optionally; a block which is invoked when the request +/// finishes. Invoked asynchronously on the main thread in the future. +/// +- (void)sendPasswordResetWithEmail:(NSString *_Nonnull)email + actionCodeSettings: + (FIRActionCodeSettings *_Nullable)actionCodeSettings + completion: + (void (^_Nullable)(NSError *_Nullable))completion; +/// Sends a sign in with email link to provided email address. +/// \param email The email address of the user. +/// +/// \param actionCodeSettings An ActionCodeSettings object +/// containing settings related to handling action codes. +/// +/// \param completion Optionally; a block which is invoked when the request +/// finishes. Invoked asynchronously on the main thread in the future. +/// +- (void)sendSignInLinkToEmail:(NSString *_Nonnull)email + actionCodeSettings: + (FIRActionCodeSettings *_Nonnull)actionCodeSettings + completion:(void (^_Nullable)(NSError *_Nullable))completion; +/// Signs out the current user. +/// Possible error codes: +///
    +///
  • +/// AuthErrorCodeKeychainError - Indicates an error occurred +/// when accessing the keychain. The +/// NSLocalizedFailureReasonErrorKey field in the +/// userInfo dictionary will contain more information about the +/// error encountered. +///
  • +///
+- (BOOL)signOut:(NSError *_Nullable *_Nullable)error; +/// Checks if link is an email sign-in link. +/// \param link The email sign-in link. +/// +/// +/// returns: +/// true when the link passed matches the expected format of an +/// email sign-in link. +- (BOOL)isSignInWithEmailLink:(NSString *_Nonnull)link SWIFT_WARN_UNUSED_RESULT; +/// Initializes reCAPTCHA using the settings configured for the project or +/// tenant. If you change the tenant ID of the Auth instance, the +/// configuration will be reloaded. +- (void)initializeRecaptchaConfigWithCompletion: + (void (^_Nullable)(NSError *_Nullable))completion; +/// Registers a block as an “auth state did change” listener. +/// To be invoked when: +///
    +///
  • +/// The block is registered as a listener, +///
  • +///
  • +/// A user with a different UID from the current user has signed in, or +///
  • +///
  • +/// The current user has signed out. +///
  • +///
+/// The block is invoked immediately after adding it according to its standard +/// invocation semantics, asynchronously on the main thread. Users should pay +/// special attention to making sure the block does not inadvertently retain +/// objects which should not be retained by the long-lived block. The block +/// itself will be retained by Auth until it is unregistered or +/// until the Auth instance is otherwise deallocated. \param +/// listener The block to be invoked. The block is always invoked asynchronously +/// on the main thread, even for it’s initial invocation after having been added +/// as a listener. +/// +/// +/// returns: +/// A handle useful for manually unregistering the block as a listener. +- (id _Nonnull)addAuthStateDidChangeListener: + (void (^_Nonnull)(FIRAuth *_Nonnull, FIRUser *_Nullable))listener + SWIFT_WARN_UNUSED_RESULT; +/// Unregisters a block as an “auth state did change” listener. +/// \param listenerHandle The handle for the listener. +/// +- (void)removeAuthStateDidChangeListener:(id _Nonnull)listenerHandle; +/// Registers a block as an “ID token did change” listener. +/// To be invoked when: +///
    +///
  • +/// The block is registered as a listener, +///
  • +///
  • +/// A user with a different UID from the current user has signed in, +///
  • +///
  • +/// The ID token of the current user has been refreshed, or +///
  • +///
  • +/// The current user has signed out. +///
  • +///
+/// The block is invoked immediately after adding it according to its standard +/// invocation semantics, asynchronously on the main thread. Users should pay +/// special attention to making sure the block does not inadvertently retain +/// objects which should not be retained by the long-lived block. The block +/// itself will be retained by Auth until it is unregistered or +/// until the Auth instance is otherwise deallocated. \param +/// listener The block to be invoked. The block is always invoked asynchronously +/// on the main thread, even for it’s initial invocation after having been added +/// as a listener. +/// +/// +/// returns: +/// A handle useful for manually unregistering the block as a listener. +- (id _Nonnull)addIDTokenDidChangeListener: + (void (^_Nonnull)(FIRAuth *_Nonnull, FIRUser *_Nullable))listener + SWIFT_WARN_UNUSED_RESULT; +/// Unregisters a block as an “ID token did change” listener. +/// \param listenerHandle The handle for the listener. +/// +- (void)removeIDTokenDidChangeListener:(id _Nonnull)listenerHandle; +/// Sets languageCode to the app’s current language. +- (void)useAppLanguage; +/// Configures Firebase Auth to connect to an emulated host instead of the +/// remote backend. +- (void)useEmulatorWithHost:(NSString *_Nonnull)host port:(NSInteger)port; +/// Revoke the users token with authorization code. +/// \param completion (Optional) the block invoked when the request to revoke +/// the token is complete, or fails. Invoked asynchronously on the main thread +/// in the future. +/// +- (void)revokeTokenWithAuthorizationCode:(NSString *_Nonnull)authorizationCode + completion:(void (^_Nullable)(NSError *_Nullable)) + completion; +/// Switch userAccessGroup and current user to the given accessGroup and the +/// user stored in it. +- (BOOL)useUserAccessGroup:(NSString *_Nullable)accessGroup + error:(NSError *_Nullable *_Nullable)error; +/// Get the stored user in the given accessGroup. +/// This API is not supported on tvOS when +/// shareAuthStateAcrossDevices is set to true. and +/// will return nil. Please refer to +/// https://github.com/firebase/firebase-ios-sdk/issues/8878 for details. +- (FIRUser *_Nullable) + getStoredUserForAccessGroup:(NSString *_Nullable)accessGroup + error:(NSError *_Nullable *_Nullable)outError + SWIFT_WARN_UNUSED_RESULT; +/// The APNs token used for phone number authentication. +/// The type of the token (production or sandbox) will be automatically +/// detected based on your provisioning profile. +/// This property is available on iOS only. +/// If swizzling is disabled, the APNs Token must be set for phone number auth +/// to work, by either setting this property or by calling +/// setAPNSToken(_:type:). +@property(nonatomic, readonly, copy) NSData *_Nullable APNSToken; +/// Sets the APNs token along with its type. +/// This method is available on iOS only. +/// If swizzling is disabled, the APNs Token must be set for phone number auth +/// to work, by either setting calling this method or by setting the +/// APNSToken property. +- (void)setAPNSToken:(NSData *_Nonnull)token + type:(enum FIRAuthAPNSTokenType)type; +/// Whether the specific remote notification is handled by Auth . +/// This method is available on iOS only. +/// If swizzling is disabled, related remote notifications must be forwarded to +/// this method for phone number auth to work. \param userInfo A dictionary that +/// contains information related to the notification in question. +/// +/// +/// returns: +/// Whether or the notification is handled. A return value of true +/// means the notification is for Firebase Auth so the caller should ignore the +/// notification from further processing, and false means the +/// notification is for the app (or another library) so the caller should +/// continue handling this notification as usual. +- (BOOL)canHandleNotification:(NSDictionary *_Nonnull)userInfo + SWIFT_WARN_UNUSED_RESULT; +/// Whether the specific URL is handled by Auth . +/// This method is available on iOS only. +/// If swizzling is disabled, URLs received by the application delegate must be +/// forwarded to this method for phone number auth to work. \param url The URL +/// received by the application delegate from any of the openURL method. +/// +/// +/// returns: +/// Whether or the URL is handled. true means the URL is for +/// Firebase Auth so the caller should ignore the URL from further processing, +/// and false means the the URL is for the app (or another library) +/// so the caller should continue handling this URL as usual. +- (BOOL)canHandleURL:(NSURL *_Nonnull)url SWIFT_WARN_UNUSED_RESULT; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +@class UIScene; +@class UIOpenURLContext; + +SWIFT_AVAILABILITY(ios, introduced = 13.0) +@interface FIRAuth (SWIFT_EXTENSION (FirebaseAuth)) +- (void)scene:(UIScene *_Nonnull)scene + openURLContexts:(NSSet *_Nonnull)URLContexts; +@end + +SWIFT_AVAILABILITY(watchos, introduced = 7) +SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, + introduced = 13) SWIFT_AVAILABILITY(ios, + introduced = 13) + @interface FIRAuth(SWIFT_EXTENSION(FirebaseAuth)) +/// Retrieves the Firebase authentication token, possibly refreshing it if it +/// has expired. This method is not for public use. It is for Firebase clients +/// of AuthInterop. +- (void)getTokenForcingRefresh:(BOOL)forceRefresh + withCallback:(void (^_Nonnull)(NSString *_Nullable, + NSError *_Nullable))callback; +/// Get the current Auth user’s UID. Returns nil if there is no user signed in. +/// This method is not for public use. It is for Firebase clients of +/// AuthInterop. +- (NSString *_Nullable)getUserID SWIFT_WARN_UNUSED_RESULT; +@end + +@class UIApplication; + +SWIFT_AVAILABILITY(ios, introduced = 13.0) +@interface FIRAuth (SWIFT_EXTENSION (FirebaseAuth)) +- (void)application:(UIApplication *_Nonnull)application + didRegisterForRemoteNotificationsWithDeviceToken: + (NSData *_Nonnull)deviceToken; +- (void)application:(UIApplication *_Nonnull)application + didFailToRegisterForRemoteNotificationsWithError:(NSError *_Nonnull)error; +- (void)application:(UIApplication *_Nonnull)application + didReceiveRemoteNotification:(NSDictionary *_Nonnull)userInfo + fetchCompletionHandler: + (void (^_Nonnull)(UIBackgroundFetchResult))completionHandler; +- (BOOL)application:(UIApplication *_Nonnull)application + openURL:(NSURL *_Nonnull)url + options:(NSDictionary *_Nonnull) + options SWIFT_WARN_UNUSED_RESULT; +@end + +/// The APNs token type for the app. +/// This enum is available on iOS, macOS Catalyst, tvOS, and watchOS only. +typedef SWIFT_ENUM_NAMED(NSInteger, FIRAuthAPNSTokenType, "AuthAPNSTokenType", + open){ + /// Unknown token type. + /// The actual token type will be detected from the provisioning profile in + /// the app’s bundle. + FIRAuthAPNSTokenTypeUnknown = 0, + /// Sandbox token type. + FIRAuthAPNSTokenTypeSandbox = 1, + /// Production token type. + FIRAuthAPNSTokenTypeProd = 2, +}; + +/// Public representation of a credential. +SWIFT_CLASS_NAMED("AuthCredential") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRAuthCredential : NSObject +/// The name of the identity provider for the credential. +@property(nonatomic, readonly, copy) NSString *_Nonnull provider; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +@class FIROAuthCredential; + +/// Helper object that contains the result of a successful sign-in, link and +/// reauthenticate action. It contains references to a User +/// instance and an AdditionalUserInfo instance. +SWIFT_CLASS_NAMED("AuthDataResult") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRAuthDataResult : NSObject +/// The signed in user. +@property(nonatomic, readonly, strong) FIRUser *_Nonnull user; +/// If available, contains the additional IdP specific information about signed +/// in user. +@property(nonatomic, readonly, strong) + FIRAdditionalUserInfo *_Nullable additionalUserInfo; +/// This property will be non-nil after a successful headful-lite sign-in via +/// signIn(with:uiDelegate:completion:). +/// May be used to obtain the accessToken and/or IDToken +/// pertaining to a recently signed-in user. +@property(nonatomic, readonly, strong) FIROAuthCredential *_Nullable credential; +SWIFT_CLASS_PROPERTY(@property(nonatomic, class) BOOL supportsSecureCoding;) ++ (BOOL)supportsSecureCoding SWIFT_WARN_UNUSED_RESULT; ++ (void)setSupportsSecureCoding:(BOOL)value; +- (void)encodeWithCoder:(NSCoder *_Nonnull)coder; +- (nullable instancetype)initWithCoder:(NSCoder *_Nonnull)coder + OBJC_DESIGNATED_INITIALIZER; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +SWIFT_AVAILABILITY(watchos, introduced = 7) +SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRAuthDataResult( + SWIFT_EXTENSION(FirebaseAuth)) +@end + +/// Error codes used by Firebase Auth. +typedef SWIFT_ENUM_NAMED(NSInteger, FIRAuthErrorCode, "AuthErrorCode", open){ + /// Indicates a validation error with the custom token. + FIRAuthErrorCodeInvalidCustomToken = 17000, + /// Indicates the service account and the API key belong to different + /// projects. + FIRAuthErrorCodeCustomTokenMismatch = 17002, + /// Indicates the IDP token or requestUri is invalid. + FIRAuthErrorCodeInvalidCredential = 17004, + /// Indicates the user’s account is disabled on the server. + FIRAuthErrorCodeUserDisabled = 17005, + /// Indicates the administrator disabled sign in with the specified identity + /// provider. + FIRAuthErrorCodeOperationNotAllowed = 17006, + /// Indicates the email used to attempt a sign up is already in use. + FIRAuthErrorCodeEmailAlreadyInUse = 17007, + /// Indicates the email is invalid. + FIRAuthErrorCodeInvalidEmail = 17008, + /// Indicates the user attempted sign in with a wrong password. + FIRAuthErrorCodeWrongPassword = 17009, + /// Indicates that too many requests were made to a server method. + FIRAuthErrorCodeTooManyRequests = 17010, + /// Indicates the user account was not found. + FIRAuthErrorCodeUserNotFound = 17011, + /// Indicates account linking is required. + FIRAuthErrorCodeAccountExistsWithDifferentCredential = 17012, + /// Indicates the user has attempted to change email or password more than 5 + /// minutes after + /// signing in. + FIRAuthErrorCodeRequiresRecentLogin = 17014, + /// Indicates an attempt to link a provider to which the account is already + /// linked. + FIRAuthErrorCodeProviderAlreadyLinked = 17015, + /// Indicates an attempt to unlink a provider that is not linked. + FIRAuthErrorCodeNoSuchProvider = 17016, + /// Indicates user’s saved auth credential is invalid the user needs to sign + /// in again. + FIRAuthErrorCodeInvalidUserToken = 17017, + /// Indicates a network error occurred (such as a timeout interrupted + /// connection or + /// unreachable host). These types of errors are often recoverable with a + /// retry. The + /// NSUnderlyingError field in the + /// NSError.userInfo dictionary will contain the error + /// encountered. + FIRAuthErrorCodeNetworkError = 17020, + /// Indicates the saved token has expired for example the user may have + /// changed account + /// password on another device. The user needs to sign in again on the + /// device that made this + /// request. + FIRAuthErrorCodeUserTokenExpired = 17021, + /// Indicates an invalid API key was supplied in the request. + FIRAuthErrorCodeInvalidAPIKey = 17023, + /// Indicates that an attempt was made to reauthenticate with a user which + /// is not the current + /// user. + FIRAuthErrorCodeUserMismatch = 17024, + /// Indicates an attempt to link with a credential that has already been + /// linked with a + /// different Firebase account. + FIRAuthErrorCodeCredentialAlreadyInUse = 17025, + /// Indicates an attempt to set a password that is considered too weak. + FIRAuthErrorCodeWeakPassword = 17026, + /// Indicates the App is not authorized to use Firebase Authentication with + /// the + /// provided API Key. + FIRAuthErrorCodeAppNotAuthorized = 17028, + /// Indicates the OOB code is expired. + FIRAuthErrorCodeExpiredActionCode = 17029, + /// Indicates the OOB code is invalid. + FIRAuthErrorCodeInvalidActionCode = 17030, + /// Indicates that there are invalid parameters in the payload during a + /// “send password reset email” attempt. + FIRAuthErrorCodeInvalidMessagePayload = 17031, + /// Indicates that the sender email is invalid during a “send password reset + /// email” attempt. + FIRAuthErrorCodeInvalidSender = 17032, + /// Indicates that the recipient email is invalid. + FIRAuthErrorCodeInvalidRecipientEmail = 17033, + /// Indicates that an email address was expected but one was not provided. + FIRAuthErrorCodeMissingEmail = 17034, + /// Indicates that the iOS bundle ID is missing when a iOS App Store ID is + /// provided. + FIRAuthErrorCodeMissingIosBundleID = 17036, + /// Indicates that the android package name is missing when the + /// androidInstallApp flag is set + /// to true. + FIRAuthErrorCodeMissingAndroidPackageName = 17037, + /// Indicates that the domain specified in the continue URL is not + /// allowlisted in the Firebase + /// console. + FIRAuthErrorCodeUnauthorizedDomain = 17038, + /// Indicates that the domain specified in the continue URI is not valid. + FIRAuthErrorCodeInvalidContinueURI = 17039, + /// Indicates that a continue URI was not provided in a request to the + /// backend which requires one. + FIRAuthErrorCodeMissingContinueURI = 17040, + /// Indicates that a phone number was not provided in a call to + /// verifyPhoneNumber:completion:. + FIRAuthErrorCodeMissingPhoneNumber = 17041, + /// Indicates that an invalid phone number was provided in a call to + /// verifyPhoneNumber:completion:. + FIRAuthErrorCodeInvalidPhoneNumber = 17042, + /// Indicates that the phone auth credential was created with an empty + /// verification code. + FIRAuthErrorCodeMissingVerificationCode = 17043, + /// Indicates that an invalid verification code was used in the + /// verifyPhoneNumber request. + FIRAuthErrorCodeInvalidVerificationCode = 17044, + /// Indicates that the phone auth credential was created with an empty + /// verification ID. + FIRAuthErrorCodeMissingVerificationID = 17045, + /// Indicates that an invalid verification ID was used in the + /// verifyPhoneNumber request. + FIRAuthErrorCodeInvalidVerificationID = 17046, + /// Indicates that the APNS device token is missing in the verifyClient + /// request. + FIRAuthErrorCodeMissingAppCredential = 17047, + /// Indicates that an invalid APNS device token was used in the verifyClient + /// request. + FIRAuthErrorCodeInvalidAppCredential = 17048, + /// Indicates that the SMS code has expired. + FIRAuthErrorCodeSessionExpired = 17051, + /// Indicates that the quota of SMS messages for a given project has been + /// exceeded. + FIRAuthErrorCodeQuotaExceeded = 17052, + /// Indicates that the APNs device token could not be obtained. The app may + /// not have set up + /// remote notification correctly or may fail to forward the APNs device + /// token to Auth + /// if app delegate swizzling is disabled. + FIRAuthErrorCodeMissingAppToken = 17053, + /// Indicates that the app fails to forward remote notification to FIRAuth. + FIRAuthErrorCodeNotificationNotForwarded = 17054, + /// Indicates that the app could not be verified by Firebase during phone + /// number authentication. + FIRAuthErrorCodeAppNotVerified = 17055, + /// Indicates that the reCAPTCHA token is not valid. + FIRAuthErrorCodeCaptchaCheckFailed = 17056, + /// Indicates that an attempt was made to present a new web context while + /// one was already being + /// presented. + FIRAuthErrorCodeWebContextAlreadyPresented = 17057, + /// Indicates that the URL presentation was cancelled prematurely by the + /// user. + FIRAuthErrorCodeWebContextCancelled = 17058, + /// Indicates a general failure during the app verification flow. + FIRAuthErrorCodeAppVerificationUserInteractionFailure = 17059, + /// Indicates that the clientID used to invoke a web flow is invalid. + FIRAuthErrorCodeInvalidClientID = 17060, + /// Indicates that a network request within a SFSafariViewController or + /// WKWebView failed. + FIRAuthErrorCodeWebNetworkRequestFailed = 17061, + /// Indicates that an internal error occurred within a + /// SFSafariViewController or WKWebView. + FIRAuthErrorCodeWebInternalError = 17062, + /// Indicates a general failure during a web sign-in flow. + FIRAuthErrorCodeWebSignInUserInteractionFailure = 17063, + /// Indicates that the local player was not authenticated prior to + /// attempting Game Center signin. + FIRAuthErrorCodeLocalPlayerNotAuthenticated = 17066, + /// Indicates that a non-null user was expected as an argument to the + /// operation but a null + /// user was provided. + FIRAuthErrorCodeNullUser = 17067, + /// Indicates that a Firebase Dynamic Link is not activated. + FIRAuthErrorCodeDynamicLinkNotActivated = 17068, + /// Represents the error code for when the given provider id for a web + /// operation is invalid. + FIRAuthErrorCodeInvalidProviderID = 17071, + /// Represents the error code for when an attempt is made to update the + /// current user with a + /// tenantId that differs from the current FirebaseAuth instance’s tenantId. + FIRAuthErrorCodeTenantIDMismatch = 17072, + /// Represents the error code for when a request is made to the backend with + /// an associated tenant + /// ID for an operation that does not support multi-tenancy. + FIRAuthErrorCodeUnsupportedTenantOperation = 17073, + /// Indicates that the Firebase Dynamic Link domain used is either not + /// configured or is + /// unauthorized for the current project. + FIRAuthErrorCodeInvalidDynamicLinkDomain = 17074, + /// Indicates that the credential is rejected because it’s malformed or + /// mismatching. + FIRAuthErrorCodeRejectedCredential = 17075, + /// Indicates that the GameKit framework is not linked prior to attempting + /// Game Center signin. + FIRAuthErrorCodeGameKitNotLinked = 17076, + /// Indicates that the second factor is required for signin. + FIRAuthErrorCodeSecondFactorRequired = 17078, + /// Indicates that the multi factor session is missing. + FIRAuthErrorCodeMissingMultiFactorSession = 17081, + /// Indicates that the multi factor info is missing. + FIRAuthErrorCodeMissingMultiFactorInfo = 17082, + /// Indicates that the multi factor session is invalid. + FIRAuthErrorCodeInvalidMultiFactorSession = 17083, + /// Indicates that the multi factor info is not found. + FIRAuthErrorCodeMultiFactorInfoNotFound = 17084, + /// Indicates that the operation is admin restricted. + FIRAuthErrorCodeAdminRestrictedOperation = 17085, + /// Indicates that the email is required for verification. + FIRAuthErrorCodeUnverifiedEmail = 17086, + /// Indicates that the second factor is already enrolled. + FIRAuthErrorCodeSecondFactorAlreadyEnrolled = 17087, + /// Indicates that the maximum second factor count is exceeded. + FIRAuthErrorCodeMaximumSecondFactorCountExceeded = 17088, + /// Indicates that the first factor is not supported. + FIRAuthErrorCodeUnsupportedFirstFactor = 17089, + /// Indicates that the a verified email is required to changed to. + FIRAuthErrorCodeEmailChangeNeedsVerification = 17090, + /// Indicates that the request does not contain a client identifier. + FIRAuthErrorCodeMissingClientIdentifier = 17093, + /// Indicates that the nonce is missing or invalid. + FIRAuthErrorCodeMissingOrInvalidNonce = 17094, + /// Raised when n Cloud Function returns a blocking error. Will include a + /// message returned from + /// the function. + FIRAuthErrorCodeBlockingCloudFunctionError = 17105, + /// Indicates that reCAPTCHA Enterprise integration is not enabled for this + /// project. + FIRAuthErrorCodeRecaptchaNotEnabled = 17200, + /// Indicates that the reCAPTCHA token is missing from the backend request. + FIRAuthErrorCodeMissingRecaptchaToken = 17201, + /// Indicates that the reCAPTCHA token sent with the backend request is + /// invalid. + FIRAuthErrorCodeInvalidRecaptchaToken = 17202, + /// Indicates that the requested reCAPTCHA action is invalid. + FIRAuthErrorCodeInvalidRecaptchaAction = 17203, + /// Indicates that the client type is missing from the request. + FIRAuthErrorCodeMissingClientType = 17204, + /// Indicates that the reCAPTCHA version is missing from the request. + FIRAuthErrorCodeMissingRecaptchaVersion = 17205, + /// Indicates that the reCAPTCHA version sent to the backend is invalid. + FIRAuthErrorCodeInvalidRecaptchaVersion = 17206, + /// Indicates that the request type sent to the backend is invalid. + FIRAuthErrorCodeInvalidReqType = 17207, + /// Indicates that the reCAPTCHA SDK is not linked to the app. + FIRAuthErrorCodeRecaptchaSDKNotLinked = 17208, + /// Indicates that the reCAPTCHA SDK site key wasn’t found. + FIRAuthErrorCodeRecaptchaSiteKeyMissing = 17209, + /// Indicates that the reCAPTCHA SDK actions class failed to create. + FIRAuthErrorCodeRecaptchaActionCreationFailed = 17210, + /// Indicates an error occurred while attempting to access the keychain. + FIRAuthErrorCodeKeychainError = 17995, + /// Indicates an internal error occurred. + FIRAuthErrorCodeInternalError = 17999, + /// Raised when a JWT fails to parse correctly. May be accompanied by an + /// underlying error + /// describing which step of the JWT parsing process failed. + FIRAuthErrorCodeMalformedJWT = 18000, +}; + +/// Error Codes common to all API Methods: +SWIFT_CLASS_NAMED("AuthErrors") +@interface FIRAuthErrors : NSObject +/// The Firebase Auth error domain. +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) + NSString *_Nonnull domain;) ++ (NSString *_Nonnull)domain SWIFT_WARN_UNUSED_RESULT; +/// The name of the key for the error short string of an error code. +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) + NSString *_Nonnull userInfoNameKey;) ++ (NSString *_Nonnull)userInfoNameKey SWIFT_WARN_UNUSED_RESULT; +/// Error codes for Email operations +/// Errors with one of the following three codes: +///
    +///
  • +/// accountExistsWithDifferentCredential +///
  • +///
  • +/// credentialAlreadyInUse +///
  • +///
  • +/// emailAlreadyInUse` +///
  • +///
+/// may contain an NSError.userInfo dictionary object which +/// contains this key. The value associated with this key is an NSString of the +/// email address of the account that already exists. +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) + NSString *_Nonnull userInfoEmailKey;) ++ (NSString *_Nonnull)userInfoEmailKey SWIFT_WARN_UNUSED_RESULT; +/// The key used to read the updated Auth credential from the userInfo +/// dictionary of the NSError object returned. This is the updated auth +/// credential the developer should use for recovery if applicable. +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) + NSString *_Nonnull userInfoUpdatedCredentialKey;) ++ (NSString *_Nonnull)userInfoUpdatedCredentialKey SWIFT_WARN_UNUSED_RESULT; +/// The key used to read the MFA resolver from the userInfo dictionary of the +/// NSError object returned when 2FA is required for sign-incompletion. +SWIFT_CLASS_PROPERTY( + @property(nonatomic, class, readonly, copy) + NSString *_Nonnull FIRAuthErrorUserInfoMultiFactorResolverKey;) ++ (NSString *_Nonnull) + FIRAuthErrorUserInfoMultiFactorResolverKey SWIFT_WARN_UNUSED_RESULT; +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; +@end + +/// Determines settings related to an auth object. +SWIFT_CLASS_NAMED("AuthSettings") +@interface FIRAuthSettings : NSObject +/// Flag to determine whether app verification should be disabled for testing or +/// not. +@property(nonatomic) BOOL appVerificationDisabledForTesting; +/// Flag to determine whether app verification should be disabled for testing or +/// not. +@property(nonatomic) BOOL isAppVerificationDisabledForTesting; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +- (id _Nonnull)copyWithZone:(struct _NSZone *_Nullable)zone + SWIFT_WARN_UNUSED_RESULT; +@end + +@class NSDate; + +/// A data class containing the ID token JWT string and other properties +/// associated with the token including the decoded payload claims. +SWIFT_CLASS_NAMED("AuthTokenResult") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRAuthTokenResult : NSObject +/// Stores the JWT string of the ID token. +@property(nonatomic, copy) NSString *_Nonnull token; +/// Stores the ID token’s expiration date. +@property(nonatomic, copy) NSDate *_Nonnull expirationDate; +/// Stores the ID token’s authentication date. +/// This is the date the user was signed in and NOT the date the token was +/// refreshed. +@property(nonatomic, copy) NSDate *_Nonnull authDate; +/// Stores the date that the ID token was issued. +/// This is the date last refreshed and NOT the last authentication date. +@property(nonatomic, copy) NSDate *_Nonnull issuedAtDate; +/// Stores sign-in provider through which the token was obtained. +@property(nonatomic, copy) NSString *_Nonnull signInProvider; +/// Stores sign-in second factor through which the token was obtained. +@property(nonatomic, copy) NSString *_Nonnull signInSecondFactor; +/// Stores the entire payload of claims found on the ID token. +/// This includes the standard +/// reserved claims as well as custom claims set by the developer via the Admin +/// SDK. +@property(nonatomic, copy) NSDictionary *_Nonnull claims; +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly) + BOOL supportsSecureCoding;) ++ (BOOL)supportsSecureCoding SWIFT_WARN_UNUSED_RESULT; +- (void)encodeWithCoder:(NSCoder *_Nonnull)coder; +- (nullable instancetype)initWithCoder:(NSCoder *_Nonnull)coder; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +SWIFT_AVAILABILITY(watchos, introduced = 7) +SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRAuthTokenResult( + SWIFT_EXTENSION(FirebaseAuth)) +@end + +@class UIViewController; + +/// A protocol to handle user interface interactions for Firebase Auth. +/// This protocol is available on iOS, macOS Catalyst, and tvOS only. +SWIFT_PROTOCOL_NAMED("AuthUIDelegate") +@protocol FIRAuthUIDelegate +/// If implemented, this method will be invoked when Firebase Auth needs to +/// display a view controller. \param viewControllerToPresent The view +/// controller to be presented. +/// +/// \param flag Decides whether the view controller presentation should be +/// animated. +/// +/// \param completion The block to execute after the presentation finishes. +/// This block has no return value and takes no parameters. +/// +- (void)presentViewController: + (UIViewController *_Nonnull)viewControllerToPresent + animated:(BOOL)flag + completion:(void (^_Nullable)(void))completion; +/// If implemented, this method will be invoked when Firebase Auth needs to +/// display a view controller. \param flag Decides whether removing the view +/// controller should be animated or not. +/// +/// \param completion The block to execute after the presentation finishes. +/// This block has no return value and takes no parameters. +/// +- (void)dismissViewControllerAnimated:(BOOL)flag + completion:(void (^_Nullable)(void))completion; +@end + +/// A concrete implementation of AuthProvider for Email & Password +/// Sign In. +SWIFT_CLASS_NAMED("EmailAuthProvider") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIREmailAuthProvider : NSObject +/// A string constant identifying the email & password identity provider. +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) + NSString *_Nonnull id;) ++ (NSString *_Nonnull)id SWIFT_WARN_UNUSED_RESULT; +/// Creates an AuthCredential for an email & password sign in +/// \param email The user’s email address. +/// +/// \param password The user’s password. +/// +/// +/// returns: +/// An AuthCredential containing the email & password credential. ++ (FIRAuthCredential *_Nonnull)credentialWithEmail:(NSString *_Nonnull)email + password:(NSString *_Nonnull)password + SWIFT_WARN_UNUSED_RESULT; +/// Creates an AuthCredential for an email & link sign in. +/// \param email The user’s email address. +/// +/// \param link The email sign-in link. +/// +/// +/// returns: +/// An AuthCredential containing the email & link credential. ++ (FIRAuthCredential *_Nonnull)credentialWithEmail:(NSString *_Nonnull)email + link:(NSString *_Nonnull)link + SWIFT_WARN_UNUSED_RESULT; +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; +@end + +/// Utility class for constructing Facebook Sign In credentials. +SWIFT_CLASS_NAMED("FacebookAuthProvider") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRFacebookAuthProvider : NSObject +/// A string constant identifying the Facebook identity provider. +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) + NSString *_Nonnull id;) ++ (NSString *_Nonnull)id SWIFT_WARN_UNUSED_RESULT; +/// Creates an AuthCredential for a Facebook sign in. +/// \param accessToken The Access Token from Facebook. +/// +/// +/// returns: +/// An AuthCredential containing the Facebook credentials. ++ (FIRAuthCredential *_Nonnull)credentialWithAccessToken: + (NSString *_Nonnull)accessToken SWIFT_WARN_UNUSED_RESULT; +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER SWIFT_UNAVAILABLE; +@end + +/// Utility type for constructing federated auth provider credentials. +SWIFT_PROTOCOL_NAMED("FederatedAuthProvider") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @protocol FIRFederatedAuthProvider +/// Used to obtain an auth credential via a mobile web flow. +/// This method is available on iOS only. +/// \param uiDelegate An optional UI delegate used to present the mobile web +/// flow. +/// +- (void)getCredentialWithUIDelegate:(id _Nullable)uiDelegate + completion:(void (^_Nonnull)( + FIRAuthCredential *_Nullable, + NSError *_Nullable))completionHandler + SWIFT_AVAILABILITY(watchos, introduced = 8) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13); +@end + +/// A concrete implementation of AuthProvider for Game Center Sign +/// In. Not available on watchOS. +SWIFT_CLASS_NAMED("GameCenterAuthProvider") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRGameCenterAuthProvider : NSObject +/// A string constant identifying the Game Center identity provider. +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) + NSString *_Nonnull id;) ++ (NSString *_Nonnull)id SWIFT_WARN_UNUSED_RESULT; +/// Creates an AuthCredential for a Game Center sign in. ++ (void)getCredentialWithCompletion: + (void (^_Nonnull)(FIRAuthCredential *_Nullable, + NSError *_Nullable))completion; +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER SWIFT_UNAVAILABLE; +@end + +/// Utility class for constructing GitHub Sign In credentials. +SWIFT_CLASS_NAMED("GitHubAuthProvider") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRGitHubAuthProvider : NSObject +/// A string constant identifying the GitHub identity provider. +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) + NSString *_Nonnull id;) ++ (NSString *_Nonnull)id SWIFT_WARN_UNUSED_RESULT; +/// Creates an AuthCredential for a GitHub sign in. +/// \param token The GitHub OAuth access token. +/// +/// +/// returns: +/// An AuthCredential containing the GitHub credentials. ++ (FIRAuthCredential *_Nonnull)credentialWithToken:(NSString *_Nonnull)token + SWIFT_WARN_UNUSED_RESULT; +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER SWIFT_UNAVAILABLE; +@end + +/// Utility class for constructing Google Sign In credentials. +SWIFT_CLASS_NAMED("GoogleAuthProvider") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRGoogleAuthProvider : NSObject +/// A string constant identifying the Google identity provider. +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) + NSString *_Nonnull id;) ++ (NSString *_Nonnull)id SWIFT_WARN_UNUSED_RESULT; +/// Creates an AuthCredential for a Google sign in. +/// \param idToken The ID Token from Google. +/// +/// \param accessToken The Access Token from Google. +/// +/// +/// returns: +/// An AuthCredential containing the Google credentials. ++ (FIRAuthCredential *_Nonnull)credentialWithIDToken:(NSString *_Nonnull)idToken + accessToken: + (NSString *_Nonnull)accessToken + SWIFT_WARN_UNUSED_RESULT; +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER SWIFT_UNAVAILABLE; +@end + +@class FIRMultiFactorInfo; +@class FIRMultiFactorSession; +@class FIRMultiFactorAssertion; + +/// The interface defining the multi factor related properties and operations +/// pertaining to a user. This class is available on iOS only. +SWIFT_CLASS_NAMED("MultiFactor") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRMultiFactor : NSObject +@property(nonatomic, copy) + NSArray *_Nonnull enrolledFactors; +/// Get a session for a second factor enrollment operation. +/// This is used to identify the current user trying to enroll a second factor. +/// \param completion A block with the session identifier for a second factor +/// enrollment operation. +/// +- (void)getSessionWithCompletion: + (void (^_Nullable)(FIRMultiFactorSession *_Nullable, + NSError *_Nullable))completion; +/// Enrolls a second factor as identified by the +/// MultiFactorAssertion parameter for the current user. \param +/// assertion The MultiFactorAssertion. +/// +/// \param displayName An optional display name associated with the multi factor +/// to enroll. +/// +/// \param completion The block invoked when the request is complete, or fails. +/// +- (void)enrollWithAssertion:(FIRMultiFactorAssertion *_Nonnull)assertion + displayName:(NSString *_Nullable)displayName + completion:(void (^_Nullable)(NSError *_Nullable))completion; +/// Unenroll the given multi factor. +/// \param completion The block invoked when the request to send the +/// verification email is complete, or fails. +/// +- (void)unenrollWithInfo:(FIRMultiFactorInfo *_Nonnull)factorInfo + completion:(void (^_Nullable)(NSError *_Nullable))completion; +/// Unenroll the given multi factor. +/// \param completion The block invoked when the request to send the +/// verification email is complete, or fails. +/// +- (void)unenrollWithFactorUID:(NSString *_Nonnull)factorUID + completion:(void (^_Nullable)(NSError *_Nullable))completion; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly) + BOOL supportsSecureCoding;) ++ (BOOL)supportsSecureCoding SWIFT_WARN_UNUSED_RESULT; +- (void)encodeWithCoder:(NSCoder *_Nonnull)coder; +- (nullable instancetype)initWithCoder:(NSCoder *_Nonnull)coder + OBJC_DESIGNATED_INITIALIZER; +@end + +SWIFT_AVAILABILITY(watchos, introduced = 7) +SWIFT_AVAILABILITY(maccatalyst, introduced = 13) SWIFT_AVAILABILITY( + macos, introduced = 10.15) SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRMultiFactor(SWIFT_EXTENSION(FirebaseAuth)) +@end + +/// The base class for asserting ownership of a second factor. This is +/// equivalent to the AuthCredential class. This class is available on iOS only. +SWIFT_CLASS_NAMED("MultiFactorAssertion") +@interface FIRMultiFactorAssertion : NSObject +/// The second factor identifier for this opaque object asserting a second +/// factor. +@property(nonatomic, copy) NSString *_Nonnull factorID; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +/// Safe public structure used to represent a second factor entity from a client +/// perspective. This class is available on iOS only. +SWIFT_CLASS_NAMED("MultiFactorInfo") +@interface FIRMultiFactorInfo : NSObject +/// The multi-factor enrollment ID. +@property(nonatomic, readonly, copy) NSString *_Nonnull UID; +/// The user friendly name of the current second factor. +@property(nonatomic, readonly, copy) NSString *_Nullable displayName; +/// The second factor enrollment date. +@property(nonatomic, readonly, copy) NSDate *_Nonnull enrollmentDate; +/// The identifier of the second factor. +@property(nonatomic, readonly, copy) NSString *_Nonnull factorID; +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly) + BOOL supportsSecureCoding;) ++ (BOOL)supportsSecureCoding SWIFT_WARN_UNUSED_RESULT; +- (void)encodeWithCoder:(NSCoder *_Nonnull)coder; +- (nullable instancetype)initWithCoder:(NSCoder *_Nonnull)coder + OBJC_DESIGNATED_INITIALIZER; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +@interface FIRMultiFactorInfo (SWIFT_EXTENSION (FirebaseAuth)) +@end + +/// The subclass of base class MultiFactorAssertion, used to assert +/// ownership of a phone second factor. This class is available on iOS only. +SWIFT_CLASS_NAMED("MultiFactorResolver") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRMultiFactorResolver : NSObject +/// The opaque session identifier for the current sign-in flow. +@property(nonatomic, readonly, strong) FIRMultiFactorSession *_Nonnull session; +/// The list of hints for the second factors needed to complete the sign-in for +/// the current session. +@property(nonatomic, readonly, copy) + NSArray *_Nonnull hints; +/// The Auth reference for the current MultiResolver. +@property(nonatomic, readonly, strong) FIRAuth *_Nonnull auth; +/// A helper function to help users complete sign in with a second factor using +/// a MultiFactorAssertion confirming the user successfully +/// completed the second factor challenge. \param completion The block invoked +/// when the request is complete, or fails. +/// +- (void)resolveSignInWithAssertion:(FIRMultiFactorAssertion *_Nonnull)assertion + completion: + (void (^_Nullable)(FIRAuthDataResult *_Nullable, + NSError *_Nullable))completion; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +/// Opaque object that identifies the current session to enroll a second factor +/// or to complete sign in when previously enrolled. Identifies the current +/// session to enroll a second factor or to complete sign in when previously +/// enrolled. It contains additional context on the existing user, notably the +/// confirmation that the user passed the first factor challenge. This class is +/// available on iOS only. +SWIFT_CLASS_NAMED("MultiFactorSession") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRMultiFactorSession : NSObject +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +/// Internal implementation of AuthCredential for generic +/// credentials. +SWIFT_CLASS_NAMED("OAuthCredential") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIROAuthCredential + : FIRAuthCredential +/// The ID Token associated with this credential. +@property(nonatomic, readonly, copy) NSString *_Nullable IDToken; +/// The access token associated with this credential. +@property(nonatomic, readonly, copy) NSString *_Nullable accessToken; +/// The secret associated with this credential. This will be nil for OAuth 2.0 +/// providers. OAuthCredential already exposes a provider getter. +/// This will help the developer determine whether an access token / secret pair +/// is needed. +@property(nonatomic, readonly, copy) NSString *_Nullable secret; +SWIFT_CLASS_PROPERTY(@property(nonatomic, class) BOOL supportsSecureCoding;) ++ (BOOL)supportsSecureCoding SWIFT_WARN_UNUSED_RESULT; ++ (void)setSupportsSecureCoding:(BOOL)value; +- (void)encodeWithCoder:(NSCoder *_Nonnull)coder; +- (nullable instancetype)initWithCoder:(NSCoder *_Nonnull)coder + OBJC_DESIGNATED_INITIALIZER; +@end + +@class NSPersonNameComponents; + +/// Utility class for constructing OAuth Sign In credentials. +SWIFT_CLASS_NAMED("OAuthProvider") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIROAuthProvider + : NSObject +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) + NSString *_Nonnull id;) ++ (NSString *_Nonnull)id SWIFT_WARN_UNUSED_RESULT; +/// Array used to configure the OAuth scopes. +@property(nonatomic, copy) NSArray *_Nullable scopes; +/// Dictionary used to configure the OAuth custom parameters. +@property(nonatomic, copy) + NSDictionary *_Nullable customParameters; +/// The provider ID indicating the specific OAuth provider this OAuthProvider +/// instance represents. +@property(nonatomic, readonly, copy) NSString *_Nonnull providerID; +/// An instance of OAuthProvider corresponding to the given provider ID. +/// \param providerID The provider ID of the IDP for which this auth provider +/// instance will be configured. +/// +/// +/// returns: +/// An instance of OAuthProvider corresponding to the specified provider ID. ++ (FIROAuthProvider *_Nonnull)providerWithProviderID: + (NSString *_Nonnull)providerID SWIFT_WARN_UNUSED_RESULT; +/// An instance of OAuthProvider corresponding to the given provider ID and auth +/// instance. \param providerID The provider ID of the IDP for which this auth +/// provider instance will be configured. +/// +/// \param auth The auth instance to be associated with the OAuthProvider +/// instance. +/// +/// +/// returns: +/// An instance of OAuthProvider corresponding to the specified provider ID. ++ (FIROAuthProvider *_Nonnull)providerWithProviderID: + (NSString *_Nonnull)providerID + auth:(FIRAuth *_Nonnull)auth + SWIFT_WARN_UNUSED_RESULT; +/// Creates an AuthCredential for the OAuth 2 provider identified +/// by provider ID, ID token, and access token. \param providerID The provider +/// ID associated with the Auth credential being created. +/// +/// \param idToken The IDToken associated with the Auth credential being +/// created. +/// +/// \param accessToken The access token associated with the Auth credential be +/// created, if available. +/// +/// +/// returns: +/// An AuthCredential for the specified provider ID, ID token and access token. ++ (FIROAuthCredential *_Nonnull) + credentialWithProviderID:(NSString *_Nonnull)providerID + IDToken:(NSString *_Nonnull)idToken + accessToken:(NSString *_Nullable)accessToken + SWIFT_WARN_UNUSED_RESULT; +/// Creates an AuthCredential for the OAuth 2 provider identified +/// by provider ID, ID token, and access token. \param providerID The provider +/// ID associated with the Auth credential being created. +/// +/// \param accessToken The access token associated with the Auth credential be +/// created, if available. +/// +/// +/// returns: +/// An AuthCredential for the specified provider ID, ID token and access token. ++ (FIROAuthCredential *_Nonnull) + credentialWithProviderID:(NSString *_Nonnull)providerID + accessToken:(NSString *_Nonnull)accessToken + SWIFT_WARN_UNUSED_RESULT; +/// Creates an AuthCredential for that OAuth 2 provider identified +/// by provider ID, ID token, raw nonce, and access token. \param providerID The +/// provider ID associated with the Auth credential being created. +/// +/// \param idToken The IDToken associated with the Auth credential being +/// created. +/// +/// \param rawNonce The raw nonce associated with the Auth credential being +/// created. +/// +/// \param accessToken The access token associated with the Auth credential be +/// created. +/// +/// +/// returns: +/// An AuthCredential for the specified provider ID, ID token and access token. ++ (FIROAuthCredential *_Nonnull) + credentialWithProviderID:(NSString *_Nonnull)providerID + IDToken:(NSString *_Nonnull)idToken + rawNonce:(NSString *_Nonnull)rawNonce + accessToken:(NSString *_Nonnull)accessToken + SWIFT_WARN_UNUSED_RESULT; +/// Creates an AuthCredential for that OAuth 2 provider identified +/// by providerID using an ID token and raw nonce. \param providerID The +/// provider ID associated with the Auth credential being created. +/// +/// \param idToken The IDToken associated with the Auth credential being +/// created. +/// +/// \param rawNonce The raw nonce associated with the Auth credential being +/// created. +/// +/// +/// returns: +/// An AuthCredential. ++ (FIROAuthCredential *_Nonnull) + credentialWithProviderID:(NSString *_Nonnull)providerID + IDToken:(NSString *_Nonnull)idToken + rawNonce:(NSString *_Nonnull)rawNonce + SWIFT_WARN_UNUSED_RESULT; +/// Used to obtain an auth credential via a mobile web flow. +/// This method is available on iOS only. +/// \param uiDelegate An optional UI delegate used to present the mobile web +/// flow. +/// +- (void)getCredentialWithUIDelegate:(id _Nullable)uiDelegate + completion:(void (^_Nonnull)( + FIRAuthCredential *_Nullable, + NSError *_Nullable))completionHandler + SWIFT_AVAILABILITY(watchos, introduced = 8) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13); +/// Creates an AuthCredential for the Sign in with Apple OAuth 2 +/// provider identified by ID token, raw nonce, and full name.This method is +/// specific to the Sign in with Apple OAuth 2 provider as this provider +/// requires the full name to be passed explicitly. \param idToken The IDToken +/// associated with the Sign in with Apple Auth credential being created. +/// +/// \param rawNonce The raw nonce associated with the Sign in with Apple Auth +/// credential being created. +/// +/// \param fullName The full name associated with the Sign in with Apple Auth +/// credential being created. +/// +/// +/// returns: +/// An AuthCredential. ++ (FIROAuthCredential *_Nonnull) + appleCredentialWithIDToken:(NSString *_Nonnull)idToken + rawNonce:(NSString *_Nullable)rawNonce + fullName:(NSPersonNameComponents *_Nullable)fullName + SWIFT_WARN_UNUSED_RESULT; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +/// Implementation of AuthCredential for Phone Auth credentials. +/// This class is available on iOS only. +SWIFT_CLASS_NAMED("PhoneAuthCredential") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRPhoneAuthCredential + : FIRAuthCredential +SWIFT_CLASS_PROPERTY(@property(nonatomic, class) BOOL supportsSecureCoding;) ++ (BOOL)supportsSecureCoding SWIFT_WARN_UNUSED_RESULT; ++ (void)setSupportsSecureCoding:(BOOL)value; +- (void)encodeWithCoder:(NSCoder *_Nonnull)coder; +- (nullable instancetype)initWithCoder:(NSCoder *_Nonnull)coder + OBJC_DESIGNATED_INITIALIZER; +@end + +@class FIRPhoneMultiFactorInfo; + +/// A concrete implementation of AuthProvider for phone auth +/// providers. This class is available on iOS only. +SWIFT_CLASS_NAMED("PhoneAuthProvider") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRPhoneAuthProvider : NSObject +/// A string constant identifying the phone identity provider. +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) + NSString *_Nonnull id;) ++ (NSString *_Nonnull)id SWIFT_WARN_UNUSED_RESULT; +/// Returns an instance of PhoneAuthProvider for the default +/// Auth object. ++ (FIRPhoneAuthProvider *_Nonnull)provider SWIFT_WARN_UNUSED_RESULT; +/// Returns an instance of PhoneAuthProvider for the provided +/// Auth object. \param auth The auth object to associate with the +/// phone auth provider instance. +/// ++ (FIRPhoneAuthProvider *_Nonnull)providerWithAuth:(FIRAuth *_Nonnull)auth + SWIFT_WARN_UNUSED_RESULT; +/// Starts the phone number authentication flow by sending a verification code +/// to the specified phone number. Possible error codes:
    +///
  • +/// AuthErrorCodeCaptchaCheckFailed - Indicates that the +/// reCAPTCHA token obtained by the Firebase Auth is invalid or has expired. +///
  • +///
  • +/// AuthErrorCodeQuotaExceeded - Indicates that the phone +/// verification quota for this project has been exceeded. +///
  • +///
  • +/// AuthErrorCodeInvalidPhoneNumber - Indicates that the phone +/// number provided is invalid. +///
  • +///
  • +/// AuthErrorCodeMissingPhoneNumber - Indicates that a phone +/// number was not provided. +///
  • +///
+/// \param phoneNumber The phone number to be verified. +/// +/// \param uiDelegate An object used to present the SFSafariViewController. The +/// object is retained by this method until the completion block is executed. +/// +/// \param completion The callback to be invoked when the verification flow is +/// finished. +/// +- (void)verifyPhoneNumber:(NSString *_Nonnull)phoneNumber + UIDelegate:(id _Nullable)uiDelegate + completion:(void (^_Nullable)(NSString *_Nullable, + NSError *_Nullable))completion; +/// Verify ownership of the second factor phone number by the current user. +/// \param phoneNumber The phone number to be verified. +/// +/// \param uiDelegate An object used to present the SFSafariViewController. The +/// object is retained by this method until the completion block is executed. +/// +/// \param multiFactorSession A session to identify the MFA flow. For +/// enrollment, this identifies the user trying to enroll. For sign-in, this +/// identifies that the user already passed the first factor challenge. +/// +/// \param completion The callback to be invoked when the verification flow is +/// finished. +/// +- (void)verifyPhoneNumber:(NSString *_Nonnull)phoneNumber + UIDelegate:(id _Nullable)uiDelegate + multiFactorSession:(FIRMultiFactorSession *_Nullable)multiFactorSession + completion:(void (^_Nullable)(NSString *_Nullable, + NSError *_Nullable))completion; +/// Verify ownership of the second factor phone number by the current user. +/// \param multiFactorInfo The phone multi factor whose number need to be +/// verified. +/// +/// \param uiDelegate An object used to present the SFSafariViewController. The +/// object is retained by this method until the completion block is executed. +/// +/// \param multiFactorSession A session to identify the MFA flow. For +/// enrollment, this identifies the user trying to enroll. For sign-in, this +/// identifies that the user already passed the first factor challenge. +/// +/// \param completion The callback to be invoked when the verification flow is +/// finished. +/// +- (void) + verifyPhoneNumberWithMultiFactorInfo: + (FIRPhoneMultiFactorInfo *_Nonnull)multiFactorInfo + UIDelegate: + (id _Nullable)uiDelegate + multiFactorSession: + (FIRMultiFactorSession *_Nullable)multiFactorSession + completion:(void (^_Nullable)(NSString *_Nullable, + NSError *_Nullable)) + completion; +/// Creates an AuthCredential for the phone number provider +/// identified by the verification ID and verification code. \param +/// verificationID The verification ID obtained from invoking +/// verifyPhoneNumber:completion: +/// +/// \param verificationCode The verification code obtained from the user. +/// +/// +/// returns: +/// The corresponding phone auth credential for the verification ID and +/// verification code provided. +- (FIRPhoneAuthCredential *_Nonnull) + credentialWithVerificationID:(NSString *_Nonnull)verificationID + verificationCode:(NSString *_Nonnull)verificationCode + SWIFT_WARN_UNUSED_RESULT; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +/// The subclass of base class FIRMultiFactorAssertion, used to assert ownership +/// of a phone second factor. This class is available on iOS only. +SWIFT_CLASS_NAMED("PhoneMultiFactorAssertion") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRPhoneMultiFactorAssertion + : FIRMultiFactorAssertion +@end + +/// The data structure used to help initialize an assertion for a second factor +/// entity to the Firebase Auth/CICP server. Depending on the type of second +/// factor, this will help generate the assertion. This class is available on +/// iOS only. +SWIFT_CLASS_NAMED("PhoneMultiFactorGenerator") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRPhoneMultiFactorGenerator : NSObject +/// Initializes the MFA assertion to confirm ownership of the phone second +/// factor. Note that this API is used for both enrolling and signing in with a +/// phone second factor. \param phoneAuthCredential The phone auth credential +/// used for multi factor flows. +/// ++ (FIRPhoneMultiFactorAssertion *_Nonnull)assertionWithCredential: + (FIRPhoneAuthCredential *_Nonnull)phoneAuthCredential + SWIFT_WARN_UNUSED_RESULT; +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; +@end + +/// Extends the MultiFactorInfo class for phone number second factors. +/// The identifier of this second factor is “phone”. +/// This class is available on iOS only. +SWIFT_CLASS_NAMED("PhoneMultiFactorInfo") +@interface FIRPhoneMultiFactorInfo : FIRMultiFactorInfo +/// The string identifier for using phone as a second factor. +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) + NSString *_Nonnull FIRPhoneMultiFactorID;) ++ (NSString *_Nonnull)FIRPhoneMultiFactorID SWIFT_WARN_UNUSED_RESULT; +/// The string identifier for using TOTP as a second factor. +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) + NSString *_Nonnull FIRTOTPMultiFactorID;) ++ (NSString *_Nonnull)FIRTOTPMultiFactorID SWIFT_WARN_UNUSED_RESULT; +/// This is the phone number associated with the current second factor. +@property(nonatomic, copy) NSString *_Nonnull phoneNumber; +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly) + BOOL supportsSecureCoding;) ++ (BOOL)supportsSecureCoding SWIFT_WARN_UNUSED_RESULT; +- (nullable instancetype)initWithCoder:(NSCoder *_Nonnull)coder + OBJC_DESIGNATED_INITIALIZER; +- (void)encodeWithCoder:(NSCoder *_Nonnull)coder; +@end + +/// The subclass of base class MultiFactorAssertion, used to assert ownership of +/// a TOTP (Time-based One Time Password) second factor. This class is available +/// on iOS only. +SWIFT_CLASS_NAMED("TOTPMultiFactorAssertion") +@interface FIRTOTPMultiFactorAssertion : FIRMultiFactorAssertion +@end + +@class FIRTOTPSecret; + +/// The data structure used to help initialize an assertion for a second factor +/// entity to the Firebase Auth/CICP server. Depending on the type of second +/// factor, this will help generate the assertion. This class is available on +/// iOS only. +SWIFT_CLASS_NAMED("TOTPMultiFactorGenerator") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRTOTPMultiFactorGenerator : NSObject +/// Creates a TOTP secret as part of enrolling a TOTP second factor. Used for +/// generating a QR code URL or inputting into a TOTP app. This method uses the +/// auth instance corresponding to the user in the multiFactorSession. \param +/// session The multiFactorSession instance. +/// +/// \param completion Completion block +/// ++ (void)generateSecretWithMultiFactorSession: + (FIRMultiFactorSession *_Nonnull)session + completion:(void (^_Nonnull)( + FIRTOTPSecret *_Nullable, + NSError *_Nullable))completion; +/// Initializes the MFA assertion to confirm ownership of the TOTP second +/// factor. This assertion is used to complete enrollment of TOTP as a second +/// factor. \param secret The TOTP secret. +/// +/// \param oneTimePassword One time password string. +/// +/// +/// returns: +/// The MFA assertion. ++ (FIRTOTPMultiFactorAssertion *_Nonnull) + assertionForEnrollmentWithSecret:(FIRTOTPSecret *_Nonnull)secret + oneTimePassword:(NSString *_Nonnull)oneTimePassword + SWIFT_WARN_UNUSED_RESULT; +/// Initializes the MFA assertion to confirm ownership of the TOTP second +/// factor. This assertion is used to complete signIn with TOTP as a second +/// factor. \param enrollmentID The ID that identifies the enrolled TOTP second +/// factor. +/// +/// \param oneTimePassword one time password string. +/// +/// +/// returns: +/// The MFA assertion. ++ (FIRTOTPMultiFactorAssertion *_Nonnull) + assertionForSignInWithEnrollmentID:(NSString *_Nonnull)enrollmentID + oneTimePassword:(NSString *_Nonnull)oneTimePassword + SWIFT_WARN_UNUSED_RESULT; +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; +@end + +/// The subclass of base class MultiFactorAssertion, used to assert ownership of +/// a TOTP (Time-based One Time Password) second factor. This class is available +/// on iOS only. +SWIFT_CLASS_NAMED("TOTPSecret") +@interface FIRTOTPSecret : NSObject +/// Returns the shared secret key/seed used to generate time-based one-time +/// passwords. +- (NSString *_Nonnull)sharedSecretKey SWIFT_WARN_UNUSED_RESULT; +/// Returns a QRCode URL as described in +/// https://github.com/google/google-authenticator/wiki/Key-Uri-Format. +/// This can be displayed to the user as a QRCode to be scanned into a TOTP app +/// like Google Authenticator. \param accountName The name of the account/app. +/// +/// \param issuer Issuer of the TOTP(likely the app name). +/// +/// +/// returns: +/// A QRCode URL string. +- (NSString *_Nonnull) + generateQRCodeURLWithAccountName:(NSString *_Nonnull)accountName + issuer:(NSString *_Nonnull)issuer + SWIFT_WARN_UNUSED_RESULT; +/// Opens the specified QR Code URL in a password manager like iCloud Keychain. +/// See more details +/// here +- (void)openInOTPAppWithQRCodeURL:(NSString *_Nonnull)qrCodeURL; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +/// Utility class for constructing Twitter Sign In credentials. +SWIFT_CLASS_NAMED("TwitterAuthProvider") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRTwitterAuthProvider : NSObject +/// A string constant identifying the Twitter identity provider. +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) + NSString *_Nonnull id;) ++ (NSString *_Nonnull)id SWIFT_WARN_UNUSED_RESULT; +/// Creates an AuthCredential for a Twitter sign in. +/// \param token The Twitter OAuth token. +/// +/// \param secret The Twitter OAuth secret. +/// +/// +/// returns: +/// An AuthCredential containing the Twitter credentials. ++ (FIRAuthCredential *_Nonnull)credentialWithToken:(NSString *_Nonnull)token + secret:(NSString *_Nonnull)secret + SWIFT_WARN_UNUSED_RESULT; +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER SWIFT_UNAVAILABLE; +@end + +/// Represents user data returned from an identity provider. +SWIFT_PROTOCOL_NAMED("UserInfo") +@protocol FIRUserInfo +/// The provider identifier. +@property(nonatomic, readonly, copy) NSString *_Nonnull providerID; +/// The provider’s user ID for the user. +@property(nonatomic, readonly, copy) NSString *_Nonnull uid; +/// The name of the user. +@property(nonatomic, readonly, copy) NSString *_Nullable displayName; +/// The URL of the user’s profile photo. +@property(nonatomic, readonly, copy) NSURL *_Nullable photoURL; +/// The user’s email address. +@property(nonatomic, readonly, copy) NSString *_Nullable email; +/// A phone number associated with the user. +/// This property is only available for users authenticated via phone number +/// auth. +@property(nonatomic, readonly, copy) NSString *_Nullable phoneNumber; +@end + +@class FIRUserMetadata; +@class FIRUserProfileChangeRequest; + +/// Represents a user. +/// Firebase Auth does not attempt to validate users +/// when loading them from the keychain. Invalidated users (such as those +/// whose passwords have been changed on another client) are automatically +/// logged out when an auth-dependent operation is attempted or when the +/// ID token is automatically refreshed. +/// This class is thread-safe. +SWIFT_CLASS_NAMED("User") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) @interface FIRUser + : NSObject +/// Indicates the user represents an anonymous user. +@property(nonatomic, readonly) BOOL isAnonymous; +/// Indicates the user represents an anonymous user. +- (BOOL)anonymous SWIFT_WARN_UNUSED_RESULT; +/// Indicates the email address associated with this user has been verified. +@property(nonatomic, readonly) BOOL isEmailVerified; +/// Indicates the email address associated with this user has been verified. +- (BOOL)emailVerified SWIFT_WARN_UNUSED_RESULT; +/// Profile data for each identity provider, if any. +/// This data is cached on sign-in and updated when linking or unlinking. +@property(nonatomic, readonly, copy) + NSArray > *_Nonnull providerData; +/// Metadata associated with the Firebase user in question. +@property(nonatomic, readonly, strong) FIRUserMetadata *_Nonnull metadata; +/// The tenant ID of the current user. nil if none is available. +@property(nonatomic, readonly, copy) NSString *_Nullable tenantID; +/// Multi factor object associated with the user. +/// This property is available on iOS only. +@property(nonatomic, readonly, strong) FIRMultiFactor *_Nonnull multiFactor; +/// [Deprecated] Updates the email address for the user. +/// On success, the cached user profile data is updated. Returns an error when +/// Email +/// Enumeration Protection is enabled. May fail if there is already an +/// account with this email address that was created using email and password +/// authentication. Invoked asynchronously on the main thread in the future. +/// Possible error codes: +///
    +///
  • +/// AuthErrorCodeInvalidRecipientEmail - Indicates an invalid +/// recipient email was sent in the request. +///
  • +///
  • +/// AuthErrorCodeInvalidSender - Indicates an invalid sender +/// email is set in the console for this action. +///
  • +///
  • +/// AuthErrorCodeInvalidMessagePayload - Indicates an invalid +/// email template for sending update email. +///
  • +///
  • +/// AuthErrorCodeEmailAlreadyInUse - Indicates the email is +/// already in use by another account. +///
  • +///
  • +/// AuthErrorCodeInvalidEmail - Indicates the email address is +/// malformed. +///
  • +///
  • +/// AuthErrorCodeRequiresRecentLogin - Updating a user’s email +/// is a security sensitive operation that requires a recent login from the +/// user. This error indicates the user has not signed in recently enough. +/// To resolve, reauthenticate the user by calling +/// reauthenticate(with:). +///
  • +///
+/// \param email The email address for the user. +/// +/// \param completion Optionally; the block invoked when the user profile change +/// has finished. +/// +- (void)updateEmail:(NSString *_Nonnull)email + completion:(void (^_Nullable)(NSError *_Nullable))completion + SWIFT_DEPRECATED_MSG( + "`updateEmail` is deprecated and will be removed in a future release. " + "Use sendEmailVerification(beforeUpdatingEmail:) instead."); +/// Updates the password for the user. On success, the cached user profile data +/// is updated. Invoked asynchronously on the main thread in the future. +/// Possible error codes: +///
    +///
  • +/// AuthErrorCodeOperationNotAllowed - Indicates the +/// administrator disabled sign in with the specified identity provider. +///
  • +///
  • +/// AuthErrorCodeRequiresRecentLogin - Updating a user’s +/// password is a security sensitive operation that requires a recent login +/// from the user. This error indicates the user has not signed in recently +/// enough. To resolve, reauthenticate the user by calling +/// reauthenticate(with:). +///
  • +///
  • +/// AuthErrorCodeWeakPassword - Indicates an attempt to set a +/// password that is considered too weak. The +/// NSLocalizedFailureReasonErrorKey field in the +/// userInfo dictionary object will contain more detailed +/// explanation that can be shown to the user. +///
  • +///
+/// \param password The new password for the user. +/// +/// \param completion Optionally; the block invoked when the user profile change +/// has finished. +/// +- (void)updatePassword:(NSString *_Nonnull)password + completion:(void (^_Nullable)(NSError *_Nullable))completion; +/// Updates the phone number for the user. On success, the cached user profile +/// data is updated. Invoked asynchronously on the main thread in the future. +/// This method is available on iOS only. +/// Possible error codes: +///
    +///
  • +/// AuthErrorCodeRequiresRecentLogin - Updating a user’s phone +/// number is a security sensitive operation that requires a recent login +/// from the user. This error indicates the user has not signed in recently +/// enough. To resolve, reauthenticate the user by calling +/// reauthenticate(with:). +///
  • +///
+/// \param credential The new phone number credential corresponding to the +/// phone number to be added to the Firebase account, if a phone number is +/// already linked to the account this new phone number will replace it. +/// +/// \param completion Optionally; the block invoked when the user profile change +/// has finished. +/// +- (void)updatePhoneNumberCredential:(FIRPhoneAuthCredential *_Nonnull)credential + completion: + (void (^_Nullable)(NSError *_Nullable))completion; +/// Creates an object which may be used to change the user’s profile data. +/// Set the properties of the returned object, then call +/// UserProfileChangeRequest.commitChanges() to perform the updates +/// atomically. +/// +/// returns: +/// An object which may be used to change the user’s profile data atomically. +- (FIRUserProfileChangeRequest *_Nonnull) + profileChangeRequest SWIFT_WARN_UNUSED_RESULT; +/// A refresh token; useful for obtaining new access tokens independently. +/// This property should only be used for advanced scenarios, and is not +/// typically needed. +@property(nonatomic, readonly, copy) NSString *_Nullable refreshToken; +/// Reloads the user’s profile data from the server. +/// May fail with an AuthErrorCodeRequiresRecentLogin error code. +/// In this case you should call reauthenticate(with:) before +/// re-invoking updateEmail(to:). \param completion Optionally; the +/// block invoked when the reload has finished. Invoked asynchronously on the +/// main thread in the future. +/// +- (void)reloadWithCompletion:(void (^_Nullable)(NSError *_Nullable))completion; +/// Renews the user’s authentication tokens by validating a fresh set of +/// credentials supplied by the user and returns additional identity provider +/// data. If the user associated with the supplied credential is different from +/// the current user, or if the validation of the supplied credentials fails; an +/// error is returned and the current user remains signed in. Possible error +/// codes:
    +///
  • +/// AuthErrorCodeInvalidCredential - Indicates the supplied +/// credential is invalid. This could happen if it has expired or it is +/// malformed. +///
  • +///
  • +/// AuthErrorCodeOperationNotAllowed - Indicates that accounts +/// with the identity provider represented by the credential are not +/// enabled. Enable them in the Auth section of the Firebase console. +///
  • +///
  • +/// AuthErrorCodeEmailAlreadyInUse - Indicates the email +/// asserted by the credential (e.g. the email in a Facebook access token) +/// is already in use by an existing account, that cannot be authenticated +/// with this method. This error will only be thrown if the “One account per +/// email address” setting is enabled in the Firebase console, under Auth +/// settings. Please note that the error code raised in this specific +/// situation may not be the same on Web and Android. +///
  • +///
  • +/// AuthErrorCodeUserDisabled - Indicates the user’s account is +/// disabled. +///
  • +///
  • +/// AuthErrorCodeWrongPassword - Indicates the user attempted +/// reauthentication with an incorrect password, if credential is of the +/// type EmailPasswordAuthCredential. +///
  • +///
  • +/// AuthErrorCodeUserMismatch - Indicates that an attempt was +/// made to reauthenticate with a user which is not the current user. +///
  • +///
  • +/// AuthErrorCodeInvalidEmail - Indicates the email address is +/// malformed. +///
  • +///
+/// \param credential A user-supplied credential, which will be validated by the +/// server. This can be a successful third-party identity provider sign-in, or +/// an email address and password. +/// +/// \param completion Optionally; the block invoked when the re-authentication +/// operation has finished. Invoked asynchronously on the main thread in the +/// future. +/// +- (void)reauthenticateWithCredential:(FIRAuthCredential *_Nonnull)credential + completion: + (void (^_Nullable)(FIRAuthDataResult *_Nullable, + NSError *_Nullable))completion; +/// Renews the user’s authentication using the provided auth provider instance. +/// This method is available on iOS only. +/// \param provider An instance of an auth provider used to initiate the +/// reauthenticate flow. +/// +/// \param uiDelegate Optionally an instance of a class conforming to the +/// AuthUIDelegate protocol, used for presenting the web context. +/// If nil, a default AuthUIDelegate will be used. +/// +/// \param completion Optionally; a block which is invoked when the +/// reauthenticate flow finishes, or is canceled. Invoked asynchronously on the +/// main thread in the future. +/// +- (void)reauthenticateWithProvider: + (id _Nonnull)provider + UIDelegate:(id _Nullable)uiDelegate + completion: + (void (^_Nullable)(FIRAuthDataResult *_Nullable, + NSError *_Nullable))completion; +/// Retrieves the Firebase authentication token, possibly refreshing it if it +/// has expired. \param completion Optionally; the block invoked when the token +/// is available. Invoked asynchronously on the main thread in the future. +/// +- (void)getIDTokenWithCompletion: + (void (^_Nullable)(NSString *_Nullable, NSError *_Nullable))completion; +/// Retrieves the Firebase authentication token, possibly refreshing it if it +/// has expired. The authentication token will be refreshed (by making a network +/// request) if it has expired, or if forceRefresh is +/// true. \param forceRefresh Forces a token refresh. Useful if the +/// token becomes invalid for some reason other than an expiration. +/// +/// \param completion Optionally; the block invoked when the token is available. +/// Invoked asynchronously on the main thread in the future. +/// +- (void)getIDTokenForcingRefresh:(BOOL)forceRefresh + completion: + (void (^_Nullable)(NSString *_Nullable, + NSError *_Nullable))completion; +/// Retrieves the Firebase authentication token, possibly refreshing it if it +/// has expired. \param completion Optionally; the block invoked when the token +/// is available. Invoked asynchronously on the main thread in the future. +/// +- (void)getIDTokenResultWithCompletion: + (void (^_Nullable)(FIRAuthTokenResult *_Nullable, + NSError *_Nullable))completion; +/// Retrieves the Firebase authentication token, possibly refreshing it if it +/// has expired. The authentication token will be refreshed (by making a network +/// request) if it has expired, or if forcingRefresh is +/// true. \param forcingRefresh Forces a token refresh. Useful if +/// the token becomes invalid for some reason other than an expiration. +/// +/// \param completion Optionally; the block invoked when the token is available. +/// Invoked asynchronously on the main thread in the future. +/// +- (void)getIDTokenResultForcingRefresh:(BOOL)forcingRefresh + completion:(void (^_Nullable)( + FIRAuthTokenResult *_Nullable, + NSError *_Nullable))completion; +/// Associates a user account from a third-party identity provider with this +/// user and returns additional identity provider data. Invoked asynchronously +/// on the main thread in the future. Possible error codes:
    +///
  • +/// AuthErrorCodeProviderAlreadyLinked - Indicates an attempt +/// to link a provider of a type already linked to this account. +///
  • +///
  • +/// AuthErrorCodeCredentialAlreadyInUse - Indicates an attempt +/// to link with a credential that has already been linked with a different +/// Firebase account. +///
  • +///
  • +/// AuthErrorCodeOperationNotAllowed - Indicates that accounts +/// with the identity provider represented by the credential are not +/// enabled. Enable them in the Auth section of the Firebase console. +///
  • +///
+/// This method may also return error codes associated with +/// updateEmail(to:) and updatePassword(to:) on +/// User. \param credential The credential for the identity +/// provider. +/// +/// \param completion Optionally; the block invoked when the unlinking is +/// complete, or fails. +/// +- (void)linkWithCredential:(FIRAuthCredential *_Nonnull)credential + completion:(void (^_Nullable)(FIRAuthDataResult *_Nullable, + NSError *_Nullable))completion; +/// Link the user with the provided auth provider instance. +/// This method is available on iOSonly. +/// \param provider An instance of an auth provider used to initiate the link +/// flow. +/// +/// \param uiDelegate Optionally an instance of a class conforming to the +/// AuthUIDelegate protocol used for presenting the web context. If +/// nil, a default AuthUIDelegate will be used. +/// +/// \param completion Optionally; a block which is invoked when the link flow +/// finishes, or is canceled. Invoked asynchronously on the main thread in the +/// future. +/// +- (void)linkWithProvider:(id _Nonnull)provider + UIDelegate:(id _Nullable)uiDelegate + completion:(void (^_Nullable)(FIRAuthDataResult *_Nullable, + NSError *_Nullable))completion; +/// Disassociates a user account from a third-party identity provider with this +/// user. Invoked asynchronously on the main thread in the future. Possible +/// error codes:
    +///
  • +/// AuthErrorCodeNoSuchProvider - Indicates an attempt to +/// unlink a provider that is not linked to the account. +///
  • +///
  • +/// AuthErrorCodeRequiresRecentLogin - Updating email is a +/// security sensitive operation that requires a recent login from the user. +/// This error indicates the user has not signed in recently enough. To +/// resolve, reauthenticate the user by calling +/// reauthenticate(with:). +///
  • +///
+/// \param provider The provider ID of the provider to unlink. +/// +/// \param completion Optionally; the block invoked when the unlinking is +/// complete, or fails. +/// +- (void)unlinkFromProvider:(NSString *_Nonnull)provider + completion:(void (^_Nullable)(FIRUser *_Nullable, + NSError *_Nullable))completion; +/// Initiates email verification for the user. +/// Possible error codes: +///
    +///
  • +/// AuthErrorCodeInvalidRecipientEmail - Indicates an invalid +/// recipient email was sent in the request. +///
  • +///
  • +/// AuthErrorCodeInvalidSender - Indicates an invalid sender +/// email is set in the console for this action. +///
  • +///
  • +/// AuthErrorCodeInvalidMessagePayload - Indicates an invalid +/// email template for sending update email. +///
  • +///
  • +/// AuthErrorCodeUserNotFound - Indicates the user account was +/// not found. +///
  • +///
+/// \param completion Optionally; the block invoked when the request to send an +/// email verification is complete, or fails. Invoked asynchronously on the main +/// thread in the future. +/// +- (void)sendEmailVerificationWithCompletion: + (void (^_Nullable)(NSError *_Nullable))completion; +/// Initiates email verification for the user. +/// Possible error codes: +///
    +///
  • +/// AuthErrorCodeInvalidRecipientEmail - Indicates an invalid +/// recipient email was sent in the request. +///
  • +///
  • +/// AuthErrorCodeInvalidSender - Indicates an invalid sender +/// email is set in the console for this action. +///
  • +///
  • +/// AuthErrorCodeInvalidMessagePayload - Indicates an invalid +/// email template for sending update email. +///
  • +///
  • +/// AuthErrorCodeUserNotFound - Indicates the user account was +/// not found. +///
  • +///
+/// \param actionCodeSettings An ActionCodeSettings object +/// containing settings related to handling action codes. +/// +/// \param completion Optionally; the block invoked when the request to send an +/// email verification is complete, or fails. Invoked asynchronously on the main +/// thread in the future. +/// +- (void)sendEmailVerificationWithActionCodeSettings: + (FIRActionCodeSettings *_Nullable)actionCodeSettings + completion: + (void (^_Nullable)( + NSError *_Nullable))completion; +/// Deletes the user account (also signs out the user, if this was the current +/// user). Possible error codes:
    +///
  • +/// AuthErrorCodeRequiresRecentLogin - Updating email is a +/// security sensitive operation that requires a recent login from the user. +/// This error indicates the user has not signed in recently enough. To +/// resolve, reauthenticate the user by calling +/// reauthenticate(with:). +///
  • +///
+/// \param completion Optionally; the block invoked when the request to delete +/// the account is complete, or fails. Invoked asynchronously on the main thread +/// in the future. +/// +- (void)deleteWithCompletion:(void (^_Nullable)(NSError *_Nullable))completion; +/// Send an email to verify the ownership of the account then update to the new +/// email. \param email The email to be updated to. +/// +/// \param completion Optionally; the block invoked when the request to send the +/// verification email is complete, or fails. +/// +- (void)sendEmailVerificationBeforeUpdatingEmail:(NSString *_Nonnull)email + completion: + (void (^_Nullable)( + NSError *_Nullable))completion; +/// Send an email to verify the ownership of the account then update to the new +/// email. \param email The email to be updated to. +/// +/// \param actionCodeSettings An ActionCodeSettings object +/// containing settings related to handling action codes. +/// +/// \param completion Optionally; the block invoked when the request to send the +/// verification email is complete, or fails. +/// +- (void) + sendEmailVerificationBeforeUpdatingEmail:(NSString *_Nonnull)email + actionCodeSettings:(FIRActionCodeSettings *_Nullable) + actionCodeSettings + completion:(void (^_Nullable)( + NSError *_Nullable))completion; +@property(nonatomic, readonly, copy) NSString *_Nonnull providerID; +/// The provider’s user ID for the user. +@property(nonatomic, copy) NSString *_Nonnull uid; +/// The name of the user. +@property(nonatomic, copy) NSString *_Nullable displayName; +/// The URL of the user’s profile photo. +@property(nonatomic, copy) NSURL *_Nullable photoURL; +/// The user’s email address. +@property(nonatomic, copy) NSString *_Nullable email; +/// A phone number associated with the user. +/// This property is only available for users authenticated via phone number +/// auth. +@property(nonatomic, copy) NSString *_Nullable phoneNumber; +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly) + BOOL supportsSecureCoding;) ++ (BOOL)supportsSecureCoding SWIFT_WARN_UNUSED_RESULT; +- (void)encodeWithCoder:(NSCoder *_Nonnull)coder; +- (nullable instancetype)initWithCoder:(NSCoder *_Nonnull)coder + OBJC_DESIGNATED_INITIALIZER; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +SWIFT_AVAILABILITY(watchos, introduced = 7) +SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, + introduced = 13) SWIFT_AVAILABILITY(ios, + introduced = 13) + @interface FIRUser(SWIFT_EXTENSION(FirebaseAuth)) +@end + +/// A data class representing the metadata corresponding to a Firebase user. +SWIFT_CLASS_NAMED("UserMetadata") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRUserMetadata : NSObject +/// Stores the last sign in date for the corresponding Firebase user. +@property(nonatomic, readonly, copy) NSDate *_Nullable lastSignInDate; +/// Stores the creation date for the corresponding Firebase user. +@property(nonatomic, readonly, copy) NSDate *_Nullable creationDate; +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly) + BOOL supportsSecureCoding;) ++ (BOOL)supportsSecureCoding SWIFT_WARN_UNUSED_RESULT; +- (void)encodeWithCoder:(NSCoder *_Nonnull)coder; +- (nullable instancetype)initWithCoder:(NSCoder *_Nonnull)coder; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +SWIFT_AVAILABILITY(watchos, introduced = 7) +SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) @interface FIRUserMetadata( + SWIFT_EXTENSION(FirebaseAuth)) +@end + +/// Represents an object capable of updating a user’s profile data. +/// Properties are marked as being part of a profile update when they are set. +/// Setting a property value to nil is not the same as leaving the property +/// unassigned. +SWIFT_CLASS_NAMED("UserProfileChangeRequest") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRUserProfileChangeRequest : NSObject +/// The name of the user. +@property(nonatomic, copy) NSString *_Nullable displayName; +/// The URL of the user’s profile photo. +@property(nonatomic, copy) NSURL *_Nullable photoURL; +/// Commits any pending changes. +/// Invoked asynchronously on the main thread in the future. +/// This method should only be called once.Once called, property values should +/// not be changed. \param completion Optionally; the block invoked when the +/// user profile change has been applied. +/// +- (void)commitChangesWithCompletion: + (void (^_Nullable)(NSError *_Nullable))completion; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +#endif +#if __has_attribute(external_source_symbol) +#pragma clang attribute pop +#endif +#if defined(__cplusplus) +#endif +#pragma clang diagnostic pop +#endif + +#elif defined(__x86_64__) && __x86_64__ +// Copyright 2024 Google LLC +// Copied from Firebase iOS SDK 11.0.0. + +// Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 +// clang-1500.1.0.2.5) +#ifndef FIREBASEAUTH_SWIFT_H +#define FIREBASEAUTH_SWIFT_H +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wgcc-compat" + +#if !defined(__has_include) +#define __has_include(x) 0 +#endif +#if !defined(__has_attribute) +#define __has_attribute(x) 0 +#endif +#if !defined(__has_feature) +#define __has_feature(x) 0 +#endif +#if !defined(__has_warning) +#define __has_warning(x) 0 +#endif + +#if __has_include() +#include +#endif + +#pragma clang diagnostic ignored "-Wauto-import" +#if defined(__OBJC__) +#include +#endif +#if defined(__cplusplus) +#include + +#include +#include +#include +#include +#include +#include +#else +#include +#include +#include +#include +#endif +#if defined(__cplusplus) +#if defined(__arm64e__) && __has_include() +#include +#else +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wreserved-macro-identifier" +#ifndef __ptrauth_swift_value_witness_function_pointer +#define __ptrauth_swift_value_witness_function_pointer(x) +#endif +#ifndef __ptrauth_swift_class_method_pointer +#define __ptrauth_swift_class_method_pointer(x) +#endif +#pragma clang diagnostic pop +#endif +#endif + +#if !defined(SWIFT_TYPEDEFS) +#define SWIFT_TYPEDEFS 1 +#if __has_include() +#include +#elif !defined(__cplusplus) +typedef uint_least16_t char16_t; +typedef uint_least32_t char32_t; +#endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +#endif + +#if !defined(SWIFT_PASTE) +#define SWIFT_PASTE_HELPER(x, y) x##y +#define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +#endif +#if !defined(SWIFT_METATYPE) +#define SWIFT_METATYPE(X) Class +#endif +#if !defined(SWIFT_CLASS_PROPERTY) +#if __has_feature(objc_class_property) +#define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +#else +#define SWIFT_CLASS_PROPERTY(...) +#endif +#endif +#if !defined(SWIFT_RUNTIME_NAME) +#if __has_attribute(objc_runtime_name) +#define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +#else +#define SWIFT_RUNTIME_NAME(X) +#endif +#endif +#if !defined(SWIFT_COMPILE_NAME) +#if __has_attribute(swift_name) +#define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +#else +#define SWIFT_COMPILE_NAME(X) +#endif +#endif +#if !defined(SWIFT_METHOD_FAMILY) +#if __has_attribute(objc_method_family) +#define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +#else +#define SWIFT_METHOD_FAMILY(X) +#endif +#endif +#if !defined(SWIFT_NOESCAPE) +#if __has_attribute(noescape) +#define SWIFT_NOESCAPE __attribute__((noescape)) +#else +#define SWIFT_NOESCAPE +#endif +#endif +#if !defined(SWIFT_RELEASES_ARGUMENT) +#if __has_attribute(ns_consumed) +#define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) +#else +#define SWIFT_RELEASES_ARGUMENT +#endif +#endif +#if !defined(SWIFT_WARN_UNUSED_RESULT) +#if __has_attribute(warn_unused_result) +#define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +#else +#define SWIFT_WARN_UNUSED_RESULT +#endif +#endif +#if !defined(SWIFT_NORETURN) +#if __has_attribute(noreturn) +#define SWIFT_NORETURN __attribute__((noreturn)) +#else +#define SWIFT_NORETURN +#endif +#endif +#if !defined(SWIFT_CLASS_EXTRA) +#define SWIFT_CLASS_EXTRA +#endif +#if !defined(SWIFT_PROTOCOL_EXTRA) +#define SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_ENUM_EXTRA) +#define SWIFT_ENUM_EXTRA +#endif +#if !defined(SWIFT_CLASS) +#if __has_attribute(objc_subclassing_restricted) +#define SWIFT_CLASS(SWIFT_NAME) \ + SWIFT_RUNTIME_NAME(SWIFT_NAME) \ + __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +#define SWIFT_CLASS_NAMED(SWIFT_NAME) \ + __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) \ + SWIFT_CLASS_EXTRA +#else +#define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +#define SWIFT_CLASS_NAMED(SWIFT_NAME) \ + SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +#endif +#endif +#if !defined(SWIFT_RESILIENT_CLASS) +#if __has_attribute(objc_class_stub) +#define SWIFT_RESILIENT_CLASS(SWIFT_NAME) \ + SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) +#define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) \ + __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) +#else +#define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) +#define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) +#endif +#endif +#if !defined(SWIFT_PROTOCOL) +#define SWIFT_PROTOCOL(SWIFT_NAME) \ + SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +#define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) \ + SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_EXTENSION) +#define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +#endif +#if !defined(OBJC_DESIGNATED_INITIALIZER) +#if __has_attribute(objc_designated_initializer) +#define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +#else +#define OBJC_DESIGNATED_INITIALIZER +#endif +#endif +#if !defined(SWIFT_ENUM_ATTR) +#if __has_attribute(enum_extensibility) +#define SWIFT_ENUM_ATTR(_extensibility) \ + __attribute__((enum_extensibility(_extensibility))) +#else +#define SWIFT_ENUM_ATTR(_extensibility) +#endif +#endif +#if !defined(SWIFT_ENUM) +#define SWIFT_ENUM(_type, _name, _extensibility) \ + enum _name : _type _name; \ + enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +#if __has_feature(generalized_swift_name) +#define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) \ + enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); \ + enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) \ + SWIFT_ENUM_EXTRA _name : _type +#else +#define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) \ + SWIFT_ENUM(_type, _name, _extensibility) +#endif +#endif +#if !defined(SWIFT_UNAVAILABLE) +#define SWIFT_UNAVAILABLE __attribute__((unavailable)) +#endif +#if !defined(SWIFT_UNAVAILABLE_MSG) +#define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) +#endif +#if !defined(SWIFT_AVAILABILITY) +#define SWIFT_AVAILABILITY(plat, ...) \ + __attribute__((availability(plat, __VA_ARGS__))) +#endif +#if !defined(SWIFT_WEAK_IMPORT) +#define SWIFT_WEAK_IMPORT __attribute__((weak_import)) +#endif +#if !defined(SWIFT_DEPRECATED) +#define SWIFT_DEPRECATED __attribute__((deprecated)) +#endif +#if !defined(SWIFT_DEPRECATED_MSG) +#define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) +#endif +#if !defined(SWIFT_DEPRECATED_OBJC) +#if __has_feature(attribute_diagnose_if_objc) +#define SWIFT_DEPRECATED_OBJC(Msg) \ + __attribute__((diagnose_if(1, Msg, "warning"))) +#else +#define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) +#endif +#endif +#if defined(__OBJC__) +#if !defined(IBSegueAction) +#define IBSegueAction +#endif +#endif +#if !defined(SWIFT_EXTERN) +#if defined(__cplusplus) +#define SWIFT_EXTERN extern "C" +#else +#define SWIFT_EXTERN extern +#endif +#endif +#if !defined(SWIFT_CALL) +#define SWIFT_CALL __attribute__((swiftcall)) +#endif +#if !defined(SWIFT_INDIRECT_RESULT) +#define SWIFT_INDIRECT_RESULT __attribute__((swift_indirect_result)) +#endif +#if !defined(SWIFT_CONTEXT) +#define SWIFT_CONTEXT __attribute__((swift_context)) +#endif +#if !defined(SWIFT_ERROR_RESULT) +#define SWIFT_ERROR_RESULT __attribute__((swift_error_result)) +#endif +#if defined(__cplusplus) +#define SWIFT_NOEXCEPT noexcept +#else +#define SWIFT_NOEXCEPT +#endif +#if !defined(SWIFT_C_INLINE_THUNK) +#if __has_attribute(always_inline) +#if __has_attribute(nodebug) +#define SWIFT_C_INLINE_THUNK \ + inline __attribute__((always_inline)) __attribute__((nodebug)) +#else +#define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline)) +#endif +#else +#define SWIFT_C_INLINE_THUNK inline +#endif +#endif +#if defined(_WIN32) +#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL) +#define SWIFT_IMPORT_STDLIB_SYMBOL __declspec(dllimport) +#endif +#else +#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL) +#define SWIFT_IMPORT_STDLIB_SYMBOL +#endif +#endif +#if defined(__OBJC__) +#if __has_feature(objc_modules) +#if __has_warning("-Watimport-in-framework-header") +#pragma clang diagnostic ignored "-Watimport-in-framework-header" +#endif +@import FirebaseAuthInterop; +@import Foundation; +@import ObjectiveC; +@import UIKit; +#endif + +#endif +#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" +#pragma clang diagnostic ignored "-Wduplicate-method-arg" +#if __has_warning("-Wpragma-clang-attribute") +#pragma clang diagnostic ignored "-Wpragma-clang-attribute" +#endif +#pragma clang diagnostic ignored "-Wunknown-pragmas" +#pragma clang diagnostic ignored "-Wnullability" +#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension" + +#if __has_attribute(external_source_symbol) +#pragma push_macro("any") +#undef any +#pragma clang attribute push( \ + __attribute__((external_source_symbol(language = "Swift", \ + defined_in = "FirebaseAuth", \ + generated_declaration))), \ + apply_to = \ + any(function, enum, objc_interface, objc_category, objc_protocol)) +#pragma pop_macro("any") +#endif + +#if defined(__OBJC__) +enum FIRActionCodeOperation : NSInteger; +@class NSString; + +/// Manages information regarding action codes. +SWIFT_CLASS_NAMED("ActionCodeInfo") +@interface FIRActionCodeInfo : NSObject +/// The operation being performed. +@property(nonatomic, readonly) enum FIRActionCodeOperation operation; +/// The email address to which the code was sent. The new email address in the +/// case of ActionCodeOperation.recoverEmail. +@property(nonatomic, readonly, copy) NSString *_Nonnull email; +/// The email that is being recovered in the case of +/// ActionCodeOperation.recoverEmail. +@property(nonatomic, readonly, copy) NSString *_Nullable previousEmail; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +/// Operations which can be performed with action codes. +typedef SWIFT_ENUM_NAMED(NSInteger, FIRActionCodeOperation, + "ActionCodeOperation", open){ + /// Action code for unknown operation. + FIRActionCodeOperationUnknown = 0, + /// Action code for password reset operation. + FIRActionCodeOperationPasswordReset = 1, + /// Action code for verify email operation. + FIRActionCodeOperationVerifyEmail = 2, + /// Action code for recover email operation. + FIRActionCodeOperationRecoverEmail = 3, + /// Action code for email link operation. + FIRActionCodeOperationEmailLink = 4, + /// Action code for verifying and changing email. + FIRActionCodeOperationVerifyAndChangeEmail = 5, + /// Action code for reverting second factor addition. + FIRActionCodeOperationRevertSecondFactorAddition = 6, +}; + +@class NSURL; + +/// Used to set and retrieve settings related to handling action codes. +SWIFT_CLASS_NAMED("ActionCodeSettings") +@interface FIRActionCodeSettings : NSObject +/// This URL represents the state/Continue URL in the form of a universal link. +/// This URL can should be constructed as a universal link that would either +/// directly open the app where the action code would be handled or continue to +/// the app after the action code is handled by Firebase. +@property(nonatomic, copy) NSURL *_Nullable URL; +/// Indicates whether the action code link will open the app directly or after +/// being redirected from a Firebase owned web widget. +@property(nonatomic) BOOL handleCodeInApp; +/// The iOS bundle ID, if available. The default value is the current app’s +/// bundle ID. +@property(nonatomic, copy) NSString *_Nullable iOSBundleID; +/// The Android package name, if available. +@property(nonatomic, copy) NSString *_Nullable androidPackageName; +/// The minimum Android version supported, if available. +@property(nonatomic, copy) NSString *_Nullable androidMinimumVersion; +/// Indicates whether the Android app should be installed on a device where it +/// is not available. +@property(nonatomic) BOOL androidInstallIfNotAvailable; +/// The Firebase Dynamic Link domain used for out of band code flow. +@property(nonatomic, copy) NSString *_Nullable dynamicLinkDomain; +/// Sets the iOS bundle ID. +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; +/// Sets the Android package name, the flag to indicate whether or not to +/// install the app, and the minimum Android version supported. If +/// installIfNotAvailable is set to true and the link +/// is opened on an android device, it will try to install the app if not +/// already available. Otherwise the web URL is used. \param androidPackageName +/// The Android package name. +/// +/// \param installIfNotAvailable Indicates whether or not the app should be +/// installed if not available. +/// +/// \param minimumVersion The minimum version of Android supported. +/// +- (void)setAndroidPackageName:(NSString *_Nonnull)androidPackageName + installIfNotAvailable:(BOOL)installIfNotAvailable + minimumVersion:(NSString *_Nullable)minimumVersion; +@end + +/// This class will allow developers to easily extract information about out of +/// band links. +SWIFT_CLASS_NAMED("ActionCodeURL") +@interface FIRActionCodeURL : NSObject +/// Returns the API key from the link. nil, if not provided. +@property(nonatomic, readonly, copy) NSString *_Nullable APIKey; +/// Returns the mode of oob action. +/// The property will be of ActionCodeOperation type. +/// It will return .unknown if no oob action is provided. +@property(nonatomic, readonly) enum FIRActionCodeOperation operation; +/// Returns the email action code from the link. nil, if not provided. +@property(nonatomic, readonly, copy) NSString *_Nullable code; +/// Returns the continue URL from the link. nil, if not provided. +@property(nonatomic, readonly, copy) NSURL *_Nullable continueURL; +/// Returns the language code from the link. nil, if not provided. +@property(nonatomic, readonly, copy) NSString *_Nullable languageCode; +/// Construct an ActionCodeURL from an out of band link (e.g. email +/// link). \param link The oob link string used to construct the action code +/// URL. +/// +/// +/// returns: +/// The ActionCodeURL object constructed based on the oob link provided. +- (nullable instancetype)actionCodeURLWithLink:(NSString *_Nonnull)link + OBJC_DESIGNATED_INITIALIZER SWIFT_METHOD_FAMILY(init); +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +@class NSCoder; + +SWIFT_CLASS_NAMED("AdditionalUserInfo") +@interface FIRAdditionalUserInfo : NSObject +/// The provider identifier. +@property(nonatomic, readonly, copy) NSString *_Nonnull providerID; +/// Dictionary containing the additional IdP specific information. +@property(nonatomic, readonly, copy) + NSDictionary *_Nullable profile; +/// The name of the user. +@property(nonatomic, readonly, copy) NSString *_Nullable username; +/// Indicates whether or not the current user was signed in for the first time. +@property(nonatomic, readonly) BOOL isNewUser; +/// Indicates whether or not the current user was signed in for the first time. +- (BOOL)newUser SWIFT_WARN_UNUSED_RESULT; +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly) + BOOL supportsSecureCoding;) ++ (BOOL)supportsSecureCoding SWIFT_WARN_UNUSED_RESULT; +- (nullable instancetype)initWithCoder:(NSCoder *_Nonnull)aDecoder + OBJC_DESIGNATED_INITIALIZER; +- (void)encodeWithCoder:(NSCoder *_Nonnull)aCoder; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +@interface FIRAdditionalUserInfo (SWIFT_EXTENSION (FirebaseAuth)) < + NSSecureCoding> +@end + +@class FIRApp; +@class FIRUser; +@class FIRAuthSettings; +@class FIRAuthDataResult; +@protocol FIRFederatedAuthProvider; +@protocol FIRAuthUIDelegate; +@class FIRAuthCredential; +@protocol NSObject; +@class NSError; +@class NSData; +enum FIRAuthAPNSTokenType : NSInteger; + +/// Manages authentication for Firebase apps. +/// This class is thread-safe. +SWIFT_CLASS_NAMED("Auth") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) @interface FIRAuth + : NSObject +/// Gets the auth object for the default Firebase app. +/// The default Firebase app must have already been configured or an exception +/// will be raised. ++ (FIRAuth *_Nonnull)auth SWIFT_WARN_UNUSED_RESULT; +/// Gets the auth object for a FirebaseApp. +/// \param app The app for which to retrieve the associated Auth +/// instance. +/// +/// +/// returns: +/// The Auth instance associated with the given app. ++ (FIRAuth *_Nonnull)authWithApp:(FIRApp *_Nonnull)app SWIFT_WARN_UNUSED_RESULT; +/// Gets the FirebaseApp object that this auth object is connected +/// to. +@property(nonatomic, readonly, weak) FIRApp *_Nullable app; +/// Synchronously gets the cached current user, or null if there is none. +@property(nonatomic, readonly, strong) FIRUser *_Nullable currentUser; +/// The current user language code. +/// This property can be set to the app’s current language by +/// calling useAppLanguage(). +/// The string used to set this property must be a language code that follows +/// BCP 47. +@property(nonatomic, copy) NSString *_Nullable languageCode; +/// Contains settings related to the auth object. +@property(nonatomic, strong) FIRAuthSettings *_Nullable settings; +/// The current user access group that the Auth instance is using. +/// Default is nil. +@property(nonatomic, readonly, copy) NSString *_Nullable userAccessGroup; +/// Contains shareAuthStateAcrossDevices setting related to the auth object. +/// If userAccessGroup is not set, setting shareAuthStateAcrossDevices will +/// have no effect. You should set shareAuthStateAcrossDevices to its desired +/// state and then set the userAccessGroup after. +@property(nonatomic) BOOL shareAuthStateAcrossDevices; +/// The tenant ID of the auth instance. nil if none is available. +@property(nonatomic, copy) NSString *_Nullable tenantID; +/// The custom authentication domain used to handle all sign-in redirects. +/// End-users will see +/// this domain when signing in. This domain must be allowlisted in the Firebase +/// Console. +@property(nonatomic, copy) NSString *_Nullable customAuthDomain; +/// Sets the currentUser on the receiver to the provided user +/// object. \param user The user object to be set as the current user of the +/// calling Auth instance. +/// +/// \param completion Optionally; a block invoked after the user of the calling +/// Auth instance has been updated or an error was encountered. +/// +- (void)updateCurrentUser:(FIRUser *_Nullable)user + completion:(void (^_Nullable)(NSError *_Nullable))completion; +/// [Deprecated] Fetches the list of all sign-in methods previously used for the +/// provided email address. This method returns an empty list when Email +/// Enumeration Protection is enabled, irrespective of the number of +/// authentication methods available for the given email. Possible error codes: +/// AuthErrorCodeInvalidEmail - Indicates the email address is +/// malformed. \param email The email address for which to obtain a list of +/// sign-in methods. +/// +/// \param completion Optionally; a block which is invoked when the list of sign +/// in methods for the specified email address is ready or an error was +/// encountered. Invoked asynchronously on the main thread in the future. +/// +- (void)fetchSignInMethodsForEmail:(NSString *_Nonnull)email + completion: + (void (^_Nullable)(NSArray *_Nullable, + NSError *_Nullable))completion + SWIFT_DEPRECATED_MSG( + "`fetchSignInMethods` is deprecated and will be removed in a future " + "release. This method returns an empty list when Email Enumeration " + "Protection is enabled."); +/// Signs in using an email address and password. +/// When Email +/// Enumeration Protection is enabled, this method fails with an error in +/// case of an invalid email/password. Possible error codes:
    +///
  • +/// AuthErrorCodeOperationNotAllowed - Indicates that email and +/// password accounts are not enabled. Enable them in the Auth section of +/// the Firebase console. +///
  • +///
  • +/// AuthErrorCodeUserDisabled - Indicates the user’s account is +/// disabled. +///
  • +///
  • +/// AuthErrorCodeWrongPassword - Indicates the user attempted +/// sign in with an incorrect password. +///
  • +///
  • +/// AuthErrorCodeInvalidEmail - Indicates the email address is +/// malformed. +///
  • +///
+/// \param email The user’s email address. +/// +/// \param password The user’s password. +/// +/// \param completion Optionally; a block which is invoked when the sign in flow +/// finishes, or is canceled. Invoked asynchronously on the main thread in the +/// future. +/// +- (void)signInWithEmail:(NSString *_Nonnull)email + password:(NSString *_Nonnull)password + completion:(void (^_Nullable)(FIRAuthDataResult *_Nullable, + NSError *_Nullable))completion; +/// Signs in using an email address and email sign-in link. +/// Possible error codes: +///
    +///
  • +/// AuthErrorCodeOperationNotAllowed - Indicates that email and +/// password accounts are not enabled. Enable them in the Auth section of +/// the Firebase console. +///
  • +///
  • +/// AuthErrorCodeUserDisabled - Indicates the user’s account is +/// disabled. +///
  • +///
  • +/// AuthErrorCodeWrongPassword - Indicates the user attempted +/// sign in with an incorrect password. +///
  • +///
  • +/// AuthErrorCodeInvalidEmail - Indicates the email address is +/// malformed. +///
  • +///
+/// \param email The user’s email address. +/// +/// \param link The email sign-in link. +/// +/// \param completion Optionally; a block which is invoked when the sign in flow +/// finishes, or is canceled. Invoked asynchronously on the main thread in the +/// future. +/// +- (void)signInWithEmail:(NSString *_Nonnull)email + link:(NSString *_Nonnull)link + completion:(void (^_Nullable)(FIRAuthDataResult *_Nullable, + NSError *_Nullable))completion; +/// Signs in using the provided auth provider instance. +/// Possible error codes: +///
    +///
  • +/// AuthErrorCodeOperationNotAllowed - Indicates that email and +/// password accounts are not enabled. Enable them in the Auth section of +/// the Firebase console. +///
  • +///
  • +/// AuthErrorCodeUserDisabled - Indicates the user’s account is +/// disabled. +///
  • +///
  • +/// AuthErrorCodeWrongPassword - Indicates the user attempted +/// sign in with an incorrect password. +///
  • +///
  • +/// AuthErrorCodeWebNetworkRequestFailed - Indicates that a +/// network request within a SFSafariViewController or WKWebView failed. +///
  • +///
  • +/// AuthErrorCodeWebInternalError - Indicates that an internal +/// error occurred within a SFSafariViewController or WKWebView. +///
  • +///
  • +/// AuthErrorCodeWebSignInUserInteractionFailure - Indicates a +/// general failure during a web sign-in flow. +///
  • +///
  • +/// AuthErrorCodeWebContextAlreadyPresented - Indicates that an +/// attempt was made to present a new web context while one was already +/// being presented. +///
  • +///
  • +/// AuthErrorCodeWebContextCancelled - Indicates that the URL +/// presentation was cancelled prematurely by the user. +///
  • +///
  • +/// AuthErrorCodeAccountExistsWithDifferentCredential - +/// Indicates the email asserted by the credential (e.g. the email in a +/// Facebook access token) is already in use by an existing account, that +/// cannot be authenticated with this sign-in method. Call +/// fetchProvidersForEmail for this user’s email and then prompt them to +/// sign in with any of the sign-in providers returned. This error will only +/// be thrown if the “One account per email address” setting is enabled in +/// the Firebase console, under Auth settings. +///
  • +///
+/// \param provider An instance of an auth provider used to initiate the sign-in +/// flow. +/// +/// \param uiDelegate Optionally an instance of a class conforming to the +/// AuthUIDelegate protocol, this is used for presenting the web context. If +/// nil, a default AuthUIDelegate will be used. +/// +/// \param completion Optionally; a block which is invoked when the sign in flow +/// finishes, or is canceled. Invoked asynchronously on the main thread in the +/// future. +/// +- (void)signInWithProvider:(id _Nonnull)provider + UIDelegate:(id _Nullable)uiDelegate + completion:(void (^_Nullable)(FIRAuthDataResult *_Nullable, + NSError *_Nullable))completion + SWIFT_AVAILABILITY(watchos, unavailable) + SWIFT_AVAILABILITY(macos, unavailable) + SWIFT_AVAILABILITY(tvos, unavailable); +/// Asynchronously signs in to Firebase with the given 3rd-party credentials +/// (e.g. a Facebook login Access Token, a Google ID Token/Access Token pair, +/// etc.) and returns additional identity provider data. Possible error codes: +///
    +///
  • +/// AuthErrorCodeInvalidCredential - Indicates the supplied +/// credential is invalid. This could happen if it has expired or it is +/// malformed. +///
  • +///
  • +/// AuthErrorCodeOperationNotAllowed - Indicates that accounts +/// with the identity provider represented by the credential are not +/// enabled. Enable them in the Auth section of the Firebase console. +///
  • +///
  • +/// AuthErrorCodeAccountExistsWithDifferentCredential - +/// Indicates the email asserted by the credential (e.g. the email in a +/// Facebook access token) is already in use by an existing account, that +/// cannot be authenticated with this sign-in method. Call +/// fetchProvidersForEmail for this user’s email and then prompt them to +/// sign in with any of the sign-in providers returned. This error will only +/// be thrown if the “One account per email address” setting is enabled in +/// the Firebase console, under Auth settings. +///
  • +///
  • +/// AuthErrorCodeUserDisabled - Indicates the user’s account is +/// disabled. +///
  • +///
  • +/// AuthErrorCodeWrongPassword - Indicates the user attempted +/// sign in with an incorrect password, if credential is of the type +/// EmailPasswordAuthCredential. +///
  • +///
  • +/// AuthErrorCodeInvalidEmail - Indicates the email address is +/// malformed. +///
  • +///
  • +/// AuthErrorCodeMissingVerificationID - Indicates that the +/// phone auth credential was created with an empty verification ID. +///
  • +///
  • +/// AuthErrorCodeMissingVerificationCode - Indicates that the +/// phone auth credential was created with an empty verification code. +///
  • +///
  • +/// AuthErrorCodeInvalidVerificationCode - Indicates that the +/// phone auth credential was created with an invalid verification Code. +///
  • +///
  • +/// AuthErrorCodeInvalidVerificationID - Indicates that the +/// phone auth credential was created with an invalid verification ID. +///
  • +///
  • +/// AuthErrorCodeSessionExpired - Indicates that the SMS code +/// has expired. +///
  • +///
+/// \param credential The credential supplied by the IdP. +/// +/// \param completion Optionally; a block which is invoked when the sign in flow +/// finishes, or is canceled. Invoked asynchronously on the main thread in the +/// future. +/// +- (void)signInWithCredential:(FIRAuthCredential *_Nonnull)credential + completion:(void (^_Nullable)(FIRAuthDataResult *_Nullable, + NSError *_Nullable))completion; +/// Asynchronously creates and becomes an anonymous user. +/// If there is already an anonymous user signed in, that user will be returned +/// instead. If there is any other existing user signed in, that user will be +/// signed out. Possible error codes:
    +///
  • +/// AuthErrorCodeOperationNotAllowed - Indicates that anonymous +/// accounts are not enabled. Enable them in the Auth section of the +/// Firebase console. +///
  • +///
+/// \param completion Optionally; a block which is invoked when the sign in +/// finishes, or is canceled. Invoked asynchronously on the main thread in the +/// future. +/// +- (void)signInAnonymouslyWithCompletion: + (void (^_Nullable)(FIRAuthDataResult *_Nullable, + NSError *_Nullable))completion; +/// Asynchronously creates and becomes an anonymous user. +/// If there is already an anonymous user signed in, that user will be returned +/// instead. If there is any other existing user signed in, that user will be +/// signed out. Possible error codes:
    +///
  • +/// AuthErrorCodeOperationNotAllowed - Indicates that anonymous +/// accounts are not enabled. Enable them in the Auth section of the +/// Firebase console. +///
  • +///
+/// +/// returns: +/// The AuthDataResult after the successful signin. +- (void)signInAnonymouslyWithCompletionHandler: + (void (^_Nonnull)(FIRAuthDataResult *_Nullable, + NSError *_Nullable))completionHandler + SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13); +/// Asynchronously signs in to Firebase with the given Auth token. +/// Possible error codes: +///
    +///
  • +/// AuthErrorCodeInvalidCustomToken - Indicates a validation +/// error with the custom token. +///
  • +///
  • +/// AuthErrorCodeCustomTokenMismatch - Indicates the service +/// account and the API key belong to different projects. +///
  • +///
+/// \param token A self-signed custom auth token. +/// +/// \param completion Optionally; a block which is invoked when the sign in +/// finishes, or is canceled. Invoked asynchronously on the main thread in the +/// future. +/// +- (void)signInWithCustomToken:(NSString *_Nonnull)token + completion:(void (^_Nullable)(FIRAuthDataResult *_Nullable, + NSError *_Nullable))completion; +/// Creates and, on success, signs in a user with the given email address and +/// password. Possible error codes:
    +///
  • +/// AuthErrorCodeInvalidEmail - Indicates the email address is +/// malformed. +///
  • +///
  • +/// AuthErrorCodeEmailAlreadyInUse - Indicates the email used +/// to attempt sign up already exists. Call fetchProvidersForEmail to check +/// which sign-in mechanisms the user used, and prompt the user to sign in +/// with one of those. +///
  • +///
  • +/// AuthErrorCodeOperationNotAllowed - Indicates that email and +/// password accounts are not enabled. Enable them in the Auth section of +/// the Firebase console. +///
  • +///
  • +/// AuthErrorCodeWeakPassword - Indicates an attempt to set a +/// password that is considered too weak. The +/// NSLocalizedFailureReasonErrorKey field in the NSError.userInfo +/// dictionary object will contain more detailed explanation that can be +/// shown to the user. +///
  • +///
+/// \param email The user’s email address. +/// +/// \param password The user’s desired password. +/// +/// \param completion Optionally; a block which is invoked when the sign up flow +/// finishes, or is canceled. Invoked asynchronously on the main thread in the +/// future. +/// +- (void)createUserWithEmail:(NSString *_Nonnull)email + password:(NSString *_Nonnull)password + completion:(void (^_Nullable)(FIRAuthDataResult *_Nullable, + NSError *_Nullable))completion; +/// Resets the password given a code sent to the user outside of the app and a +/// new password for the user. Possible error codes:
    +///
  • +/// AuthErrorCodeWeakPassword - Indicates an attempt to set a +/// password that is considered too weak. +///
  • +///
  • +/// AuthErrorCodeOperationNotAllowed - Indicates the +/// administrator disabled sign in with the specified identity provider. +///
  • +///
  • +/// AuthErrorCodeExpiredActionCode - Indicates the OOB code is +/// expired. +///
  • +///
  • +/// AuthErrorCodeInvalidActionCode - Indicates the OOB code is +/// invalid. +///
  • +///
+/// \param code The reset code. +/// +/// \param newPassword The new password. +/// +/// \param completion Optionally; a block which is invoked when the request +/// finishes. Invoked asynchronously on the main thread in the future. +/// +- (void)confirmPasswordResetWithCode:(NSString *_Nonnull)code + newPassword:(NSString *_Nonnull)newPassword + completion: + (void (^_Nonnull)(NSError *_Nullable))completion; +/// Checks the validity of an out of band code. +/// \param code The out of band code to check validity. +/// +/// \param completion Optionally; a block which is invoked when the request +/// finishes. Invoked asynchronously on the main thread in the future. +/// +- (void)checkActionCode:(NSString *_Nonnull)code + completion:(void (^_Nonnull)(FIRActionCodeInfo *_Nullable, + NSError *_Nullable))completion; +/// Checks the validity of a verify password reset code. +/// \param code The password reset code to be verified. +/// +/// \param completion Optionally; a block which is invoked when the request +/// finishes. Invoked asynchronously on the main thread in the future. +/// +- (void)verifyPasswordResetCode:(NSString *_Nonnull)code + completion: + (void (^_Nonnull)(NSString *_Nullable, + NSError *_Nullable))completion; +/// Applies out of band code. +/// This method will not work for out of band codes which require an additional +/// parameter, such as password reset code. \param code The out of band code to +/// be applied. +/// +/// \param completion Optionally; a block which is invoked when the request +/// finishes. Invoked asynchronously on the main thread in the future. +/// +- (void)applyActionCode:(NSString *_Nonnull)code + completion:(void (^_Nonnull)(NSError *_Nullable))completion; +/// Initiates a password reset for the given email address. +/// This method does not throw an +/// error when there’s no user account with the given email address and Email +/// Enumeration Protection is enabled. Possible error codes:
    +///
  • +/// AuthErrorCodeInvalidRecipientEmail - Indicates an invalid +/// recipient email was sent in the request. +///
  • +///
  • +/// AuthErrorCodeInvalidSender - Indicates an invalid sender +/// email is set in the console for this action. +///
  • +///
  • +/// AuthErrorCodeInvalidMessagePayload - Indicates an invalid +/// email template for sending update email. +///
  • +///
+/// \param email The email address of the user. +/// +/// \param completion Optionally; a block which is invoked when the request +/// finishes. Invoked asynchronously on the main thread in the future. +/// +- (void)sendPasswordResetWithEmail:(NSString *_Nonnull)email + completion: + (void (^_Nullable)(NSError *_Nullable))completion; +/// Initiates a password reset for the given email address and +/// ActionCodeSettings object. This method does not throw an error +/// when there’s no user account with the given email address and Email +/// Enumeration Protection is enabled. Possible error codes:
    +///
  • +/// AuthErrorCodeInvalidRecipientEmail - Indicates an invalid +/// recipient email was sent in the request. +///
  • +///
  • +/// AuthErrorCodeInvalidSender - Indicates an invalid sender +/// email is set in the console for this action. +///
  • +///
  • +/// AuthErrorCodeInvalidMessagePayload - Indicates an invalid +/// email template for sending update email. +///
  • +///
  • +/// AuthErrorCodeMissingIosBundleID - Indicates that the iOS +/// bundle ID is missing when handleCodeInApp is set to true. +///
  • +///
  • +/// AuthErrorCodeMissingAndroidPackageName - Indicates that the +/// android package name is missing when the androidInstallApp +/// flag is set to true. +///
  • +///
  • +/// AuthErrorCodeUnauthorizedDomain - Indicates that the domain +/// specified in the continue URL is not allowlisted in the Firebase +/// console. +///
  • +///
  • +/// AuthErrorCodeInvalidContinueURI - Indicates that the domain +/// specified in the continue URL is not valid. +///
  • +///
+/// \param email The email address of the user. +/// +/// \param actionCodeSettings An ActionCodeSettings object +/// containing settings related to handling action codes. +/// +/// \param completion Optionally; a block which is invoked when the request +/// finishes. Invoked asynchronously on the main thread in the future. +/// +- (void)sendPasswordResetWithEmail:(NSString *_Nonnull)email + actionCodeSettings: + (FIRActionCodeSettings *_Nullable)actionCodeSettings + completion: + (void (^_Nullable)(NSError *_Nullable))completion; +/// Sends a sign in with email link to provided email address. +/// \param email The email address of the user. +/// +/// \param actionCodeSettings An ActionCodeSettings object +/// containing settings related to handling action codes. +/// +/// \param completion Optionally; a block which is invoked when the request +/// finishes. Invoked asynchronously on the main thread in the future. +/// +- (void)sendSignInLinkToEmail:(NSString *_Nonnull)email + actionCodeSettings: + (FIRActionCodeSettings *_Nonnull)actionCodeSettings + completion:(void (^_Nullable)(NSError *_Nullable))completion; +/// Signs out the current user. +/// Possible error codes: +///
    +///
  • +/// AuthErrorCodeKeychainError - Indicates an error occurred +/// when accessing the keychain. The +/// NSLocalizedFailureReasonErrorKey field in the +/// userInfo dictionary will contain more information about the +/// error encountered. +///
  • +///
+- (BOOL)signOut:(NSError *_Nullable *_Nullable)error; +/// Checks if link is an email sign-in link. +/// \param link The email sign-in link. +/// +/// +/// returns: +/// true when the link passed matches the expected format of an +/// email sign-in link. +- (BOOL)isSignInWithEmailLink:(NSString *_Nonnull)link SWIFT_WARN_UNUSED_RESULT; +/// Initializes reCAPTCHA using the settings configured for the project or +/// tenant. If you change the tenant ID of the Auth instance, the +/// configuration will be reloaded. +- (void)initializeRecaptchaConfigWithCompletion: + (void (^_Nullable)(NSError *_Nullable))completion; +/// Registers a block as an “auth state did change” listener. +/// To be invoked when: +///
    +///
  • +/// The block is registered as a listener, +///
  • +///
  • +/// A user with a different UID from the current user has signed in, or +///
  • +///
  • +/// The current user has signed out. +///
  • +///
+/// The block is invoked immediately after adding it according to its standard +/// invocation semantics, asynchronously on the main thread. Users should pay +/// special attention to making sure the block does not inadvertently retain +/// objects which should not be retained by the long-lived block. The block +/// itself will be retained by Auth until it is unregistered or +/// until the Auth instance is otherwise deallocated. \param +/// listener The block to be invoked. The block is always invoked asynchronously +/// on the main thread, even for it’s initial invocation after having been added +/// as a listener. +/// +/// +/// returns: +/// A handle useful for manually unregistering the block as a listener. +- (id _Nonnull)addAuthStateDidChangeListener: + (void (^_Nonnull)(FIRAuth *_Nonnull, FIRUser *_Nullable))listener + SWIFT_WARN_UNUSED_RESULT; +/// Unregisters a block as an “auth state did change” listener. +/// \param listenerHandle The handle for the listener. +/// +- (void)removeAuthStateDidChangeListener:(id _Nonnull)listenerHandle; +/// Registers a block as an “ID token did change” listener. +/// To be invoked when: +///
    +///
  • +/// The block is registered as a listener, +///
  • +///
  • +/// A user with a different UID from the current user has signed in, +///
  • +///
  • +/// The ID token of the current user has been refreshed, or +///
  • +///
  • +/// The current user has signed out. +///
  • +///
+/// The block is invoked immediately after adding it according to its standard +/// invocation semantics, asynchronously on the main thread. Users should pay +/// special attention to making sure the block does not inadvertently retain +/// objects which should not be retained by the long-lived block. The block +/// itself will be retained by Auth until it is unregistered or +/// until the Auth instance is otherwise deallocated. \param +/// listener The block to be invoked. The block is always invoked asynchronously +/// on the main thread, even for it’s initial invocation after having been added +/// as a listener. +/// +/// +/// returns: +/// A handle useful for manually unregistering the block as a listener. +- (id _Nonnull)addIDTokenDidChangeListener: + (void (^_Nonnull)(FIRAuth *_Nonnull, FIRUser *_Nullable))listener + SWIFT_WARN_UNUSED_RESULT; +/// Unregisters a block as an “ID token did change” listener. +/// \param listenerHandle The handle for the listener. +/// +- (void)removeIDTokenDidChangeListener:(id _Nonnull)listenerHandle; +/// Sets languageCode to the app’s current language. +- (void)useAppLanguage; +/// Configures Firebase Auth to connect to an emulated host instead of the +/// remote backend. +- (void)useEmulatorWithHost:(NSString *_Nonnull)host port:(NSInteger)port; +/// Revoke the users token with authorization code. +/// \param completion (Optional) the block invoked when the request to revoke +/// the token is complete, or fails. Invoked asynchronously on the main thread +/// in the future. +/// +- (void)revokeTokenWithAuthorizationCode:(NSString *_Nonnull)authorizationCode + completion:(void (^_Nullable)(NSError *_Nullable)) + completion; +/// Switch userAccessGroup and current user to the given accessGroup and the +/// user stored in it. +- (BOOL)useUserAccessGroup:(NSString *_Nullable)accessGroup + error:(NSError *_Nullable *_Nullable)error; +/// Get the stored user in the given accessGroup. +/// This API is not supported on tvOS when +/// shareAuthStateAcrossDevices is set to true. and +/// will return nil. Please refer to +/// https://github.com/firebase/firebase-ios-sdk/issues/8878 for details. +- (FIRUser *_Nullable) + getStoredUserForAccessGroup:(NSString *_Nullable)accessGroup + error:(NSError *_Nullable *_Nullable)outError + SWIFT_WARN_UNUSED_RESULT; +/// The APNs token used for phone number authentication. +/// The type of the token (production or sandbox) will be automatically +/// detected based on your provisioning profile. +/// This property is available on iOS only. +/// If swizzling is disabled, the APNs Token must be set for phone number auth +/// to work, by either setting this property or by calling +/// setAPNSToken(_:type:). +@property(nonatomic, readonly, copy) NSData *_Nullable APNSToken; +/// Sets the APNs token along with its type. +/// This method is available on iOS only. +/// If swizzling is disabled, the APNs Token must be set for phone number auth +/// to work, by either setting calling this method or by setting the +/// APNSToken property. +- (void)setAPNSToken:(NSData *_Nonnull)token + type:(enum FIRAuthAPNSTokenType)type; +/// Whether the specific remote notification is handled by Auth . +/// This method is available on iOS only. +/// If swizzling is disabled, related remote notifications must be forwarded to +/// this method for phone number auth to work. \param userInfo A dictionary that +/// contains information related to the notification in question. +/// +/// +/// returns: +/// Whether or the notification is handled. A return value of true +/// means the notification is for Firebase Auth so the caller should ignore the +/// notification from further processing, and false means the +/// notification is for the app (or another library) so the caller should +/// continue handling this notification as usual. +- (BOOL)canHandleNotification:(NSDictionary *_Nonnull)userInfo + SWIFT_WARN_UNUSED_RESULT; +/// Whether the specific URL is handled by Auth . +/// This method is available on iOS only. +/// If swizzling is disabled, URLs received by the application delegate must be +/// forwarded to this method for phone number auth to work. \param url The URL +/// received by the application delegate from any of the openURL method. +/// +/// +/// returns: +/// Whether or the URL is handled. true means the URL is for +/// Firebase Auth so the caller should ignore the URL from further processing, +/// and false means the the URL is for the app (or another library) +/// so the caller should continue handling this URL as usual. +- (BOOL)canHandleURL:(NSURL *_Nonnull)url SWIFT_WARN_UNUSED_RESULT; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +@class UIScene; +@class UIOpenURLContext; + +SWIFT_AVAILABILITY(ios, introduced = 13.0) +@interface FIRAuth (SWIFT_EXTENSION (FirebaseAuth)) +- (void)scene:(UIScene *_Nonnull)scene + openURLContexts:(NSSet *_Nonnull)URLContexts; +@end + +SWIFT_AVAILABILITY(watchos, introduced = 7) +SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, + introduced = 13) SWIFT_AVAILABILITY(ios, + introduced = 13) + @interface FIRAuth(SWIFT_EXTENSION(FirebaseAuth)) +/// Retrieves the Firebase authentication token, possibly refreshing it if it +/// has expired. This method is not for public use. It is for Firebase clients +/// of AuthInterop. +- (void)getTokenForcingRefresh:(BOOL)forceRefresh + withCallback:(void (^_Nonnull)(NSString *_Nullable, + NSError *_Nullable))callback; +/// Get the current Auth user’s UID. Returns nil if there is no user signed in. +/// This method is not for public use. It is for Firebase clients of +/// AuthInterop. +- (NSString *_Nullable)getUserID SWIFT_WARN_UNUSED_RESULT; +@end + +@class UIApplication; + +SWIFT_AVAILABILITY(ios, introduced = 13.0) +@interface FIRAuth (SWIFT_EXTENSION (FirebaseAuth)) +- (void)application:(UIApplication *_Nonnull)application + didRegisterForRemoteNotificationsWithDeviceToken: + (NSData *_Nonnull)deviceToken; +- (void)application:(UIApplication *_Nonnull)application + didFailToRegisterForRemoteNotificationsWithError:(NSError *_Nonnull)error; +- (void)application:(UIApplication *_Nonnull)application + didReceiveRemoteNotification:(NSDictionary *_Nonnull)userInfo + fetchCompletionHandler: + (void (^_Nonnull)(UIBackgroundFetchResult))completionHandler; +- (BOOL)application:(UIApplication *_Nonnull)application + openURL:(NSURL *_Nonnull)url + options:(NSDictionary *_Nonnull) + options SWIFT_WARN_UNUSED_RESULT; +@end + +/// The APNs token type for the app. +/// This enum is available on iOS, macOS Catalyst, tvOS, and watchOS only. +typedef SWIFT_ENUM_NAMED(NSInteger, FIRAuthAPNSTokenType, "AuthAPNSTokenType", + open){ + /// Unknown token type. + /// The actual token type will be detected from the provisioning profile in + /// the app’s bundle. + FIRAuthAPNSTokenTypeUnknown = 0, + /// Sandbox token type. + FIRAuthAPNSTokenTypeSandbox = 1, + /// Production token type. + FIRAuthAPNSTokenTypeProd = 2, +}; + +/// Public representation of a credential. +SWIFT_CLASS_NAMED("AuthCredential") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRAuthCredential : NSObject +/// The name of the identity provider for the credential. +@property(nonatomic, readonly, copy) NSString *_Nonnull provider; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +@class FIROAuthCredential; + +/// Helper object that contains the result of a successful sign-in, link and +/// reauthenticate action. It contains references to a User +/// instance and an AdditionalUserInfo instance. +SWIFT_CLASS_NAMED("AuthDataResult") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRAuthDataResult : NSObject +/// The signed in user. +@property(nonatomic, readonly, strong) FIRUser *_Nonnull user; +/// If available, contains the additional IdP specific information about signed +/// in user. +@property(nonatomic, readonly, strong) + FIRAdditionalUserInfo *_Nullable additionalUserInfo; +/// This property will be non-nil after a successful headful-lite sign-in via +/// signIn(with:uiDelegate:completion:). +/// May be used to obtain the accessToken and/or IDToken +/// pertaining to a recently signed-in user. +@property(nonatomic, readonly, strong) FIROAuthCredential *_Nullable credential; +SWIFT_CLASS_PROPERTY(@property(nonatomic, class) BOOL supportsSecureCoding;) ++ (BOOL)supportsSecureCoding SWIFT_WARN_UNUSED_RESULT; ++ (void)setSupportsSecureCoding:(BOOL)value; +- (void)encodeWithCoder:(NSCoder *_Nonnull)coder; +- (nullable instancetype)initWithCoder:(NSCoder *_Nonnull)coder + OBJC_DESIGNATED_INITIALIZER; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +SWIFT_AVAILABILITY(watchos, introduced = 7) +SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRAuthDataResult( + SWIFT_EXTENSION(FirebaseAuth)) +@end + +/// Error codes used by Firebase Auth. +typedef SWIFT_ENUM_NAMED(NSInteger, FIRAuthErrorCode, "AuthErrorCode", open){ + /// Indicates a validation error with the custom token. + FIRAuthErrorCodeInvalidCustomToken = 17000, + /// Indicates the service account and the API key belong to different + /// projects. + FIRAuthErrorCodeCustomTokenMismatch = 17002, + /// Indicates the IDP token or requestUri is invalid. + FIRAuthErrorCodeInvalidCredential = 17004, + /// Indicates the user’s account is disabled on the server. + FIRAuthErrorCodeUserDisabled = 17005, + /// Indicates the administrator disabled sign in with the specified identity + /// provider. + FIRAuthErrorCodeOperationNotAllowed = 17006, + /// Indicates the email used to attempt a sign up is already in use. + FIRAuthErrorCodeEmailAlreadyInUse = 17007, + /// Indicates the email is invalid. + FIRAuthErrorCodeInvalidEmail = 17008, + /// Indicates the user attempted sign in with a wrong password. + FIRAuthErrorCodeWrongPassword = 17009, + /// Indicates that too many requests were made to a server method. + FIRAuthErrorCodeTooManyRequests = 17010, + /// Indicates the user account was not found. + FIRAuthErrorCodeUserNotFound = 17011, + /// Indicates account linking is required. + FIRAuthErrorCodeAccountExistsWithDifferentCredential = 17012, + /// Indicates the user has attempted to change email or password more than 5 + /// minutes after + /// signing in. + FIRAuthErrorCodeRequiresRecentLogin = 17014, + /// Indicates an attempt to link a provider to which the account is already + /// linked. + FIRAuthErrorCodeProviderAlreadyLinked = 17015, + /// Indicates an attempt to unlink a provider that is not linked. + FIRAuthErrorCodeNoSuchProvider = 17016, + /// Indicates user’s saved auth credential is invalid the user needs to sign + /// in again. + FIRAuthErrorCodeInvalidUserToken = 17017, + /// Indicates a network error occurred (such as a timeout interrupted + /// connection or + /// unreachable host). These types of errors are often recoverable with a + /// retry. The + /// NSUnderlyingError field in the + /// NSError.userInfo dictionary will contain the error + /// encountered. + FIRAuthErrorCodeNetworkError = 17020, + /// Indicates the saved token has expired for example the user may have + /// changed account + /// password on another device. The user needs to sign in again on the + /// device that made this + /// request. + FIRAuthErrorCodeUserTokenExpired = 17021, + /// Indicates an invalid API key was supplied in the request. + FIRAuthErrorCodeInvalidAPIKey = 17023, + /// Indicates that an attempt was made to reauthenticate with a user which + /// is not the current + /// user. + FIRAuthErrorCodeUserMismatch = 17024, + /// Indicates an attempt to link with a credential that has already been + /// linked with a + /// different Firebase account. + FIRAuthErrorCodeCredentialAlreadyInUse = 17025, + /// Indicates an attempt to set a password that is considered too weak. + FIRAuthErrorCodeWeakPassword = 17026, + /// Indicates the App is not authorized to use Firebase Authentication with + /// the + /// provided API Key. + FIRAuthErrorCodeAppNotAuthorized = 17028, + /// Indicates the OOB code is expired. + FIRAuthErrorCodeExpiredActionCode = 17029, + /// Indicates the OOB code is invalid. + FIRAuthErrorCodeInvalidActionCode = 17030, + /// Indicates that there are invalid parameters in the payload during a + /// “send password reset email” attempt. + FIRAuthErrorCodeInvalidMessagePayload = 17031, + /// Indicates that the sender email is invalid during a “send password reset + /// email” attempt. + FIRAuthErrorCodeInvalidSender = 17032, + /// Indicates that the recipient email is invalid. + FIRAuthErrorCodeInvalidRecipientEmail = 17033, + /// Indicates that an email address was expected but one was not provided. + FIRAuthErrorCodeMissingEmail = 17034, + /// Indicates that the iOS bundle ID is missing when a iOS App Store ID is + /// provided. + FIRAuthErrorCodeMissingIosBundleID = 17036, + /// Indicates that the android package name is missing when the + /// androidInstallApp flag is set + /// to true. + FIRAuthErrorCodeMissingAndroidPackageName = 17037, + /// Indicates that the domain specified in the continue URL is not + /// allowlisted in the Firebase + /// console. + FIRAuthErrorCodeUnauthorizedDomain = 17038, + /// Indicates that the domain specified in the continue URI is not valid. + FIRAuthErrorCodeInvalidContinueURI = 17039, + /// Indicates that a continue URI was not provided in a request to the + /// backend which requires one. + FIRAuthErrorCodeMissingContinueURI = 17040, + /// Indicates that a phone number was not provided in a call to + /// verifyPhoneNumber:completion:. + FIRAuthErrorCodeMissingPhoneNumber = 17041, + /// Indicates that an invalid phone number was provided in a call to + /// verifyPhoneNumber:completion:. + FIRAuthErrorCodeInvalidPhoneNumber = 17042, + /// Indicates that the phone auth credential was created with an empty + /// verification code. + FIRAuthErrorCodeMissingVerificationCode = 17043, + /// Indicates that an invalid verification code was used in the + /// verifyPhoneNumber request. + FIRAuthErrorCodeInvalidVerificationCode = 17044, + /// Indicates that the phone auth credential was created with an empty + /// verification ID. + FIRAuthErrorCodeMissingVerificationID = 17045, + /// Indicates that an invalid verification ID was used in the + /// verifyPhoneNumber request. + FIRAuthErrorCodeInvalidVerificationID = 17046, + /// Indicates that the APNS device token is missing in the verifyClient + /// request. + FIRAuthErrorCodeMissingAppCredential = 17047, + /// Indicates that an invalid APNS device token was used in the verifyClient + /// request. + FIRAuthErrorCodeInvalidAppCredential = 17048, + /// Indicates that the SMS code has expired. + FIRAuthErrorCodeSessionExpired = 17051, + /// Indicates that the quota of SMS messages for a given project has been + /// exceeded. + FIRAuthErrorCodeQuotaExceeded = 17052, + /// Indicates that the APNs device token could not be obtained. The app may + /// not have set up + /// remote notification correctly or may fail to forward the APNs device + /// token to Auth + /// if app delegate swizzling is disabled. + FIRAuthErrorCodeMissingAppToken = 17053, + /// Indicates that the app fails to forward remote notification to FIRAuth. + FIRAuthErrorCodeNotificationNotForwarded = 17054, + /// Indicates that the app could not be verified by Firebase during phone + /// number authentication. + FIRAuthErrorCodeAppNotVerified = 17055, + /// Indicates that the reCAPTCHA token is not valid. + FIRAuthErrorCodeCaptchaCheckFailed = 17056, + /// Indicates that an attempt was made to present a new web context while + /// one was already being + /// presented. + FIRAuthErrorCodeWebContextAlreadyPresented = 17057, + /// Indicates that the URL presentation was cancelled prematurely by the + /// user. + FIRAuthErrorCodeWebContextCancelled = 17058, + /// Indicates a general failure during the app verification flow. + FIRAuthErrorCodeAppVerificationUserInteractionFailure = 17059, + /// Indicates that the clientID used to invoke a web flow is invalid. + FIRAuthErrorCodeInvalidClientID = 17060, + /// Indicates that a network request within a SFSafariViewController or + /// WKWebView failed. + FIRAuthErrorCodeWebNetworkRequestFailed = 17061, + /// Indicates that an internal error occurred within a + /// SFSafariViewController or WKWebView. + FIRAuthErrorCodeWebInternalError = 17062, + /// Indicates a general failure during a web sign-in flow. + FIRAuthErrorCodeWebSignInUserInteractionFailure = 17063, + /// Indicates that the local player was not authenticated prior to + /// attempting Game Center signin. + FIRAuthErrorCodeLocalPlayerNotAuthenticated = 17066, + /// Indicates that a non-null user was expected as an argument to the + /// operation but a null + /// user was provided. + FIRAuthErrorCodeNullUser = 17067, + /// Indicates that a Firebase Dynamic Link is not activated. + FIRAuthErrorCodeDynamicLinkNotActivated = 17068, + /// Represents the error code for when the given provider id for a web + /// operation is invalid. + FIRAuthErrorCodeInvalidProviderID = 17071, + /// Represents the error code for when an attempt is made to update the + /// current user with a + /// tenantId that differs from the current FirebaseAuth instance’s tenantId. + FIRAuthErrorCodeTenantIDMismatch = 17072, + /// Represents the error code for when a request is made to the backend with + /// an associated tenant + /// ID for an operation that does not support multi-tenancy. + FIRAuthErrorCodeUnsupportedTenantOperation = 17073, + /// Indicates that the Firebase Dynamic Link domain used is either not + /// configured or is + /// unauthorized for the current project. + FIRAuthErrorCodeInvalidDynamicLinkDomain = 17074, + /// Indicates that the credential is rejected because it’s malformed or + /// mismatching. + FIRAuthErrorCodeRejectedCredential = 17075, + /// Indicates that the GameKit framework is not linked prior to attempting + /// Game Center signin. + FIRAuthErrorCodeGameKitNotLinked = 17076, + /// Indicates that the second factor is required for signin. + FIRAuthErrorCodeSecondFactorRequired = 17078, + /// Indicates that the multi factor session is missing. + FIRAuthErrorCodeMissingMultiFactorSession = 17081, + /// Indicates that the multi factor info is missing. + FIRAuthErrorCodeMissingMultiFactorInfo = 17082, + /// Indicates that the multi factor session is invalid. + FIRAuthErrorCodeInvalidMultiFactorSession = 17083, + /// Indicates that the multi factor info is not found. + FIRAuthErrorCodeMultiFactorInfoNotFound = 17084, + /// Indicates that the operation is admin restricted. + FIRAuthErrorCodeAdminRestrictedOperation = 17085, + /// Indicates that the email is required for verification. + FIRAuthErrorCodeUnverifiedEmail = 17086, + /// Indicates that the second factor is already enrolled. + FIRAuthErrorCodeSecondFactorAlreadyEnrolled = 17087, + /// Indicates that the maximum second factor count is exceeded. + FIRAuthErrorCodeMaximumSecondFactorCountExceeded = 17088, + /// Indicates that the first factor is not supported. + FIRAuthErrorCodeUnsupportedFirstFactor = 17089, + /// Indicates that the a verified email is required to changed to. + FIRAuthErrorCodeEmailChangeNeedsVerification = 17090, + /// Indicates that the request does not contain a client identifier. + FIRAuthErrorCodeMissingClientIdentifier = 17093, + /// Indicates that the nonce is missing or invalid. + FIRAuthErrorCodeMissingOrInvalidNonce = 17094, + /// Raised when n Cloud Function returns a blocking error. Will include a + /// message returned from + /// the function. + FIRAuthErrorCodeBlockingCloudFunctionError = 17105, + /// Indicates that reCAPTCHA Enterprise integration is not enabled for this + /// project. + FIRAuthErrorCodeRecaptchaNotEnabled = 17200, + /// Indicates that the reCAPTCHA token is missing from the backend request. + FIRAuthErrorCodeMissingRecaptchaToken = 17201, + /// Indicates that the reCAPTCHA token sent with the backend request is + /// invalid. + FIRAuthErrorCodeInvalidRecaptchaToken = 17202, + /// Indicates that the requested reCAPTCHA action is invalid. + FIRAuthErrorCodeInvalidRecaptchaAction = 17203, + /// Indicates that the client type is missing from the request. + FIRAuthErrorCodeMissingClientType = 17204, + /// Indicates that the reCAPTCHA version is missing from the request. + FIRAuthErrorCodeMissingRecaptchaVersion = 17205, + /// Indicates that the reCAPTCHA version sent to the backend is invalid. + FIRAuthErrorCodeInvalidRecaptchaVersion = 17206, + /// Indicates that the request type sent to the backend is invalid. + FIRAuthErrorCodeInvalidReqType = 17207, + /// Indicates that the reCAPTCHA SDK is not linked to the app. + FIRAuthErrorCodeRecaptchaSDKNotLinked = 17208, + /// Indicates that the reCAPTCHA SDK site key wasn’t found. + FIRAuthErrorCodeRecaptchaSiteKeyMissing = 17209, + /// Indicates that the reCAPTCHA SDK actions class failed to create. + FIRAuthErrorCodeRecaptchaActionCreationFailed = 17210, + /// Indicates an error occurred while attempting to access the keychain. + FIRAuthErrorCodeKeychainError = 17995, + /// Indicates an internal error occurred. + FIRAuthErrorCodeInternalError = 17999, + /// Raised when a JWT fails to parse correctly. May be accompanied by an + /// underlying error + /// describing which step of the JWT parsing process failed. + FIRAuthErrorCodeMalformedJWT = 18000, +}; + +/// Error Codes common to all API Methods: +SWIFT_CLASS_NAMED("AuthErrors") +@interface FIRAuthErrors : NSObject +/// The Firebase Auth error domain. +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) + NSString *_Nonnull domain;) ++ (NSString *_Nonnull)domain SWIFT_WARN_UNUSED_RESULT; +/// The name of the key for the error short string of an error code. +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) + NSString *_Nonnull userInfoNameKey;) ++ (NSString *_Nonnull)userInfoNameKey SWIFT_WARN_UNUSED_RESULT; +/// Error codes for Email operations +/// Errors with one of the following three codes: +///
    +///
  • +/// accountExistsWithDifferentCredential +///
  • +///
  • +/// credentialAlreadyInUse +///
  • +///
  • +/// emailAlreadyInUse` +///
  • +///
+/// may contain an NSError.userInfo dictionary object which +/// contains this key. The value associated with this key is an NSString of the +/// email address of the account that already exists. +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) + NSString *_Nonnull userInfoEmailKey;) ++ (NSString *_Nonnull)userInfoEmailKey SWIFT_WARN_UNUSED_RESULT; +/// The key used to read the updated Auth credential from the userInfo +/// dictionary of the NSError object returned. This is the updated auth +/// credential the developer should use for recovery if applicable. +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) + NSString *_Nonnull userInfoUpdatedCredentialKey;) ++ (NSString *_Nonnull)userInfoUpdatedCredentialKey SWIFT_WARN_UNUSED_RESULT; +/// The key used to read the MFA resolver from the userInfo dictionary of the +/// NSError object returned when 2FA is required for sign-incompletion. +SWIFT_CLASS_PROPERTY( + @property(nonatomic, class, readonly, copy) + NSString *_Nonnull FIRAuthErrorUserInfoMultiFactorResolverKey;) ++ (NSString *_Nonnull) + FIRAuthErrorUserInfoMultiFactorResolverKey SWIFT_WARN_UNUSED_RESULT; +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; +@end + +/// Determines settings related to an auth object. +SWIFT_CLASS_NAMED("AuthSettings") +@interface FIRAuthSettings : NSObject +/// Flag to determine whether app verification should be disabled for testing or +/// not. +@property(nonatomic) BOOL appVerificationDisabledForTesting; +/// Flag to determine whether app verification should be disabled for testing or +/// not. +@property(nonatomic) BOOL isAppVerificationDisabledForTesting; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +- (id _Nonnull)copyWithZone:(struct _NSZone *_Nullable)zone + SWIFT_WARN_UNUSED_RESULT; +@end + +@class NSDate; + +/// A data class containing the ID token JWT string and other properties +/// associated with the token including the decoded payload claims. +SWIFT_CLASS_NAMED("AuthTokenResult") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRAuthTokenResult : NSObject +/// Stores the JWT string of the ID token. +@property(nonatomic, copy) NSString *_Nonnull token; +/// Stores the ID token’s expiration date. +@property(nonatomic, copy) NSDate *_Nonnull expirationDate; +/// Stores the ID token’s authentication date. +/// This is the date the user was signed in and NOT the date the token was +/// refreshed. +@property(nonatomic, copy) NSDate *_Nonnull authDate; +/// Stores the date that the ID token was issued. +/// This is the date last refreshed and NOT the last authentication date. +@property(nonatomic, copy) NSDate *_Nonnull issuedAtDate; +/// Stores sign-in provider through which the token was obtained. +@property(nonatomic, copy) NSString *_Nonnull signInProvider; +/// Stores sign-in second factor through which the token was obtained. +@property(nonatomic, copy) NSString *_Nonnull signInSecondFactor; +/// Stores the entire payload of claims found on the ID token. +/// This includes the standard +/// reserved claims as well as custom claims set by the developer via the Admin +/// SDK. +@property(nonatomic, copy) NSDictionary *_Nonnull claims; +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly) + BOOL supportsSecureCoding;) ++ (BOOL)supportsSecureCoding SWIFT_WARN_UNUSED_RESULT; +- (void)encodeWithCoder:(NSCoder *_Nonnull)coder; +- (nullable instancetype)initWithCoder:(NSCoder *_Nonnull)coder; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +SWIFT_AVAILABILITY(watchos, introduced = 7) +SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRAuthTokenResult( + SWIFT_EXTENSION(FirebaseAuth)) +@end + +@class UIViewController; + +/// A protocol to handle user interface interactions for Firebase Auth. +/// This protocol is available on iOS, macOS Catalyst, and tvOS only. +SWIFT_PROTOCOL_NAMED("AuthUIDelegate") +@protocol FIRAuthUIDelegate +/// If implemented, this method will be invoked when Firebase Auth needs to +/// display a view controller. \param viewControllerToPresent The view +/// controller to be presented. +/// +/// \param flag Decides whether the view controller presentation should be +/// animated. +/// +/// \param completion The block to execute after the presentation finishes. +/// This block has no return value and takes no parameters. +/// +- (void)presentViewController: + (UIViewController *_Nonnull)viewControllerToPresent + animated:(BOOL)flag + completion:(void (^_Nullable)(void))completion; +/// If implemented, this method will be invoked when Firebase Auth needs to +/// display a view controller. \param flag Decides whether removing the view +/// controller should be animated or not. +/// +/// \param completion The block to execute after the presentation finishes. +/// This block has no return value and takes no parameters. +/// +- (void)dismissViewControllerAnimated:(BOOL)flag + completion:(void (^_Nullable)(void))completion; +@end + +/// A concrete implementation of AuthProvider for Email & Password +/// Sign In. +SWIFT_CLASS_NAMED("EmailAuthProvider") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIREmailAuthProvider : NSObject +/// A string constant identifying the email & password identity provider. +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) + NSString *_Nonnull id;) ++ (NSString *_Nonnull)id SWIFT_WARN_UNUSED_RESULT; +/// Creates an AuthCredential for an email & password sign in +/// \param email The user’s email address. +/// +/// \param password The user’s password. +/// +/// +/// returns: +/// An AuthCredential containing the email & password credential. ++ (FIRAuthCredential *_Nonnull)credentialWithEmail:(NSString *_Nonnull)email + password:(NSString *_Nonnull)password + SWIFT_WARN_UNUSED_RESULT; +/// Creates an AuthCredential for an email & link sign in. +/// \param email The user’s email address. +/// +/// \param link The email sign-in link. +/// +/// +/// returns: +/// An AuthCredential containing the email & link credential. ++ (FIRAuthCredential *_Nonnull)credentialWithEmail:(NSString *_Nonnull)email + link:(NSString *_Nonnull)link + SWIFT_WARN_UNUSED_RESULT; +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; +@end + +/// Utility class for constructing Facebook Sign In credentials. +SWIFT_CLASS_NAMED("FacebookAuthProvider") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRFacebookAuthProvider : NSObject +/// A string constant identifying the Facebook identity provider. +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) + NSString *_Nonnull id;) ++ (NSString *_Nonnull)id SWIFT_WARN_UNUSED_RESULT; +/// Creates an AuthCredential for a Facebook sign in. +/// \param accessToken The Access Token from Facebook. +/// +/// +/// returns: +/// An AuthCredential containing the Facebook credentials. ++ (FIRAuthCredential *_Nonnull)credentialWithAccessToken: + (NSString *_Nonnull)accessToken SWIFT_WARN_UNUSED_RESULT; +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER SWIFT_UNAVAILABLE; +@end + +/// Utility type for constructing federated auth provider credentials. +SWIFT_PROTOCOL_NAMED("FederatedAuthProvider") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @protocol FIRFederatedAuthProvider +/// Used to obtain an auth credential via a mobile web flow. +/// This method is available on iOS only. +/// \param uiDelegate An optional UI delegate used to present the mobile web +/// flow. +/// +- (void)getCredentialWithUIDelegate:(id _Nullable)uiDelegate + completion:(void (^_Nonnull)( + FIRAuthCredential *_Nullable, + NSError *_Nullable))completionHandler + SWIFT_AVAILABILITY(watchos, introduced = 8) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13); +@end + +/// A concrete implementation of AuthProvider for Game Center Sign +/// In. Not available on watchOS. +SWIFT_CLASS_NAMED("GameCenterAuthProvider") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRGameCenterAuthProvider : NSObject +/// A string constant identifying the Game Center identity provider. +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) + NSString *_Nonnull id;) ++ (NSString *_Nonnull)id SWIFT_WARN_UNUSED_RESULT; +/// Creates an AuthCredential for a Game Center sign in. ++ (void)getCredentialWithCompletion: + (void (^_Nonnull)(FIRAuthCredential *_Nullable, + NSError *_Nullable))completion; +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER SWIFT_UNAVAILABLE; +@end + +/// Utility class for constructing GitHub Sign In credentials. +SWIFT_CLASS_NAMED("GitHubAuthProvider") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRGitHubAuthProvider : NSObject +/// A string constant identifying the GitHub identity provider. +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) + NSString *_Nonnull id;) ++ (NSString *_Nonnull)id SWIFT_WARN_UNUSED_RESULT; +/// Creates an AuthCredential for a GitHub sign in. +/// \param token The GitHub OAuth access token. +/// +/// +/// returns: +/// An AuthCredential containing the GitHub credentials. ++ (FIRAuthCredential *_Nonnull)credentialWithToken:(NSString *_Nonnull)token + SWIFT_WARN_UNUSED_RESULT; +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER SWIFT_UNAVAILABLE; +@end + +/// Utility class for constructing Google Sign In credentials. +SWIFT_CLASS_NAMED("GoogleAuthProvider") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRGoogleAuthProvider : NSObject +/// A string constant identifying the Google identity provider. +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) + NSString *_Nonnull id;) ++ (NSString *_Nonnull)id SWIFT_WARN_UNUSED_RESULT; +/// Creates an AuthCredential for a Google sign in. +/// \param idToken The ID Token from Google. +/// +/// \param accessToken The Access Token from Google. +/// +/// +/// returns: +/// An AuthCredential containing the Google credentials. ++ (FIRAuthCredential *_Nonnull)credentialWithIDToken:(NSString *_Nonnull)idToken + accessToken: + (NSString *_Nonnull)accessToken + SWIFT_WARN_UNUSED_RESULT; +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER SWIFT_UNAVAILABLE; +@end + +@class FIRMultiFactorInfo; +@class FIRMultiFactorSession; +@class FIRMultiFactorAssertion; + +/// The interface defining the multi factor related properties and operations +/// pertaining to a user. This class is available on iOS only. +SWIFT_CLASS_NAMED("MultiFactor") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRMultiFactor : NSObject +@property(nonatomic, copy) + NSArray *_Nonnull enrolledFactors; +/// Get a session for a second factor enrollment operation. +/// This is used to identify the current user trying to enroll a second factor. +/// \param completion A block with the session identifier for a second factor +/// enrollment operation. +/// +- (void)getSessionWithCompletion: + (void (^_Nullable)(FIRMultiFactorSession *_Nullable, + NSError *_Nullable))completion; +/// Enrolls a second factor as identified by the +/// MultiFactorAssertion parameter for the current user. \param +/// assertion The MultiFactorAssertion. +/// +/// \param displayName An optional display name associated with the multi factor +/// to enroll. +/// +/// \param completion The block invoked when the request is complete, or fails. +/// +- (void)enrollWithAssertion:(FIRMultiFactorAssertion *_Nonnull)assertion + displayName:(NSString *_Nullable)displayName + completion:(void (^_Nullable)(NSError *_Nullable))completion; +/// Unenroll the given multi factor. +/// \param completion The block invoked when the request to send the +/// verification email is complete, or fails. +/// +- (void)unenrollWithInfo:(FIRMultiFactorInfo *_Nonnull)factorInfo + completion:(void (^_Nullable)(NSError *_Nullable))completion; +/// Unenroll the given multi factor. +/// \param completion The block invoked when the request to send the +/// verification email is complete, or fails. +/// +- (void)unenrollWithFactorUID:(NSString *_Nonnull)factorUID + completion:(void (^_Nullable)(NSError *_Nullable))completion; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly) + BOOL supportsSecureCoding;) ++ (BOOL)supportsSecureCoding SWIFT_WARN_UNUSED_RESULT; +- (void)encodeWithCoder:(NSCoder *_Nonnull)coder; +- (nullable instancetype)initWithCoder:(NSCoder *_Nonnull)coder + OBJC_DESIGNATED_INITIALIZER; +@end + +SWIFT_AVAILABILITY(watchos, introduced = 7) +SWIFT_AVAILABILITY(maccatalyst, introduced = 13) SWIFT_AVAILABILITY( + macos, introduced = 10.15) SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRMultiFactor(SWIFT_EXTENSION(FirebaseAuth)) +@end + +/// The base class for asserting ownership of a second factor. This is +/// equivalent to the AuthCredential class. This class is available on iOS only. +SWIFT_CLASS_NAMED("MultiFactorAssertion") +@interface FIRMultiFactorAssertion : NSObject +/// The second factor identifier for this opaque object asserting a second +/// factor. +@property(nonatomic, copy) NSString *_Nonnull factorID; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +/// Safe public structure used to represent a second factor entity from a client +/// perspective. This class is available on iOS only. +SWIFT_CLASS_NAMED("MultiFactorInfo") +@interface FIRMultiFactorInfo : NSObject +/// The multi-factor enrollment ID. +@property(nonatomic, readonly, copy) NSString *_Nonnull UID; +/// The user friendly name of the current second factor. +@property(nonatomic, readonly, copy) NSString *_Nullable displayName; +/// The second factor enrollment date. +@property(nonatomic, readonly, copy) NSDate *_Nonnull enrollmentDate; +/// The identifier of the second factor. +@property(nonatomic, readonly, copy) NSString *_Nonnull factorID; +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly) + BOOL supportsSecureCoding;) ++ (BOOL)supportsSecureCoding SWIFT_WARN_UNUSED_RESULT; +- (void)encodeWithCoder:(NSCoder *_Nonnull)coder; +- (nullable instancetype)initWithCoder:(NSCoder *_Nonnull)coder + OBJC_DESIGNATED_INITIALIZER; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +@interface FIRMultiFactorInfo (SWIFT_EXTENSION (FirebaseAuth)) +@end + +/// The subclass of base class MultiFactorAssertion, used to assert +/// ownership of a phone second factor. This class is available on iOS only. +SWIFT_CLASS_NAMED("MultiFactorResolver") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRMultiFactorResolver : NSObject +/// The opaque session identifier for the current sign-in flow. +@property(nonatomic, readonly, strong) FIRMultiFactorSession *_Nonnull session; +/// The list of hints for the second factors needed to complete the sign-in for +/// the current session. +@property(nonatomic, readonly, copy) + NSArray *_Nonnull hints; +/// The Auth reference for the current MultiResolver. +@property(nonatomic, readonly, strong) FIRAuth *_Nonnull auth; +/// A helper function to help users complete sign in with a second factor using +/// a MultiFactorAssertion confirming the user successfully +/// completed the second factor challenge. \param completion The block invoked +/// when the request is complete, or fails. +/// +- (void)resolveSignInWithAssertion:(FIRMultiFactorAssertion *_Nonnull)assertion + completion: + (void (^_Nullable)(FIRAuthDataResult *_Nullable, + NSError *_Nullable))completion; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +/// Opaque object that identifies the current session to enroll a second factor +/// or to complete sign in when previously enrolled. Identifies the current +/// session to enroll a second factor or to complete sign in when previously +/// enrolled. It contains additional context on the existing user, notably the +/// confirmation that the user passed the first factor challenge. This class is +/// available on iOS only. +SWIFT_CLASS_NAMED("MultiFactorSession") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRMultiFactorSession : NSObject +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +/// Internal implementation of AuthCredential for generic +/// credentials. +SWIFT_CLASS_NAMED("OAuthCredential") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIROAuthCredential + : FIRAuthCredential +/// The ID Token associated with this credential. +@property(nonatomic, readonly, copy) NSString *_Nullable IDToken; +/// The access token associated with this credential. +@property(nonatomic, readonly, copy) NSString *_Nullable accessToken; +/// The secret associated with this credential. This will be nil for OAuth 2.0 +/// providers. OAuthCredential already exposes a provider getter. +/// This will help the developer determine whether an access token / secret pair +/// is needed. +@property(nonatomic, readonly, copy) NSString *_Nullable secret; +SWIFT_CLASS_PROPERTY(@property(nonatomic, class) BOOL supportsSecureCoding;) ++ (BOOL)supportsSecureCoding SWIFT_WARN_UNUSED_RESULT; ++ (void)setSupportsSecureCoding:(BOOL)value; +- (void)encodeWithCoder:(NSCoder *_Nonnull)coder; +- (nullable instancetype)initWithCoder:(NSCoder *_Nonnull)coder + OBJC_DESIGNATED_INITIALIZER; +@end + +@class NSPersonNameComponents; + +/// Utility class for constructing OAuth Sign In credentials. +SWIFT_CLASS_NAMED("OAuthProvider") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIROAuthProvider + : NSObject +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) + NSString *_Nonnull id;) ++ (NSString *_Nonnull)id SWIFT_WARN_UNUSED_RESULT; +/// Array used to configure the OAuth scopes. +@property(nonatomic, copy) NSArray *_Nullable scopes; +/// Dictionary used to configure the OAuth custom parameters. +@property(nonatomic, copy) + NSDictionary *_Nullable customParameters; +/// The provider ID indicating the specific OAuth provider this OAuthProvider +/// instance represents. +@property(nonatomic, readonly, copy) NSString *_Nonnull providerID; +/// An instance of OAuthProvider corresponding to the given provider ID. +/// \param providerID The provider ID of the IDP for which this auth provider +/// instance will be configured. +/// +/// +/// returns: +/// An instance of OAuthProvider corresponding to the specified provider ID. ++ (FIROAuthProvider *_Nonnull)providerWithProviderID: + (NSString *_Nonnull)providerID SWIFT_WARN_UNUSED_RESULT; +/// An instance of OAuthProvider corresponding to the given provider ID and auth +/// instance. \param providerID The provider ID of the IDP for which this auth +/// provider instance will be configured. +/// +/// \param auth The auth instance to be associated with the OAuthProvider +/// instance. +/// +/// +/// returns: +/// An instance of OAuthProvider corresponding to the specified provider ID. ++ (FIROAuthProvider *_Nonnull)providerWithProviderID: + (NSString *_Nonnull)providerID + auth:(FIRAuth *_Nonnull)auth + SWIFT_WARN_UNUSED_RESULT; +/// Creates an AuthCredential for the OAuth 2 provider identified +/// by provider ID, ID token, and access token. \param providerID The provider +/// ID associated with the Auth credential being created. +/// +/// \param idToken The IDToken associated with the Auth credential being +/// created. +/// +/// \param accessToken The access token associated with the Auth credential be +/// created, if available. +/// +/// +/// returns: +/// An AuthCredential for the specified provider ID, ID token and access token. ++ (FIROAuthCredential *_Nonnull) + credentialWithProviderID:(NSString *_Nonnull)providerID + IDToken:(NSString *_Nonnull)idToken + accessToken:(NSString *_Nullable)accessToken + SWIFT_WARN_UNUSED_RESULT; +/// Creates an AuthCredential for the OAuth 2 provider identified +/// by provider ID, ID token, and access token. \param providerID The provider +/// ID associated with the Auth credential being created. +/// +/// \param accessToken The access token associated with the Auth credential be +/// created, if available. +/// +/// +/// returns: +/// An AuthCredential for the specified provider ID, ID token and access token. ++ (FIROAuthCredential *_Nonnull) + credentialWithProviderID:(NSString *_Nonnull)providerID + accessToken:(NSString *_Nonnull)accessToken + SWIFT_WARN_UNUSED_RESULT; +/// Creates an AuthCredential for that OAuth 2 provider identified +/// by provider ID, ID token, raw nonce, and access token. \param providerID The +/// provider ID associated with the Auth credential being created. +/// +/// \param idToken The IDToken associated with the Auth credential being +/// created. +/// +/// \param rawNonce The raw nonce associated with the Auth credential being +/// created. +/// +/// \param accessToken The access token associated with the Auth credential be +/// created. +/// +/// +/// returns: +/// An AuthCredential for the specified provider ID, ID token and access token. ++ (FIROAuthCredential *_Nonnull) + credentialWithProviderID:(NSString *_Nonnull)providerID + IDToken:(NSString *_Nonnull)idToken + rawNonce:(NSString *_Nonnull)rawNonce + accessToken:(NSString *_Nonnull)accessToken + SWIFT_WARN_UNUSED_RESULT; +/// Creates an AuthCredential for that OAuth 2 provider identified +/// by providerID using an ID token and raw nonce. \param providerID The +/// provider ID associated with the Auth credential being created. +/// +/// \param idToken The IDToken associated with the Auth credential being +/// created. +/// +/// \param rawNonce The raw nonce associated with the Auth credential being +/// created. +/// +/// +/// returns: +/// An AuthCredential. ++ (FIROAuthCredential *_Nonnull) + credentialWithProviderID:(NSString *_Nonnull)providerID + IDToken:(NSString *_Nonnull)idToken + rawNonce:(NSString *_Nonnull)rawNonce + SWIFT_WARN_UNUSED_RESULT; +/// Used to obtain an auth credential via a mobile web flow. +/// This method is available on iOS only. +/// \param uiDelegate An optional UI delegate used to present the mobile web +/// flow. +/// +- (void)getCredentialWithUIDelegate:(id _Nullable)uiDelegate + completion:(void (^_Nonnull)( + FIRAuthCredential *_Nullable, + NSError *_Nullable))completionHandler + SWIFT_AVAILABILITY(watchos, introduced = 8) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13); +/// Creates an AuthCredential for the Sign in with Apple OAuth 2 +/// provider identified by ID token, raw nonce, and full name.This method is +/// specific to the Sign in with Apple OAuth 2 provider as this provider +/// requires the full name to be passed explicitly. \param idToken The IDToken +/// associated with the Sign in with Apple Auth credential being created. +/// +/// \param rawNonce The raw nonce associated with the Sign in with Apple Auth +/// credential being created. +/// +/// \param fullName The full name associated with the Sign in with Apple Auth +/// credential being created. +/// +/// +/// returns: +/// An AuthCredential. ++ (FIROAuthCredential *_Nonnull) + appleCredentialWithIDToken:(NSString *_Nonnull)idToken + rawNonce:(NSString *_Nullable)rawNonce + fullName:(NSPersonNameComponents *_Nullable)fullName + SWIFT_WARN_UNUSED_RESULT; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +/// Implementation of AuthCredential for Phone Auth credentials. +/// This class is available on iOS only. +SWIFT_CLASS_NAMED("PhoneAuthCredential") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRPhoneAuthCredential + : FIRAuthCredential +SWIFT_CLASS_PROPERTY(@property(nonatomic, class) BOOL supportsSecureCoding;) ++ (BOOL)supportsSecureCoding SWIFT_WARN_UNUSED_RESULT; ++ (void)setSupportsSecureCoding:(BOOL)value; +- (void)encodeWithCoder:(NSCoder *_Nonnull)coder; +- (nullable instancetype)initWithCoder:(NSCoder *_Nonnull)coder + OBJC_DESIGNATED_INITIALIZER; +@end + +@class FIRPhoneMultiFactorInfo; + +/// A concrete implementation of AuthProvider for phone auth +/// providers. This class is available on iOS only. +SWIFT_CLASS_NAMED("PhoneAuthProvider") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRPhoneAuthProvider : NSObject +/// A string constant identifying the phone identity provider. +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) + NSString *_Nonnull id;) ++ (NSString *_Nonnull)id SWIFT_WARN_UNUSED_RESULT; +/// Returns an instance of PhoneAuthProvider for the default +/// Auth object. ++ (FIRPhoneAuthProvider *_Nonnull)provider SWIFT_WARN_UNUSED_RESULT; +/// Returns an instance of PhoneAuthProvider for the provided +/// Auth object. \param auth The auth object to associate with the +/// phone auth provider instance. +/// ++ (FIRPhoneAuthProvider *_Nonnull)providerWithAuth:(FIRAuth *_Nonnull)auth + SWIFT_WARN_UNUSED_RESULT; +/// Starts the phone number authentication flow by sending a verification code +/// to the specified phone number. Possible error codes:
    +///
  • +/// AuthErrorCodeCaptchaCheckFailed - Indicates that the +/// reCAPTCHA token obtained by the Firebase Auth is invalid or has expired. +///
  • +///
  • +/// AuthErrorCodeQuotaExceeded - Indicates that the phone +/// verification quota for this project has been exceeded. +///
  • +///
  • +/// AuthErrorCodeInvalidPhoneNumber - Indicates that the phone +/// number provided is invalid. +///
  • +///
  • +/// AuthErrorCodeMissingPhoneNumber - Indicates that a phone +/// number was not provided. +///
  • +///
+/// \param phoneNumber The phone number to be verified. +/// +/// \param uiDelegate An object used to present the SFSafariViewController. The +/// object is retained by this method until the completion block is executed. +/// +/// \param completion The callback to be invoked when the verification flow is +/// finished. +/// +- (void)verifyPhoneNumber:(NSString *_Nonnull)phoneNumber + UIDelegate:(id _Nullable)uiDelegate + completion:(void (^_Nullable)(NSString *_Nullable, + NSError *_Nullable))completion; +/// Verify ownership of the second factor phone number by the current user. +/// \param phoneNumber The phone number to be verified. +/// +/// \param uiDelegate An object used to present the SFSafariViewController. The +/// object is retained by this method until the completion block is executed. +/// +/// \param multiFactorSession A session to identify the MFA flow. For +/// enrollment, this identifies the user trying to enroll. For sign-in, this +/// identifies that the user already passed the first factor challenge. +/// +/// \param completion The callback to be invoked when the verification flow is +/// finished. +/// +- (void)verifyPhoneNumber:(NSString *_Nonnull)phoneNumber + UIDelegate:(id _Nullable)uiDelegate + multiFactorSession:(FIRMultiFactorSession *_Nullable)multiFactorSession + completion:(void (^_Nullable)(NSString *_Nullable, + NSError *_Nullable))completion; +/// Verify ownership of the second factor phone number by the current user. +/// \param multiFactorInfo The phone multi factor whose number need to be +/// verified. +/// +/// \param uiDelegate An object used to present the SFSafariViewController. The +/// object is retained by this method until the completion block is executed. +/// +/// \param multiFactorSession A session to identify the MFA flow. For +/// enrollment, this identifies the user trying to enroll. For sign-in, this +/// identifies that the user already passed the first factor challenge. +/// +/// \param completion The callback to be invoked when the verification flow is +/// finished. +/// +- (void) + verifyPhoneNumberWithMultiFactorInfo: + (FIRPhoneMultiFactorInfo *_Nonnull)multiFactorInfo + UIDelegate: + (id _Nullable)uiDelegate + multiFactorSession: + (FIRMultiFactorSession *_Nullable)multiFactorSession + completion:(void (^_Nullable)(NSString *_Nullable, + NSError *_Nullable)) + completion; +/// Creates an AuthCredential for the phone number provider +/// identified by the verification ID and verification code. \param +/// verificationID The verification ID obtained from invoking +/// verifyPhoneNumber:completion: +/// +/// \param verificationCode The verification code obtained from the user. +/// +/// +/// returns: +/// The corresponding phone auth credential for the verification ID and +/// verification code provided. +- (FIRPhoneAuthCredential *_Nonnull) + credentialWithVerificationID:(NSString *_Nonnull)verificationID + verificationCode:(NSString *_Nonnull)verificationCode + SWIFT_WARN_UNUSED_RESULT; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +/// The subclass of base class FIRMultiFactorAssertion, used to assert ownership +/// of a phone second factor. This class is available on iOS only. +SWIFT_CLASS_NAMED("PhoneMultiFactorAssertion") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRPhoneMultiFactorAssertion + : FIRMultiFactorAssertion +@end + +/// The data structure used to help initialize an assertion for a second factor +/// entity to the Firebase Auth/CICP server. Depending on the type of second +/// factor, this will help generate the assertion. This class is available on +/// iOS only. +SWIFT_CLASS_NAMED("PhoneMultiFactorGenerator") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRPhoneMultiFactorGenerator : NSObject +/// Initializes the MFA assertion to confirm ownership of the phone second +/// factor. Note that this API is used for both enrolling and signing in with a +/// phone second factor. \param phoneAuthCredential The phone auth credential +/// used for multi factor flows. +/// ++ (FIRPhoneMultiFactorAssertion *_Nonnull)assertionWithCredential: + (FIRPhoneAuthCredential *_Nonnull)phoneAuthCredential + SWIFT_WARN_UNUSED_RESULT; +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; +@end + +/// Extends the MultiFactorInfo class for phone number second factors. +/// The identifier of this second factor is “phone”. +/// This class is available on iOS only. +SWIFT_CLASS_NAMED("PhoneMultiFactorInfo") +@interface FIRPhoneMultiFactorInfo : FIRMultiFactorInfo +/// The string identifier for using phone as a second factor. +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) + NSString *_Nonnull FIRPhoneMultiFactorID;) ++ (NSString *_Nonnull)FIRPhoneMultiFactorID SWIFT_WARN_UNUSED_RESULT; +/// The string identifier for using TOTP as a second factor. +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) + NSString *_Nonnull FIRTOTPMultiFactorID;) ++ (NSString *_Nonnull)FIRTOTPMultiFactorID SWIFT_WARN_UNUSED_RESULT; +/// This is the phone number associated with the current second factor. +@property(nonatomic, copy) NSString *_Nonnull phoneNumber; +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly) + BOOL supportsSecureCoding;) ++ (BOOL)supportsSecureCoding SWIFT_WARN_UNUSED_RESULT; +- (nullable instancetype)initWithCoder:(NSCoder *_Nonnull)coder + OBJC_DESIGNATED_INITIALIZER; +- (void)encodeWithCoder:(NSCoder *_Nonnull)coder; +@end + +/// The subclass of base class MultiFactorAssertion, used to assert ownership of +/// a TOTP (Time-based One Time Password) second factor. This class is available +/// on iOS only. +SWIFT_CLASS_NAMED("TOTPMultiFactorAssertion") +@interface FIRTOTPMultiFactorAssertion : FIRMultiFactorAssertion +@end + +@class FIRTOTPSecret; + +/// The data structure used to help initialize an assertion for a second factor +/// entity to the Firebase Auth/CICP server. Depending on the type of second +/// factor, this will help generate the assertion. This class is available on +/// iOS only. +SWIFT_CLASS_NAMED("TOTPMultiFactorGenerator") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRTOTPMultiFactorGenerator : NSObject +/// Creates a TOTP secret as part of enrolling a TOTP second factor. Used for +/// generating a QR code URL or inputting into a TOTP app. This method uses the +/// auth instance corresponding to the user in the multiFactorSession. \param +/// session The multiFactorSession instance. +/// +/// \param completion Completion block +/// ++ (void)generateSecretWithMultiFactorSession: + (FIRMultiFactorSession *_Nonnull)session + completion:(void (^_Nonnull)( + FIRTOTPSecret *_Nullable, + NSError *_Nullable))completion; +/// Initializes the MFA assertion to confirm ownership of the TOTP second +/// factor. This assertion is used to complete enrollment of TOTP as a second +/// factor. \param secret The TOTP secret. +/// +/// \param oneTimePassword One time password string. +/// +/// +/// returns: +/// The MFA assertion. ++ (FIRTOTPMultiFactorAssertion *_Nonnull) + assertionForEnrollmentWithSecret:(FIRTOTPSecret *_Nonnull)secret + oneTimePassword:(NSString *_Nonnull)oneTimePassword + SWIFT_WARN_UNUSED_RESULT; +/// Initializes the MFA assertion to confirm ownership of the TOTP second +/// factor. This assertion is used to complete signIn with TOTP as a second +/// factor. \param enrollmentID The ID that identifies the enrolled TOTP second +/// factor. +/// +/// \param oneTimePassword one time password string. +/// +/// +/// returns: +/// The MFA assertion. ++ (FIRTOTPMultiFactorAssertion *_Nonnull) + assertionForSignInWithEnrollmentID:(NSString *_Nonnull)enrollmentID + oneTimePassword:(NSString *_Nonnull)oneTimePassword + SWIFT_WARN_UNUSED_RESULT; +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; +@end + +/// The subclass of base class MultiFactorAssertion, used to assert ownership of +/// a TOTP (Time-based One Time Password) second factor. This class is available +/// on iOS only. +SWIFT_CLASS_NAMED("TOTPSecret") +@interface FIRTOTPSecret : NSObject +/// Returns the shared secret key/seed used to generate time-based one-time +/// passwords. +- (NSString *_Nonnull)sharedSecretKey SWIFT_WARN_UNUSED_RESULT; +/// Returns a QRCode URL as described in +/// https://github.com/google/google-authenticator/wiki/Key-Uri-Format. +/// This can be displayed to the user as a QRCode to be scanned into a TOTP app +/// like Google Authenticator. \param accountName The name of the account/app. +/// +/// \param issuer Issuer of the TOTP(likely the app name). +/// +/// +/// returns: +/// A QRCode URL string. +- (NSString *_Nonnull) + generateQRCodeURLWithAccountName:(NSString *_Nonnull)accountName + issuer:(NSString *_Nonnull)issuer + SWIFT_WARN_UNUSED_RESULT; +/// Opens the specified QR Code URL in a password manager like iCloud Keychain. +/// See more details +/// here +- (void)openInOTPAppWithQRCodeURL:(NSString *_Nonnull)qrCodeURL; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +/// Utility class for constructing Twitter Sign In credentials. +SWIFT_CLASS_NAMED("TwitterAuthProvider") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRTwitterAuthProvider : NSObject +/// A string constant identifying the Twitter identity provider. +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) + NSString *_Nonnull id;) ++ (NSString *_Nonnull)id SWIFT_WARN_UNUSED_RESULT; +/// Creates an AuthCredential for a Twitter sign in. +/// \param token The Twitter OAuth token. +/// +/// \param secret The Twitter OAuth secret. +/// +/// +/// returns: +/// An AuthCredential containing the Twitter credentials. ++ (FIRAuthCredential *_Nonnull)credentialWithToken:(NSString *_Nonnull)token + secret:(NSString *_Nonnull)secret + SWIFT_WARN_UNUSED_RESULT; +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER SWIFT_UNAVAILABLE; +@end + +/// Represents user data returned from an identity provider. +SWIFT_PROTOCOL_NAMED("UserInfo") +@protocol FIRUserInfo +/// The provider identifier. +@property(nonatomic, readonly, copy) NSString *_Nonnull providerID; +/// The provider’s user ID for the user. +@property(nonatomic, readonly, copy) NSString *_Nonnull uid; +/// The name of the user. +@property(nonatomic, readonly, copy) NSString *_Nullable displayName; +/// The URL of the user’s profile photo. +@property(nonatomic, readonly, copy) NSURL *_Nullable photoURL; +/// The user’s email address. +@property(nonatomic, readonly, copy) NSString *_Nullable email; +/// A phone number associated with the user. +/// This property is only available for users authenticated via phone number +/// auth. +@property(nonatomic, readonly, copy) NSString *_Nullable phoneNumber; +@end + +@class FIRUserMetadata; +@class FIRUserProfileChangeRequest; + +/// Represents a user. +/// Firebase Auth does not attempt to validate users +/// when loading them from the keychain. Invalidated users (such as those +/// whose passwords have been changed on another client) are automatically +/// logged out when an auth-dependent operation is attempted or when the +/// ID token is automatically refreshed. +/// This class is thread-safe. +SWIFT_CLASS_NAMED("User") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) @interface FIRUser + : NSObject +/// Indicates the user represents an anonymous user. +@property(nonatomic, readonly) BOOL isAnonymous; +/// Indicates the user represents an anonymous user. +- (BOOL)anonymous SWIFT_WARN_UNUSED_RESULT; +/// Indicates the email address associated with this user has been verified. +@property(nonatomic, readonly) BOOL isEmailVerified; +/// Indicates the email address associated with this user has been verified. +- (BOOL)emailVerified SWIFT_WARN_UNUSED_RESULT; +/// Profile data for each identity provider, if any. +/// This data is cached on sign-in and updated when linking or unlinking. +@property(nonatomic, readonly, copy) + NSArray > *_Nonnull providerData; +/// Metadata associated with the Firebase user in question. +@property(nonatomic, readonly, strong) FIRUserMetadata *_Nonnull metadata; +/// The tenant ID of the current user. nil if none is available. +@property(nonatomic, readonly, copy) NSString *_Nullable tenantID; +/// Multi factor object associated with the user. +/// This property is available on iOS only. +@property(nonatomic, readonly, strong) FIRMultiFactor *_Nonnull multiFactor; +/// [Deprecated] Updates the email address for the user. +/// On success, the cached user profile data is updated. Returns an error when +/// Email +/// Enumeration Protection is enabled. May fail if there is already an +/// account with this email address that was created using email and password +/// authentication. Invoked asynchronously on the main thread in the future. +/// Possible error codes: +///
    +///
  • +/// AuthErrorCodeInvalidRecipientEmail - Indicates an invalid +/// recipient email was sent in the request. +///
  • +///
  • +/// AuthErrorCodeInvalidSender - Indicates an invalid sender +/// email is set in the console for this action. +///
  • +///
  • +/// AuthErrorCodeInvalidMessagePayload - Indicates an invalid +/// email template for sending update email. +///
  • +///
  • +/// AuthErrorCodeEmailAlreadyInUse - Indicates the email is +/// already in use by another account. +///
  • +///
  • +/// AuthErrorCodeInvalidEmail - Indicates the email address is +/// malformed. +///
  • +///
  • +/// AuthErrorCodeRequiresRecentLogin - Updating a user’s email +/// is a security sensitive operation that requires a recent login from the +/// user. This error indicates the user has not signed in recently enough. +/// To resolve, reauthenticate the user by calling +/// reauthenticate(with:). +///
  • +///
+/// \param email The email address for the user. +/// +/// \param completion Optionally; the block invoked when the user profile change +/// has finished. +/// +- (void)updateEmail:(NSString *_Nonnull)email + completion:(void (^_Nullable)(NSError *_Nullable))completion + SWIFT_DEPRECATED_MSG( + "`updateEmail` is deprecated and will be removed in a future release. " + "Use sendEmailVerification(beforeUpdatingEmail:) instead."); +/// Updates the password for the user. On success, the cached user profile data +/// is updated. Invoked asynchronously on the main thread in the future. +/// Possible error codes: +///
    +///
  • +/// AuthErrorCodeOperationNotAllowed - Indicates the +/// administrator disabled sign in with the specified identity provider. +///
  • +///
  • +/// AuthErrorCodeRequiresRecentLogin - Updating a user’s +/// password is a security sensitive operation that requires a recent login +/// from the user. This error indicates the user has not signed in recently +/// enough. To resolve, reauthenticate the user by calling +/// reauthenticate(with:). +///
  • +///
  • +/// AuthErrorCodeWeakPassword - Indicates an attempt to set a +/// password that is considered too weak. The +/// NSLocalizedFailureReasonErrorKey field in the +/// userInfo dictionary object will contain more detailed +/// explanation that can be shown to the user. +///
  • +///
+/// \param password The new password for the user. +/// +/// \param completion Optionally; the block invoked when the user profile change +/// has finished. +/// +- (void)updatePassword:(NSString *_Nonnull)password + completion:(void (^_Nullable)(NSError *_Nullable))completion; +/// Updates the phone number for the user. On success, the cached user profile +/// data is updated. Invoked asynchronously on the main thread in the future. +/// This method is available on iOS only. +/// Possible error codes: +///
    +///
  • +/// AuthErrorCodeRequiresRecentLogin - Updating a user’s phone +/// number is a security sensitive operation that requires a recent login +/// from the user. This error indicates the user has not signed in recently +/// enough. To resolve, reauthenticate the user by calling +/// reauthenticate(with:). +///
  • +///
+/// \param credential The new phone number credential corresponding to the +/// phone number to be added to the Firebase account, if a phone number is +/// already linked to the account this new phone number will replace it. +/// +/// \param completion Optionally; the block invoked when the user profile change +/// has finished. +/// +- (void)updatePhoneNumberCredential:(FIRPhoneAuthCredential *_Nonnull)credential + completion: + (void (^_Nullable)(NSError *_Nullable))completion; +/// Creates an object which may be used to change the user’s profile data. +/// Set the properties of the returned object, then call +/// UserProfileChangeRequest.commitChanges() to perform the updates +/// atomically. +/// +/// returns: +/// An object which may be used to change the user’s profile data atomically. +- (FIRUserProfileChangeRequest *_Nonnull) + profileChangeRequest SWIFT_WARN_UNUSED_RESULT; +/// A refresh token; useful for obtaining new access tokens independently. +/// This property should only be used for advanced scenarios, and is not +/// typically needed. +@property(nonatomic, readonly, copy) NSString *_Nullable refreshToken; +/// Reloads the user’s profile data from the server. +/// May fail with an AuthErrorCodeRequiresRecentLogin error code. +/// In this case you should call reauthenticate(with:) before +/// re-invoking updateEmail(to:). \param completion Optionally; the +/// block invoked when the reload has finished. Invoked asynchronously on the +/// main thread in the future. +/// +- (void)reloadWithCompletion:(void (^_Nullable)(NSError *_Nullable))completion; +/// Renews the user’s authentication tokens by validating a fresh set of +/// credentials supplied by the user and returns additional identity provider +/// data. If the user associated with the supplied credential is different from +/// the current user, or if the validation of the supplied credentials fails; an +/// error is returned and the current user remains signed in. Possible error +/// codes:
    +///
  • +/// AuthErrorCodeInvalidCredential - Indicates the supplied +/// credential is invalid. This could happen if it has expired or it is +/// malformed. +///
  • +///
  • +/// AuthErrorCodeOperationNotAllowed - Indicates that accounts +/// with the identity provider represented by the credential are not +/// enabled. Enable them in the Auth section of the Firebase console. +///
  • +///
  • +/// AuthErrorCodeEmailAlreadyInUse - Indicates the email +/// asserted by the credential (e.g. the email in a Facebook access token) +/// is already in use by an existing account, that cannot be authenticated +/// with this method. This error will only be thrown if the “One account per +/// email address” setting is enabled in the Firebase console, under Auth +/// settings. Please note that the error code raised in this specific +/// situation may not be the same on Web and Android. +///
  • +///
  • +/// AuthErrorCodeUserDisabled - Indicates the user’s account is +/// disabled. +///
  • +///
  • +/// AuthErrorCodeWrongPassword - Indicates the user attempted +/// reauthentication with an incorrect password, if credential is of the +/// type EmailPasswordAuthCredential. +///
  • +///
  • +/// AuthErrorCodeUserMismatch - Indicates that an attempt was +/// made to reauthenticate with a user which is not the current user. +///
  • +///
  • +/// AuthErrorCodeInvalidEmail - Indicates the email address is +/// malformed. +///
  • +///
+/// \param credential A user-supplied credential, which will be validated by the +/// server. This can be a successful third-party identity provider sign-in, or +/// an email address and password. +/// +/// \param completion Optionally; the block invoked when the re-authentication +/// operation has finished. Invoked asynchronously on the main thread in the +/// future. +/// +- (void)reauthenticateWithCredential:(FIRAuthCredential *_Nonnull)credential + completion: + (void (^_Nullable)(FIRAuthDataResult *_Nullable, + NSError *_Nullable))completion; +/// Renews the user’s authentication using the provided auth provider instance. +/// This method is available on iOS only. +/// \param provider An instance of an auth provider used to initiate the +/// reauthenticate flow. +/// +/// \param uiDelegate Optionally an instance of a class conforming to the +/// AuthUIDelegate protocol, used for presenting the web context. +/// If nil, a default AuthUIDelegate will be used. +/// +/// \param completion Optionally; a block which is invoked when the +/// reauthenticate flow finishes, or is canceled. Invoked asynchronously on the +/// main thread in the future. +/// +- (void)reauthenticateWithProvider: + (id _Nonnull)provider + UIDelegate:(id _Nullable)uiDelegate + completion: + (void (^_Nullable)(FIRAuthDataResult *_Nullable, + NSError *_Nullable))completion; +/// Retrieves the Firebase authentication token, possibly refreshing it if it +/// has expired. \param completion Optionally; the block invoked when the token +/// is available. Invoked asynchronously on the main thread in the future. +/// +- (void)getIDTokenWithCompletion: + (void (^_Nullable)(NSString *_Nullable, NSError *_Nullable))completion; +/// Retrieves the Firebase authentication token, possibly refreshing it if it +/// has expired. The authentication token will be refreshed (by making a network +/// request) if it has expired, or if forceRefresh is +/// true. \param forceRefresh Forces a token refresh. Useful if the +/// token becomes invalid for some reason other than an expiration. +/// +/// \param completion Optionally; the block invoked when the token is available. +/// Invoked asynchronously on the main thread in the future. +/// +- (void)getIDTokenForcingRefresh:(BOOL)forceRefresh + completion: + (void (^_Nullable)(NSString *_Nullable, + NSError *_Nullable))completion; +/// Retrieves the Firebase authentication token, possibly refreshing it if it +/// has expired. \param completion Optionally; the block invoked when the token +/// is available. Invoked asynchronously on the main thread in the future. +/// +- (void)getIDTokenResultWithCompletion: + (void (^_Nullable)(FIRAuthTokenResult *_Nullable, + NSError *_Nullable))completion; +/// Retrieves the Firebase authentication token, possibly refreshing it if it +/// has expired. The authentication token will be refreshed (by making a network +/// request) if it has expired, or if forcingRefresh is +/// true. \param forcingRefresh Forces a token refresh. Useful if +/// the token becomes invalid for some reason other than an expiration. +/// +/// \param completion Optionally; the block invoked when the token is available. +/// Invoked asynchronously on the main thread in the future. +/// +- (void)getIDTokenResultForcingRefresh:(BOOL)forcingRefresh + completion:(void (^_Nullable)( + FIRAuthTokenResult *_Nullable, + NSError *_Nullable))completion; +/// Associates a user account from a third-party identity provider with this +/// user and returns additional identity provider data. Invoked asynchronously +/// on the main thread in the future. Possible error codes:
    +///
  • +/// AuthErrorCodeProviderAlreadyLinked - Indicates an attempt +/// to link a provider of a type already linked to this account. +///
  • +///
  • +/// AuthErrorCodeCredentialAlreadyInUse - Indicates an attempt +/// to link with a credential that has already been linked with a different +/// Firebase account. +///
  • +///
  • +/// AuthErrorCodeOperationNotAllowed - Indicates that accounts +/// with the identity provider represented by the credential are not +/// enabled. Enable them in the Auth section of the Firebase console. +///
  • +///
+/// This method may also return error codes associated with +/// updateEmail(to:) and updatePassword(to:) on +/// User. \param credential The credential for the identity +/// provider. +/// +/// \param completion Optionally; the block invoked when the unlinking is +/// complete, or fails. +/// +- (void)linkWithCredential:(FIRAuthCredential *_Nonnull)credential + completion:(void (^_Nullable)(FIRAuthDataResult *_Nullable, + NSError *_Nullable))completion; +/// Link the user with the provided auth provider instance. +/// This method is available on iOSonly. +/// \param provider An instance of an auth provider used to initiate the link +/// flow. +/// +/// \param uiDelegate Optionally an instance of a class conforming to the +/// AuthUIDelegate protocol used for presenting the web context. If +/// nil, a default AuthUIDelegate will be used. +/// +/// \param completion Optionally; a block which is invoked when the link flow +/// finishes, or is canceled. Invoked asynchronously on the main thread in the +/// future. +/// +- (void)linkWithProvider:(id _Nonnull)provider + UIDelegate:(id _Nullable)uiDelegate + completion:(void (^_Nullable)(FIRAuthDataResult *_Nullable, + NSError *_Nullable))completion; +/// Disassociates a user account from a third-party identity provider with this +/// user. Invoked asynchronously on the main thread in the future. Possible +/// error codes:
    +///
  • +/// AuthErrorCodeNoSuchProvider - Indicates an attempt to +/// unlink a provider that is not linked to the account. +///
  • +///
  • +/// AuthErrorCodeRequiresRecentLogin - Updating email is a +/// security sensitive operation that requires a recent login from the user. +/// This error indicates the user has not signed in recently enough. To +/// resolve, reauthenticate the user by calling +/// reauthenticate(with:). +///
  • +///
+/// \param provider The provider ID of the provider to unlink. +/// +/// \param completion Optionally; the block invoked when the unlinking is +/// complete, or fails. +/// +- (void)unlinkFromProvider:(NSString *_Nonnull)provider + completion:(void (^_Nullable)(FIRUser *_Nullable, + NSError *_Nullable))completion; +/// Initiates email verification for the user. +/// Possible error codes: +///
    +///
  • +/// AuthErrorCodeInvalidRecipientEmail - Indicates an invalid +/// recipient email was sent in the request. +///
  • +///
  • +/// AuthErrorCodeInvalidSender - Indicates an invalid sender +/// email is set in the console for this action. +///
  • +///
  • +/// AuthErrorCodeInvalidMessagePayload - Indicates an invalid +/// email template for sending update email. +///
  • +///
  • +/// AuthErrorCodeUserNotFound - Indicates the user account was +/// not found. +///
  • +///
+/// \param completion Optionally; the block invoked when the request to send an +/// email verification is complete, or fails. Invoked asynchronously on the main +/// thread in the future. +/// +- (void)sendEmailVerificationWithCompletion: + (void (^_Nullable)(NSError *_Nullable))completion; +/// Initiates email verification for the user. +/// Possible error codes: +///
    +///
  • +/// AuthErrorCodeInvalidRecipientEmail - Indicates an invalid +/// recipient email was sent in the request. +///
  • +///
  • +/// AuthErrorCodeInvalidSender - Indicates an invalid sender +/// email is set in the console for this action. +///
  • +///
  • +/// AuthErrorCodeInvalidMessagePayload - Indicates an invalid +/// email template for sending update email. +///
  • +///
  • +/// AuthErrorCodeUserNotFound - Indicates the user account was +/// not found. +///
  • +///
+/// \param actionCodeSettings An ActionCodeSettings object +/// containing settings related to handling action codes. +/// +/// \param completion Optionally; the block invoked when the request to send an +/// email verification is complete, or fails. Invoked asynchronously on the main +/// thread in the future. +/// +- (void)sendEmailVerificationWithActionCodeSettings: + (FIRActionCodeSettings *_Nullable)actionCodeSettings + completion: + (void (^_Nullable)( + NSError *_Nullable))completion; +/// Deletes the user account (also signs out the user, if this was the current +/// user). Possible error codes:
    +///
  • +/// AuthErrorCodeRequiresRecentLogin - Updating email is a +/// security sensitive operation that requires a recent login from the user. +/// This error indicates the user has not signed in recently enough. To +/// resolve, reauthenticate the user by calling +/// reauthenticate(with:). +///
  • +///
+/// \param completion Optionally; the block invoked when the request to delete +/// the account is complete, or fails. Invoked asynchronously on the main thread +/// in the future. +/// +- (void)deleteWithCompletion:(void (^_Nullable)(NSError *_Nullable))completion; +/// Send an email to verify the ownership of the account then update to the new +/// email. \param email The email to be updated to. +/// +/// \param completion Optionally; the block invoked when the request to send the +/// verification email is complete, or fails. +/// +- (void)sendEmailVerificationBeforeUpdatingEmail:(NSString *_Nonnull)email + completion: + (void (^_Nullable)( + NSError *_Nullable))completion; +/// Send an email to verify the ownership of the account then update to the new +/// email. \param email The email to be updated to. +/// +/// \param actionCodeSettings An ActionCodeSettings object +/// containing settings related to handling action codes. +/// +/// \param completion Optionally; the block invoked when the request to send the +/// verification email is complete, or fails. +/// +- (void) + sendEmailVerificationBeforeUpdatingEmail:(NSString *_Nonnull)email + actionCodeSettings:(FIRActionCodeSettings *_Nullable) + actionCodeSettings + completion:(void (^_Nullable)( + NSError *_Nullable))completion; +@property(nonatomic, readonly, copy) NSString *_Nonnull providerID; +/// The provider’s user ID for the user. +@property(nonatomic, copy) NSString *_Nonnull uid; +/// The name of the user. +@property(nonatomic, copy) NSString *_Nullable displayName; +/// The URL of the user’s profile photo. +@property(nonatomic, copy) NSURL *_Nullable photoURL; +/// The user’s email address. +@property(nonatomic, copy) NSString *_Nullable email; +/// A phone number associated with the user. +/// This property is only available for users authenticated via phone number +/// auth. +@property(nonatomic, copy) NSString *_Nullable phoneNumber; +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly) + BOOL supportsSecureCoding;) ++ (BOOL)supportsSecureCoding SWIFT_WARN_UNUSED_RESULT; +- (void)encodeWithCoder:(NSCoder *_Nonnull)coder; +- (nullable instancetype)initWithCoder:(NSCoder *_Nonnull)coder + OBJC_DESIGNATED_INITIALIZER; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +SWIFT_AVAILABILITY(watchos, introduced = 7) +SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, + introduced = 13) SWIFT_AVAILABILITY(ios, + introduced = 13) + @interface FIRUser(SWIFT_EXTENSION(FirebaseAuth)) +@end + +/// A data class representing the metadata corresponding to a Firebase user. +SWIFT_CLASS_NAMED("UserMetadata") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRUserMetadata : NSObject +/// Stores the last sign in date for the corresponding Firebase user. +@property(nonatomic, readonly, copy) NSDate *_Nullable lastSignInDate; +/// Stores the creation date for the corresponding Firebase user. +@property(nonatomic, readonly, copy) NSDate *_Nullable creationDate; +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly) + BOOL supportsSecureCoding;) ++ (BOOL)supportsSecureCoding SWIFT_WARN_UNUSED_RESULT; +- (void)encodeWithCoder:(NSCoder *_Nonnull)coder; +- (nullable instancetype)initWithCoder:(NSCoder *_Nonnull)coder; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +SWIFT_AVAILABILITY(watchos, introduced = 7) +SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) @interface FIRUserMetadata( + SWIFT_EXTENSION(FirebaseAuth)) +@end + +/// Represents an object capable of updating a user’s profile data. +/// Properties are marked as being part of a profile update when they are set. +/// Setting a property value to nil is not the same as leaving the property +/// unassigned. +SWIFT_CLASS_NAMED("UserProfileChangeRequest") +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRUserProfileChangeRequest : NSObject +/// The name of the user. +@property(nonatomic, copy) NSString *_Nullable displayName; +/// The URL of the user’s profile photo. +@property(nonatomic, copy) NSURL *_Nullable photoURL; +/// Commits any pending changes. +/// Invoked asynchronously on the main thread in the future. +/// This method should only be called once.Once called, property values should +/// not be changed. \param completion Optionally; the block invoked when the +/// user profile change has been applied. +/// +- (void)commitChangesWithCompletion: + (void (^_Nullable)(NSError *_Nullable))completion; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +#endif +#if __has_attribute(external_source_symbol) +#pragma clang attribute pop +#endif +#if defined(__cplusplus) +#endif +#pragma clang diagnostic pop +#endif + +#else +#error unsupported Swift architecture +#endif diff --git a/ios_pod/swift_headers/FirebaseCoreInternal-Swift.h b/ios_pod/swift_headers/FirebaseCoreInternal-Swift.h index d2abcfbe03..da6fad3d44 100644 --- a/ios_pod/swift_headers/FirebaseCoreInternal-Swift.h +++ b/ios_pod/swift_headers/FirebaseCoreInternal-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 10.25.0. +// Copied from Firebase iOS SDK 11.0.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -394,7 +394,7 @@ SWIFT_CLASS_NAMED("_ObjC_HeartbeatsPayload") #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 10.25.0. +// Copied from Firebase iOS SDK 11.0.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) diff --git a/ios_pod/swift_headers/FirebaseDatabase-Swift.h b/ios_pod/swift_headers/FirebaseDatabase-Swift.h index 8f7f18c8af..4806f4e86d 100644 --- a/ios_pod/swift_headers/FirebaseDatabase-Swift.h +++ b/ios_pod/swift_headers/FirebaseDatabase-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 10.25.0. +// Copied from Firebase iOS SDK 11.0.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -338,7 +338,7 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 10.25.0. +// Copied from Firebase iOS SDK 11.0.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) diff --git a/ios_pod/swift_headers/FirebaseFirestore-Swift.h b/ios_pod/swift_headers/FirebaseFirestore-Swift.h index 85873b0cb7..f52d43df2d 100644 --- a/ios_pod/swift_headers/FirebaseFirestore-Swift.h +++ b/ios_pod/swift_headers/FirebaseFirestore-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 10.25.0. +// Copied from Firebase iOS SDK 11.0.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -346,7 +346,7 @@ SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 10.25.0. +// Copied from Firebase iOS SDK 11.0.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) diff --git a/ios_pod/swift_headers/FirebaseFunctions-Swift.h b/ios_pod/swift_headers/FirebaseFunctions-Swift.h index 6b2259897f..a0384e61ce 100644 --- a/ios_pod/swift_headers/FirebaseFunctions-Swift.h +++ b/ios_pod/swift_headers/FirebaseFunctions-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 10.25.0. +// Copied from Firebase iOS SDK 11.0.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -456,7 +456,7 @@ SWIFT_CLASS_NAMED("Functions") @end /// The set of error status codes that can be returned from a Callable HTTPS -/// tigger. These are the canonical error codes for Google APIs, as documented +/// trigger. These are the canonical error codes for Google APIs, as documented /// here: /// https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto#L26 typedef SWIFT_ENUM_NAMED(NSInteger, FIRFunctionsErrorCode, "FunctionsErrorCode", @@ -619,7 +619,7 @@ SWIFT_CLASS_NAMED("HTTPSCallableResult") #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 10.25.0. +// Copied from Firebase iOS SDK 11.0.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -1074,7 +1074,7 @@ SWIFT_CLASS_NAMED("Functions") @end /// The set of error status codes that can be returned from a Callable HTTPS -/// tigger. These are the canonical error codes for Google APIs, as documented +/// trigger. These are the canonical error codes for Google APIs, as documented /// here: /// https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto#L26 typedef SWIFT_ENUM_NAMED(NSInteger, FIRFunctionsErrorCode, "FunctionsErrorCode", diff --git a/ios_pod/swift_headers/FirebaseInAppMessaging-Swift.h b/ios_pod/swift_headers/FirebaseInAppMessaging-Swift.h index 0635aeb1c9..65bd9388e2 100644 --- a/ios_pod/swift_headers/FirebaseInAppMessaging-Swift.h +++ b/ios_pod/swift_headers/FirebaseInAppMessaging-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 10.25.0. +// Copied from Firebase iOS SDK 11.0.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -337,7 +337,7 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 10.25.0. +// Copied from Firebase iOS SDK 11.0.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) diff --git a/ios_pod/swift_headers/FirebaseMLModelDownloader-Swift.h b/ios_pod/swift_headers/FirebaseMLModelDownloader-Swift.h index 824a0c8fed..d032d538a0 100644 --- a/ios_pod/swift_headers/FirebaseMLModelDownloader-Swift.h +++ b/ios_pod/swift_headers/FirebaseMLModelDownloader-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 10.25.0. +// Copied from Firebase iOS SDK 11.0.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -338,7 +338,7 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 10.25.0. +// Copied from Firebase iOS SDK 11.0.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) diff --git a/ios_pod/swift_headers/FirebaseRemoteConfig-Swift.h b/ios_pod/swift_headers/FirebaseRemoteConfig-Swift.h index 93f133e3e5..fc2b001a75 100644 --- a/ios_pod/swift_headers/FirebaseRemoteConfig-Swift.h +++ b/ios_pod/swift_headers/FirebaseRemoteConfig-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 10.25.0. +// Copied from Firebase iOS SDK 11.0.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -338,7 +338,7 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 10.25.0. +// Copied from Firebase iOS SDK 11.0.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) diff --git a/ios_pod/swift_headers/FirebaseSessions-Swift.h b/ios_pod/swift_headers/FirebaseSessions-Swift.h index ed9ca1c493..100a38c9e4 100644 --- a/ios_pod/swift_headers/FirebaseSessions-Swift.h +++ b/ios_pod/swift_headers/FirebaseSessions-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 10.25.0. +// Copied from Firebase iOS SDK 11.0.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -383,7 +383,7 @@ typedef SWIFT_ENUM_NAMED(NSInteger, FIRSessionsSubscriberName, #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 10.25.0. +// Copied from Firebase iOS SDK 11.0.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) diff --git a/ios_pod/swift_headers/FirebaseSharedSwift-Swift.h b/ios_pod/swift_headers/FirebaseSharedSwift-Swift.h index c664df02b3..df597d7188 100644 --- a/ios_pod/swift_headers/FirebaseSharedSwift-Swift.h +++ b/ios_pod/swift_headers/FirebaseSharedSwift-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 10.25.0. +// Copied from Firebase iOS SDK 11.0.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -337,7 +337,7 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 10.25.0. +// Copied from Firebase iOS SDK 11.0.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) diff --git a/ios_pod/swift_headers/FirebaseStorage-Swift.h b/ios_pod/swift_headers/FirebaseStorage-Swift.h index f7ba2c1d91..9ee7024120 100644 --- a/ios_pod/swift_headers/FirebaseStorage-Swift.h +++ b/ios_pod/swift_headers/FirebaseStorage-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 10.25.0. +// Copied from Firebase iOS SDK 11.0.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -343,7 +343,12 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); /// instance of FirebaseApp, the storage location will be specified /// via the FirebaseOptions.storageBucket property. SWIFT_CLASS_NAMED("Storage") -@interface FIRStorage : NSObject +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) @interface FIRStorage + : NSObject /// The default Storage instance. /// /// returns: @@ -410,7 +415,12 @@ SWIFT_CLASS_NAMED("Storage") /// returns: /// An instance of StorageReference referencing the root of the /// storage bucket. -- (FIRStorageReference *_Nonnull)reference SWIFT_WARN_UNUSED_RESULT; +- (FIRStorageReference *_Nonnull)reference SWIFT_WARN_UNUSED_RESULT + SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13); /// Creates a StorageReference given a gs://, http://, /// or https:// URL pointing to a Firebase Storage location. For /// example, you can pass in an https:// download URL retrieved @@ -426,7 +436,11 @@ SWIFT_CLASS_NAMED("Storage") /// returns: /// An instance of StorageReference at the given child path. - (FIRStorageReference *_Nonnull)referenceForURL:(NSString *_Nonnull)url - SWIFT_WARN_UNUSED_RESULT; + SWIFT_WARN_UNUSED_RESULT SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13); /// Creates a StorageReference initialized at a location specified /// by the path parameter. \param path A relative path from the /// root of the storage bucket, for instance @“path/to/object”. @@ -476,7 +490,12 @@ SWIFT_PROTOCOL_NAMED("StorageTaskManagement") /// fired on the developer-specified callback queue. If no queue is specified, /// it defaults to the main queue. This class is thread-safe. SWIFT_CLASS_NAMED("StorageTask") -@interface FIRStorageTask : NSObject +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRStorageTask : NSObject /// An immutable view of the task and associated metadata, progress, error, etc. @property(nonatomic, readonly, strong) FIRStorageTaskSnapshot *_Nonnull snapshot; @@ -491,7 +510,12 @@ enum FIRStorageTaskStatus : NSInteger; /// StorageHandle, which is used to keep track of and remove /// specific observers at a later date. SWIFT_CLASS_NAMED("StorageObservableTask") -@interface FIRStorageObservableTask : FIRStorageTask +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRStorageObservableTask : FIRStorageTask /// Observes changes in the upload status: Resume, Pause, Progress, Success, and /// Failure. \param status The StorageTaskStatus change to observe. /// @@ -526,8 +550,13 @@ SWIFT_CLASS_NAMED("StorageObservableTask") /// the developer specified callbackQueue in Storage, or the main /// queue if left unspecified. SWIFT_CLASS_NAMED("StorageDownloadTask") -@interface FIRStorageDownloadTask - : FIRStorageObservableTask +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRStorageDownloadTask + : FIRStorageObservableTask /// Prepares a task and begins execution. - (void)enqueue; /// Pauses a task currently in progress. Calling this on a paused task has no @@ -558,6 +587,9 @@ typedef SWIFT_ENUM_NAMED(NSInteger, FIRStorageErrorCode, "StorageErrorCode", FIRStorageErrorCodeDownloadSizeExceeded = -13032, FIRStorageErrorCodeCancelled = -13040, FIRStorageErrorCodeInvalidArgument = -13050, + FIRStorageErrorCodeBucketMismatch = -13051, + FIRStorageErrorCodeInternalError = -13052, + FIRStorageErrorCodePathError = -13053, }; static NSString *_Nonnull const FIRStorageErrorCodeDomain = @"FirebaseStorage.StorageErrorCode"; @@ -565,7 +597,12 @@ static NSString *_Nonnull const FIRStorageErrorCodeDomain = /// Contains the prefixes and items returned by a /// StorageReference.list() call. SWIFT_CLASS_NAMED("StorageListResult") -@interface FIRStorageListResult : NSObject +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRStorageListResult : NSObject /// The prefixes (folders) returned by a list() operation. @property(nonatomic, readonly, copy) NSArray *_Nonnull prefixes; @@ -590,7 +627,12 @@ SWIFT_CLASS_NAMED("StorageListResult") /// href="https://cloud.google.com/storage/docs/json_api/v1/objects#resource">GCS /// documentation SWIFT_CLASS_NAMED("StorageMetadata") -@interface FIRStorageMetadata : NSObject +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRStorageMetadata : NSObject /// The name of the bucket containing this object. @property(nonatomic, readonly, copy) NSString *_Nonnull bucket; /// Cache-Control directive for the object data. @@ -662,7 +704,12 @@ SWIFT_CLASS_NAMED("StorageMetadata") /// get/set object metadata, and delete an object at the path. See the Cloud docs for more details. SWIFT_CLASS_NAMED("StorageReference") -@interface FIRStorageReference : NSObject +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRStorageReference : NSObject /// The Storage service object which created this reference. @property(nonatomic, readonly, strong) FIRStorage *_Nonnull storage; /// The name of the Google Cloud Storage bucket associated with this reference. @@ -935,7 +982,12 @@ SWIFT_CLASS_NAMED("StorageReference") /// A snapshot contains a task, storage reference, metadata (if it exists), /// progress, and an error (if one occurred). SWIFT_CLASS_NAMED("StorageTaskSnapshot") -@interface FIRStorageTaskSnapshot : NSObject +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRStorageTaskSnapshot : NSObject /// The task this snapshot represents. @property(nonatomic, readonly, strong) FIRStorageTask *_Nonnull task; /// Metadata returned by the task, or nil if no metadata returned. @@ -970,8 +1022,13 @@ typedef SWIFT_ENUM_NAMED(NSInteger, FIRStorageTaskStatus, "StorageTaskStatus", /// queue, and callbacks are raised on the developer specified /// callbackQueue in Storage, or the main queue if unspecified. SWIFT_CLASS_NAMED("StorageUploadTask") -@interface FIRStorageUploadTask - : FIRStorageObservableTask +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRStorageUploadTask + : FIRStorageObservableTask /// Prepares a task and begins execution. - (void)enqueue; /// Pauses a task currently in progress. @@ -993,7 +1050,7 @@ SWIFT_CLASS_NAMED("StorageUploadTask") #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 10.25.0. +// Copied from Firebase iOS SDK 11.0.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -1335,7 +1392,12 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); /// instance of FirebaseApp, the storage location will be specified /// via the FirebaseOptions.storageBucket property. SWIFT_CLASS_NAMED("Storage") -@interface FIRStorage : NSObject +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) @interface FIRStorage + : NSObject /// The default Storage instance. /// /// returns: @@ -1402,7 +1464,12 @@ SWIFT_CLASS_NAMED("Storage") /// returns: /// An instance of StorageReference referencing the root of the /// storage bucket. -- (FIRStorageReference *_Nonnull)reference SWIFT_WARN_UNUSED_RESULT; +- (FIRStorageReference *_Nonnull)reference SWIFT_WARN_UNUSED_RESULT + SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13); /// Creates a StorageReference given a gs://, http://, /// or https:// URL pointing to a Firebase Storage location. For /// example, you can pass in an https:// download URL retrieved @@ -1418,7 +1485,11 @@ SWIFT_CLASS_NAMED("Storage") /// returns: /// An instance of StorageReference at the given child path. - (FIRStorageReference *_Nonnull)referenceForURL:(NSString *_Nonnull)url - SWIFT_WARN_UNUSED_RESULT; + SWIFT_WARN_UNUSED_RESULT SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13); /// Creates a StorageReference initialized at a location specified /// by the path parameter. \param path A relative path from the /// root of the storage bucket, for instance @“path/to/object”. @@ -1468,7 +1539,12 @@ SWIFT_PROTOCOL_NAMED("StorageTaskManagement") /// fired on the developer-specified callback queue. If no queue is specified, /// it defaults to the main queue. This class is thread-safe. SWIFT_CLASS_NAMED("StorageTask") -@interface FIRStorageTask : NSObject +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRStorageTask : NSObject /// An immutable view of the task and associated metadata, progress, error, etc. @property(nonatomic, readonly, strong) FIRStorageTaskSnapshot *_Nonnull snapshot; @@ -1483,7 +1559,12 @@ enum FIRStorageTaskStatus : NSInteger; /// StorageHandle, which is used to keep track of and remove /// specific observers at a later date. SWIFT_CLASS_NAMED("StorageObservableTask") -@interface FIRStorageObservableTask : FIRStorageTask +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRStorageObservableTask : FIRStorageTask /// Observes changes in the upload status: Resume, Pause, Progress, Success, and /// Failure. \param status The StorageTaskStatus change to observe. /// @@ -1518,8 +1599,13 @@ SWIFT_CLASS_NAMED("StorageObservableTask") /// the developer specified callbackQueue in Storage, or the main /// queue if left unspecified. SWIFT_CLASS_NAMED("StorageDownloadTask") -@interface FIRStorageDownloadTask - : FIRStorageObservableTask +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRStorageDownloadTask + : FIRStorageObservableTask /// Prepares a task and begins execution. - (void)enqueue; /// Pauses a task currently in progress. Calling this on a paused task has no @@ -1550,6 +1636,9 @@ typedef SWIFT_ENUM_NAMED(NSInteger, FIRStorageErrorCode, "StorageErrorCode", FIRStorageErrorCodeDownloadSizeExceeded = -13032, FIRStorageErrorCodeCancelled = -13040, FIRStorageErrorCodeInvalidArgument = -13050, + FIRStorageErrorCodeBucketMismatch = -13051, + FIRStorageErrorCodeInternalError = -13052, + FIRStorageErrorCodePathError = -13053, }; static NSString *_Nonnull const FIRStorageErrorCodeDomain = @"FirebaseStorage.StorageErrorCode"; @@ -1557,7 +1646,12 @@ static NSString *_Nonnull const FIRStorageErrorCodeDomain = /// Contains the prefixes and items returned by a /// StorageReference.list() call. SWIFT_CLASS_NAMED("StorageListResult") -@interface FIRStorageListResult : NSObject +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRStorageListResult : NSObject /// The prefixes (folders) returned by a list() operation. @property(nonatomic, readonly, copy) NSArray *_Nonnull prefixes; @@ -1582,7 +1676,12 @@ SWIFT_CLASS_NAMED("StorageListResult") /// href="https://cloud.google.com/storage/docs/json_api/v1/objects#resource">GCS /// documentation SWIFT_CLASS_NAMED("StorageMetadata") -@interface FIRStorageMetadata : NSObject +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRStorageMetadata : NSObject /// The name of the bucket containing this object. @property(nonatomic, readonly, copy) NSString *_Nonnull bucket; /// Cache-Control directive for the object data. @@ -1654,7 +1753,12 @@ SWIFT_CLASS_NAMED("StorageMetadata") /// get/set object metadata, and delete an object at the path. See the Cloud docs for more details. SWIFT_CLASS_NAMED("StorageReference") -@interface FIRStorageReference : NSObject +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRStorageReference : NSObject /// The Storage service object which created this reference. @property(nonatomic, readonly, strong) FIRStorage *_Nonnull storage; /// The name of the Google Cloud Storage bucket associated with this reference. @@ -1927,7 +2031,12 @@ SWIFT_CLASS_NAMED("StorageReference") /// A snapshot contains a task, storage reference, metadata (if it exists), /// progress, and an error (if one occurred). SWIFT_CLASS_NAMED("StorageTaskSnapshot") -@interface FIRStorageTaskSnapshot : NSObject +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRStorageTaskSnapshot : NSObject /// The task this snapshot represents. @property(nonatomic, readonly, strong) FIRStorageTask *_Nonnull task; /// Metadata returned by the task, or nil if no metadata returned. @@ -1962,8 +2071,13 @@ typedef SWIFT_ENUM_NAMED(NSInteger, FIRStorageTaskStatus, "StorageTaskStatus", /// queue, and callbacks are raised on the developer specified /// callbackQueue in Storage, or the main queue if unspecified. SWIFT_CLASS_NAMED("StorageUploadTask") -@interface FIRStorageUploadTask - : FIRStorageObservableTask +SWIFT_AVAILABILITY(watchos, introduced = 7) + SWIFT_AVAILABILITY(maccatalyst, introduced = 13) + SWIFT_AVAILABILITY(macos, introduced = 10.15) + SWIFT_AVAILABILITY(tvos, introduced = 13) + SWIFT_AVAILABILITY(ios, introduced = 13) + @interface FIRStorageUploadTask + : FIRStorageObservableTask /// Prepares a task and begins execution. - (void)enqueue; /// Pauses a task currently in progress. diff --git a/ios_pod/swift_headers/Promises-Swift.h b/ios_pod/swift_headers/Promises-Swift.h index 5e4a8d684a..c73e991ff3 100644 --- a/ios_pod/swift_headers/Promises-Swift.h +++ b/ios_pod/swift_headers/Promises-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 10.25.0. +// Copied from Firebase iOS SDK 11.0.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -336,7 +336,7 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 10.25.0. +// Copied from Firebase iOS SDK 11.0.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) diff --git a/ios_pod/swift_headers/SwiftProtobuf-Swift.h b/ios_pod/swift_headers/SwiftProtobuf-Swift.h index 4c82d2de73..5a7ae5d219 100644 --- a/ios_pod/swift_headers/SwiftProtobuf-Swift.h +++ b/ios_pod/swift_headers/SwiftProtobuf-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 10.25.0. +// Copied from Firebase iOS SDK 11.0.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -337,7 +337,7 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 10.25.0. +// Copied from Firebase iOS SDK 11.0.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) diff --git a/messaging/integration_test/Podfile b/messaging/integration_test/Podfile index e819022057..ff769e1a6e 100644 --- a/messaging/integration_test/Podfile +++ b/messaging/integration_test/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Messaging', '10.28.1' - pod 'Firebase/Functions', '10.28.1' + pod 'Firebase/Messaging', '11.0.0' + pod 'Firebase/Functions', '11.0.0' end target 'integration_test_tvos' do - platform :tvos, '12.0' - pod 'Firebase/Messaging', '10.28.1' - pod 'Firebase/Functions', '10.28.1' + platform :tvos, '13.0' + pod 'Firebase/Messaging', '11.0.0' + pod 'Firebase/Functions', '11.0.0' end post_install do |installer| diff --git a/messaging/integration_test/integration_test.xcodeproj/project.pbxproj b/messaging/integration_test/integration_test.xcodeproj/project.pbxproj index 63030ea9f2..9cfe380d7b 100644 --- a/messaging/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/messaging/integration_test/integration_test.xcodeproj/project.pbxproj @@ -592,7 +592,7 @@ SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.3; TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 12.0; + TVOS_DEPLOYMENT_TARGET = 13.0; }; name = Debug; }; @@ -644,7 +644,7 @@ SDKROOT = appletvos; SWIFT_VERSION = 5.3; TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 12.0; + TVOS_DEPLOYMENT_TARGET = 13.0; }; name = Release; }; diff --git a/release_build_files/readme.md b/release_build_files/readme.md index f3e8af087f..a1532d5fff 100644 --- a/release_build_files/readme.md +++ b/release_build_files/readme.md @@ -230,50 +230,50 @@ Feature | Required Frameworks and Cocoapods -------------------------- | --------------------------------------- Firebase Analytics | firebase_analytics.xcframework | | firebase.xcframework -| | Firebase/Analytics Cocoapod (10.28.1) +| | Firebase/Analytics Cocoapod (11.0.0) Firebase App Check | firebase_app_check.xcframework | | firebase.xcframework -| | Firebase/AppCheck Cocoapod (10.28.1) +| | Firebase/AppCheck Cocoapod (11.0.0) Firebase Authentication | firebase_auth.xcframework | | firebase.xcframework -| | Firebase/Auth Cocoapod (10.28.1) +| | Firebase/Auth Cocoapod (11.0.0) Firebase Dynamic Links | firebase_dynamic_links.xcframework | | firebase.xcframework -| | Firebase/DynamicLinks Cocoapod (10.28.1) +| | Firebase/DynamicLinks Cocoapod (11.0.0) Cloud Firestore | firebase_firestore.xcframework | | firebase_auth.xcframework | | firebase.xcframework -| | Firebase/Firestore Cocoapod (10.28.1) -| | Firebase/Auth Cocoapod (10.28.1) +| | Firebase/Firestore Cocoapod (11.0.0) +| | Firebase/Auth Cocoapod (11.0.0) Firebase Functions | firebase_functions.xcframework | | firebase_auth.xcframework (optional) | | firebase.xcframework -| | Firebase/Functions Cocoapod (10.28.1) -| | Firebase/Auth Cocoapod (10.28.1) +| | Firebase/Functions Cocoapod (11.0.0) +| | Firebase/Auth Cocoapod (11.0.0) Google Mobile Ads | firebase_gma.xcframework | | firebase.xcframework -| | Firebase/CoreOnly Cocoapod (10.28.1) +| | Firebase/CoreOnly Cocoapod (11.0.0) | | Google-Mobile-Ads-SDK Cocoapod (11.2.0) | | GoogleUserMessagingPlatform Cocoapod (2.3.0) Firebase Installations | firebase_installations.xcframework | | firebase.xcframework -| | FirebaseInstallations Cocoapod (10.28.0) +| | FirebaseInstallations Cocoapod (11.0.0) Firebase Cloud Messaging | firebase_messaging.xcframework | | firebase.xcframework -| | Firebase/Messaging Cocoapod (10.28.1) +| | Firebase/Messaging Cocoapod (11.0.0) Firebase Realtime Database | firebase_database.xcframework | | firebase_auth.xcframework | | firebase.xcframework -| | Firebase/Database Cocoapod (10.28.1) -| | Firebase/Auth Cocoapod (10.28.1) +| | Firebase/Database Cocoapod (11.0.0) +| | Firebase/Auth Cocoapod (11.0.0) Firebase Remote Config | firebase_remote_config.xcframework | | firebase.xcframework -| | Firebase/RemoteConfig Cocoapod (10.28.1) +| | Firebase/RemoteConfig Cocoapod (11.0.0) Firebase Storage | firebase_storage.xcframework | | firebase_auth.xcframework | | firebase.xcframework -| | Firebase/Storage Cocoapod (10.28.1) -| | Firebase/Auth Cocoapod (10.28.1) +| | Firebase/Storage Cocoapod (11.0.0) +| | Firebase/Auth Cocoapod (11.0.0) Important: Each version of the Firebase C++ SDK supports a specific version of the Firebase iOS SDK. Please ensure that you reference the Cocoapod versions @@ -293,50 +293,50 @@ Feature | Required Libraries and Cocoapods -------------------------- | ----------------------------------------- Firebase Analytics | libfirebase_analytics.a | | libfirebase_app.a -| | Firebase/Analytics Cocoapod (10.28.1) +| | Firebase/Analytics Cocoapod (11.0.0) Firebase App Check | firebase_app_check.xcframework | | firebase.xcframework -| | Firebase/AppCheck Cocoapod (10.28.1) +| | Firebase/AppCheck Cocoapod (11.0.0) Firebase Authentication | libfirebase_auth.a | | libfirebase_app.a -| | Firebase/Auth Cocoapod (10.28.1) +| | Firebase/Auth Cocoapod (11.0.0) Firebase Dynamic Links | libfirebase_dynamic_links.a | | libfirebase_app.a -| | Firebase/DynamicLinks Cocoapod (10.28.1) +| | Firebase/DynamicLinks Cocoapod (11.0.0) Cloud Firestore | libfirebase_firestore.a | | libfirebase_app.a | | libfirebase_auth.a -| | Firebase/Firestore Cocoapod (10.28.1) -| | Firebase/Auth Cocoapod (10.28.1) +| | Firebase/Firestore Cocoapod (11.0.0) +| | Firebase/Auth Cocoapod (11.0.0) Firebase Functions | libfirebase_functions.a | | libfirebase_app.a | | libfirebase_auth.a (optional) -| | Firebase/Functions Cocoapod (10.28.1) -| | Firebase/Auth Cocoapod (10.28.1) +| | Firebase/Functions Cocoapod (11.0.0) +| | Firebase/Auth Cocoapod (11.0.0) Google Mobile Ads | libfirebase_gma.a | | libfirebase_app.a -| | Firebase/CoreOnly Cocoapod (10.28.1) +| | Firebase/CoreOnly Cocoapod (11.0.0) | | Google-Mobile-Ads-SDK Cocoapod (11.2.0) | | GoogleUserMessagingPlatform Cocoapod (2.3.0) Firebase Installations | libfirebase_installations.a | | libfirebase_app.a -| | FirebaseInstallations Cocoapod (10.28.0) +| | FirebaseInstallations Cocoapod (11.0.0) Firebase Cloud Messaging | libfirebase_messaging.a | | libfirebase_app.a -| | Firebase/CloudMessaging Cocoapod (10.28.1) +| | Firebase/CloudMessaging Cocoapod (11.0.0) Firebase Realtime Database | libfirebase_database.a | | libfirebase_app.a | | libfirebase_auth.a -| | Firebase/Database Cocoapod (10.28.1) -| | Firebase/Auth Cocoapod (10.28.1) +| | Firebase/Database Cocoapod (11.0.0) +| | Firebase/Auth Cocoapod (11.0.0) Firebase Remote Config | libfirebase_remote_config.a | | libfirebase_app.a -| | Firebase/RemoteConfig Cocoapod (10.28.1) +| | Firebase/RemoteConfig Cocoapod (11.0.0) Firebase Storage | libfirebase_storage.a | | libfirebase_app.a | | libfirebase_auth.a -| | Firebase/Storage Cocoapod (10.28.1) -| | Firebase/Auth Cocoapod (10.28.1) +| | Firebase/Storage Cocoapod (11.0.0) +| | Firebase/Auth Cocoapod (11.0.0) Important: Each version of the Firebase C++ SDK supports a specific version of the Firebase iOS SDK. Please ensure that you reference the Cocoapod versions diff --git a/remote_config/integration_test/Podfile b/remote_config/integration_test/Podfile index 6898897435..0b9d2057f2 100644 --- a/remote_config/integration_test/Podfile +++ b/remote_config/integration_test/Podfile @@ -4,12 +4,12 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/RemoteConfig', '10.28.1' + pod 'Firebase/RemoteConfig', '11.0.0' end target 'integration_test_tvos' do - platform :tvos, '12.0' - pod 'Firebase/RemoteConfig', '10.28.1' + platform :tvos, '13.0' + pod 'Firebase/RemoteConfig', '11.0.0' end post_install do |installer| diff --git a/remote_config/integration_test/integration_test.xcodeproj/project.pbxproj b/remote_config/integration_test/integration_test.xcodeproj/project.pbxproj index a350bc821e..d48274f7d2 100644 --- a/remote_config/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/remote_config/integration_test/integration_test.xcodeproj/project.pbxproj @@ -565,7 +565,7 @@ SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.3; TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 12.0; + TVOS_DEPLOYMENT_TARGET = 13.0; }; name = Debug; }; @@ -616,7 +616,7 @@ SDKROOT = appletvos; SWIFT_VERSION = 5.3; TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 12.0; + TVOS_DEPLOYMENT_TARGET = 13.0; }; name = Release; }; diff --git a/storage/integration_test/Podfile b/storage/integration_test/Podfile index 33f9cb06a1..5a54e9c554 100644 --- a/storage/integration_test/Podfile +++ b/storage/integration_test/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Storage', '10.28.1' - pod 'Firebase/Auth', '10.28.1' + pod 'Firebase/Storage', '11.0.0' + pod 'Firebase/Auth', '11.0.0' end target 'integration_test_tvos' do - platform :tvos, '12.0' - pod 'Firebase/Storage', '10.28.1' - pod 'Firebase/Auth', '10.28.1' + platform :tvos, '13.0' + pod 'Firebase/Storage', '11.0.0' + pod 'Firebase/Auth', '11.0.0' end post_install do |installer| diff --git a/storage/integration_test/integration_test.xcodeproj/project.pbxproj b/storage/integration_test/integration_test.xcodeproj/project.pbxproj index 280e3ed615..25a35edd16 100644 --- a/storage/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/storage/integration_test/integration_test.xcodeproj/project.pbxproj @@ -581,7 +581,7 @@ SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.3; TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 12.0; + TVOS_DEPLOYMENT_TARGET = 13.0; }; name = Debug; }; @@ -635,7 +635,7 @@ SDKROOT = appletvos; SWIFT_VERSION = 5.3; TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 12.0; + TVOS_DEPLOYMENT_TARGET = 13.0; }; name = Release; }; From d1c3a1feb038fe9eac442db7ea759d88a4edddce Mon Sep 17 00:00:00 2001 From: "firebase-workflow-trigger[bot]" <80733318+firebase-workflow-trigger[bot]@users.noreply.github.com> Date: Mon, 5 Aug 2024 11:29:51 -0700 Subject: [PATCH 12/34] Update mobile dependencies - Mon Aug 05 2024 (#1633) > Created by [Update Android and iOS dependencies workflow](https://github.com/firebase/firebase-cpp-sdk/actions/runs/10253013848). Co-authored-by: firebase-workflow-trigger-bot --- ios_pod/swift_headers/FirebaseAuth-Swift.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ios_pod/swift_headers/FirebaseAuth-Swift.h b/ios_pod/swift_headers/FirebaseAuth-Swift.h index 4e06d458dc..6c75f30568 100644 --- a/ios_pod/swift_headers/FirebaseAuth-Swift.h +++ b/ios_pod/swift_headers/FirebaseAuth-Swift.h @@ -2521,7 +2521,7 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// Profile data for each identity provider, if any. /// This data is cached on sign-in and updated when linking or unlinking. @property(nonatomic, readonly, copy) - NSArray > *_Nonnull providerData; + NSArray> *_Nonnull providerData; /// Metadata associated with the Firebase user in question. @property(nonatomic, readonly, strong) FIRUserMetadata *_Nonnull metadata; /// The tenant ID of the current user. nil if none is available. @@ -5549,7 +5549,7 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// Profile data for each identity provider, if any. /// This data is cached on sign-in and updated when linking or unlinking. @property(nonatomic, readonly, copy) - NSArray > *_Nonnull providerData; + NSArray> *_Nonnull providerData; /// Metadata associated with the Firebase user in question. @property(nonatomic, readonly, strong) FIRUserMetadata *_Nonnull metadata; /// The tenant ID of the current user. nil if none is available. From dd81f2c109eb550eb515b3aef23b205e4b64dd8b Mon Sep 17 00:00:00 2001 From: Jon Simantov Date: Mon, 5 Aug 2024 11:33:32 -0700 Subject: [PATCH 13/34] Update version numbers. --- cpp_sdk_version.json | 6 +++--- release_build_files/readme.md | 4 ++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/cpp_sdk_version.json b/cpp_sdk_version.json index aa00031b76..b9b67f2eab 100644 --- a/cpp_sdk_version.json +++ b/cpp_sdk_version.json @@ -1,5 +1,5 @@ { - "released": "12.1.0", - "stable": "12.1.0", - "head": "12.1.0" + "released": "12.2.0", + "stable": "12.2.0", + "head": "12.2.0" } diff --git a/release_build_files/readme.md b/release_build_files/readme.md index a1532d5fff..cb667514f9 100644 --- a/release_build_files/readme.md +++ b/release_build_files/readme.md @@ -631,6 +631,10 @@ workflow use only during the development of your app, not for publicly shipping code. ## Release Notes +### 12.2.0 +- Changes + - General (iOS): Update to Firebase Cocoapods version 11.0.0. + ### 12.1.0 - Changes - General (Android): Update to Firebase Android BoM version 33.1.1. From 66a957029dd5f5686cfa8ba4ff0399238c7601ab Mon Sep 17 00:00:00 2001 From: a-maurice Date: Tue, 20 Aug 2024 10:38:24 -0700 Subject: [PATCH 14/34] Preserve Messaging token until a Listener is set (#1634) * Preserve Messaging token until a Listener is set * Format file --- messaging/src/common.cc | 28 ++++++++++++++++++++++------ release_build_files/readme.md | 5 +++++ 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/messaging/src/common.cc b/messaging/src/common.cc index 43eabe1aa2..8d805c1098 100644 --- a/messaging/src/common.cc +++ b/messaging/src/common.cc @@ -48,6 +48,8 @@ static Listener* g_listener = nullptr; // Keep track of the most recent token received. static std::string* g_prev_token_received = nullptr; +// Keep track if that token was receieved without a listener set. +static bool g_has_pending_token = false; namespace internal { @@ -91,11 +93,18 @@ Listener* SetListener(Listener* listener) { g_prev_token_received = new std::string; } g_listener = listener; + // If we have a pending token, send it before notifying other systems about + // the listener. + if (g_listener && g_has_pending_token && g_prev_token_received) { + g_listener->OnTokenReceived(g_prev_token_received->c_str()); + g_has_pending_token = false; + } NotifyListenerSet(listener); if (!listener && g_prev_token_received) { std::string* ptr = g_prev_token_received; g_prev_token_received = nullptr; delete ptr; + g_has_pending_token = false; } return previous_listener; } @@ -119,13 +128,20 @@ void NotifyListenerOnTokenReceived(const char* token) { MutexLock lock(g_listener_lock); // If we have a previous token that we've notified any listener about, check // to ensure no repeat. - if (g_prev_token_received) { - if (*g_prev_token_received == token) { - return; - } - *g_prev_token_received = token; + if (g_prev_token_received && *g_prev_token_received == token) { + return; + } + + if (!g_prev_token_received) g_prev_token_received = new std::string; + *g_prev_token_received = token; + + if (g_listener) { + g_listener->OnTokenReceived(token); + } else { + // Set so that if a listener is set in the future, it will be sent + // the token, since the underlying platform won't send it again. + g_has_pending_token = true; } - if (g_listener) g_listener->OnTokenReceived(token); } class PollableListenerImpl { diff --git a/release_build_files/readme.md b/release_build_files/readme.md index cb667514f9..35970bce23 100644 --- a/release_build_files/readme.md +++ b/release_build_files/readme.md @@ -631,6 +631,11 @@ workflow use only during the development of your app, not for publicly shipping code. ## Release Notes +### Upcoming Release +- Changes + - Messaging: Changed SetListener to send the last token received + before the listener was set. + ### 12.2.0 - Changes - General (iOS): Update to Firebase Cocoapods version 11.0.0. From 09b795710f2eff760d782831bf7e63895d009295 Mon Sep 17 00:00:00 2001 From: a-maurice Date: Fri, 6 Sep 2024 15:06:24 -0700 Subject: [PATCH 15/34] Fix RemoteConfig info initialization issues (#1639) * Fix RemoteConfig info initialization issues * Update remote_config_android.cc --- release_build_files/readme.md | 2 ++ remote_config/src/android/remote_config_android.cc | 9 ++++++++- remote_config/src/include/firebase/remote_config.h | 2 +- remote_config/src/ios/remote_config_ios.mm | 11 ++++++----- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/release_build_files/readme.md b/release_build_files/readme.md index 35970bce23..298a4a6fdf 100644 --- a/release_build_files/readme.md +++ b/release_build_files/readme.md @@ -635,6 +635,8 @@ code. - Changes - Messaging: Changed SetListener to send the last token received before the listener was set. + - Remote Config: Fixed ConfigInfo fields to default to 0 when + not throttled or having previous fetch data. ### 12.2.0 - Changes diff --git a/remote_config/src/android/remote_config_android.cc b/remote_config/src/android/remote_config_android.cc index 75cf4e208f..fbecc4194b 100644 --- a/remote_config/src/android/remote_config_android.cc +++ b/remote_config/src/android/remote_config_android.cc @@ -496,8 +496,15 @@ static void JConfigInfoToConfigInfo(JNIEnv* env, jobject jinfo, ConfigInfo* info) { FIREBASE_DEV_ASSERT(env->IsInstanceOf(jinfo, config_info::GetClass())); - info->fetch_time = env->CallLongMethod( + int64_t fetch_time = env->CallLongMethod( jinfo, config_info::GetMethodId(config_info::kGetFetchTimeMillis)); + // The C++ fetch_time is a uint64_t, so if we are given a negative number, + // use 0 instead, to prevent getting a very large number. + if (fetch_time < 0) { + fetch_time = 0; + } + info->fetch_time = fetch_time; + util::CheckAndClearJniExceptions(env); int64_t status_code = env->CallIntMethod( jinfo, config_info::GetMethodId(config_info::kGetLastFetchStatus)); switch (status_code) { diff --git a/remote_config/src/include/firebase/remote_config.h b/remote_config/src/include/firebase/remote_config.h index 940943de29..c3f534a532 100644 --- a/remote_config/src/include/firebase/remote_config.h +++ b/remote_config/src/include/firebase/remote_config.h @@ -94,7 +94,7 @@ struct ConfigUpdate { /// Normally returned as a result of the GetInfo() function. struct ConfigInfo { /// @brief The time (in milliseconds since the epoch) that the last fetch - /// operation completed. + /// operation completed. 0 if no fetch attempt has been made yet. uint64_t fetch_time; /// @brief The status of the last fetch request. diff --git a/remote_config/src/ios/remote_config_ios.mm b/remote_config/src/ios/remote_config_ios.mm index 568b9efd45..647fa2a22b 100644 --- a/remote_config/src/ios/remote_config_ios.mm +++ b/remote_config/src/ios/remote_config_ios.mm @@ -52,10 +52,6 @@ static NSString *true_pattern = @"^(1|true|t|yes|y|on)$"; static NSString *false_pattern = @"^(0|false|f|no|n|off|)$"; -// If a fetch was throttled, this is set to the time when the throttling is -// finished, in milliseconds since epoch. -static NSNumber *g_throttled_end_time = @0; - // Saved default keys. static std::vector *g_default_keys = nullptr; @@ -148,6 +144,11 @@ static void GetInfoFromFIRRemoteConfig(FIRRemoteConfig *rc_instance, ConfigInfo FIREBASE_DEV_ASSERT(out_info != nullptr); out_info->fetch_time = round(rc_instance.lastFetchTime.timeIntervalSince1970 * ::firebase::internal::kMillisecondsPerSecond); + // The C++ throttled_end_time is a uint64_t, so if we are given a negative number, + // use 0 instead, to prevent getting a very large number. + if (throttled_end_time < 0) { + throttled_end_time = 0; + } out_info->throttled_end_time = throttled_end_time * ::firebase::internal::kMillisecondsPerSecond; switch (rc_instance.lastFetchStatus) { case FIRRemoteConfigFetchStatusNoFetchYet: @@ -201,7 +202,7 @@ static ConfigUpdate ConvertConfigUpdateKeys(NSSet *keys) { namespace internal { RemoteConfigInternal::RemoteConfigInternal(const firebase::App &app) - : app_(app), future_impl_(kRemoteConfigFnCount) { + : app_(app), future_impl_(kRemoteConfigFnCount), throttled_end_time_in_sec_(0) { FIRApp *platform_app = app_.GetPlatformApp(); impl_.reset(new FIRRemoteConfigPointer([FIRRemoteConfig remoteConfigWithApp:platform_app])); } From 2a2330455b83d8512d0c6cc575a865fb1de1cfee Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 Sep 2024 13:29:23 -0700 Subject: [PATCH 16/34] Bump actions/download-artifact from 3 to 4.1.7 in /.github/workflows (#1638) Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 3 to 4.1.7. - [Release notes](https://github.com/actions/download-artifact/releases) - [Commits](https://github.com/actions/download-artifact/compare/v3...v4.1.7) --- updated-dependencies: - dependency-name: actions/download-artifact dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: a-maurice --- .github/workflows/cpp-packaging.yml | 6 ++--- .github/workflows/integration_tests.yml | 30 ++++++++++++------------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/.github/workflows/cpp-packaging.yml b/.github/workflows/cpp-packaging.yml index a19864449e..eeda07cf7b 100644 --- a/.github/workflows/cpp-packaging.yml +++ b/.github/workflows/cpp-packaging.yml @@ -507,7 +507,7 @@ jobs: path: sdk-src - name: download artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4.1.7 with: # download-artifact doesn't support wildcards, but by default # will download all artifacts. Sadly this is what we must do. @@ -708,7 +708,7 @@ jobs: path: sdk-src - name: download artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4.1.7 with: # download-artifact doesn't support wildcards, but by default # will download all artifacts. Sadly this is what we must do. @@ -764,7 +764,7 @@ jobs: needs: [merge_packages] steps: - name: download SDK zip - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4.1.7 with: name: firebase_cpp_sdk.zip - name: unzip SDK and remove non-Windows files diff --git a/.github/workflows/integration_tests.yml b/.github/workflows/integration_tests.yml index fa9ae5c37f..8203f39bde 100644 --- a/.github/workflows/integration_tests.yml +++ b/.github/workflows/integration_tests.yml @@ -388,7 +388,7 @@ jobs: retention-days: ${{ env.artifactRetentionDays }} - name: Download log artifacts if: ${{ needs.check_and_prepare.outputs.pr_number && failure() && !cancelled() }} - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4.1.7 with: path: test_results name: log-artifact @@ -501,7 +501,7 @@ jobs: retention-days: ${{ env.artifactRetentionDays }} - name: Download log artifacts if: ${{ needs.check_and_prepare.outputs.pr_number && failure() && !cancelled() }} - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4.1.7 with: path: test_results name: log-artifact @@ -606,7 +606,7 @@ jobs: retention-days: ${{ env.artifactRetentionDays }} - name: Download log artifacts if: ${{ needs.check_and_prepare.outputs.pr_number && failure() && !cancelled() }} - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4.1.7 with: path: test_results name: log-artifact @@ -710,7 +710,7 @@ jobs: retention-days: ${{ env.artifactRetentionDays }} - name: Download log artifacts if: ${{ needs.check_and_prepare.outputs.pr_number && failure() && !cancelled() }} - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4.1.7 with: path: test_results name: log-artifact @@ -773,7 +773,7 @@ jobs: with: ref: ${{needs.check_and_prepare.outputs.github_ref}} - name: Download Desktop integration tests artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4.1.7 with: path: testapps/testapps-desktop-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.ssl_variant }} name: testapps-desktop-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.ssl_variant }} @@ -842,7 +842,7 @@ jobs: retention-days: ${{ env.artifactRetentionDays }} - name: Download log artifacts if: ${{ needs.check_and_prepare.outputs.pr_number && failure() && !cancelled() }} - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4.1.7 with: path: test_results name: log-artifact @@ -907,7 +907,7 @@ jobs: with: ref: ${{needs.check_and_prepare.outputs.github_ref}} - name: Download Desktop integration tests artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4.1.7 with: path: testapps name: testapps-desktop-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.ssl_variant }} @@ -986,7 +986,7 @@ jobs: retention-days: ${{ env.artifactRetentionDays }} - name: Download log artifacts if: ${{ needs.check_and_prepare.outputs.pr_number && failure() && !cancelled() }} - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4.1.7 with: path: test_results name: log-artifact @@ -1038,7 +1038,7 @@ jobs: with: ref: ${{needs.check_and_prepare.outputs.github_ref}} - name: Download Android integration tests artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4.1.7 with: path: testapps/testapps-android-${{ matrix.build_os }} name: testapps-android-${{ matrix.build_os }} @@ -1122,7 +1122,7 @@ jobs: retention-days: ${{ env.artifactRetentionDays }} - name: Download log artifacts if: ${{ needs.check_and_prepare.outputs.pr_number && failure() && !cancelled() }} - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4.1.7 with: path: test_results name: log-artifact @@ -1168,7 +1168,7 @@ jobs: with: ref: ${{needs.check_and_prepare.outputs.github_ref}} - name: Download iOS integration tests artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4.1.7 with: path: testapps/testapps-ios-${{ matrix.build_os }} name: testapps-ios-${{ matrix.build_os }} @@ -1300,7 +1300,7 @@ jobs: retention-days: ${{ env.artifactRetentionDays }} - name: Download log artifacts if: ${{ needs.check_and_prepare.outputs.pr_number && failure() && !cancelled() }} - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4.1.7 with: path: test_results name: log-artifact @@ -1338,7 +1338,7 @@ jobs: with: ref: ${{needs.check_and_prepare.outputs.github_ref}} - name: Download tvOS integration tests artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4.1.7 with: path: testapps/testapps-tvos-${{ matrix.build_os }} name: testapps-tvos-${{ matrix.build_os }} @@ -1440,7 +1440,7 @@ jobs: retention-days: ${{ env.artifactRetentionDays }} - name: Download log artifacts if: ${{ needs.check_and_prepare.outputs.pr_number && failure() && !cancelled() }} - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4.1.7 with: path: test_results name: log-artifact @@ -1479,7 +1479,7 @@ jobs: - name: Install python deps run: pip install -r scripts/gha/python_requirements.txt - name: Download log artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4.1.7 with: path: test_results name: log-artifact From bc9ee6fb6c4daf1466d8a7dcf91d735927973884 Mon Sep 17 00:00:00 2001 From: a-maurice Date: Tue, 10 Sep 2024 16:29:58 -0700 Subject: [PATCH 17/34] Update upload-artifact actions (#1642) * Update actions/upload-artifact to v4 * Update other download artifact version * Revert "Update other download artifact version" This reverts commit 03451065754ba6bdf569a0401708d18368d7bae8. * Use v3 instead --- .github/workflows/desktop.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/desktop.yml b/.github/workflows/desktop.yml index 04562eb635..2c5930e93e 100644 --- a/.github/workflows/desktop.yml +++ b/.github/workflows/desktop.yml @@ -270,7 +270,7 @@ jobs: sudo chmod -R +rwx ~/Library/Logs/DiagnosticReports/* || : - name: Archive crashes and binaries (linux) - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 if: failure() && startsWith(matrix.build_type, 'Debug') && startsWith(matrix.os, 'ubuntu') with: name: crashes-${{ matrix.os }}-${{ matrix.build_type }}-${{ matrix.architecture }}-${{ matrix.python_version }} @@ -279,7 +279,7 @@ jobs: /tmp/bins/* - name: Archive crashes (mac) - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 if: failure() && startsWith(matrix.build_type, 'Debug') && startsWith(matrix.os, 'macos') with: name: crashes-${{ matrix.os }}-${{ matrix.build_type }}-${{ matrix.architecture }}-${{ matrix.python_version }}-${{ matrix.xcode_version }} From 8716ff457bfa4fe29887375a598b23623301501c Mon Sep 17 00:00:00 2001 From: a-maurice Date: Tue, 10 Sep 2024 17:47:28 -0700 Subject: [PATCH 18/34] Remove unnecessary swig logic from Analytics (#1641) --- analytics/src/include/firebase/analytics.h | 8 -------- 1 file changed, 8 deletions(-) diff --git a/analytics/src/include/firebase/analytics.h b/analytics/src/include/firebase/analytics.h index 286cb7c59b..746df99894 100644 --- a/analytics/src/include/firebase/analytics.h +++ b/analytics/src/include/firebase/analytics.h @@ -453,14 +453,6 @@ void LogEvent(const char* name, const char* parameter_name, /// @endif void LogEvent(const char* name); -// clang-format off -#ifdef SWIG -// Modify the following overload with unsafe, so that we can do some pinning -// in the C# code. -%csmethodmodifiers LogEvent "public unsafe" -#endif // SWIG -// clang-format on - /// @brief Log an event with associated parameters. /// /// An Event is an important occurrence in your app that you want to From 07c2184a95380be4632961e71286b409fc6cbb91 Mon Sep 17 00:00:00 2001 From: a-maurice Date: Wed, 11 Sep 2024 10:35:57 -0700 Subject: [PATCH 19/34] Revert "Bump actions/download-artifact from 3 to 4.1.7 in /.github/workflows (#1638)" (#1643) This reverts commit 2a2330455b83d8512d0c6cc575a865fb1de1cfee. --- .github/workflows/cpp-packaging.yml | 6 ++--- .github/workflows/integration_tests.yml | 30 ++++++++++++------------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/.github/workflows/cpp-packaging.yml b/.github/workflows/cpp-packaging.yml index eeda07cf7b..a19864449e 100644 --- a/.github/workflows/cpp-packaging.yml +++ b/.github/workflows/cpp-packaging.yml @@ -507,7 +507,7 @@ jobs: path: sdk-src - name: download artifact - uses: actions/download-artifact@v4.1.7 + uses: actions/download-artifact@v3 with: # download-artifact doesn't support wildcards, but by default # will download all artifacts. Sadly this is what we must do. @@ -708,7 +708,7 @@ jobs: path: sdk-src - name: download artifact - uses: actions/download-artifact@v4.1.7 + uses: actions/download-artifact@v3 with: # download-artifact doesn't support wildcards, but by default # will download all artifacts. Sadly this is what we must do. @@ -764,7 +764,7 @@ jobs: needs: [merge_packages] steps: - name: download SDK zip - uses: actions/download-artifact@v4.1.7 + uses: actions/download-artifact@v3 with: name: firebase_cpp_sdk.zip - name: unzip SDK and remove non-Windows files diff --git a/.github/workflows/integration_tests.yml b/.github/workflows/integration_tests.yml index 8203f39bde..fa9ae5c37f 100644 --- a/.github/workflows/integration_tests.yml +++ b/.github/workflows/integration_tests.yml @@ -388,7 +388,7 @@ jobs: retention-days: ${{ env.artifactRetentionDays }} - name: Download log artifacts if: ${{ needs.check_and_prepare.outputs.pr_number && failure() && !cancelled() }} - uses: actions/download-artifact@v4.1.7 + uses: actions/download-artifact@v3 with: path: test_results name: log-artifact @@ -501,7 +501,7 @@ jobs: retention-days: ${{ env.artifactRetentionDays }} - name: Download log artifacts if: ${{ needs.check_and_prepare.outputs.pr_number && failure() && !cancelled() }} - uses: actions/download-artifact@v4.1.7 + uses: actions/download-artifact@v3 with: path: test_results name: log-artifact @@ -606,7 +606,7 @@ jobs: retention-days: ${{ env.artifactRetentionDays }} - name: Download log artifacts if: ${{ needs.check_and_prepare.outputs.pr_number && failure() && !cancelled() }} - uses: actions/download-artifact@v4.1.7 + uses: actions/download-artifact@v3 with: path: test_results name: log-artifact @@ -710,7 +710,7 @@ jobs: retention-days: ${{ env.artifactRetentionDays }} - name: Download log artifacts if: ${{ needs.check_and_prepare.outputs.pr_number && failure() && !cancelled() }} - uses: actions/download-artifact@v4.1.7 + uses: actions/download-artifact@v3 with: path: test_results name: log-artifact @@ -773,7 +773,7 @@ jobs: with: ref: ${{needs.check_and_prepare.outputs.github_ref}} - name: Download Desktop integration tests artifact - uses: actions/download-artifact@v4.1.7 + uses: actions/download-artifact@v3 with: path: testapps/testapps-desktop-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.ssl_variant }} name: testapps-desktop-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.ssl_variant }} @@ -842,7 +842,7 @@ jobs: retention-days: ${{ env.artifactRetentionDays }} - name: Download log artifacts if: ${{ needs.check_and_prepare.outputs.pr_number && failure() && !cancelled() }} - uses: actions/download-artifact@v4.1.7 + uses: actions/download-artifact@v3 with: path: test_results name: log-artifact @@ -907,7 +907,7 @@ jobs: with: ref: ${{needs.check_and_prepare.outputs.github_ref}} - name: Download Desktop integration tests artifact - uses: actions/download-artifact@v4.1.7 + uses: actions/download-artifact@v3 with: path: testapps name: testapps-desktop-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.ssl_variant }} @@ -986,7 +986,7 @@ jobs: retention-days: ${{ env.artifactRetentionDays }} - name: Download log artifacts if: ${{ needs.check_and_prepare.outputs.pr_number && failure() && !cancelled() }} - uses: actions/download-artifact@v4.1.7 + uses: actions/download-artifact@v3 with: path: test_results name: log-artifact @@ -1038,7 +1038,7 @@ jobs: with: ref: ${{needs.check_and_prepare.outputs.github_ref}} - name: Download Android integration tests artifact - uses: actions/download-artifact@v4.1.7 + uses: actions/download-artifact@v3 with: path: testapps/testapps-android-${{ matrix.build_os }} name: testapps-android-${{ matrix.build_os }} @@ -1122,7 +1122,7 @@ jobs: retention-days: ${{ env.artifactRetentionDays }} - name: Download log artifacts if: ${{ needs.check_and_prepare.outputs.pr_number && failure() && !cancelled() }} - uses: actions/download-artifact@v4.1.7 + uses: actions/download-artifact@v3 with: path: test_results name: log-artifact @@ -1168,7 +1168,7 @@ jobs: with: ref: ${{needs.check_and_prepare.outputs.github_ref}} - name: Download iOS integration tests artifact - uses: actions/download-artifact@v4.1.7 + uses: actions/download-artifact@v3 with: path: testapps/testapps-ios-${{ matrix.build_os }} name: testapps-ios-${{ matrix.build_os }} @@ -1300,7 +1300,7 @@ jobs: retention-days: ${{ env.artifactRetentionDays }} - name: Download log artifacts if: ${{ needs.check_and_prepare.outputs.pr_number && failure() && !cancelled() }} - uses: actions/download-artifact@v4.1.7 + uses: actions/download-artifact@v3 with: path: test_results name: log-artifact @@ -1338,7 +1338,7 @@ jobs: with: ref: ${{needs.check_and_prepare.outputs.github_ref}} - name: Download tvOS integration tests artifact - uses: actions/download-artifact@v4.1.7 + uses: actions/download-artifact@v3 with: path: testapps/testapps-tvos-${{ matrix.build_os }} name: testapps-tvos-${{ matrix.build_os }} @@ -1440,7 +1440,7 @@ jobs: retention-days: ${{ env.artifactRetentionDays }} - name: Download log artifacts if: ${{ needs.check_and_prepare.outputs.pr_number && failure() && !cancelled() }} - uses: actions/download-artifact@v4.1.7 + uses: actions/download-artifact@v3 with: path: test_results name: log-artifact @@ -1479,7 +1479,7 @@ jobs: - name: Install python deps run: pip install -r scripts/gha/python_requirements.txt - name: Download log artifacts - uses: actions/download-artifact@v4.1.7 + uses: actions/download-artifact@v3 with: path: test_results name: log-artifact From 06ab3ec3f26e63de067f11fa32ee503b05df572c Mon Sep 17 00:00:00 2001 From: "firebase-workflow-trigger[bot]" <80733318+firebase-workflow-trigger[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 14:03:51 -0700 Subject: [PATCH 20/34] Update iOS dependencies - Mon Sep 16 2024 (#1646) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### iOS - Firebase/Analytics → 11.2.0 - Firebase/AppCheck → 11.2.0 - Firebase/Auth → 11.2.0 - Firebase/Core → 11.2.0 - Firebase/CoreOnly → 11.2.0 - Firebase/Crashlytics → 11.2.0 - Firebase/Database → 11.2.0 - Firebase/DynamicLinks → 11.2.0 - Firebase/Firestore → 11.2.0 - Firebase/Functions → 11.2.0 - Firebase/Installations → 11.2.0 - Firebase/Messaging → 11.2.0 - Firebase/RemoteConfig → 11.2.0 - Firebase/Storage → 11.2.0 > Created by [Update Android and iOS dependencies workflow](https://github.com/firebase/firebase-cpp-sdk/actions/runs/10889666385). Co-authored-by: firebase-workflow-trigger-bot --- analytics/integration_test/Podfile | 4 +- analytics/ios_headers/FIREventNames.h | 2 +- analytics/ios_headers/FIRParameterNames.h | 2 +- analytics/ios_headers/FIRUserPropertyNames.h | 2 +- app/integration_test/Podfile | 2 +- app_check/integration_test/Podfile | 20 +++--- auth/integration_test/Podfile | 4 +- cmake/external/firestore.cmake | 2 +- database/integration_test/Podfile | 8 +-- dynamic_links/integration_test/Podfile | 2 +- firestore/integration_test/Podfile | 8 +-- firestore/integration_test_internal/Podfile | 8 +-- functions/integration_test/Podfile | 8 +-- gma/integration_test/Podfile | 2 +- installations/integration_test/Podfile | 4 +- ios_pod/Podfile | 26 ++++---- .../swift_headers/FirebaseAnalytics-Swift.h | 4 +- ios_pod/swift_headers/FirebaseAuth-Swift.h | 8 ++- .../FirebaseCoreInternal-Swift.h | 4 +- .../swift_headers/FirebaseDatabase-Swift.h | 4 +- .../swift_headers/FirebaseFirestore-Swift.h | 4 +- .../swift_headers/FirebaseFunctions-Swift.h | 4 +- .../FirebaseInAppMessaging-Swift.h | 4 +- .../FirebaseMLModelDownloader-Swift.h | 4 +- .../FirebaseRemoteConfig-Swift.h | 4 +- .../swift_headers/FirebaseSessions-Swift.h | 4 +- .../swift_headers/FirebaseSharedSwift-Swift.h | 4 +- ios_pod/swift_headers/FirebaseStorage-Swift.h | 4 +- ios_pod/swift_headers/Promises-Swift.h | 4 +- ios_pod/swift_headers/SwiftProtobuf-Swift.h | 4 +- messaging/integration_test/Podfile | 8 +-- release_build_files/readme.md | 64 +++++++++---------- remote_config/integration_test/Podfile | 4 +- storage/integration_test/Podfile | 8 +-- 34 files changed, 126 insertions(+), 122 deletions(-) diff --git a/analytics/integration_test/Podfile b/analytics/integration_test/Podfile index cc5bd5c1b4..5a5c8a4ba8 100644 --- a/analytics/integration_test/Podfile +++ b/analytics/integration_test/Podfile @@ -5,12 +5,12 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Analytics', '11.0.0' + pod 'Firebase/Analytics', '11.2.0' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/Analytics', '11.0.0' + pod 'Firebase/Analytics', '11.2.0' end post_install do |installer| diff --git a/analytics/ios_headers/FIREventNames.h b/analytics/ios_headers/FIREventNames.h index 38c09e4c4f..297f1a3e28 100644 --- a/analytics/ios_headers/FIREventNames.h +++ b/analytics/ios_headers/FIREventNames.h @@ -1,6 +1,6 @@ // Copyright 2024 Google LLC -// Copied from Firebase Analytics iOS SDK 11.0.0. +// Copied from Firebase Analytics iOS SDK 11.2.0. /// @file FIREventNames.h /// diff --git a/analytics/ios_headers/FIRParameterNames.h b/analytics/ios_headers/FIRParameterNames.h index 8249dc97f3..7937f42f03 100644 --- a/analytics/ios_headers/FIRParameterNames.h +++ b/analytics/ios_headers/FIRParameterNames.h @@ -1,6 +1,6 @@ // Copyright 2024 Google LLC -// Copied from Firebase Analytics iOS SDK 11.0.0. +// Copied from Firebase Analytics iOS SDK 11.2.0. /// @file FIRParameterNames.h /// diff --git a/analytics/ios_headers/FIRUserPropertyNames.h b/analytics/ios_headers/FIRUserPropertyNames.h index ae5d7595ad..19bb949bd3 100644 --- a/analytics/ios_headers/FIRUserPropertyNames.h +++ b/analytics/ios_headers/FIRUserPropertyNames.h @@ -1,6 +1,6 @@ // Copyright 2024 Google LLC -// Copied from Firebase Analytics iOS SDK 11.0.0. +// Copied from Firebase Analytics iOS SDK 11.2.0. /// @file FIRUserPropertyNames.h /// diff --git a/app/integration_test/Podfile b/app/integration_test/Podfile index 744e0590cd..b48cb96c55 100644 --- a/app/integration_test/Podfile +++ b/app/integration_test/Podfile @@ -4,7 +4,7 @@ platform :ios, '13.0' use_frameworks! :linkage => :static target 'integration_test' do - pod 'Firebase/Analytics', '11.0.0' + pod 'Firebase/Analytics', '11.2.0' end post_install do |installer| diff --git a/app_check/integration_test/Podfile b/app_check/integration_test/Podfile index 5e46862ca5..4a43caed5b 100644 --- a/app_check/integration_test/Podfile +++ b/app_check/integration_test/Podfile @@ -4,20 +4,20 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/AppCheck', '11.0.0' - pod 'Firebase/Database', '11.0.0' - pod 'Firebase/Auth', '11.0.0' - pod 'Firebase/Storage', '11.0.0' - pod 'Firebase/Functions', '11.0.0' + pod 'Firebase/AppCheck', '11.2.0' + pod 'Firebase/Database', '11.2.0' + pod 'Firebase/Auth', '11.2.0' + pod 'Firebase/Storage', '11.2.0' + pod 'Firebase/Functions', '11.2.0' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/AppCheck', '11.0.0' - pod 'Firebase/Database', '11.0.0' - pod 'Firebase/Auth', '11.0.0' - pod 'Firebase/Storage', '11.0.0' - pod 'Firebase/Functions', '11.0.0' + pod 'Firebase/AppCheck', '11.2.0' + pod 'Firebase/Database', '11.2.0' + pod 'Firebase/Auth', '11.2.0' + pod 'Firebase/Storage', '11.2.0' + pod 'Firebase/Functions', '11.2.0' end post_install do |installer| diff --git a/auth/integration_test/Podfile b/auth/integration_test/Podfile index f3d81ceb4a..4f70dbdbba 100644 --- a/auth/integration_test/Podfile +++ b/auth/integration_test/Podfile @@ -4,12 +4,12 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Auth', '11.0.0' + pod 'Firebase/Auth', '11.2.0' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/Auth', '11.0.0' + pod 'Firebase/Auth', '11.2.0' end post_install do |installer| diff --git a/cmake/external/firestore.cmake b/cmake/external/firestore.cmake index 3223822c8f..e194934375 100644 --- a/cmake/external/firestore.cmake +++ b/cmake/external/firestore.cmake @@ -20,7 +20,7 @@ endif() # If the format of the line below changes, then be sure to update # https://github.com/firebase/firebase-cpp-sdk/blob/fd054fa016/.github/workflows/update-dependencies.yml#L81 -set(version CocoaPods-11.0.0) +set(version CocoaPods-11.2.0) function(GetReleasedDep) message("Getting released firebase-ios-sdk @ ${version}") diff --git a/database/integration_test/Podfile b/database/integration_test/Podfile index ca5752145b..f4d0495f8c 100644 --- a/database/integration_test/Podfile +++ b/database/integration_test/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Database', '11.0.0' - pod 'Firebase/Auth', '11.0.0' + pod 'Firebase/Database', '11.2.0' + pod 'Firebase/Auth', '11.2.0' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/Database', '11.0.0' - pod 'Firebase/Auth', '11.0.0' + pod 'Firebase/Database', '11.2.0' + pod 'Firebase/Auth', '11.2.0' end post_install do |installer| diff --git a/dynamic_links/integration_test/Podfile b/dynamic_links/integration_test/Podfile index b28257ec21..456b8bb2c9 100644 --- a/dynamic_links/integration_test/Podfile +++ b/dynamic_links/integration_test/Podfile @@ -5,7 +5,7 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/DynamicLinks', '11.0.0' + pod 'Firebase/DynamicLinks', '11.2.0' end post_install do |installer| diff --git a/firestore/integration_test/Podfile b/firestore/integration_test/Podfile index b791854bcd..fc3e6e59d3 100644 --- a/firestore/integration_test/Podfile +++ b/firestore/integration_test/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Firestore', '11.0.0' - pod 'Firebase/Auth', '11.0.0' + pod 'Firebase/Firestore', '11.2.0' + pod 'Firebase/Auth', '11.2.0' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/Firestore', '11.0.0' - pod 'Firebase/Auth', '11.0.0' + pod 'Firebase/Firestore', '11.2.0' + pod 'Firebase/Auth', '11.2.0' end post_install do |installer| diff --git a/firestore/integration_test_internal/Podfile b/firestore/integration_test_internal/Podfile index a1450d3cd1..efc0c9b533 100644 --- a/firestore/integration_test_internal/Podfile +++ b/firestore/integration_test_internal/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Firestore', '11.0.0' - pod 'Firebase/Auth', '11.0.0' + pod 'Firebase/Firestore', '11.2.0' + pod 'Firebase/Auth', '11.2.0' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/Firestore', '11.0.0' - pod 'Firebase/Auth', '11.0.0' + pod 'Firebase/Firestore', '11.2.0' + pod 'Firebase/Auth', '11.2.0' end post_install do |installer| diff --git a/functions/integration_test/Podfile b/functions/integration_test/Podfile index 31e68d92bf..ae8136e761 100644 --- a/functions/integration_test/Podfile +++ b/functions/integration_test/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Functions', '11.0.0' - pod 'Firebase/Auth', '11.0.0' + pod 'Firebase/Functions', '11.2.0' + pod 'Firebase/Auth', '11.2.0' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/Functions', '11.0.0' - pod 'Firebase/Auth', '11.0.0' + pod 'Firebase/Functions', '11.2.0' + pod 'Firebase/Auth', '11.2.0' end post_install do |installer| diff --git a/gma/integration_test/Podfile b/gma/integration_test/Podfile index 9d1b9753fc..89e9dad08d 100644 --- a/gma/integration_test/Podfile +++ b/gma/integration_test/Podfile @@ -5,7 +5,7 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/CoreOnly', '11.0.0' + pod 'Firebase/CoreOnly', '11.2.0' pod 'Google-Mobile-Ads-SDK', '11.2.0' pod 'GoogleUserMessagingPlatform', '2.3.0' end diff --git a/installations/integration_test/Podfile b/installations/integration_test/Podfile index 98a738136b..8443c4d822 100644 --- a/installations/integration_test/Podfile +++ b/installations/integration_test/Podfile @@ -5,8 +5,8 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Analytics', '11.0.0' - pod 'Firebase/Installations', '11.0.0' + pod 'Firebase/Analytics', '11.2.0' + pod 'Firebase/Installations', '11.2.0' end post_install do |installer| diff --git a/ios_pod/Podfile b/ios_pod/Podfile index ffa3e49260..4d9f95b5b8 100644 --- a/ios_pod/Podfile +++ b/ios_pod/Podfile @@ -3,22 +3,22 @@ platform :ios, '13.0' use_frameworks! target 'GetPods' do - pod 'Firebase/Core', '11.0.0' + pod 'Firebase/Core', '11.2.0' pod 'Google-Mobile-Ads-SDK', '11.2.0' pod 'GoogleUserMessagingPlatform', '2.3.0' - pod 'Firebase/Analytics', '11.0.0' - pod 'Firebase/AppCheck', '11.0.0' - pod 'Firebase/Auth', '11.0.0' - pod 'Firebase/Crashlytics', '11.0.0' - pod 'Firebase/Database', '11.0.0' - pod 'Firebase/DynamicLinks', '11.0.0' - pod 'Firebase/Firestore', '11.0.0' - pod 'Firebase/Functions', '11.0.0' - pod 'Firebase/Installations', '11.0.0' - pod 'Firebase/Messaging', '11.0.0' - pod 'Firebase/RemoteConfig', '11.0.0' - pod 'Firebase/Storage', '11.0.0' + pod 'Firebase/Analytics', '11.2.0' + pod 'Firebase/AppCheck', '11.2.0' + pod 'Firebase/Auth', '11.2.0' + pod 'Firebase/Crashlytics', '11.2.0' + pod 'Firebase/Database', '11.2.0' + pod 'Firebase/DynamicLinks', '11.2.0' + pod 'Firebase/Firestore', '11.2.0' + pod 'Firebase/Functions', '11.2.0' + pod 'Firebase/Installations', '11.2.0' + pod 'Firebase/Messaging', '11.2.0' + pod 'Firebase/RemoteConfig', '11.2.0' + pod 'Firebase/Storage', '11.2.0' end diff --git a/ios_pod/swift_headers/FirebaseAnalytics-Swift.h b/ios_pod/swift_headers/FirebaseAnalytics-Swift.h index cb79f4bb10..62044c5120 100644 --- a/ios_pod/swift_headers/FirebaseAnalytics-Swift.h +++ b/ios_pod/swift_headers/FirebaseAnalytics-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.0.0. +// Copied from Firebase iOS SDK 11.2.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -338,7 +338,7 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.0.0. +// Copied from Firebase iOS SDK 11.2.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) diff --git a/ios_pod/swift_headers/FirebaseAuth-Swift.h b/ios_pod/swift_headers/FirebaseAuth-Swift.h index 6c75f30568..3acf4d0fdf 100644 --- a/ios_pod/swift_headers/FirebaseAuth-Swift.h +++ b/ios_pod/swift_headers/FirebaseAuth-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.0.0. +// Copied from Firebase iOS SDK 11.2.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -1540,6 +1540,8 @@ typedef SWIFT_ENUM_NAMED(NSInteger, FIRAuthErrorCode, "AuthErrorCode", open){ /// describing which step of the JWT parsing process failed. FIRAuthErrorCodeMalformedJWT = 18000, }; +static NSString *_Nonnull const FIRAuthErrorCodeDomain = + @"FirebaseAuth.AuthErrorCode"; /// Error Codes common to all API Methods: SWIFT_CLASS_NAMED("AuthErrors") @@ -3029,7 +3031,7 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.0.0. +// Copied from Firebase iOS SDK 11.2.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -4568,6 +4570,8 @@ typedef SWIFT_ENUM_NAMED(NSInteger, FIRAuthErrorCode, "AuthErrorCode", open){ /// describing which step of the JWT parsing process failed. FIRAuthErrorCodeMalformedJWT = 18000, }; +static NSString *_Nonnull const FIRAuthErrorCodeDomain = + @"FirebaseAuth.AuthErrorCode"; /// Error Codes common to all API Methods: SWIFT_CLASS_NAMED("AuthErrors") diff --git a/ios_pod/swift_headers/FirebaseCoreInternal-Swift.h b/ios_pod/swift_headers/FirebaseCoreInternal-Swift.h index da6fad3d44..db063dc7a7 100644 --- a/ios_pod/swift_headers/FirebaseCoreInternal-Swift.h +++ b/ios_pod/swift_headers/FirebaseCoreInternal-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.0.0. +// Copied from Firebase iOS SDK 11.2.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -394,7 +394,7 @@ SWIFT_CLASS_NAMED("_ObjC_HeartbeatsPayload") #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.0.0. +// Copied from Firebase iOS SDK 11.2.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) diff --git a/ios_pod/swift_headers/FirebaseDatabase-Swift.h b/ios_pod/swift_headers/FirebaseDatabase-Swift.h index 4806f4e86d..205b5c77c7 100644 --- a/ios_pod/swift_headers/FirebaseDatabase-Swift.h +++ b/ios_pod/swift_headers/FirebaseDatabase-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.0.0. +// Copied from Firebase iOS SDK 11.2.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -338,7 +338,7 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.0.0. +// Copied from Firebase iOS SDK 11.2.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) diff --git a/ios_pod/swift_headers/FirebaseFirestore-Swift.h b/ios_pod/swift_headers/FirebaseFirestore-Swift.h index f52d43df2d..6958c09229 100644 --- a/ios_pod/swift_headers/FirebaseFirestore-Swift.h +++ b/ios_pod/swift_headers/FirebaseFirestore-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.0.0. +// Copied from Firebase iOS SDK 11.2.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -346,7 +346,7 @@ SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.0.0. +// Copied from Firebase iOS SDK 11.2.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) diff --git a/ios_pod/swift_headers/FirebaseFunctions-Swift.h b/ios_pod/swift_headers/FirebaseFunctions-Swift.h index a0384e61ce..f859e931b4 100644 --- a/ios_pod/swift_headers/FirebaseFunctions-Swift.h +++ b/ios_pod/swift_headers/FirebaseFunctions-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.0.0. +// Copied from Firebase iOS SDK 11.2.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -619,7 +619,7 @@ SWIFT_CLASS_NAMED("HTTPSCallableResult") #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.0.0. +// Copied from Firebase iOS SDK 11.2.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) diff --git a/ios_pod/swift_headers/FirebaseInAppMessaging-Swift.h b/ios_pod/swift_headers/FirebaseInAppMessaging-Swift.h index 65bd9388e2..5c5068d1c5 100644 --- a/ios_pod/swift_headers/FirebaseInAppMessaging-Swift.h +++ b/ios_pod/swift_headers/FirebaseInAppMessaging-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.0.0. +// Copied from Firebase iOS SDK 11.2.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -337,7 +337,7 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.0.0. +// Copied from Firebase iOS SDK 11.2.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) diff --git a/ios_pod/swift_headers/FirebaseMLModelDownloader-Swift.h b/ios_pod/swift_headers/FirebaseMLModelDownloader-Swift.h index d032d538a0..d8fa7da60a 100644 --- a/ios_pod/swift_headers/FirebaseMLModelDownloader-Swift.h +++ b/ios_pod/swift_headers/FirebaseMLModelDownloader-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.0.0. +// Copied from Firebase iOS SDK 11.2.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -338,7 +338,7 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.0.0. +// Copied from Firebase iOS SDK 11.2.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) diff --git a/ios_pod/swift_headers/FirebaseRemoteConfig-Swift.h b/ios_pod/swift_headers/FirebaseRemoteConfig-Swift.h index fc2b001a75..f25767e18a 100644 --- a/ios_pod/swift_headers/FirebaseRemoteConfig-Swift.h +++ b/ios_pod/swift_headers/FirebaseRemoteConfig-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.0.0. +// Copied from Firebase iOS SDK 11.2.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -338,7 +338,7 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.0.0. +// Copied from Firebase iOS SDK 11.2.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) diff --git a/ios_pod/swift_headers/FirebaseSessions-Swift.h b/ios_pod/swift_headers/FirebaseSessions-Swift.h index 100a38c9e4..54742b8197 100644 --- a/ios_pod/swift_headers/FirebaseSessions-Swift.h +++ b/ios_pod/swift_headers/FirebaseSessions-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.0.0. +// Copied from Firebase iOS SDK 11.2.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -383,7 +383,7 @@ typedef SWIFT_ENUM_NAMED(NSInteger, FIRSessionsSubscriberName, #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.0.0. +// Copied from Firebase iOS SDK 11.2.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) diff --git a/ios_pod/swift_headers/FirebaseSharedSwift-Swift.h b/ios_pod/swift_headers/FirebaseSharedSwift-Swift.h index df597d7188..0a7e8797bf 100644 --- a/ios_pod/swift_headers/FirebaseSharedSwift-Swift.h +++ b/ios_pod/swift_headers/FirebaseSharedSwift-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.0.0. +// Copied from Firebase iOS SDK 11.2.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -337,7 +337,7 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.0.0. +// Copied from Firebase iOS SDK 11.2.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) diff --git a/ios_pod/swift_headers/FirebaseStorage-Swift.h b/ios_pod/swift_headers/FirebaseStorage-Swift.h index 9ee7024120..d3adea86ed 100644 --- a/ios_pod/swift_headers/FirebaseStorage-Swift.h +++ b/ios_pod/swift_headers/FirebaseStorage-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.0.0. +// Copied from Firebase iOS SDK 11.2.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -1050,7 +1050,7 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.0.0. +// Copied from Firebase iOS SDK 11.2.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) diff --git a/ios_pod/swift_headers/Promises-Swift.h b/ios_pod/swift_headers/Promises-Swift.h index c73e991ff3..c729d60da4 100644 --- a/ios_pod/swift_headers/Promises-Swift.h +++ b/ios_pod/swift_headers/Promises-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.0.0. +// Copied from Firebase iOS SDK 11.2.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -336,7 +336,7 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.0.0. +// Copied from Firebase iOS SDK 11.2.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) diff --git a/ios_pod/swift_headers/SwiftProtobuf-Swift.h b/ios_pod/swift_headers/SwiftProtobuf-Swift.h index 5a7ae5d219..ff89de94fb 100644 --- a/ios_pod/swift_headers/SwiftProtobuf-Swift.h +++ b/ios_pod/swift_headers/SwiftProtobuf-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.0.0. +// Copied from Firebase iOS SDK 11.2.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -337,7 +337,7 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.0.0. +// Copied from Firebase iOS SDK 11.2.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) diff --git a/messaging/integration_test/Podfile b/messaging/integration_test/Podfile index ff769e1a6e..1f171f15e0 100644 --- a/messaging/integration_test/Podfile +++ b/messaging/integration_test/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Messaging', '11.0.0' - pod 'Firebase/Functions', '11.0.0' + pod 'Firebase/Messaging', '11.2.0' + pod 'Firebase/Functions', '11.2.0' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/Messaging', '11.0.0' - pod 'Firebase/Functions', '11.0.0' + pod 'Firebase/Messaging', '11.2.0' + pod 'Firebase/Functions', '11.2.0' end post_install do |installer| diff --git a/release_build_files/readme.md b/release_build_files/readme.md index 298a4a6fdf..5a169fff5c 100644 --- a/release_build_files/readme.md +++ b/release_build_files/readme.md @@ -230,50 +230,50 @@ Feature | Required Frameworks and Cocoapods -------------------------- | --------------------------------------- Firebase Analytics | firebase_analytics.xcframework | | firebase.xcframework -| | Firebase/Analytics Cocoapod (11.0.0) +| | Firebase/Analytics Cocoapod (11.2.0) Firebase App Check | firebase_app_check.xcframework | | firebase.xcframework -| | Firebase/AppCheck Cocoapod (11.0.0) +| | Firebase/AppCheck Cocoapod (11.2.0) Firebase Authentication | firebase_auth.xcframework | | firebase.xcframework -| | Firebase/Auth Cocoapod (11.0.0) +| | Firebase/Auth Cocoapod (11.2.0) Firebase Dynamic Links | firebase_dynamic_links.xcframework | | firebase.xcframework -| | Firebase/DynamicLinks Cocoapod (11.0.0) +| | Firebase/DynamicLinks Cocoapod (11.2.0) Cloud Firestore | firebase_firestore.xcframework | | firebase_auth.xcframework | | firebase.xcframework -| | Firebase/Firestore Cocoapod (11.0.0) -| | Firebase/Auth Cocoapod (11.0.0) +| | Firebase/Firestore Cocoapod (11.2.0) +| | Firebase/Auth Cocoapod (11.2.0) Firebase Functions | firebase_functions.xcframework | | firebase_auth.xcframework (optional) | | firebase.xcframework -| | Firebase/Functions Cocoapod (11.0.0) -| | Firebase/Auth Cocoapod (11.0.0) +| | Firebase/Functions Cocoapod (11.2.0) +| | Firebase/Auth Cocoapod (11.2.0) Google Mobile Ads | firebase_gma.xcframework | | firebase.xcframework -| | Firebase/CoreOnly Cocoapod (11.0.0) +| | Firebase/CoreOnly Cocoapod (11.2.0) | | Google-Mobile-Ads-SDK Cocoapod (11.2.0) | | GoogleUserMessagingPlatform Cocoapod (2.3.0) Firebase Installations | firebase_installations.xcframework | | firebase.xcframework -| | FirebaseInstallations Cocoapod (11.0.0) +| | FirebaseInstallations Cocoapod (11.2.0) Firebase Cloud Messaging | firebase_messaging.xcframework | | firebase.xcframework -| | Firebase/Messaging Cocoapod (11.0.0) +| | Firebase/Messaging Cocoapod (11.2.0) Firebase Realtime Database | firebase_database.xcframework | | firebase_auth.xcframework | | firebase.xcframework -| | Firebase/Database Cocoapod (11.0.0) -| | Firebase/Auth Cocoapod (11.0.0) +| | Firebase/Database Cocoapod (11.2.0) +| | Firebase/Auth Cocoapod (11.2.0) Firebase Remote Config | firebase_remote_config.xcframework | | firebase.xcframework -| | Firebase/RemoteConfig Cocoapod (11.0.0) +| | Firebase/RemoteConfig Cocoapod (11.2.0) Firebase Storage | firebase_storage.xcframework | | firebase_auth.xcframework | | firebase.xcframework -| | Firebase/Storage Cocoapod (11.0.0) -| | Firebase/Auth Cocoapod (11.0.0) +| | Firebase/Storage Cocoapod (11.2.0) +| | Firebase/Auth Cocoapod (11.2.0) Important: Each version of the Firebase C++ SDK supports a specific version of the Firebase iOS SDK. Please ensure that you reference the Cocoapod versions @@ -293,50 +293,50 @@ Feature | Required Libraries and Cocoapods -------------------------- | ----------------------------------------- Firebase Analytics | libfirebase_analytics.a | | libfirebase_app.a -| | Firebase/Analytics Cocoapod (11.0.0) +| | Firebase/Analytics Cocoapod (11.2.0) Firebase App Check | firebase_app_check.xcframework | | firebase.xcframework -| | Firebase/AppCheck Cocoapod (11.0.0) +| | Firebase/AppCheck Cocoapod (11.2.0) Firebase Authentication | libfirebase_auth.a | | libfirebase_app.a -| | Firebase/Auth Cocoapod (11.0.0) +| | Firebase/Auth Cocoapod (11.2.0) Firebase Dynamic Links | libfirebase_dynamic_links.a | | libfirebase_app.a -| | Firebase/DynamicLinks Cocoapod (11.0.0) +| | Firebase/DynamicLinks Cocoapod (11.2.0) Cloud Firestore | libfirebase_firestore.a | | libfirebase_app.a | | libfirebase_auth.a -| | Firebase/Firestore Cocoapod (11.0.0) -| | Firebase/Auth Cocoapod (11.0.0) +| | Firebase/Firestore Cocoapod (11.2.0) +| | Firebase/Auth Cocoapod (11.2.0) Firebase Functions | libfirebase_functions.a | | libfirebase_app.a | | libfirebase_auth.a (optional) -| | Firebase/Functions Cocoapod (11.0.0) -| | Firebase/Auth Cocoapod (11.0.0) +| | Firebase/Functions Cocoapod (11.2.0) +| | Firebase/Auth Cocoapod (11.2.0) Google Mobile Ads | libfirebase_gma.a | | libfirebase_app.a -| | Firebase/CoreOnly Cocoapod (11.0.0) +| | Firebase/CoreOnly Cocoapod (11.2.0) | | Google-Mobile-Ads-SDK Cocoapod (11.2.0) | | GoogleUserMessagingPlatform Cocoapod (2.3.0) Firebase Installations | libfirebase_installations.a | | libfirebase_app.a -| | FirebaseInstallations Cocoapod (11.0.0) +| | FirebaseInstallations Cocoapod (11.2.0) Firebase Cloud Messaging | libfirebase_messaging.a | | libfirebase_app.a -| | Firebase/CloudMessaging Cocoapod (11.0.0) +| | Firebase/CloudMessaging Cocoapod (11.2.0) Firebase Realtime Database | libfirebase_database.a | | libfirebase_app.a | | libfirebase_auth.a -| | Firebase/Database Cocoapod (11.0.0) -| | Firebase/Auth Cocoapod (11.0.0) +| | Firebase/Database Cocoapod (11.2.0) +| | Firebase/Auth Cocoapod (11.2.0) Firebase Remote Config | libfirebase_remote_config.a | | libfirebase_app.a -| | Firebase/RemoteConfig Cocoapod (11.0.0) +| | Firebase/RemoteConfig Cocoapod (11.2.0) Firebase Storage | libfirebase_storage.a | | libfirebase_app.a | | libfirebase_auth.a -| | Firebase/Storage Cocoapod (11.0.0) -| | Firebase/Auth Cocoapod (11.0.0) +| | Firebase/Storage Cocoapod (11.2.0) +| | Firebase/Auth Cocoapod (11.2.0) Important: Each version of the Firebase C++ SDK supports a specific version of the Firebase iOS SDK. Please ensure that you reference the Cocoapod versions diff --git a/remote_config/integration_test/Podfile b/remote_config/integration_test/Podfile index 0b9d2057f2..746d4c3eec 100644 --- a/remote_config/integration_test/Podfile +++ b/remote_config/integration_test/Podfile @@ -4,12 +4,12 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/RemoteConfig', '11.0.0' + pod 'Firebase/RemoteConfig', '11.2.0' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/RemoteConfig', '11.0.0' + pod 'Firebase/RemoteConfig', '11.2.0' end post_install do |installer| diff --git a/storage/integration_test/Podfile b/storage/integration_test/Podfile index 5a54e9c554..9eba702a71 100644 --- a/storage/integration_test/Podfile +++ b/storage/integration_test/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Storage', '11.0.0' - pod 'Firebase/Auth', '11.0.0' + pod 'Firebase/Storage', '11.2.0' + pod 'Firebase/Auth', '11.2.0' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/Storage', '11.0.0' - pod 'Firebase/Auth', '11.0.0' + pod 'Firebase/Storage', '11.2.0' + pod 'Firebase/Auth', '11.2.0' end post_install do |installer| From c5b228d919640855fd6dabcebf07bee56466e268 Mon Sep 17 00:00:00 2001 From: a-maurice Date: Wed, 25 Sep 2024 17:36:25 -0700 Subject: [PATCH 21/34] Update Gradle versions to 7 (#1650) * Update gradle versions to 7 * Update Java version and buildToolsVersion * Update integration_tests.yml * Update integration_tests.yml * More fixes * Update google services dependency version * Remove logic to set ANDROID_SDK_HOME * Update minSdkVersion. * Try working around a build tools error on Windows. * Call d8 directly via java instead of by broken shell script. * Add note about minSdkVersion. * Change Java version in CI build too. --------- Co-authored-by: Jon Simantov --- .github/workflows/android.yml | 5 +-- .github/workflows/cpp-packaging.yml | 3 ++ .github/workflows/integration_tests.yml | 9 ++--- CMakeLists.txt | 40 ++++++++++++------- analytics/CMakeLists.txt | 1 + analytics/build.gradle | 7 ++-- analytics/integration_test/build.gradle | 12 +++--- .../gradle/wrapper/gradle-wrapper.properties | 2 +- android_build_files/extract_and_dex.gradle | 14 +++---- android_build_files/generate_proguard.gradle | 2 +- app/app_resources/build.gradle | 14 +++++-- app/build.gradle | 6 +-- app/google_api_resources/build.gradle | 14 +++++-- app/integration_test/build.gradle | 12 +++--- .../gradle/wrapper/gradle-wrapper.properties | 2 +- app/invites_resources/build.gradle | 14 +++++-- app/test_resources/build.gradle | 10 ++++- app_check/app_check_resources/build.gradle | 14 +++++-- app_check/build.gradle | 7 ++-- app_check/integration_test/build.gradle | 12 +++--- .../gradle/wrapper/gradle-wrapper.properties | 2 +- auth/auth_resources/build.gradle | 14 +++++-- auth/build.gradle | 7 ++-- auth/integration_test/build.gradle | 12 +++--- .../gradle/wrapper/gradle-wrapper.properties | 2 +- build_scripts/android/package.sh | 10 +++-- database/build.gradle | 8 ++-- database/database_resources/build.gradle | 10 ++++- database/integration_test/build.gradle | 12 +++--- .../gradle/wrapper/gradle-wrapper.properties | 2 +- dynamic_links/build.gradle | 7 ++-- dynamic_links/integration_test/build.gradle | 12 +++--- .../gradle/wrapper/gradle-wrapper.properties | 2 +- firestore/build.gradle | 8 ++-- firestore/firestore_resources/build.gradle | 14 +++++-- firestore/integration_test/build.gradle | 12 +++--- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../integration_test_internal/build.gradle | 12 +++--- .../gradle/wrapper/gradle-wrapper.properties | 2 +- functions/build.gradle | 8 ++-- functions/integration_test/build.gradle | 12 +++--- .../gradle/wrapper/gradle-wrapper.properties | 2 +- gma/build.gradle | 7 ++-- gma/gma_resources/build.gradle | 14 +++++-- gma/integration_test/build.gradle | 12 +++--- .../gradle/wrapper/gradle-wrapper.properties | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- installations/build.gradle | 7 ++-- installations/integration_test/build.gradle | 12 +++--- .../gradle/wrapper/gradle-wrapper.properties | 2 +- messaging/build.gradle | 7 ++-- messaging/integration_test/build.gradle | 12 +++--- .../gradle/wrapper/gradle-wrapper.properties | 2 +- messaging/messaging_java/build.gradle | 12 +++--- .../src/android/java/LibraryManifest.xml | 2 +- release_build_files/readme.md | 1 + remote_config/build.gradle | 7 ++-- remote_config/integration_test/build.gradle | 12 +++--- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../remote_config_resources/build.gradle | 14 +++++-- scripts/gha/build_testapps.py | 11 +---- .../gameloop_android/build.gradle | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../uitest_android/app/build.gradle | 4 +- .../ui_testing/uitest_android/build.gradle | 4 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- storage/build.gradle | 8 ++-- storage/integration_test/build.gradle | 12 +++--- .../gradle/wrapper/gradle-wrapper.properties | 2 +- storage/storage_resources/build.gradle | 13 ++++-- testing/build.gradle | 8 ++-- 71 files changed, 329 insertions(+), 240 deletions(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 2b4520e51d..f540ce20ab 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -54,10 +54,9 @@ jobs: - name: setup Xcode version (macos) if: runner.os == 'macOS' run: sudo xcode-select -s /Applications/Xcode_${{ env.xcodeVersion }}.app/Contents/Developer - - name: Force Java 8 (macOS) - if: startsWith(matrix.os, 'macos') + - name: Force Java 11 shell: bash - run: echo "JAVA_HOME=${JAVA_HOME_8_X64}" >> $GITHUB_ENV + run: echo "JAVA_HOME=${JAVA_HOME_11_X64}" >> $GITHUB_ENV - name: Store git credentials for all git commands # Forces all git commands to use authenticated https, to prevent throttling. shell: bash diff --git a/.github/workflows/cpp-packaging.yml b/.github/workflows/cpp-packaging.yml index a19864449e..32e9617a46 100644 --- a/.github/workflows/cpp-packaging.yml +++ b/.github/workflows/cpp-packaging.yml @@ -248,6 +248,9 @@ jobs: strategy: fail-fast: false steps: + - name: Force Java 11 + shell: bash + run: echo "JAVA_HOME=${JAVA_HOME_11_X64}" >> $GITHUB_ENV - name: fetch SDK uses: actions/checkout@v3 with: diff --git a/.github/workflows/integration_tests.yml b/.github/workflows/integration_tests.yml index fa9ae5c37f..b94a5d0c75 100644 --- a/.github/workflows/integration_tests.yml +++ b/.github/workflows/integration_tests.yml @@ -426,10 +426,9 @@ jobs: with: ref: ${{needs.check_and_prepare.outputs.github_ref}} submodules: true - - name: Force Java 8 (macOS) - if: startsWith(matrix.os, 'macos') + - name: Force Java 11 shell: bash - run: echo "JAVA_HOME=${JAVA_HOME_8_X64}" >> $GITHUB_ENV + run: echo "JAVA_HOME=${JAVA_HOME_11_X64}" >> $GITHUB_ENV - name: Add msbuild to PATH (Windows) if: startsWith(matrix.os, 'windows') uses: microsoft/setup-msbuild@v1.1 @@ -1058,11 +1057,11 @@ jobs: run: | echo "device_type=$( python scripts/gha/print_matrix_configuration.py -k ${{ matrix.android_device }} -get_device_type)" >> $GITHUB_OUTPUT echo "device=$( python scripts/gha/print_matrix_configuration.py -k ${{ matrix.android_device }} -get_ftl_device_list)" >> $GITHUB_OUTPUT - - name: Setup java 8 for test_simulator.py + - name: Setup java 11 for test_simulator.py uses: actions/setup-java@v3 with: distribution: 'temurin' - java-version: '8' + java-version: '11' - name: Run Android integration tests on Emulator locally timeout-minutes: 180 if: steps.device-info.outputs.device_type == 'virtual' diff --git a/CMakeLists.txt b/CMakeLists.txt index 194618cd77..439ea7d5c7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -180,6 +180,7 @@ endif() # Set directories needed by the Firebase subprojects # Directory to store generated files. set(FIREBASE_GEN_FILE_DIR ${CMAKE_BINARY_DIR}/generated) + # Directory for any shared scripts. set(FIREBASE_SCRIPT_DIR ${CMAKE_CURRENT_LIST_DIR}) @@ -227,20 +228,30 @@ set(FIRESTORE_INCLUDE_OBJC OFF CACHE BOOL "Disabled for the CPP SDK") set(RE2_BUILD_TESTING OFF CACHE BOOL "") if(FIREBASE_CPP_USE_PRIOR_GRADLE_BUILD) - # Quote meta characters in ${CMAKE_CURRENT_LIST_DIR} so we can - # match it in a regex. - # For example, '/path/with/+meta/char.acters' will become - # '/path/with/\+meta/char\.acters'. - string(REGEX REPLACE - "([][+.*()^])" "\\\\\\1" # Yes, this many \'s is correct. - current_list_dir_regex - "${CMAKE_CURRENT_LIST_DIR}") - # Figure out where app's binary_dir was. - string(REGEX REPLACE - "${current_list_dir_regex}/[^/]+/(.*)" - "${CMAKE_CURRENT_LIST_DIR}/app/\\1" - APP_BINARY_DIR "${FIREBASE_BINARY_DIR}") - + # Gradle now adds a random hash to each separate NDK cmake build. + # Scan the previously built directories to find the one containing app's header. + set(header_to_scan_for "generated/app/src/include/firebase/version.h") + set(prev_build_path "${CMAKE_BINARY_DIR}/../../../../../app/.cxx/${CMAKE_BUILD_TYPE}/*/${CMAKE_ANDROID_ARCH_ABI}") + file(GLOB possible_prev_build_dirs "${prev_build_path}") + # In case there are multiple matches, take the one with the newest timestamp. + set(newest_timestamp 0) + foreach(possible_prev_build_dir IN LISTS possible_prev_build_dirs) + if(IS_DIRECTORY ${possible_prev_build_dir}) + if(EXISTS "${possible_prev_build_dir}/${header_to_scan_for}") + # Check if it's newer than any other files. + file(TIMESTAMP "${possible_prev_build_dir}/${header_to_scan_for}" timestamp "%s") + if(${timestamp} GREATER ${newest_timestamp}) + set(APP_BINARY_DIR ${possible_prev_build_dir}) + set(newest_timestamp ${timestamp}) + endif() + endif() + endif() + endforeach() + if (IS_DIRECTORY "${APP_BINARY_DIR}") + message(STATUS "Found previous Firebase App build in ${APP_BINARY_DIR}") + else() + message(FATAL_ERROR "Could not find previous Firebase App build under ${prev_build_path}") + endif() set(FIRESTORE_SOURCE_DIR ${APP_BINARY_DIR}/external/src/firestore) else() # Run the CMake build logic that will download all the external dependencies. @@ -579,6 +590,7 @@ if(NOT FIREBASE_CPP_USE_PRIOR_GRADLE_BUILD) else() # Add firebase_app as a target on the previously built app. add_library(firebase_app STATIC IMPORTED GLOBAL) + file(MAKE_DIRECTORY "${APP_BINARY_DIR}/generated") file(MAKE_DIRECTORY "${FIREBASE_BINARY_DIR}/generated") set(app_include_dirs diff --git a/analytics/CMakeLists.txt b/analytics/CMakeLists.txt index 6bc41fbc51..84166eb772 100644 --- a/analytics/CMakeLists.txt +++ b/analytics/CMakeLists.txt @@ -16,6 +16,7 @@ # Analytics generates header files for default events, parameters, and # properties based on the iOS SDK, that are used across all platforms. + set(analytics_generated_headers_dir "${FIREBASE_GEN_FILE_DIR}/analytics/src/include/firebase/analytics") set(event_names_header "${analytics_generated_headers_dir}/event_names.h") diff --git a/analytics/build.gradle b/analytics/build.gradle index b1e1705baa..f08ac090fb 100644 --- a/analytics/build.gradle +++ b/analytics/build.gradle @@ -18,7 +18,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' + classpath 'com.android.tools.build:gradle:7.4.2' } } allprojects { @@ -33,7 +33,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -48,7 +48,7 @@ android { } defaultConfig { - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName "1.0" @@ -85,4 +85,5 @@ apply from: "$rootDir/android_build_files/extract_and_dex.gradle" apply from: "$rootDir/android_build_files/generate_proguard.gradle" project.afterEvaluate { generateProguardFile('analytics') + preBuild.dependsOn(':app:build') } diff --git a/analytics/integration_test/build.gradle b/analytics/integration_test/build.gradle index 29621bd352..d4185f86fd 100644 --- a/analytics/integration_test/build.gradle +++ b/analytics/integration_test/build.gradle @@ -20,8 +20,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.0.1' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } @@ -37,12 +37,12 @@ apply plugin: 'com.android.application' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -55,7 +55,7 @@ android { defaultConfig { applicationId 'com.google.android.analytics.testapp' - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/analytics/integration_test/gradle/wrapper/gradle-wrapper.properties b/analytics/integration_test/gradle/wrapper/gradle-wrapper.properties index 65340c1b59..2eb04a3b17 100644 --- a/analytics/integration_test/gradle/wrapper/gradle-wrapper.properties +++ b/analytics/integration_test/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-all.zip +distributionUrl=https://services.gradle.org/distributions/gradle-7.5.1-all.zip diff --git a/android_build_files/extract_and_dex.gradle b/android_build_files/extract_and_dex.gradle index 2173973339..65541a2177 100644 --- a/android_build_files/extract_and_dex.gradle +++ b/android_build_files/extract_and_dex.gradle @@ -58,15 +58,11 @@ def defineExtractionTasks(String resourceName, String buildType) { outputs.file "$outPro" // Convert the jar format using the dx tool. - String dex_path = "${sdk_dir}/build-tools/${buildToolsVersion}/dx" - if (org.gradle.internal.os.OperatingSystem.current().isWindows()) { - dex_path = "${dex_path}.bat" - } - - commandLine "${dex_path}", - '--dex', - "--output=$dexedJar", - "$buildDir/classes.jar" + String dex_path = "${sdk_dir}/build-tools/${buildToolsVersion}/lib/d8.jar" + commandLine "java", "-cp", "${dex_path}", "com.android.tools.r8.D8", + "$buildDir/classes.jar", + "--output", + "$dexedJar" } // Once the dexed jar has been made, generate a proguard file for it. diff --git a/android_build_files/generate_proguard.gradle b/android_build_files/generate_proguard.gradle index 6bb8e47391..2f78ee7109 100644 --- a/android_build_files/generate_proguard.gradle +++ b/android_build_files/generate_proguard.gradle @@ -72,7 +72,7 @@ def defineGenerateProguardFile(String subproject, String buildType, String nativeBuildDir = project.android.externalNativeBuild.cmake.buildStagingDirectory if (nativeBuildDir == null || nativeBuildDir.isEmpty()) { - nativeBuildDir = file('.cxx/cmake').absolutePath + nativeBuildDir = file('.cxx').absolutePath } // Find the static library that was built. Note that there are multiple diff --git a/app/app_resources/build.gradle b/app/app_resources/build.gradle index 8351e562db..9ecf700f29 100644 --- a/app/app_resources/build.gradle +++ b/app/app_resources/build.gradle @@ -18,8 +18,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.2.0' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } allprojects { @@ -33,10 +33,16 @@ apply plugin: 'com.android.library' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 + buildToolsVersion '32.0.0' + + defaultConfig { + minSdkVersion 24 + targetSdkVersion 34 + } sourceSets { main { diff --git a/app/build.gradle b/app/build.gradle index fa2a2aae91..4ceb729572 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -18,7 +18,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' + classpath 'com.android.tools.build:gradle:7.4.2' } } allprojects { @@ -33,7 +33,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -48,7 +48,7 @@ android { } defaultConfig { - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName "1.0" diff --git a/app/google_api_resources/build.gradle b/app/google_api_resources/build.gradle index 7ee92162e2..31cff3c945 100644 --- a/app/google_api_resources/build.gradle +++ b/app/google_api_resources/build.gradle @@ -18,8 +18,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.2.0' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } allprojects { @@ -33,10 +33,16 @@ apply plugin: 'com.android.library' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 + buildToolsVersion '32.0.0' + + defaultConfig { + minSdkVersion 24 + targetSdkVersion 34 + } sourceSets { main { diff --git a/app/integration_test/build.gradle b/app/integration_test/build.gradle index 3cec305c79..50bf9496d3 100644 --- a/app/integration_test/build.gradle +++ b/app/integration_test/build.gradle @@ -20,8 +20,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.0.1' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } @@ -37,12 +37,12 @@ apply plugin: 'com.android.application' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -55,7 +55,7 @@ android { defaultConfig { applicationId 'com.google.android.analytics.testapp' - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/app/integration_test/gradle/wrapper/gradle-wrapper.properties b/app/integration_test/gradle/wrapper/gradle-wrapper.properties index 65340c1b59..2eb04a3b17 100644 --- a/app/integration_test/gradle/wrapper/gradle-wrapper.properties +++ b/app/integration_test/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-all.zip +distributionUrl=https://services.gradle.org/distributions/gradle-7.5.1-all.zip diff --git a/app/invites_resources/build.gradle b/app/invites_resources/build.gradle index 1adbca0ae7..bf078fb04e 100644 --- a/app/invites_resources/build.gradle +++ b/app/invites_resources/build.gradle @@ -18,8 +18,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.2.0' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } allprojects { @@ -33,10 +33,16 @@ apply plugin: 'com.android.library' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 + buildToolsVersion '32.0.0' + + defaultConfig { + minSdkVersion 24 + targetSdkVersion 34 + } sourceSets { main { diff --git a/app/test_resources/build.gradle b/app/test_resources/build.gradle index 53c2d0e136..9d3f52d552 100644 --- a/app/test_resources/build.gradle +++ b/app/test_resources/build.gradle @@ -18,8 +18,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.2.0' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } allprojects { @@ -33,6 +33,12 @@ apply plugin: 'com.android.library' android { compileSdkVersion 34 + buildToolsVersion '32.0.0' + + defaultConfig { + minSdkVersion 24 + targetSdkVersion 34 + } sourceSets { main { diff --git a/app_check/app_check_resources/build.gradle b/app_check/app_check_resources/build.gradle index 6cc09ba1df..ad19bb318f 100644 --- a/app_check/app_check_resources/build.gradle +++ b/app_check/app_check_resources/build.gradle @@ -18,8 +18,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.2.0' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } allprojects { @@ -33,10 +33,16 @@ apply plugin: 'com.android.library' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 + buildToolsVersion '32.0.0' + + defaultConfig { + minSdkVersion 24 + targetSdkVersion 34 + } sourceSets { main { diff --git a/app_check/build.gradle b/app_check/build.gradle index 82ca483612..164c33f38f 100644 --- a/app_check/build.gradle +++ b/app_check/build.gradle @@ -18,7 +18,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' + classpath 'com.android.tools.build:gradle:7.4.2' } } allprojects { @@ -33,7 +33,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -48,7 +48,7 @@ android { } defaultConfig { - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName "1.0" @@ -86,4 +86,5 @@ apply from: "$rootDir/android_build_files/generate_proguard.gradle" project.afterEvaluate { generateProguardFile('app_check') setupDexDependencies(':app_check:app_check_resources') + preBuild.dependsOn(':app:build') } diff --git a/app_check/integration_test/build.gradle b/app_check/integration_test/build.gradle index 4877125e27..417732be4b 100644 --- a/app_check/integration_test/build.gradle +++ b/app_check/integration_test/build.gradle @@ -20,8 +20,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.0.1' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } @@ -37,12 +37,12 @@ apply plugin: 'com.android.application' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -55,7 +55,7 @@ android { defaultConfig { applicationId 'com.google.firebase.cpp.appcheck.testapp' - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/app_check/integration_test/gradle/wrapper/gradle-wrapper.properties b/app_check/integration_test/gradle/wrapper/gradle-wrapper.properties index 65340c1b59..2eb04a3b17 100644 --- a/app_check/integration_test/gradle/wrapper/gradle-wrapper.properties +++ b/app_check/integration_test/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-all.zip +distributionUrl=https://services.gradle.org/distributions/gradle-7.5.1-all.zip diff --git a/auth/auth_resources/build.gradle b/auth/auth_resources/build.gradle index 00564f2957..45f99720dd 100644 --- a/auth/auth_resources/build.gradle +++ b/auth/auth_resources/build.gradle @@ -18,8 +18,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.2.0' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } allprojects { @@ -33,10 +33,16 @@ apply plugin: 'com.android.library' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 + buildToolsVersion '32.0.0' + + defaultConfig { + minSdkVersion 24 + targetSdkVersion 34 + } sourceSets { main { diff --git a/auth/build.gradle b/auth/build.gradle index 7ddc5e4e8d..83106d0567 100644 --- a/auth/build.gradle +++ b/auth/build.gradle @@ -18,7 +18,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' + classpath 'com.android.tools.build:gradle:7.4.2' } } allprojects { @@ -33,7 +33,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -48,7 +48,7 @@ android { } defaultConfig { - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName "1.0" @@ -86,4 +86,5 @@ apply from: "$rootDir/android_build_files/generate_proguard.gradle" project.afterEvaluate { generateProguardFile('auth') setupDexDependencies(':auth:auth_resources') + preBuild.dependsOn(':app:build') } diff --git a/auth/integration_test/build.gradle b/auth/integration_test/build.gradle index 942a05b0d6..4f745af43b 100644 --- a/auth/integration_test/build.gradle +++ b/auth/integration_test/build.gradle @@ -20,8 +20,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.0.1' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } @@ -37,12 +37,12 @@ apply plugin: 'com.android.application' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -55,7 +55,7 @@ android { defaultConfig { applicationId 'com.google.android.auth.testapp' - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/auth/integration_test/gradle/wrapper/gradle-wrapper.properties b/auth/integration_test/gradle/wrapper/gradle-wrapper.properties index 65340c1b59..2eb04a3b17 100644 --- a/auth/integration_test/gradle/wrapper/gradle-wrapper.properties +++ b/auth/integration_test/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-all.zip +distributionUrl=https://services.gradle.org/distributions/gradle-7.5.1-all.zip diff --git a/build_scripts/android/package.sh b/build_scripts/android/package.sh index 30d98a52dd..8c0e6ff99b 100755 --- a/build_scripts/android/package.sh +++ b/build_scripts/android/package.sh @@ -1,4 +1,4 @@ -#!/bin/bash -e +#!/bin/bash -ex # Copyright 2020 Google LLC @@ -34,10 +34,12 @@ mkdir -p "${destpath}/libs/android" cd "${sourcepath}" # Make sure we only copy the libraries in product_list (specified in packaging.conf) for product in ${product_list[*]}; do - if [[ ! -d "${product}/build/intermediates/cmake/release/obj" ]]; then + if [[ ! -d "${product}/build/intermediates/cxx" ]]; then continue fi - dir="${product}/build/intermediates/cmake/release/obj" + # Get the most recent matching intermediate files directory. + dir=$(ls -td "${product}"/build/intermediates/cxx/Rel*/*/obj | head -1) + echo "${dir}" for cpudir in "${dir}"/*; do cpu=$(basename ${cpudir}) libsrc="${sourcepath}/${cpudir}/libfirebase_${product}.a" @@ -49,7 +51,7 @@ for product in ${product_list[*]}; do cp -f "${sourcepath}/${product}/build/Release/${product}.pro" "${destpath}/libs/android/" # Copy the special messaging aar file, but only if messaging was built. if [[ "${product}" == "messaging" ]]; then - cp -f "${sourcepath}/messaging/messaging_java/build/outputs/aar/messaging_java"*.aar "${destpath}/libs/android/firebase_messaging_cpp.aar" + cp -f "${sourcepath}/messaging/messaging_java/build/outputs/aar/messaging_java-release"*.aar "${destpath}/libs/android/firebase_messaging_cpp.aar" fi done cd "${origpath}" diff --git a/database/build.gradle b/database/build.gradle index 51cf8c0dfa..f7281608cc 100644 --- a/database/build.gradle +++ b/database/build.gradle @@ -18,7 +18,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' + classpath 'com.android.tools.build:gradle:7.4.2' } } allprojects { @@ -33,7 +33,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -48,7 +48,7 @@ android { } defaultConfig { - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName "1.0" @@ -86,4 +86,6 @@ apply from: "$rootDir/android_build_files/generate_proguard.gradle" project.afterEvaluate { generateProguardFile('database') setupDexDependencies(':database:database_resources') + preBuild.dependsOn(':app:build') + preBuild.dependsOn(':auth:build') } diff --git a/database/database_resources/build.gradle b/database/database_resources/build.gradle index 4cfb882e01..7a91b37b52 100644 --- a/database/database_resources/build.gradle +++ b/database/database_resources/build.gradle @@ -18,8 +18,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.2.0' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } allprojects { @@ -33,6 +33,12 @@ apply plugin: 'com.android.library' android { compileSdkVersion 34 + buildToolsVersion '32.0.0' + + defaultConfig { + minSdkVersion 24 + targetSdkVersion 34 + } sourceSets { main { diff --git a/database/integration_test/build.gradle b/database/integration_test/build.gradle index 86907f840f..4401b08894 100644 --- a/database/integration_test/build.gradle +++ b/database/integration_test/build.gradle @@ -20,8 +20,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.0.1' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } @@ -37,12 +37,12 @@ apply plugin: 'com.android.application' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -55,7 +55,7 @@ android { defaultConfig { applicationId 'com.google.firebase.cpp.database.testapp' - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/database/integration_test/gradle/wrapper/gradle-wrapper.properties b/database/integration_test/gradle/wrapper/gradle-wrapper.properties index 65340c1b59..2eb04a3b17 100644 --- a/database/integration_test/gradle/wrapper/gradle-wrapper.properties +++ b/database/integration_test/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-all.zip +distributionUrl=https://services.gradle.org/distributions/gradle-7.5.1-all.zip diff --git a/dynamic_links/build.gradle b/dynamic_links/build.gradle index 7a8fee4af8..b675bf7575 100644 --- a/dynamic_links/build.gradle +++ b/dynamic_links/build.gradle @@ -18,7 +18,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' + classpath 'com.android.tools.build:gradle:7.4.2' } } allprojects { @@ -33,7 +33,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -48,7 +48,7 @@ android { } defaultConfig { - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName "1.0" @@ -84,4 +84,5 @@ apply from: "$rootDir/android_build_files/android_abis.gradle" apply from: "$rootDir/android_build_files/generate_proguard.gradle" project.afterEvaluate { generateProguardFile('dynamic_links') + preBuild.dependsOn(':app:build') } diff --git a/dynamic_links/integration_test/build.gradle b/dynamic_links/integration_test/build.gradle index 92f1978cad..e523684703 100644 --- a/dynamic_links/integration_test/build.gradle +++ b/dynamic_links/integration_test/build.gradle @@ -20,8 +20,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.0.1' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } @@ -37,12 +37,12 @@ apply plugin: 'com.android.application' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -55,7 +55,7 @@ android { defaultConfig { applicationId 'com.google.android.dynamiclinks.testapp' - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/dynamic_links/integration_test/gradle/wrapper/gradle-wrapper.properties b/dynamic_links/integration_test/gradle/wrapper/gradle-wrapper.properties index 65340c1b59..2eb04a3b17 100644 --- a/dynamic_links/integration_test/gradle/wrapper/gradle-wrapper.properties +++ b/dynamic_links/integration_test/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-all.zip +distributionUrl=https://services.gradle.org/distributions/gradle-7.5.1-all.zip diff --git a/firestore/build.gradle b/firestore/build.gradle index 4c3d7c0800..582389d37a 100644 --- a/firestore/build.gradle +++ b/firestore/build.gradle @@ -18,7 +18,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' + classpath 'com.android.tools.build:gradle:7.4.2' } } allprojects { @@ -33,7 +33,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -49,7 +49,7 @@ android { defaultConfig { // Jelly Bean is the minimum supported version needed by Firebase. - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName "1.0" @@ -87,4 +87,6 @@ apply from: "$rootDir/android_build_files/generate_proguard.gradle" project.afterEvaluate { generateProguardFile('firestore') setupDexDependencies(':firestore:firestore_resources') + preBuild.dependsOn(':app:build') + preBuild.dependsOn(':auth:build') } diff --git a/firestore/firestore_resources/build.gradle b/firestore/firestore_resources/build.gradle index 93439900aa..fd10863991 100644 --- a/firestore/firestore_resources/build.gradle +++ b/firestore/firestore_resources/build.gradle @@ -18,8 +18,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.2.0' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } allprojects { @@ -33,10 +33,16 @@ apply plugin: 'com.android.library' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 + buildToolsVersion '32.0.0' + + defaultConfig { + minSdkVersion 24 + targetSdkVersion 34 + } sourceSets { main { diff --git a/firestore/integration_test/build.gradle b/firestore/integration_test/build.gradle index 37efea8216..64f64b5b8b 100644 --- a/firestore/integration_test/build.gradle +++ b/firestore/integration_test/build.gradle @@ -20,8 +20,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.0.1' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } @@ -37,12 +37,12 @@ apply plugin: 'com.android.application' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -55,7 +55,7 @@ android { defaultConfig { applicationId 'com.google.firebase.cpp.firestore.testapp' - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/firestore/integration_test/gradle/wrapper/gradle-wrapper.properties b/firestore/integration_test/gradle/wrapper/gradle-wrapper.properties index 65340c1b59..2eb04a3b17 100644 --- a/firestore/integration_test/gradle/wrapper/gradle-wrapper.properties +++ b/firestore/integration_test/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-all.zip +distributionUrl=https://services.gradle.org/distributions/gradle-7.5.1-all.zip diff --git a/firestore/integration_test_internal/build.gradle b/firestore/integration_test_internal/build.gradle index f1bb9b4f3b..da56c2940b 100644 --- a/firestore/integration_test_internal/build.gradle +++ b/firestore/integration_test_internal/build.gradle @@ -20,8 +20,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.0.1' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } @@ -37,12 +37,12 @@ apply plugin: 'com.android.application' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -63,7 +63,7 @@ android { defaultConfig { applicationId 'com.google.firebase.cpp.firestore.testapp' - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/firestore/integration_test_internal/gradle/wrapper/gradle-wrapper.properties b/firestore/integration_test_internal/gradle/wrapper/gradle-wrapper.properties index 65340c1b59..2eb04a3b17 100644 --- a/firestore/integration_test_internal/gradle/wrapper/gradle-wrapper.properties +++ b/firestore/integration_test_internal/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-all.zip +distributionUrl=https://services.gradle.org/distributions/gradle-7.5.1-all.zip diff --git a/functions/build.gradle b/functions/build.gradle index bdecc2819f..b2c12f845c 100644 --- a/functions/build.gradle +++ b/functions/build.gradle @@ -18,7 +18,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' + classpath 'com.android.tools.build:gradle:7.4.2' } } allprojects { @@ -33,7 +33,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -48,7 +48,7 @@ android { } defaultConfig { - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName "1.0" @@ -84,4 +84,6 @@ apply from: "$rootDir/android_build_files/android_abis.gradle" apply from: "$rootDir/android_build_files/generate_proguard.gradle" project.afterEvaluate { generateProguardFile('functions') + preBuild.dependsOn(':app:build') + preBuild.dependsOn(':auth:build') } diff --git a/functions/integration_test/build.gradle b/functions/integration_test/build.gradle index d773468cb1..a78ddfbb4c 100644 --- a/functions/integration_test/build.gradle +++ b/functions/integration_test/build.gradle @@ -20,8 +20,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.0.1' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } @@ -37,12 +37,12 @@ apply plugin: 'com.android.application' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -55,7 +55,7 @@ android { defaultConfig { applicationId 'com.google.firebase.cpp.functions.testapp' - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/functions/integration_test/gradle/wrapper/gradle-wrapper.properties b/functions/integration_test/gradle/wrapper/gradle-wrapper.properties index 65340c1b59..2eb04a3b17 100644 --- a/functions/integration_test/gradle/wrapper/gradle-wrapper.properties +++ b/functions/integration_test/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-all.zip +distributionUrl=https://services.gradle.org/distributions/gradle-7.5.1-all.zip diff --git a/gma/build.gradle b/gma/build.gradle index bd0bab6803..e793294f8c 100644 --- a/gma/build.gradle +++ b/gma/build.gradle @@ -18,7 +18,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' + classpath 'com.android.tools.build:gradle:7.4.2' } } allprojects { @@ -33,7 +33,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -48,7 +48,7 @@ android { } defaultConfig { - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName "1.0" @@ -86,4 +86,5 @@ apply from: "$rootDir/android_build_files/generate_proguard.gradle" project.afterEvaluate { generateProguardFile('gma') setupDexDependencies(':gma:gma_resources') + preBuild.dependsOn(':app:build') } diff --git a/gma/gma_resources/build.gradle b/gma/gma_resources/build.gradle index bd1a8144c3..f20f9f1bad 100644 --- a/gma/gma_resources/build.gradle +++ b/gma/gma_resources/build.gradle @@ -18,8 +18,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.2.0' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } allprojects { @@ -33,11 +33,17 @@ apply plugin: 'com.android.library' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 + buildToolsVersion '32.0.0' + + defaultConfig { + minSdkVersion 24 + targetSdkVersion 34 + } sourceSets { main { diff --git a/gma/integration_test/build.gradle b/gma/integration_test/build.gradle index 58cdfd4a82..0e78ade8b9 100644 --- a/gma/integration_test/build.gradle +++ b/gma/integration_test/build.gradle @@ -20,8 +20,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.0.1' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } @@ -37,12 +37,12 @@ apply plugin: 'com.android.application' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -55,7 +55,7 @@ android { defaultConfig { applicationId 'com.google.android.admob.testapp' - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/gma/integration_test/gradle/wrapper/gradle-wrapper.properties b/gma/integration_test/gradle/wrapper/gradle-wrapper.properties index 65340c1b59..2eb04a3b17 100644 --- a/gma/integration_test/gradle/wrapper/gradle-wrapper.properties +++ b/gma/integration_test/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-all.zip +distributionUrl=https://services.gradle.org/distributions/gradle-7.5.1-all.zip diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 39e18027f1..78b9533282 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-all.zip +distributionUrl=https://services.gradle.org/distributions/gradle-7.5.1-all.zip diff --git a/installations/build.gradle b/installations/build.gradle index ba4d234524..e5eb114a92 100644 --- a/installations/build.gradle +++ b/installations/build.gradle @@ -18,7 +18,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' + classpath 'com.android.tools.build:gradle:7.4.2' } } allprojects { @@ -33,7 +33,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -48,7 +48,7 @@ android { } defaultConfig { - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName "1.0" @@ -84,4 +84,5 @@ apply from: "$rootDir/android_build_files/android_abis.gradle" apply from: "$rootDir/android_build_files/generate_proguard.gradle" project.afterEvaluate { generateProguardFile('installations') + preBuild.dependsOn(':app:build') } diff --git a/installations/integration_test/build.gradle b/installations/integration_test/build.gradle index 9c501b9e25..daad7ca6e1 100644 --- a/installations/integration_test/build.gradle +++ b/installations/integration_test/build.gradle @@ -20,8 +20,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.0.1' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } @@ -37,12 +37,12 @@ apply plugin: 'com.android.application' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -55,7 +55,7 @@ android { defaultConfig { applicationId 'com.google.firebase.fis.testapp' - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/installations/integration_test/gradle/wrapper/gradle-wrapper.properties b/installations/integration_test/gradle/wrapper/gradle-wrapper.properties index 65340c1b59..2eb04a3b17 100644 --- a/installations/integration_test/gradle/wrapper/gradle-wrapper.properties +++ b/installations/integration_test/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-all.zip +distributionUrl=https://services.gradle.org/distributions/gradle-7.5.1-all.zip diff --git a/messaging/build.gradle b/messaging/build.gradle index 6068dfb54c..0b8f2f1e71 100644 --- a/messaging/build.gradle +++ b/messaging/build.gradle @@ -18,7 +18,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' + classpath 'com.android.tools.build:gradle:7.4.2' } } allprojects { @@ -33,7 +33,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -48,7 +48,7 @@ android { } defaultConfig { - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName "1.0" @@ -86,4 +86,5 @@ apply from: "$rootDir/android_build_files/extract_and_dex.gradle" apply from: "$rootDir/android_build_files/generate_proguard.gradle" project.afterEvaluate { generateProguardFile('messaging') + preBuild.dependsOn(':app:build') } diff --git a/messaging/integration_test/build.gradle b/messaging/integration_test/build.gradle index 9bbc92c059..7f274e868b 100644 --- a/messaging/integration_test/build.gradle +++ b/messaging/integration_test/build.gradle @@ -20,8 +20,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.0.1' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } @@ -37,12 +37,12 @@ apply plugin: 'com.android.application' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -55,7 +55,7 @@ android { defaultConfig { applicationId 'com.google.firebase.cpp.messaging.testapp' - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/messaging/integration_test/gradle/wrapper/gradle-wrapper.properties b/messaging/integration_test/gradle/wrapper/gradle-wrapper.properties index 65340c1b59..2eb04a3b17 100644 --- a/messaging/integration_test/gradle/wrapper/gradle-wrapper.properties +++ b/messaging/integration_test/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-all.zip +distributionUrl=https://services.gradle.org/distributions/gradle-7.5.1-all.zip diff --git a/messaging/messaging_java/build.gradle b/messaging/messaging_java/build.gradle index a268401ee7..ea8bfacd1d 100644 --- a/messaging/messaging_java/build.gradle +++ b/messaging/messaging_java/build.gradle @@ -18,8 +18,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.2.0' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' // This uses Flatbuffers at 1.9 because the 1.10 version added a feature // that requires using a newer version of the JDK and at least Android N. // This has already been fixed at head, but a tagged release is not yet @@ -38,13 +38,15 @@ apply plugin: 'com.android.library' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 + buildToolsVersion '32.0.0' defaultConfig { - minSdkVersion 23 + targetSdkVersion 34 + minSdkVersion 24 } sourceSets { diff --git a/messaging/src/android/java/LibraryManifest.xml b/messaging/src/android/java/LibraryManifest.xml index aad8452455..844b044ae2 100644 --- a/messaging/src/android/java/LibraryManifest.xml +++ b/messaging/src/android/java/LibraryManifest.xml @@ -4,7 +4,7 @@ diff --git a/release_build_files/readme.md b/release_build_files/readme.md index 5a169fff5c..e684bd2534 100644 --- a/release_build_files/readme.md +++ b/release_build_files/readme.md @@ -633,6 +633,7 @@ code. ## Release Notes ### Upcoming Release - Changes + - General (Android): Updated minSdkVersion to 24. - Messaging: Changed SetListener to send the last token received before the listener was set. - Remote Config: Fixed ConfigInfo fields to default to 0 when diff --git a/remote_config/build.gradle b/remote_config/build.gradle index 720d8c770e..79abec6dba 100644 --- a/remote_config/build.gradle +++ b/remote_config/build.gradle @@ -18,7 +18,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' + classpath 'com.android.tools.build:gradle:7.4.2' } } allprojects { @@ -33,7 +33,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -48,7 +48,7 @@ android { } defaultConfig { - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName "1.0" @@ -86,4 +86,5 @@ apply from: "$rootDir/android_build_files/generate_proguard.gradle" project.afterEvaluate { generateProguardFile('remote_config') setupDexDependencies(':remote_config:remote_config_resources') + preBuild.dependsOn(':app:build') } diff --git a/remote_config/integration_test/build.gradle b/remote_config/integration_test/build.gradle index 5c669ad9cc..66e0a3e1e9 100644 --- a/remote_config/integration_test/build.gradle +++ b/remote_config/integration_test/build.gradle @@ -20,8 +20,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.0.1' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } @@ -37,12 +37,12 @@ apply plugin: 'com.android.application' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -55,7 +55,7 @@ android { defaultConfig { applicationId 'com.google.android.remoteconfig.testapp' - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/remote_config/integration_test/gradle/wrapper/gradle-wrapper.properties b/remote_config/integration_test/gradle/wrapper/gradle-wrapper.properties index 65340c1b59..2eb04a3b17 100644 --- a/remote_config/integration_test/gradle/wrapper/gradle-wrapper.properties +++ b/remote_config/integration_test/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-all.zip +distributionUrl=https://services.gradle.org/distributions/gradle-7.5.1-all.zip diff --git a/remote_config/remote_config_resources/build.gradle b/remote_config/remote_config_resources/build.gradle index 9a766490da..be52478351 100644 --- a/remote_config/remote_config_resources/build.gradle +++ b/remote_config/remote_config_resources/build.gradle @@ -18,8 +18,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.2.0' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } allprojects { @@ -33,10 +33,16 @@ apply plugin: 'com.android.library' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 + buildToolsVersion '32.0.0' + + defaultConfig { + minSdkVersion 24 + targetSdkVersion 34 + } sourceSets { main { diff --git a/scripts/gha/build_testapps.py b/scripts/gha/build_testapps.py index a4f8fd8fd3..867202f71e 100644 --- a/scripts/gha/build_testapps.py +++ b/scripts/gha/build_testapps.py @@ -59,13 +59,11 @@ JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-8-latest/Contents/Home ANDROID_HOME=/Users/user_name/Library/Android/sdk - ANDROID_SDK_HOME=/Users/user_name/Library/Android/sdk ANDROID_NDK_HOME=/Users/user_name/Library/Android/sdk/ndk-bundle Or on Linux: JAVA_HOME=/usr/local/buildtools/java/jdk/ ANDROID_HOME=~/Android/Sdk - ANDROID_SDK_HOME=~/Android/Sdk ANDROID_NDK_HOME=~/Android/Sdk/ndk If using this tool frequently, you will likely find it convenient to @@ -97,7 +95,6 @@ # Environment variables _JAVA_HOME = "JAVA_HOME" _ANDROID_HOME = "ANDROID_HOME" -_ANDROID_SDK_HOME = "ANDROID_SDK_HOME" _NDK_ROOT = "NDK_ROOT" _ANDROID_NDK_HOME = "ANDROID_NDK_HOME" @@ -538,12 +535,8 @@ def _validate_android_environment_variables(): android_home = os.environ.get(_ANDROID_HOME) if not os.environ.get(_JAVA_HOME): logging.warning("%s not set", _JAVA_HOME) - if not os.environ.get(_ANDROID_SDK_HOME): - if android_home: # Use ANDROID_HOME as backup for ANDROID_SDK_HOME - os.environ[_ANDROID_SDK_HOME] = android_home - logging.info("%s not found, using %s", _ANDROID_SDK_HOME, _ANDROID_HOME) - else: - logging.warning("Missing: %s and %s", _ANDROID_SDK_HOME, _ANDROID_HOME) + if not android_home: + logging.warning("Missing ANDROID_HOME: %s", _ANDROID_HOME) # Different environments may have different NDK env vars specified. We look # for these, in this order, and set the others to the first found. # If none are set, we check the default location for the ndk. diff --git a/scripts/gha/integration_testing/gameloop_android/build.gradle b/scripts/gha/integration_testing/gameloop_android/build.gradle index dfcc273d9e..e6b5bb1ca5 100644 --- a/scripts/gha/integration_testing/gameloop_android/build.gradle +++ b/scripts/gha/integration_testing/gameloop_android/build.gradle @@ -6,7 +6,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' + classpath 'com.android.tools.build:gradle:7.4.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong diff --git a/scripts/gha/integration_testing/gameloop_android/gradle/wrapper/gradle-wrapper.properties b/scripts/gha/integration_testing/gameloop_android/gradle/wrapper/gradle-wrapper.properties index 82458a4184..b9c7d0a07e 100644 --- a/scripts/gha/integration_testing/gameloop_android/gradle/wrapper/gradle-wrapper.properties +++ b/scripts/gha/integration_testing/gameloop_android/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-all.zip +distributionUrl=https://services.gradle.org/distributions/gradle-7.5.1-all.zip diff --git a/scripts/gha/ui_testing/uitest_android/app/build.gradle b/scripts/gha/ui_testing/uitest_android/app/build.gradle index 8b765ec0fd..f9a4ee5282 100644 --- a/scripts/gha/ui_testing/uitest_android/app/build.gradle +++ b/scripts/gha/ui_testing/uitest_android/app/build.gradle @@ -17,11 +17,11 @@ apply plugin: 'com.android.application' android { compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' defaultConfig { applicationId "com.google.firebase.uitest" - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName "1.0" diff --git a/scripts/gha/ui_testing/uitest_android/build.gradle b/scripts/gha/ui_testing/uitest_android/build.gradle index 2bd3427703..2de22e71e1 100644 --- a/scripts/gha/ui_testing/uitest_android/build.gradle +++ b/scripts/gha/ui_testing/uitest_android/build.gradle @@ -18,7 +18,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' + classpath 'com.android.tools.build:gradle:7.4.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -33,7 +33,7 @@ allprojects { } ext { - buildToolsVersion = "28.0.3" + buildToolsVersion = "32.0.0" androidxLibVersion = "1.0.0" coreVersion = "1.3.0-alpha04" extJUnitVersion = "1.1.2-alpha04" diff --git a/scripts/gha/ui_testing/uitest_android/gradle/wrapper/gradle-wrapper.properties b/scripts/gha/ui_testing/uitest_android/gradle/wrapper/gradle-wrapper.properties index a802084a46..d95d870842 100644 --- a/scripts/gha/ui_testing/uitest_android/gradle/wrapper/gradle-wrapper.properties +++ b/scripts/gha/ui_testing/uitest_android/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip +distributionUrl=https://services.gradle.org/distributions/gradle-7.5.1-all.zip diff --git a/storage/build.gradle b/storage/build.gradle index ebc6e14f12..6efb3b7169 100644 --- a/storage/build.gradle +++ b/storage/build.gradle @@ -18,7 +18,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' + classpath 'com.android.tools.build:gradle:7.4.2' } } allprojects { @@ -33,7 +33,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -48,7 +48,7 @@ android { } defaultConfig { - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName "1.0" @@ -86,4 +86,6 @@ apply from: "$rootDir/android_build_files/generate_proguard.gradle" project.afterEvaluate { generateProguardFile('storage') setupDexDependencies(':storage:storage_resources') + preBuild.dependsOn(':app:build') + preBuild.dependsOn(':auth:build') } diff --git a/storage/integration_test/build.gradle b/storage/integration_test/build.gradle index 2aa85d28e2..2e3e458316 100644 --- a/storage/integration_test/build.gradle +++ b/storage/integration_test/build.gradle @@ -20,8 +20,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.0.1' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } @@ -37,12 +37,12 @@ apply plugin: 'com.android.application' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -55,7 +55,7 @@ android { defaultConfig { applicationId 'com.google.firebase.cpp.storage.testapp' - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/storage/integration_test/gradle/wrapper/gradle-wrapper.properties b/storage/integration_test/gradle/wrapper/gradle-wrapper.properties index 65340c1b59..2eb04a3b17 100644 --- a/storage/integration_test/gradle/wrapper/gradle-wrapper.properties +++ b/storage/integration_test/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-all.zip +distributionUrl=https://services.gradle.org/distributions/gradle-7.5.1-all.zip diff --git a/storage/storage_resources/build.gradle b/storage/storage_resources/build.gradle index 12282470b4..1f83f5613c 100644 --- a/storage/storage_resources/build.gradle +++ b/storage/storage_resources/build.gradle @@ -18,8 +18,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.2.0' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } allprojects { @@ -33,11 +33,16 @@ apply plugin: 'com.android.library' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 + buildToolsVersion '32.0.0' + defaultConfig { + minSdkVersion 24 + targetSdkVersion 34 + } sourceSets { main { manifest.srcFile '../../android_build_files/AndroidManifest.xml' diff --git a/testing/build.gradle b/testing/build.gradle index 40b236689c..06d5e0b58b 100644 --- a/testing/build.gradle +++ b/testing/build.gradle @@ -18,8 +18,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.2.0' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' classpath 'com.google.flatbuffers:flatbuffers-java:1.12.0' } } @@ -36,7 +36,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -49,7 +49,7 @@ android { } defaultConfig { - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName "1.0" From 1431a42892e5c440ea3c715270ae97d205c1de64 Mon Sep 17 00:00:00 2001 From: Jon Simantov Date: Wed, 25 Sep 2024 23:19:40 -0700 Subject: [PATCH 22/34] Update to Firebase Android BoM 33.3.0 while also including the Gradle 7 change. (#1653) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update gradle versions to 7 * Update Java version and buildToolsVersion * Update integration_tests.yml * Update integration_tests.yml * More fixes * Update google services dependency version * Remove logic to set ANDROID_SDK_HOME * Update minSdkVersion. * Try working around a build tools error on Windows. * Call d8 directly via java instead of by broken shell script. * Add note about minSdkVersion. * Change Java version in CI build too. * Update Android dependencies - Wed Sep 25 2024 [Triggered](https://github.com/firebase/firebase-android-sdk/actions/runs/11037049925) by [firebase-android-sdk Sep 25 release](https://github.com/firebase/firebase-android-sdk/commit/a95da3f98b29c07a3ac0ba6bb9e862cc07c978ed). ### Android - com.google.firebase.firebase_bom → 33.3.0 > Created by [Update Android and iOS dependencies workflow](https://github.com/firebase/firebase-cpp-sdk/actions/runs/11037058168). * Change APP_BINARY_DIR to instead scan for the directory. * Clean up prebuild dependencies from gradle files. * Add minSdkVersion and targetSdkVersion to resources gradle files. * Add targetSdkVersion to messaging. * Force Java 11 on packaging. * Use the full path to the message forwarding service. * Update version numbers. * Remove extraneous logging. * Fix Android packaging script to use new paths. --------- Co-authored-by: a-maurice Co-authored-by: firebase-workflow-trigger-bot --- Android/firebase_dependencies.gradle | 2 +- app/app_resources/build.gradle | 2 +- app/google_api_resources/build.gradle | 2 +- app/invites_resources/build.gradle | 2 +- app_check/app_check_resources/build.gradle | 2 +- auth/auth_resources/build.gradle | 2 +- cpp_sdk_version.json | 6 +++--- database/database_resources/build.gradle | 2 +- firestore/firestore_resources/build.gradle | 2 +- gma/gma_resources/build.gradle | 2 +- messaging/messaging_java/build.gradle | 2 +- release_build_files/Android/firebase_dependencies.gradle | 2 +- release_build_files/readme.md | 6 ++++-- remote_config/remote_config_resources/build.gradle | 2 +- storage/storage_resources/build.gradle | 2 +- 15 files changed, 20 insertions(+), 18 deletions(-) diff --git a/Android/firebase_dependencies.gradle b/Android/firebase_dependencies.gradle index 81ea08c322..f9d265fa19 100644 --- a/Android/firebase_dependencies.gradle +++ b/Android/firebase_dependencies.gradle @@ -159,7 +159,7 @@ project.afterEvaluate { // Add the bill-of-materials project.dependencies { - implementation platform('com.google.firebase:firebase-bom:33.1.2') + implementation platform('com.google.firebase:firebase-bom:33.3.0') } for (String lib : firebaseCpp.dependencies.libSet) { // Generate and include the proguard file diff --git a/app/app_resources/build.gradle b/app/app_resources/build.gradle index 9ecf700f29..6c6974b10c 100644 --- a/app/app_resources/build.gradle +++ b/app/app_resources/build.gradle @@ -56,7 +56,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.1.2') + implementation platform('com.google.firebase:firebase-bom:33.3.0') implementation 'com.google.firebase:firebase-analytics' } diff --git a/app/google_api_resources/build.gradle b/app/google_api_resources/build.gradle index 31cff3c945..beef8ad2bb 100644 --- a/app/google_api_resources/build.gradle +++ b/app/google_api_resources/build.gradle @@ -59,7 +59,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.1.2') + implementation platform('com.google.firebase:firebase-bom:33.3.0') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.android.gms:play-services-base:18.5.0' implementation project(':app:app_resources') diff --git a/app/invites_resources/build.gradle b/app/invites_resources/build.gradle index bf078fb04e..60ecdbd22d 100644 --- a/app/invites_resources/build.gradle +++ b/app/invites_resources/build.gradle @@ -55,7 +55,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.1.2') + implementation platform('com.google.firebase:firebase-bom:33.3.0') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-dynamic-links' implementation project(':app:app_resources') diff --git a/app_check/app_check_resources/build.gradle b/app_check/app_check_resources/build.gradle index ad19bb318f..a0fb6a651a 100644 --- a/app_check/app_check_resources/build.gradle +++ b/app_check/app_check_resources/build.gradle @@ -55,7 +55,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.1.2') + implementation platform('com.google.firebase:firebase-bom:33.3.0') implementation 'com.google.firebase:firebase-appcheck' } diff --git a/auth/auth_resources/build.gradle b/auth/auth_resources/build.gradle index 45f99720dd..0127217992 100644 --- a/auth/auth_resources/build.gradle +++ b/auth/auth_resources/build.gradle @@ -55,7 +55,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.1.2') + implementation platform('com.google.firebase:firebase-bom:33.3.0') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-auth' implementation project(':app:app_resources') diff --git a/cpp_sdk_version.json b/cpp_sdk_version.json index b9b67f2eab..66cf14ce50 100644 --- a/cpp_sdk_version.json +++ b/cpp_sdk_version.json @@ -1,5 +1,5 @@ { - "released": "12.2.0", - "stable": "12.2.0", - "head": "12.2.0" + "released": "12.3.0", + "stable": "12.3.0", + "head": "12.3.0" } diff --git a/database/database_resources/build.gradle b/database/database_resources/build.gradle index 7a91b37b52..909a613227 100644 --- a/database/database_resources/build.gradle +++ b/database/database_resources/build.gradle @@ -51,7 +51,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.1.2') + implementation platform('com.google.firebase:firebase-bom:33.3.0') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-database' //implementation project(':app:app_resources') diff --git a/firestore/firestore_resources/build.gradle b/firestore/firestore_resources/build.gradle index fd10863991..f2f7a8cc9e 100644 --- a/firestore/firestore_resources/build.gradle +++ b/firestore/firestore_resources/build.gradle @@ -59,7 +59,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.1.2') + implementation platform('com.google.firebase:firebase-bom:33.3.0') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-firestore' } diff --git a/gma/gma_resources/build.gradle b/gma/gma_resources/build.gradle index f20f9f1bad..97caa4fd38 100644 --- a/gma/gma_resources/build.gradle +++ b/gma/gma_resources/build.gradle @@ -56,7 +56,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.1.2') + implementation platform('com.google.firebase:firebase-bom:33.3.0') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.android.gms:play-services-ads:23.0.0' implementation 'com.google.android.ump:user-messaging-platform:2.2.0' diff --git a/messaging/messaging_java/build.gradle b/messaging/messaging_java/build.gradle index ea8bfacd1d..ec3edf1027 100644 --- a/messaging/messaging_java/build.gradle +++ b/messaging/messaging_java/build.gradle @@ -61,7 +61,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.1.2') + implementation platform('com.google.firebase:firebase-bom:33.3.0') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-messaging' implementation 'com.google.flatbuffers:flatbuffers-java:1.12.0' diff --git a/release_build_files/Android/firebase_dependencies.gradle b/release_build_files/Android/firebase_dependencies.gradle index b80aed1531..314319ec2d 100644 --- a/release_build_files/Android/firebase_dependencies.gradle +++ b/release_build_files/Android/firebase_dependencies.gradle @@ -132,7 +132,7 @@ project.afterEvaluate { // Add the bill-of-materials project.dependencies { - implementation platform('com.google.firebase:firebase-bom:33.1.2') + implementation platform('com.google.firebase:firebase-bom:33.3.0') } for (String lib : firebaseCpp.dependencies.libSet) { // Messaging includes an aar, which to be depended on properly requires diff --git a/release_build_files/readme.md b/release_build_files/readme.md index e684bd2534..e66d896e9e 100644 --- a/release_build_files/readme.md +++ b/release_build_files/readme.md @@ -86,7 +86,7 @@ distributed as part of the core Firebase Feature | Required Libraries and Gradle Packages -------------------------- | -------------------------------------- -All Firebase SDKs | platform(com.google.firebase:firebase-bom:33.1.2) +All Firebase SDKs | platform(com.google.firebase:firebase-bom:33.3.0) | | (Android Bill of Materials) Firebase Analytics | libfirebase_analytics.a | | libfirebase_app.a @@ -631,8 +631,10 @@ workflow use only during the development of your app, not for publicly shipping code. ## Release Notes -### Upcoming Release +### 12.3.0 - Changes + - General (iOS): Update to Firebase Cocoapods version 11.2.0. + - General (Android): Update to Firebase Android BoM version 33.3.0. - General (Android): Updated minSdkVersion to 24. - Messaging: Changed SetListener to send the last token received before the listener was set. diff --git a/remote_config/remote_config_resources/build.gradle b/remote_config/remote_config_resources/build.gradle index be52478351..47d8bbe43a 100644 --- a/remote_config/remote_config_resources/build.gradle +++ b/remote_config/remote_config_resources/build.gradle @@ -55,7 +55,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.1.2') + implementation platform('com.google.firebase:firebase-bom:33.3.0') implementation 'com.google.firebase:firebase-config' } diff --git a/storage/storage_resources/build.gradle b/storage/storage_resources/build.gradle index 1f83f5613c..6ba44d4c85 100644 --- a/storage/storage_resources/build.gradle +++ b/storage/storage_resources/build.gradle @@ -54,7 +54,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.1.2') + implementation platform('com.google.firebase:firebase-bom:33.3.0') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-storage' } From d8ffa49ddd428f8846eb65fe52f20f0e1334f345 Mon Sep 17 00:00:00 2001 From: a-maurice Date: Tue, 8 Oct 2024 15:00:14 -0700 Subject: [PATCH 23/34] Make UpdateUserProfile consistent on clearing fields on Android (#1654) * Add tests around updating user profile * Update integration_test.cc * Update integration_test.cc * Update integration_test.cc * Handle empty string in profile change * Formatting * Update readme.md * Update readme.md * Update integration_test.cc --- auth/integration_test/src/integration_test.cc | 87 +++++++++++++++++++ auth/src/android/user_android.cc | 9 +- release_build_files/readme.md | 5 ++ 3 files changed, 99 insertions(+), 2 deletions(-) diff --git a/auth/integration_test/src/integration_test.cc b/auth/integration_test/src/integration_test.cc index 597919f6bf..eef1301adc 100644 --- a/auth/integration_test/src/integration_test.cc +++ b/auth/integration_test/src/integration_test.cc @@ -649,6 +649,38 @@ TEST_F(FirebaseAuthTest, TestUpdateUserProfile) { auth_->CreateUserWithEmailAndPassword(email.c_str(), kTestPassword); WaitForCompletion(create_user, "CreateUserWithEmailAndPassword"); EXPECT_TRUE(auth_->current_user().is_valid()); + + // Set some user profile properties. + firebase::auth::User user = create_user.result()->user; + const char kDisplayName[] = "Hello World"; + const char kPhotoUrl[] = "http://example.com/image.jpg"; + firebase::auth::User::UserProfile user_profile; + user_profile.display_name = kDisplayName; + user_profile.photo_url = kPhotoUrl; + firebase::Future update_profile = user.UpdateUserProfile(user_profile); + WaitForCompletion(update_profile, "UpdateUserProfile"); + user = auth_->current_user(); + EXPECT_EQ(user.display_name(), kDisplayName); + EXPECT_EQ(user.photo_url(), kPhotoUrl); + + // Validate that the new properties are present after signing out and in. + SignOut(); + WaitForCompletion( + auth_->SignInWithEmailAndPassword(email.c_str(), kTestPassword), + "SignInWithEmailAndPassword"); + user = auth_->current_user(); + EXPECT_EQ(user.display_name(), kDisplayName); + EXPECT_EQ(user.photo_url(), kPhotoUrl); + DeleteUser(); +} + +TEST_F(FirebaseAuthTest, TestUpdateUserProfileNull) { + std::string email = GenerateEmailAddress(); + firebase::Future create_user = + auth_->CreateUserWithEmailAndPassword(email.c_str(), kTestPassword); + WaitForCompletion(create_user, "CreateUserWithEmailAndPassword"); + EXPECT_TRUE(auth_->current_user().is_valid()); + // Set some user profile properties. firebase::auth::User user = create_user.result()->user; const char kDisplayName[] = "Hello World"; @@ -661,6 +693,19 @@ TEST_F(FirebaseAuthTest, TestUpdateUserProfile) { user = auth_->current_user(); EXPECT_EQ(user.display_name(), kDisplayName); EXPECT_EQ(user.photo_url(), kPhotoUrl); + + // Setting the entries to null should leave the old values + firebase::auth::User::UserProfile user_profile_null; + user_profile_null.display_name = nullptr; + user_profile_null.photo_url = nullptr; + firebase::Future update_profile_null = + user.UpdateUserProfile(user_profile_null); + WaitForCompletion(update_profile_null, "UpdateUserProfileNull"); + user = auth_->current_user(); + EXPECT_EQ(user.display_name(), kDisplayName); + EXPECT_EQ(user.photo_url(), kPhotoUrl); + + // Validate that the new properties are present after signing out and in. SignOut(); WaitForCompletion( auth_->SignInWithEmailAndPassword(email.c_str(), kTestPassword), @@ -671,6 +716,48 @@ TEST_F(FirebaseAuthTest, TestUpdateUserProfile) { DeleteUser(); } +TEST_F(FirebaseAuthTest, TestUpdateUserProfileEmpty) { + std::string email = GenerateEmailAddress(); + firebase::Future create_user = + auth_->CreateUserWithEmailAndPassword(email.c_str(), kTestPassword); + WaitForCompletion(create_user, "CreateUserWithEmailAndPassword"); + EXPECT_TRUE(auth_->current_user().is_valid()); + + // Set some user profile properties. + firebase::auth::User user = create_user.result()->user; + const char kDisplayName[] = "Hello World"; + const char kPhotoUrl[] = "http://example.com/image.jpg"; + firebase::auth::User::UserProfile user_profile; + user_profile.display_name = kDisplayName; + user_profile.photo_url = kPhotoUrl; + firebase::Future update_profile = user.UpdateUserProfile(user_profile); + WaitForCompletion(update_profile, "UpdateUserProfile"); + user = auth_->current_user(); + EXPECT_EQ(user.display_name(), kDisplayName); + EXPECT_EQ(user.photo_url(), kPhotoUrl); + + // Setting the fields to empty should clear it. + firebase::auth::User::UserProfile user_profile_empty; + user_profile_empty.display_name = ""; + user_profile_empty.photo_url = ""; + firebase::Future update_profile_empty = + user.UpdateUserProfile(user_profile_empty); + WaitForCompletion(update_profile_empty, "UpdateUserProfileEmpty"); + user = auth_->current_user(); + EXPECT_EQ(user.display_name(), ""); + EXPECT_EQ(user.photo_url(), ""); + + // Validate that the properties are cleared out after signing out and in. + SignOut(); + WaitForCompletion( + auth_->SignInWithEmailAndPassword(email.c_str(), kTestPassword), + "SignInWithEmailAndPassword"); + user = auth_->current_user(); + EXPECT_EQ(user.display_name(), ""); + EXPECT_EQ(user.photo_url(), ""); + DeleteUser(); +} + TEST_F(FirebaseAuthTest, TestUpdateEmailAndPassword) { std::string email = GenerateEmailAddress(); WaitForCompletion( diff --git a/auth/src/android/user_android.cc b/auth/src/android/user_android.cc index 7fd679e8b1..4e638a85db 100644 --- a/auth/src/android/user_android.cc +++ b/auth/src/android/user_android.cc @@ -425,7 +425,10 @@ Future User::UpdateUserProfile(const UserProfile& profile) { // Extra painfully call UserProfileChangeRequest.Builder.setPhotoUri. if (error == kAuthErrorNone && profile.photo_url != nullptr) { - jobject j_uri = CharsToJniUri(env, profile.photo_url); + jobject j_uri = nullptr; + if (strlen(profile.photo_url) > 0) { + j_uri = CharsToJniUri(env, profile.photo_url); + } jobject j_builder_discard = env->CallObjectMethod( j_user_profile_builder, userprofilebuilder::GetMethodId(userprofilebuilder::kSetPhotoUri), @@ -434,7 +437,9 @@ Future User::UpdateUserProfile(const UserProfile& profile) { if (j_builder_discard) { env->DeleteLocalRef(j_builder_discard); } - env->DeleteLocalRef(j_uri); + if (j_uri) { + env->DeleteLocalRef(j_uri); + } } jobject j_user_profile_request = nullptr; diff --git a/release_build_files/readme.md b/release_build_files/readme.md index e66d896e9e..9ddcdec602 100644 --- a/release_build_files/readme.md +++ b/release_build_files/readme.md @@ -631,6 +631,11 @@ workflow use only during the development of your app, not for publicly shipping code. ## Release Notes +### Upcoming Release +- Changes + - Auth (Android): Setting photo_url to empty string with UpdateUserProfile + clears the field, making it consistent with the other platforms. + ### 12.3.0 - Changes - General (iOS): Update to Firebase Cocoapods version 11.2.0. From 24378181b781c015efbec2a408243bd95e16f285 Mon Sep 17 00:00:00 2001 From: a-maurice Date: Thu, 10 Oct 2024 11:01:51 -0700 Subject: [PATCH 24/34] Reduce Android minSdkVersion back to 23 (#1659) * Try reducing the minSdkVersion to 23 * Specify a different r8 tools version * Update firestore internal test * Update readme --- analytics/build.gradle | 2 +- analytics/integration_test/build.gradle | 5 ++++- app/app_resources/build.gradle | 2 +- app/build.gradle | 2 +- app/google_api_resources/build.gradle | 2 +- app/integration_test/build.gradle | 5 ++++- app/invites_resources/build.gradle | 2 +- app/test_resources/build.gradle | 2 +- app_check/app_check_resources/build.gradle | 2 +- app_check/build.gradle | 2 +- app_check/integration_test/build.gradle | 5 ++++- auth/auth_resources/build.gradle | 2 +- auth/build.gradle | 2 +- auth/integration_test/build.gradle | 5 ++++- database/build.gradle | 2 +- database/database_resources/build.gradle | 2 +- database/integration_test/build.gradle | 5 ++++- dynamic_links/build.gradle | 2 +- dynamic_links/integration_test/build.gradle | 5 ++++- firestore/build.gradle | 2 +- firestore/firestore_resources/build.gradle | 2 +- firestore/integration_test/build.gradle | 5 ++++- firestore/integration_test_internal/build.gradle | 5 ++++- functions/build.gradle | 2 +- functions/integration_test/build.gradle | 5 ++++- gma/build.gradle | 2 +- gma/gma_resources/build.gradle | 2 +- gma/integration_test/build.gradle | 5 ++++- installations/build.gradle | 2 +- installations/integration_test/build.gradle | 5 ++++- messaging/build.gradle | 2 +- messaging/integration_test/build.gradle | 5 ++++- messaging/messaging_java/build.gradle | 2 +- release_build_files/readme.md | 1 + remote_config/build.gradle | 2 +- remote_config/integration_test/build.gradle | 5 ++++- remote_config/remote_config_resources/build.gradle | 2 +- scripts/gha/ui_testing/uitest_android/app/build.gradle | 2 +- storage/build.gradle | 2 +- storage/integration_test/build.gradle | 5 ++++- storage/storage_resources/build.gradle | 2 +- testing/build.gradle | 2 +- 42 files changed, 84 insertions(+), 41 deletions(-) diff --git a/analytics/build.gradle b/analytics/build.gradle index f08ac090fb..4a5d6149ff 100644 --- a/analytics/build.gradle +++ b/analytics/build.gradle @@ -48,7 +48,7 @@ android { } defaultConfig { - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 versionCode 1 versionName "1.0" diff --git a/analytics/integration_test/build.gradle b/analytics/integration_test/build.gradle index d4185f86fd..02743d45df 100644 --- a/analytics/integration_test/build.gradle +++ b/analytics/integration_test/build.gradle @@ -21,6 +21,9 @@ buildscript { } dependencies { classpath 'com.android.tools.build:gradle:7.4.2' + // r8 on this version of the Android tools has a bug, + // so specify a different version to use. + classpath 'com.android.tools:r8:8.3.37' classpath 'com.google.gms:google-services:4.4.1' } } @@ -55,7 +58,7 @@ android { defaultConfig { applicationId 'com.google.android.analytics.testapp' - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/app/app_resources/build.gradle b/app/app_resources/build.gradle index 6c6974b10c..ab5ea24209 100644 --- a/app/app_resources/build.gradle +++ b/app/app_resources/build.gradle @@ -40,7 +40,7 @@ android { buildToolsVersion '32.0.0' defaultConfig { - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 } diff --git a/app/build.gradle b/app/build.gradle index 4ceb729572..38dac86f0a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -48,7 +48,7 @@ android { } defaultConfig { - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 versionCode 1 versionName "1.0" diff --git a/app/google_api_resources/build.gradle b/app/google_api_resources/build.gradle index beef8ad2bb..301fed6dc2 100644 --- a/app/google_api_resources/build.gradle +++ b/app/google_api_resources/build.gradle @@ -40,7 +40,7 @@ android { buildToolsVersion '32.0.0' defaultConfig { - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 } diff --git a/app/integration_test/build.gradle b/app/integration_test/build.gradle index 50bf9496d3..b764da6189 100644 --- a/app/integration_test/build.gradle +++ b/app/integration_test/build.gradle @@ -21,6 +21,9 @@ buildscript { } dependencies { classpath 'com.android.tools.build:gradle:7.4.2' + // r8 on this version of the Android tools has a bug, + // so specify a different version to use. + classpath 'com.android.tools:r8:8.3.37' classpath 'com.google.gms:google-services:4.4.1' } } @@ -55,7 +58,7 @@ android { defaultConfig { applicationId 'com.google.android.analytics.testapp' - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/app/invites_resources/build.gradle b/app/invites_resources/build.gradle index 60ecdbd22d..52384d3543 100644 --- a/app/invites_resources/build.gradle +++ b/app/invites_resources/build.gradle @@ -40,7 +40,7 @@ android { buildToolsVersion '32.0.0' defaultConfig { - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 } diff --git a/app/test_resources/build.gradle b/app/test_resources/build.gradle index 9d3f52d552..04aebe642b 100644 --- a/app/test_resources/build.gradle +++ b/app/test_resources/build.gradle @@ -36,7 +36,7 @@ android { buildToolsVersion '32.0.0' defaultConfig { - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 } diff --git a/app_check/app_check_resources/build.gradle b/app_check/app_check_resources/build.gradle index a0fb6a651a..2568ddd578 100644 --- a/app_check/app_check_resources/build.gradle +++ b/app_check/app_check_resources/build.gradle @@ -40,7 +40,7 @@ android { buildToolsVersion '32.0.0' defaultConfig { - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 } diff --git a/app_check/build.gradle b/app_check/build.gradle index 164c33f38f..eb0148237d 100644 --- a/app_check/build.gradle +++ b/app_check/build.gradle @@ -48,7 +48,7 @@ android { } defaultConfig { - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 versionCode 1 versionName "1.0" diff --git a/app_check/integration_test/build.gradle b/app_check/integration_test/build.gradle index 417732be4b..9a0e96b2fd 100644 --- a/app_check/integration_test/build.gradle +++ b/app_check/integration_test/build.gradle @@ -21,6 +21,9 @@ buildscript { } dependencies { classpath 'com.android.tools.build:gradle:7.4.2' + // r8 on this version of the Android tools has a bug, + // so specify a different version to use. + classpath 'com.android.tools:r8:8.3.37' classpath 'com.google.gms:google-services:4.4.1' } } @@ -55,7 +58,7 @@ android { defaultConfig { applicationId 'com.google.firebase.cpp.appcheck.testapp' - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/auth/auth_resources/build.gradle b/auth/auth_resources/build.gradle index 0127217992..1277d80cc3 100644 --- a/auth/auth_resources/build.gradle +++ b/auth/auth_resources/build.gradle @@ -40,7 +40,7 @@ android { buildToolsVersion '32.0.0' defaultConfig { - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 } diff --git a/auth/build.gradle b/auth/build.gradle index 83106d0567..2e4764a7d1 100644 --- a/auth/build.gradle +++ b/auth/build.gradle @@ -48,7 +48,7 @@ android { } defaultConfig { - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 versionCode 1 versionName "1.0" diff --git a/auth/integration_test/build.gradle b/auth/integration_test/build.gradle index 4f745af43b..e65135b02a 100644 --- a/auth/integration_test/build.gradle +++ b/auth/integration_test/build.gradle @@ -21,6 +21,9 @@ buildscript { } dependencies { classpath 'com.android.tools.build:gradle:7.4.2' + // r8 on this version of the Android tools has a bug, + // so specify a different version to use. + classpath 'com.android.tools:r8:8.3.37' classpath 'com.google.gms:google-services:4.4.1' } } @@ -55,7 +58,7 @@ android { defaultConfig { applicationId 'com.google.android.auth.testapp' - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/database/build.gradle b/database/build.gradle index f7281608cc..79cc5eca33 100644 --- a/database/build.gradle +++ b/database/build.gradle @@ -48,7 +48,7 @@ android { } defaultConfig { - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 versionCode 1 versionName "1.0" diff --git a/database/database_resources/build.gradle b/database/database_resources/build.gradle index 909a613227..7cb0980a89 100644 --- a/database/database_resources/build.gradle +++ b/database/database_resources/build.gradle @@ -36,7 +36,7 @@ android { buildToolsVersion '32.0.0' defaultConfig { - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 } diff --git a/database/integration_test/build.gradle b/database/integration_test/build.gradle index 4401b08894..9f3937a0a9 100644 --- a/database/integration_test/build.gradle +++ b/database/integration_test/build.gradle @@ -21,6 +21,9 @@ buildscript { } dependencies { classpath 'com.android.tools.build:gradle:7.4.2' + // r8 on this version of the Android tools has a bug, + // so specify a different version to use. + classpath 'com.android.tools:r8:8.3.37' classpath 'com.google.gms:google-services:4.4.1' } } @@ -55,7 +58,7 @@ android { defaultConfig { applicationId 'com.google.firebase.cpp.database.testapp' - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/dynamic_links/build.gradle b/dynamic_links/build.gradle index b675bf7575..ecf9231331 100644 --- a/dynamic_links/build.gradle +++ b/dynamic_links/build.gradle @@ -48,7 +48,7 @@ android { } defaultConfig { - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 versionCode 1 versionName "1.0" diff --git a/dynamic_links/integration_test/build.gradle b/dynamic_links/integration_test/build.gradle index e523684703..5c5be7e10c 100644 --- a/dynamic_links/integration_test/build.gradle +++ b/dynamic_links/integration_test/build.gradle @@ -21,6 +21,9 @@ buildscript { } dependencies { classpath 'com.android.tools.build:gradle:7.4.2' + // r8 on this version of the Android tools has a bug, + // so specify a different version to use. + classpath 'com.android.tools:r8:8.3.37' classpath 'com.google.gms:google-services:4.4.1' } } @@ -55,7 +58,7 @@ android { defaultConfig { applicationId 'com.google.android.dynamiclinks.testapp' - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/firestore/build.gradle b/firestore/build.gradle index 582389d37a..c09891e92e 100644 --- a/firestore/build.gradle +++ b/firestore/build.gradle @@ -49,7 +49,7 @@ android { defaultConfig { // Jelly Bean is the minimum supported version needed by Firebase. - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 versionCode 1 versionName "1.0" diff --git a/firestore/firestore_resources/build.gradle b/firestore/firestore_resources/build.gradle index f2f7a8cc9e..eab7035ee5 100644 --- a/firestore/firestore_resources/build.gradle +++ b/firestore/firestore_resources/build.gradle @@ -40,7 +40,7 @@ android { buildToolsVersion '32.0.0' defaultConfig { - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 } diff --git a/firestore/integration_test/build.gradle b/firestore/integration_test/build.gradle index 64f64b5b8b..2a08e24b6e 100644 --- a/firestore/integration_test/build.gradle +++ b/firestore/integration_test/build.gradle @@ -21,6 +21,9 @@ buildscript { } dependencies { classpath 'com.android.tools.build:gradle:7.4.2' + // r8 on this version of the Android tools has a bug, + // so specify a different version to use. + classpath 'com.android.tools:r8:8.3.37' classpath 'com.google.gms:google-services:4.4.1' } } @@ -55,7 +58,7 @@ android { defaultConfig { applicationId 'com.google.firebase.cpp.firestore.testapp' - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/firestore/integration_test_internal/build.gradle b/firestore/integration_test_internal/build.gradle index da56c2940b..d7c578e467 100644 --- a/firestore/integration_test_internal/build.gradle +++ b/firestore/integration_test_internal/build.gradle @@ -21,6 +21,9 @@ buildscript { } dependencies { classpath 'com.android.tools.build:gradle:7.4.2' + // r8 on this version of the Android tools has a bug, + // so specify a different version to use. + classpath 'com.android.tools:r8:8.3.37' classpath 'com.google.gms:google-services:4.4.1' } } @@ -63,7 +66,7 @@ android { defaultConfig { applicationId 'com.google.firebase.cpp.firestore.testapp' - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/functions/build.gradle b/functions/build.gradle index b2c12f845c..67722579a7 100644 --- a/functions/build.gradle +++ b/functions/build.gradle @@ -48,7 +48,7 @@ android { } defaultConfig { - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 versionCode 1 versionName "1.0" diff --git a/functions/integration_test/build.gradle b/functions/integration_test/build.gradle index a78ddfbb4c..48f346165f 100644 --- a/functions/integration_test/build.gradle +++ b/functions/integration_test/build.gradle @@ -21,6 +21,9 @@ buildscript { } dependencies { classpath 'com.android.tools.build:gradle:7.4.2' + // r8 on this version of the Android tools has a bug, + // so specify a different version to use. + classpath 'com.android.tools:r8:8.3.37' classpath 'com.google.gms:google-services:4.4.1' } } @@ -55,7 +58,7 @@ android { defaultConfig { applicationId 'com.google.firebase.cpp.functions.testapp' - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/gma/build.gradle b/gma/build.gradle index e793294f8c..45421c7fe0 100644 --- a/gma/build.gradle +++ b/gma/build.gradle @@ -48,7 +48,7 @@ android { } defaultConfig { - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 versionCode 1 versionName "1.0" diff --git a/gma/gma_resources/build.gradle b/gma/gma_resources/build.gradle index 97caa4fd38..f50bfb3e35 100644 --- a/gma/gma_resources/build.gradle +++ b/gma/gma_resources/build.gradle @@ -41,7 +41,7 @@ android { buildToolsVersion '32.0.0' defaultConfig { - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 } diff --git a/gma/integration_test/build.gradle b/gma/integration_test/build.gradle index 0e78ade8b9..41d156e8eb 100644 --- a/gma/integration_test/build.gradle +++ b/gma/integration_test/build.gradle @@ -21,6 +21,9 @@ buildscript { } dependencies { classpath 'com.android.tools.build:gradle:7.4.2' + // r8 on this version of the Android tools has a bug, + // so specify a different version to use. + classpath 'com.android.tools:r8:8.3.37' classpath 'com.google.gms:google-services:4.4.1' } } @@ -55,7 +58,7 @@ android { defaultConfig { applicationId 'com.google.android.admob.testapp' - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/installations/build.gradle b/installations/build.gradle index e5eb114a92..dd60ba8050 100644 --- a/installations/build.gradle +++ b/installations/build.gradle @@ -48,7 +48,7 @@ android { } defaultConfig { - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 versionCode 1 versionName "1.0" diff --git a/installations/integration_test/build.gradle b/installations/integration_test/build.gradle index daad7ca6e1..cc000277c8 100644 --- a/installations/integration_test/build.gradle +++ b/installations/integration_test/build.gradle @@ -21,6 +21,9 @@ buildscript { } dependencies { classpath 'com.android.tools.build:gradle:7.4.2' + // r8 on this version of the Android tools has a bug, + // so specify a different version to use. + classpath 'com.android.tools:r8:8.3.37' classpath 'com.google.gms:google-services:4.4.1' } } @@ -55,7 +58,7 @@ android { defaultConfig { applicationId 'com.google.firebase.fis.testapp' - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/messaging/build.gradle b/messaging/build.gradle index 0b8f2f1e71..3bf197d932 100644 --- a/messaging/build.gradle +++ b/messaging/build.gradle @@ -48,7 +48,7 @@ android { } defaultConfig { - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 versionCode 1 versionName "1.0" diff --git a/messaging/integration_test/build.gradle b/messaging/integration_test/build.gradle index 7f274e868b..67f39bf793 100644 --- a/messaging/integration_test/build.gradle +++ b/messaging/integration_test/build.gradle @@ -21,6 +21,9 @@ buildscript { } dependencies { classpath 'com.android.tools.build:gradle:7.4.2' + // r8 on this version of the Android tools has a bug, + // so specify a different version to use. + classpath 'com.android.tools:r8:8.3.37' classpath 'com.google.gms:google-services:4.4.1' } } @@ -55,7 +58,7 @@ android { defaultConfig { applicationId 'com.google.firebase.cpp.messaging.testapp' - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/messaging/messaging_java/build.gradle b/messaging/messaging_java/build.gradle index ec3edf1027..0424780e35 100644 --- a/messaging/messaging_java/build.gradle +++ b/messaging/messaging_java/build.gradle @@ -46,7 +46,7 @@ android { defaultConfig { targetSdkVersion 34 - minSdkVersion 24 + minSdkVersion 23 } sourceSets { diff --git a/release_build_files/readme.md b/release_build_files/readme.md index 9ddcdec602..61ad3b5abc 100644 --- a/release_build_files/readme.md +++ b/release_build_files/readme.md @@ -633,6 +633,7 @@ code. ## Release Notes ### Upcoming Release - Changes + - General (Android): Reduced minSdkVersion back to 23. - Auth (Android): Setting photo_url to empty string with UpdateUserProfile clears the field, making it consistent with the other platforms. diff --git a/remote_config/build.gradle b/remote_config/build.gradle index 79abec6dba..2b00fbdaae 100644 --- a/remote_config/build.gradle +++ b/remote_config/build.gradle @@ -48,7 +48,7 @@ android { } defaultConfig { - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 versionCode 1 versionName "1.0" diff --git a/remote_config/integration_test/build.gradle b/remote_config/integration_test/build.gradle index 66e0a3e1e9..389718f1e6 100644 --- a/remote_config/integration_test/build.gradle +++ b/remote_config/integration_test/build.gradle @@ -21,6 +21,9 @@ buildscript { } dependencies { classpath 'com.android.tools.build:gradle:7.4.2' + // r8 on this version of the Android tools has a bug, + // so specify a different version to use. + classpath 'com.android.tools:r8:8.3.37' classpath 'com.google.gms:google-services:4.4.1' } } @@ -55,7 +58,7 @@ android { defaultConfig { applicationId 'com.google.android.remoteconfig.testapp' - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/remote_config/remote_config_resources/build.gradle b/remote_config/remote_config_resources/build.gradle index 47d8bbe43a..88fb5850e9 100644 --- a/remote_config/remote_config_resources/build.gradle +++ b/remote_config/remote_config_resources/build.gradle @@ -40,7 +40,7 @@ android { buildToolsVersion '32.0.0' defaultConfig { - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 } diff --git a/scripts/gha/ui_testing/uitest_android/app/build.gradle b/scripts/gha/ui_testing/uitest_android/app/build.gradle index f9a4ee5282..09cb0601ce 100644 --- a/scripts/gha/ui_testing/uitest_android/app/build.gradle +++ b/scripts/gha/ui_testing/uitest_android/app/build.gradle @@ -21,7 +21,7 @@ android { defaultConfig { applicationId "com.google.firebase.uitest" - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 versionCode 1 versionName "1.0" diff --git a/storage/build.gradle b/storage/build.gradle index 6efb3b7169..00444f11d1 100644 --- a/storage/build.gradle +++ b/storage/build.gradle @@ -48,7 +48,7 @@ android { } defaultConfig { - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 versionCode 1 versionName "1.0" diff --git a/storage/integration_test/build.gradle b/storage/integration_test/build.gradle index 2e3e458316..ed536d709f 100644 --- a/storage/integration_test/build.gradle +++ b/storage/integration_test/build.gradle @@ -21,6 +21,9 @@ buildscript { } dependencies { classpath 'com.android.tools.build:gradle:7.4.2' + // r8 on this version of the Android tools has a bug, + // so specify a different version to use. + classpath 'com.android.tools:r8:8.3.37' classpath 'com.google.gms:google-services:4.4.1' } } @@ -55,7 +58,7 @@ android { defaultConfig { applicationId 'com.google.firebase.cpp.storage.testapp' - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/storage/storage_resources/build.gradle b/storage/storage_resources/build.gradle index 6ba44d4c85..d631343b46 100644 --- a/storage/storage_resources/build.gradle +++ b/storage/storage_resources/build.gradle @@ -40,7 +40,7 @@ android { buildToolsVersion '32.0.0' defaultConfig { - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 } sourceSets { diff --git a/testing/build.gradle b/testing/build.gradle index 06d5e0b58b..eddf7b4eae 100644 --- a/testing/build.gradle +++ b/testing/build.gradle @@ -49,7 +49,7 @@ android { } defaultConfig { - minSdkVersion 24 + minSdkVersion 23 targetSdkVersion 34 versionCode 1 versionName "1.0" From 48c3a323137e5d98851a3e33c49f1090ff826d5d Mon Sep 17 00:00:00 2001 From: Jon Simantov Date: Wed, 16 Oct 2024 10:33:07 -0700 Subject: [PATCH 25/34] Disable custom runner. --- .github/workflows/integration_tests.yml | 152 ---------------------- scripts/gha/print_matrix_configuration.py | 4 +- 2 files changed, 2 insertions(+), 154 deletions(-) diff --git a/.github/workflows/integration_tests.yml b/.github/workflows/integration_tests.yml index b94a5d0c75..a42898436d 100644 --- a/.github/workflows/integration_tests.yml +++ b/.github/workflows/integration_tests.yml @@ -864,158 +864,6 @@ jobs: exit 1 fi - # Run tests that depend on custom (self-hosted) runners. - # For now, this is only used for ARM Mac builds. - test_desktop_custom_runners: - name: test-desktop-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.ssl_variant }}-custom-runner - needs: [check_and_prepare, build_desktop] - runs-on: [self-hosted, firebase-cpp, '${{ matrix.runner_label }}'] - if: contains(needs.check_and_prepare.outputs.matrix_platform, 'Desktop') && contains(needs.check_and_prepare.outputs.matrix_arch_combined, 'arm64') && contains(needs.check_and_prepare.outputs.matrix_os, 'macos-13') && needs.check_and_prepare.outputs.apis != '' && !cancelled() - strategy: - fail-fast: false - matrix: - ssl_variant: ${{ fromJson(needs.check_and_prepare.outputs.matrix_ssl) }} - os: ${{ fromJson(needs.check_and_prepare.outputs.matrix_os) }} - arch: ${{ fromJson(needs.check_and_prepare.outputs.matrix_arch_combined) }} - runner_label: ['${{ needs.check_and_prepare.outputs.runner_label_macos_arm64 }}'] - exclude: - # Don't run Linux or Windows tests on the Mac arm64 runner. - - os: ubuntu-20.04 - runner_label: ${{ needs.check_and_prepare.outputs.runner_label_macos_arm64 }} - - os: windows-latest - runner_label: ${{ needs.check_and_prepare.outputs.runner_label_macos_arm64 }} - # Don't run x86 tests on any Mac runner. - - os: macos-13 - arch: x86 - # Don't run x64 tests on the Mac arm64 runner. - - os: macos-13 - arch: x64 - runner_label: ${{ needs.check_and_prepare.outputs.runner_label_macos_arm64 }} - # Until we support building openssl from source, we can't link to system - # openssl when cross-compiling, so exclude openssl from mac arm64 testing. - - os: macos-13 - arch: arm64 - ssl_variant: openssl - steps: - - name: Clean up previous run - shell: bash - run: | - echo "Cleaning up previous run" - rm -rf "${{ github.workspace }}"/* - - uses: actions/checkout@v3 - with: - ref: ${{needs.check_and_prepare.outputs.github_ref}} - - name: Download Desktop integration tests artifact - uses: actions/download-artifact@v3 - with: - path: testapps - name: testapps-desktop-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.ssl_variant }} - # Omit all of the prerequisites steps; we ensure that our self-hosted runners - # are configured with all prereqs already installed. - - name: Create keychain (macOS) - if: ${{ runner.os == 'macOS' }} - shell: bash - run: | - echo "Creating temporary keychain" - # Create a local keychain on Mac: - # Clean up previous temp keychain, if any. - security delete-keychain tmp-keychain 2> /dev/null || true - # Create temp keychain file and unlock it. - # (Avoid passing in -p on command line by using interactive mode.) - # Also set it to default settings so there is no unlock timeout. - security -i < firebase.json - echo "::warning ::Firestore emulator version: $(firebase --version)" - set -x - firebase emulators:exec --only firestore --project demo-example \ - 'python scripts/gha/desktop_tester.py --testapp_dir testapps --logfile_name "desktop-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.ssl_variant }}" --cmd_prefix='"\"${cmd_prefix}\"" - else - set -x - python scripts/gha/desktop_tester.py --testapp_dir testapps --logfile_name "desktop-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.ssl_variant }}" --cmd_prefix="${cmd_prefix}" - fi - env: - USE_FIRESTORE_EMULATOR: true - - name: Delete keychain (macOS) - if: ${{ always() && runner.os == 'macOS' }} - shell: bash - run: | - # Remove the local keychain on Mac: - # Set back to the default login keychain. - security list-keychains -d user -s login.keychain - # Delete the temp keychain, if it exists. - security delete-keychain tmp-keychain || true - - name: Prepare results summary artifact - if: ${{ !cancelled() }} - shell: bash - run: | - if [ ! -f testapps/test-results-desktop-${{ matrix.os }}-${{ matrix.arch}}-${{ matrix.ssl_variant }}.log.json ]; then - mkdir -p testapps && echo "__SUMMARY_MISSING__" > testapps/test-results-desktop-${{ matrix.os }}-${{ matrix.arch}}-${{ matrix.ssl_variant }}.log.json - fi - - name: Upload Desktop test results artifact - if: ${{ !cancelled() }} - uses: actions/upload-artifact@v3 - with: - name: log-artifact - path: testapps/test-results-desktop-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.ssl_variant }}* - retention-days: ${{ env.artifactRetentionDays }} - - name: Download log artifacts - if: ${{ needs.check_and_prepare.outputs.pr_number && failure() && !cancelled() }} - uses: actions/download-artifact@v3 - with: - path: test_results - name: log-artifact - - name: Update PR label and comment - if: ${{ needs.check_and_prepare.outputs.pr_number && failure() && !cancelled() }} - shell: bash - run: | - python scripts/gha/it_workflow.py --stage progress \ - --token ${{github.token}} \ - --issue_number ${{needs.check_and_prepare.outputs.pr_number}}\ - --actor ${{github.actor}} \ - --commit ${{needs.check_and_prepare.outputs.github_ref}} \ - --run_id ${{github.run_id}} - - name: Summarize test results - if: ${{ !cancelled() }} - shell: bash - run: | - cat testapps/test-results-desktop-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.ssl_variant }}.log - if [[ "${{ job.status }}" != "success" ]]; then - exit 1 - fi - - name: Clean up after this run - shell: bash - if: ${{ always() }} - run: | - echo "Cleaning up after this run" - rm -rf "${{ github.workspace }}"/* - - - test_android: name: test-android-${{ matrix.build_os }}-${{ matrix.android_device }}-${{ matrix.test_type }} needs: [check_and_prepare, build_android] diff --git a/scripts/gha/print_matrix_configuration.py b/scripts/gha/print_matrix_configuration.py index cd9315f864..ad88486501 100644 --- a/scripts/gha/print_matrix_configuration.py +++ b/scripts/gha/print_matrix_configuration.py @@ -75,7 +75,7 @@ "matrix": { "os": ["ubuntu-20.04", "macos-13"], "build_type": ["Release", "Debug"], - "architecture": ["x64", "x86", "arm64"], + "architecture": ["x64", "x86"], "msvc_runtime": ["static","dynamic"], "xcode_version": ["15.1"], "python_version": ["3.7"], @@ -130,7 +130,7 @@ "ios_device": ["ios_min", "ios_target", "ios_latest", "simulator_min", "simulator_target", "simulator_latest"], "tvos_device": ["tvos_simulator"], "architecture_windows_linux": ["x64", "x86"], - "architecture_macos": ["x64", "arm64"], + "architecture_macos": ["x64"], } }, "config": { From cfd4ca0360bc54a817f1017b007265aec2b6be7c Mon Sep 17 00:00:00 2001 From: Jon Simantov Date: Thu, 17 Oct 2024 11:09:02 -0700 Subject: [PATCH 26/34] Remove custom runners from summarize_results. --- .github/workflows/integration_tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/integration_tests.yml b/.github/workflows/integration_tests.yml index a42898436d..1207b10ec9 100644 --- a/.github/workflows/integration_tests.yml +++ b/.github/workflows/integration_tests.yml @@ -1312,7 +1312,7 @@ jobs: summarize_results: name: "summarize-results" - needs: [check_and_prepare, test_desktop, test_desktop_custom_runners, test_android, test_ios, test_tvos] + needs: [check_and_prepare, test_desktop, test_android, test_ios, test_tvos] runs-on: ubuntu-20.04 if: ${{ !cancelled() }} steps: From 9906aa91162e6578a538cd852a8c2c1f3991a1c2 Mon Sep 17 00:00:00 2001 From: a-maurice Date: Thu, 17 Oct 2024 17:04:42 -0700 Subject: [PATCH 27/34] Add logic for Analytics parameters with maps (#1660) * Add logic for Analytics parameters with maps * Update analytics_ios.mm * Add a new test * Code formatting * Add comments * Update readme.md * Update util_android.h * Renamed conversion function to be clearer --- .../integration_test/src/integration_test.cc | 26 ++++ analytics/src/analytics_android.cc | 125 +++++++++++++++--- analytics/src/analytics_ios.mm | 84 +++++++++--- app/src/util_android.h | 18 +-- release_build_files/readme.md | 2 + 5 files changed, 210 insertions(+), 45 deletions(-) diff --git a/analytics/integration_test/src/integration_test.cc b/analytics/integration_test/src/integration_test.cc index 575ff30b82..bedccee516 100644 --- a/analytics/integration_test/src/integration_test.cc +++ b/analytics/integration_test/src/integration_test.cc @@ -271,6 +271,32 @@ TEST_F(FirebaseAnalyticsTest, TestLogEventWithMultipleParameters) { sizeof(kLevelUpParameters) / sizeof(kLevelUpParameters[0])); } +TEST_F(FirebaseAnalyticsTest, TestLogEventWithComplexParameters) { + // Define the items that will go into the kParameterItems list. + firebase::Variant first_item = firebase::Variant::EmptyMap(); + first_item.map()[firebase::analytics::kParameterItemID] = "SKU_12345"; + first_item.map()[firebase::analytics::kParameterItemName] = "Horse Armor DLC"; + firebase::Variant second_item = firebase::Variant::EmptyMap(); + second_item.map()[firebase::analytics::kParameterItemID] = "SKU_67890"; + second_item.map()[firebase::analytics::kParameterItemName] = + "Gold Horse Armor DLC"; + + // Define the parameters that are sent with the ViewCart event. + const firebase::analytics::Parameter kViewCartParameters[] = { + firebase::analytics::Parameter(firebase::analytics::kParameterCurrency, + "USD"), + firebase::analytics::Parameter(firebase::analytics::kParameterValue, + 30.03), + firebase::analytics::Parameter( + firebase::analytics::kParameterItems, + std::vector{first_item, second_item}), + }; + + firebase::analytics::LogEvent( + firebase::analytics::kEventViewCart, kViewCartParameters, + sizeof(kViewCartParameters) / sizeof(kViewCartParameters[0])); +} + TEST_F(FirebaseAnalyticsTest, TestSetConsent) { // On Android, this test must be performed at the end, after all the tests for // session ID and instance ID. This is because once you call SetConsent to diff --git a/analytics/src/analytics_android.cc b/analytics/src/analytics_android.cc index 16f55b8995..d1279c6ba7 100644 --- a/analytics/src/analytics_android.cc +++ b/analytics/src/analytics_android.cc @@ -355,6 +355,109 @@ void AddToBundle(JNIEnv* env, jobject bundle, const char* key, int64_t value) { env->DeleteLocalRef(key_string); } +// Add an ArrayList to the given Bundle. +void AddArrayListToBundle(JNIEnv* env, jobject bundle, const char* key, + jobject arraylist) { + jstring key_string = env->NewStringUTF(key); + env->CallVoidMethod( + bundle, util::bundle::GetMethodId(util::bundle::kPutParcelableArrayList), + key_string, arraylist); + util::CheckAndClearJniExceptions(env); + env->DeleteLocalRef(key_string); +} + +// Add a Bundle to the given Bundle. +void AddBundleToBundle(JNIEnv* env, jobject bundle, const char* key, + jobject inner_bundle) { + jstring key_string = env->NewStringUTF(key); + env->CallVoidMethod(bundle, + util::bundle::GetMethodId(util::bundle::kPutBundle), + key_string, inner_bundle); + util::CheckAndClearJniExceptions(env); + env->DeleteLocalRef(key_string); +} + +// Declared here so that it can be used, defined below. +jobject MapToBundle(JNIEnv* env, const std::map& map); + +// Converts the given vector into a Java ArrayList. It is up to the +// caller to delete the local reference when done. +jobject VectorOfMapsToArrayList(JNIEnv* env, + const std::vector& vector) { + jobject arraylist = env->NewObject( + util::array_list::GetClass(), + util::array_list::GetMethodId(util::array_list::kConstructor)); + + for (const Variant& element : vector) { + if (element.is_map()) { + jobject bundle = MapToBundle(env, element.map()); + env->CallBooleanMethod( + arraylist, util::array_list::GetMethodId(util::array_list::kAdd), + bundle); + util::CheckAndClearJniExceptions(env); + env->DeleteLocalRef(bundle); + } else { + LogError("VectorOfMapsToArrayList: Unsupported type (%s) within vector.", + Variant::TypeName(element.type())); + } + } + return arraylist; +} + +// Converts and adds the Variant to the given Bundle. +bool AddVariantToBundle(JNIEnv* env, jobject bundle, const char* key, + const Variant& value) { + if (value.is_int64()) { + AddToBundle(env, bundle, key, value.int64_value()); + } else if (value.is_double()) { + AddToBundle(env, bundle, key, value.double_value()); + } else if (value.is_string()) { + AddToBundle(env, bundle, key, value.string_value()); + } else if (value.is_bool()) { + // Just use integer 0 or 1. + AddToBundle(env, bundle, key, + value.bool_value() ? static_cast(1L) + : static_cast(0L)); + } else if (value.is_null()) { + // Just use integer 0 for null. + AddToBundle(env, bundle, key, static_cast(0L)); + } else if (value.is_vector()) { + jobject arraylist = VectorOfMapsToArrayList(env, value.vector()); + AddArrayListToBundle(env, bundle, key, arraylist); + env->DeleteLocalRef(arraylist); + } else if (value.is_map()) { + jobject inner_bundle = MapToBundle(env, value.map()); + AddBundleToBundle(env, bundle, key, inner_bundle); + env->DeleteLocalRef(inner_bundle); + } else { + // A Variant type that couldn't be handled was passed in. + return false; + } + return true; +} + +// Converts the given map into a Java Bundle. It is up to the caller +// to delete the local reference when done. +jobject MapToBundle(JNIEnv* env, const std::map& map) { + jobject bundle = + env->NewObject(util::bundle::GetClass(), + util::bundle::GetMethodId(util::bundle::kConstructor)); + for (const auto& pair : map) { + // Only add elements that use a string key + if (!pair.first.is_string()) { + continue; + } + if (!AddVariantToBundle(env, bundle, pair.first.string_value(), + pair.second)) { + LogError("MapToBundle: Unsupported type (%s) within map with key %s.", + Variant::TypeName(pair.second.type()), + pair.first.string_value()); + } + util::CheckAndClearJniExceptions(env); + } + return bundle; +} + // Log an event with one string parameter. void LogEvent(const char* name, const char* parameter_name, const char* parameter_value) { @@ -404,27 +507,11 @@ void LogEvent(const char* name, const Parameter* parameters, LogEvent(env, name, [env, parameters, number_of_parameters](jobject bundle) { for (size_t i = 0; i < number_of_parameters; ++i) { const Parameter& parameter = parameters[i]; - if (parameter.value.is_int64()) { - AddToBundle(env, bundle, parameter.name, parameter.value.int64_value()); - } else if (parameter.value.is_double()) { - AddToBundle(env, bundle, parameter.name, - parameter.value.double_value()); - } else if (parameter.value.is_string()) { - AddToBundle(env, bundle, parameter.name, - parameter.value.string_value()); - } else if (parameter.value.is_bool()) { - // Just use integer 0 or 1. - AddToBundle(env, bundle, parameter.name, - parameter.value.bool_value() ? static_cast(1L) - : static_cast(0L)); - } else if (parameter.value.is_null()) { - // Just use integer 0 for null. - AddToBundle(env, bundle, parameter.name, static_cast(0L)); - } else { - // Vector or Map were passed in. + if (!AddVariantToBundle(env, bundle, parameter.name, parameter.value)) { + // A Variant type that couldn't be handled was passed in. LogError( "LogEvent(%s): %s is not a valid parameter value type. " - "Container types are not allowed. No event was logged.", + "No event was logged.", parameter.name, Variant::TypeName(parameter.value.type())); } } diff --git a/analytics/src/analytics_ios.mm b/analytics/src/analytics_ios.mm index 4ceb8bdc7a..d56fd61356 100644 --- a/analytics/src/analytics_ios.mm +++ b/analytics/src/analytics_ios.mm @@ -231,6 +231,69 @@ void LogEvent(const char* name) { [FIRAnalytics logEventWithName:@(name) parameters:@{}]; } +// Declared here so that it can be used, defined below. +NSDictionary* MapToDictionary(const std::map& map); + +// Converts the given vector of Maps into an ObjC NSArray of ObjC NSDictionaries. +NSArray* VectorOfMapsToArray(const std::vector& vector) { + NSMutableArray* array = [NSMutableArray arrayWithCapacity:vector.size()]; + for (const Variant& element : vector) { + if (element.is_map()) { + NSDictionary* dict = MapToDictionary(element.map()); + [array addObject:dict]; + } else { + LogError("VectorOfMapsToArray: Unsupported type (%s) within vector.", + Variant::TypeName(element.type())); + } + } + return array; +} + +// Converts and adds the Variant to the given Dictionary. +bool AddVariantToDictionary(NSMutableDictionary* dict, NSString* key, const Variant& value) { + if (value.is_int64()) { + [dict setObject:[NSNumber numberWithLongLong:value.int64_value()] forKey:key]; + } else if (value.is_double()) { + [dict setObject:[NSNumber numberWithDouble:value.double_value()] forKey:key]; + } else if (value.is_string()) { + [dict setObject:SafeString(value.string_value()) forKey:key]; + } else if (value.is_bool()) { + // Just use integer 0 or 1. + [dict setObject:[NSNumber numberWithLongLong:value.bool_value() ? 1 : 0] forKey:key]; + } else if (value.is_null()) { + // Just use integer 0 for null. + [dict setObject:[NSNumber numberWithLongLong:0] forKey:key]; + } else if (value.is_vector()) { + NSArray* array = VectorOfMapsToArray(value.vector()); + [dict setObject:array forKey:key]; + } else if (value.is_map()) { + NSDictionary* inner_dict = MapToDictionary(value.map()); + [dict setObject:inner_dict forKey:key]; + } else { + // A Variant type that couldn't be handled was passed in. + return false; + } + return true; +} + +// Converts the given map into an ObjC dictionary of ObjC objects. +NSDictionary* MapToDictionary(const std::map& map) { + NSMutableDictionary* dict = [NSMutableDictionary dictionaryWithCapacity:map.size()]; + for (const auto& pair : map) { + // Only add elements that use a string key + if (!pair.first.is_string()) { + continue; + } + NSString* key = SafeString(pair.first.string_value()); + const Variant& value = pair.second; + if (!AddVariantToDictionary(dict, key, value)) { + LogError("MapToDictionary: Unsupported type (%s) within map with key %s.", + Variant::TypeName(value.type()), key); + } + } + return dict; +} + // Log an event with associated parameters. void LogEvent(const char* name, const Parameter* parameters, size_t number_of_parameters) { FIREBASE_ASSERT_RETURN_VOID(internal::IsInitialized()); @@ -239,25 +302,10 @@ void LogEvent(const char* name, const Parameter* parameters, size_t number_of_pa for (size_t i = 0; i < number_of_parameters; ++i) { const Parameter& parameter = parameters[i]; NSString* parameter_name = SafeString(parameter.name); - if (parameter.value.is_int64()) { - [parameters_dict setObject:[NSNumber numberWithLongLong:parameter.value.int64_value()] - forKey:parameter_name]; - } else if (parameter.value.is_double()) { - [parameters_dict setObject:[NSNumber numberWithDouble:parameter.value.double_value()] - forKey:parameter_name]; - } else if (parameter.value.is_string()) { - [parameters_dict setObject:SafeString(parameter.value.string_value()) forKey:parameter_name]; - } else if (parameter.value.is_bool()) { - // Just use integer 0 or 1. - [parameters_dict setObject:[NSNumber numberWithLongLong:parameter.value.bool_value() ? 1 : 0] - forKey:parameter_name]; - } else if (parameter.value.is_null()) { - // Just use integer 0 for null. - [parameters_dict setObject:[NSNumber numberWithLongLong:0] forKey:parameter_name]; - } else { - // Vector or Map were passed in. + if (!AddVariantToDictionary(parameters_dict, parameter_name, parameter.value)) { + // A Variant type that couldn't be handled was passed in. LogError("LogEvent(%s): %s is not a valid parameter value type. " - "Container types are not allowed. No event was logged.", + "No event was logged.", parameter.name, Variant::TypeName(parameter.value.type())); } } diff --git a/app/src/util_android.h b/app/src/util_android.h index 6cfeae5acf..3467c53b22 100644 --- a/app/src/util_android.h +++ b/app/src/util_android.h @@ -491,14 +491,16 @@ METHOD_LOOKUP_DECLARATION(activity, ACTIVITY_METHODS) // Used to setup the cache of Bundle class method IDs to reduce time spent // looking up methods by string. // clang-format off -#define BUNDLE_METHODS(X) \ - X(Constructor, "", "()V"), \ - X(GetString, "getString", "(Ljava/lang/String;)Ljava/lang/String;"), \ - X(KeySet, "keySet", "()Ljava/util/Set;"), \ - X(PutFloat, "putFloat", "(Ljava/lang/String;F)V"), \ - X(PutLong, "putLong", "(Ljava/lang/String;J)V"), \ - X(PutString, "putString", "(Ljava/lang/String;Ljava/lang/String;)V"), \ - X(PutBundle, "putBundle", "(Ljava/lang/String;Landroid/os/Bundle;)V") +#define BUNDLE_METHODS(X) \ + X(Constructor, "", "()V"), \ + X(GetString, "getString", "(Ljava/lang/String;)Ljava/lang/String;"), \ + X(KeySet, "keySet", "()Ljava/util/Set;"), \ + X(PutFloat, "putFloat", "(Ljava/lang/String;F)V"), \ + X(PutLong, "putLong", "(Ljava/lang/String;J)V"), \ + X(PutString, "putString", "(Ljava/lang/String;Ljava/lang/String;)V"), \ + X(PutBundle, "putBundle", "(Ljava/lang/String;Landroid/os/Bundle;)V"), \ + X(PutParcelableArrayList, "putParcelableArrayList", \ + "(Ljava/lang/String;Ljava/util/ArrayList;)V") // clang-format on METHOD_LOOKUP_DECLARATION(bundle, BUNDLE_METHODS) diff --git a/release_build_files/readme.md b/release_build_files/readme.md index 61ad3b5abc..95f1e351e2 100644 --- a/release_build_files/readme.md +++ b/release_build_files/readme.md @@ -634,6 +634,8 @@ code. ### Upcoming Release - Changes - General (Android): Reduced minSdkVersion back to 23. + - Analytics: Add support for Parameters of Lists of Dictionaries, needed + by some events such as ViewCart. - Auth (Android): Setting photo_url to empty string with UpdateUserProfile clears the field, making it consistent with the other platforms. From 6ef14b222e69b349b2247ec495b22fc00e8e4207 Mon Sep 17 00:00:00 2001 From: "firebase-workflow-trigger[bot]" <80733318+firebase-workflow-trigger[bot]@users.noreply.github.com> Date: Tue, 22 Oct 2024 13:50:35 -0700 Subject: [PATCH 28/34] Update mobile dependencies - Tue Oct 22 2024 (#1661) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update mobile dependencies - Tue Oct 22 2024 ### Android - com.google.firebase.firebase_bom → 33.5.0 ### iOS - Firebase/Analytics → 11.4.1 - Firebase/AppCheck → 11.4.1 - Firebase/Auth → 11.4.1 - Firebase/Core → 11.4.1 - Firebase/CoreOnly → 11.4.1 - Firebase/Crashlytics → 11.4.1 - Firebase/Database → 11.4.1 - Firebase/DynamicLinks → 11.4.1 - Firebase/Firestore → 11.4.1 - Firebase/Functions → 11.4.1 - Firebase/Installations → 11.4.1 - Firebase/Messaging → 11.4.1 - Firebase/RemoteConfig → 11.4.1 - Firebase/Storage → 11.4.1 > Created by [Update Android and iOS dependencies workflow](https://github.com/firebase/firebase-cpp-sdk/actions/runs/11465636830). * Update version numbers. --------- Co-authored-by: firebase-workflow-trigger-bot Co-authored-by: Jon Simantov --- Android/firebase_dependencies.gradle | 2 +- analytics/integration_test/Podfile | 4 +- analytics/ios_headers/FIREventNames.h | 2 +- analytics/ios_headers/FIRParameterNames.h | 2 +- analytics/ios_headers/FIRUserPropertyNames.h | 2 +- app/app_resources/build.gradle | 2 +- app/google_api_resources/build.gradle | 2 +- app/integration_test/Podfile | 2 +- app/invites_resources/build.gradle | 2 +- app_check/app_check_resources/build.gradle | 2 +- app_check/integration_test/Podfile | 20 +++--- auth/auth_resources/build.gradle | 2 +- auth/integration_test/Podfile | 4 +- cmake/external/firestore.cmake | 2 +- cpp_sdk_version.json | 6 +- database/database_resources/build.gradle | 2 +- database/integration_test/Podfile | 8 +-- dynamic_links/integration_test/Podfile | 2 +- firestore/firestore_resources/build.gradle | 2 +- firestore/integration_test/Podfile | 8 +-- firestore/integration_test_internal/Podfile | 8 +-- functions/integration_test/Podfile | 8 +-- gma/gma_resources/build.gradle | 2 +- gma/integration_test/Podfile | 2 +- installations/integration_test/Podfile | 4 +- ios_pod/Podfile | 26 +++---- messaging/integration_test/Podfile | 8 +-- messaging/messaging_java/build.gradle | 2 +- .../Android/firebase_dependencies.gradle | 2 +- release_build_files/readme.md | 70 ++++++++++--------- remote_config/integration_test/Podfile | 4 +- .../remote_config_resources/build.gradle | 2 +- storage/integration_test/Podfile | 8 +-- storage/storage_resources/build.gradle | 2 +- 34 files changed, 114 insertions(+), 112 deletions(-) diff --git a/Android/firebase_dependencies.gradle b/Android/firebase_dependencies.gradle index f9d265fa19..9d763b4815 100644 --- a/Android/firebase_dependencies.gradle +++ b/Android/firebase_dependencies.gradle @@ -159,7 +159,7 @@ project.afterEvaluate { // Add the bill-of-materials project.dependencies { - implementation platform('com.google.firebase:firebase-bom:33.3.0') + implementation platform('com.google.firebase:firebase-bom:33.5.0') } for (String lib : firebaseCpp.dependencies.libSet) { // Generate and include the proguard file diff --git a/analytics/integration_test/Podfile b/analytics/integration_test/Podfile index 5a5c8a4ba8..67bccd201d 100644 --- a/analytics/integration_test/Podfile +++ b/analytics/integration_test/Podfile @@ -5,12 +5,12 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Analytics', '11.2.0' + pod 'Firebase/Analytics', '11.4.1' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/Analytics', '11.2.0' + pod 'Firebase/Analytics', '11.4.1' end post_install do |installer| diff --git a/analytics/ios_headers/FIREventNames.h b/analytics/ios_headers/FIREventNames.h index 297f1a3e28..7ff8056a01 100644 --- a/analytics/ios_headers/FIREventNames.h +++ b/analytics/ios_headers/FIREventNames.h @@ -1,6 +1,6 @@ // Copyright 2024 Google LLC -// Copied from Firebase Analytics iOS SDK 11.2.0. +// Copied from Firebase Analytics iOS SDK 11.4.1. /// @file FIREventNames.h /// diff --git a/analytics/ios_headers/FIRParameterNames.h b/analytics/ios_headers/FIRParameterNames.h index 7937f42f03..d5b88a0218 100644 --- a/analytics/ios_headers/FIRParameterNames.h +++ b/analytics/ios_headers/FIRParameterNames.h @@ -1,6 +1,6 @@ // Copyright 2024 Google LLC -// Copied from Firebase Analytics iOS SDK 11.2.0. +// Copied from Firebase Analytics iOS SDK 11.4.1. /// @file FIRParameterNames.h /// diff --git a/analytics/ios_headers/FIRUserPropertyNames.h b/analytics/ios_headers/FIRUserPropertyNames.h index 19bb949bd3..b91d412e94 100644 --- a/analytics/ios_headers/FIRUserPropertyNames.h +++ b/analytics/ios_headers/FIRUserPropertyNames.h @@ -1,6 +1,6 @@ // Copyright 2024 Google LLC -// Copied from Firebase Analytics iOS SDK 11.2.0. +// Copied from Firebase Analytics iOS SDK 11.4.1. /// @file FIRUserPropertyNames.h /// diff --git a/app/app_resources/build.gradle b/app/app_resources/build.gradle index ab5ea24209..e33c360329 100644 --- a/app/app_resources/build.gradle +++ b/app/app_resources/build.gradle @@ -56,7 +56,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.3.0') + implementation platform('com.google.firebase:firebase-bom:33.5.0') implementation 'com.google.firebase:firebase-analytics' } diff --git a/app/google_api_resources/build.gradle b/app/google_api_resources/build.gradle index 301fed6dc2..2785d623ae 100644 --- a/app/google_api_resources/build.gradle +++ b/app/google_api_resources/build.gradle @@ -59,7 +59,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.3.0') + implementation platform('com.google.firebase:firebase-bom:33.5.0') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.android.gms:play-services-base:18.5.0' implementation project(':app:app_resources') diff --git a/app/integration_test/Podfile b/app/integration_test/Podfile index b48cb96c55..170dc0cae1 100644 --- a/app/integration_test/Podfile +++ b/app/integration_test/Podfile @@ -4,7 +4,7 @@ platform :ios, '13.0' use_frameworks! :linkage => :static target 'integration_test' do - pod 'Firebase/Analytics', '11.2.0' + pod 'Firebase/Analytics', '11.4.1' end post_install do |installer| diff --git a/app/invites_resources/build.gradle b/app/invites_resources/build.gradle index 52384d3543..daefe14007 100644 --- a/app/invites_resources/build.gradle +++ b/app/invites_resources/build.gradle @@ -55,7 +55,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.3.0') + implementation platform('com.google.firebase:firebase-bom:33.5.0') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-dynamic-links' implementation project(':app:app_resources') diff --git a/app_check/app_check_resources/build.gradle b/app_check/app_check_resources/build.gradle index 2568ddd578..5c12dcf467 100644 --- a/app_check/app_check_resources/build.gradle +++ b/app_check/app_check_resources/build.gradle @@ -55,7 +55,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.3.0') + implementation platform('com.google.firebase:firebase-bom:33.5.0') implementation 'com.google.firebase:firebase-appcheck' } diff --git a/app_check/integration_test/Podfile b/app_check/integration_test/Podfile index 4a43caed5b..9af7c9a661 100644 --- a/app_check/integration_test/Podfile +++ b/app_check/integration_test/Podfile @@ -4,20 +4,20 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/AppCheck', '11.2.0' - pod 'Firebase/Database', '11.2.0' - pod 'Firebase/Auth', '11.2.0' - pod 'Firebase/Storage', '11.2.0' - pod 'Firebase/Functions', '11.2.0' + pod 'Firebase/AppCheck', '11.4.1' + pod 'Firebase/Database', '11.4.1' + pod 'Firebase/Auth', '11.4.1' + pod 'Firebase/Storage', '11.4.1' + pod 'Firebase/Functions', '11.4.1' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/AppCheck', '11.2.0' - pod 'Firebase/Database', '11.2.0' - pod 'Firebase/Auth', '11.2.0' - pod 'Firebase/Storage', '11.2.0' - pod 'Firebase/Functions', '11.2.0' + pod 'Firebase/AppCheck', '11.4.1' + pod 'Firebase/Database', '11.4.1' + pod 'Firebase/Auth', '11.4.1' + pod 'Firebase/Storage', '11.4.1' + pod 'Firebase/Functions', '11.4.1' end post_install do |installer| diff --git a/auth/auth_resources/build.gradle b/auth/auth_resources/build.gradle index 1277d80cc3..7ad8b9ba44 100644 --- a/auth/auth_resources/build.gradle +++ b/auth/auth_resources/build.gradle @@ -55,7 +55,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.3.0') + implementation platform('com.google.firebase:firebase-bom:33.5.0') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-auth' implementation project(':app:app_resources') diff --git a/auth/integration_test/Podfile b/auth/integration_test/Podfile index 4f70dbdbba..4b0a454c88 100644 --- a/auth/integration_test/Podfile +++ b/auth/integration_test/Podfile @@ -4,12 +4,12 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Auth', '11.2.0' + pod 'Firebase/Auth', '11.4.1' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/Auth', '11.2.0' + pod 'Firebase/Auth', '11.4.1' end post_install do |installer| diff --git a/cmake/external/firestore.cmake b/cmake/external/firestore.cmake index e194934375..ee04db5fe5 100644 --- a/cmake/external/firestore.cmake +++ b/cmake/external/firestore.cmake @@ -20,7 +20,7 @@ endif() # If the format of the line below changes, then be sure to update # https://github.com/firebase/firebase-cpp-sdk/blob/fd054fa016/.github/workflows/update-dependencies.yml#L81 -set(version CocoaPods-11.2.0) +set(version CocoaPods-11.4.1) function(GetReleasedDep) message("Getting released firebase-ios-sdk @ ${version}") diff --git a/cpp_sdk_version.json b/cpp_sdk_version.json index 66cf14ce50..874c94002e 100644 --- a/cpp_sdk_version.json +++ b/cpp_sdk_version.json @@ -1,5 +1,5 @@ { - "released": "12.3.0", - "stable": "12.3.0", - "head": "12.3.0" + "released": "12.4.0", + "stable": "12.4.0", + "head": "12.4.0" } diff --git a/database/database_resources/build.gradle b/database/database_resources/build.gradle index 7cb0980a89..ac2bca5341 100644 --- a/database/database_resources/build.gradle +++ b/database/database_resources/build.gradle @@ -51,7 +51,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.3.0') + implementation platform('com.google.firebase:firebase-bom:33.5.0') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-database' //implementation project(':app:app_resources') diff --git a/database/integration_test/Podfile b/database/integration_test/Podfile index f4d0495f8c..9299fb3b99 100644 --- a/database/integration_test/Podfile +++ b/database/integration_test/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Database', '11.2.0' - pod 'Firebase/Auth', '11.2.0' + pod 'Firebase/Database', '11.4.1' + pod 'Firebase/Auth', '11.4.1' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/Database', '11.2.0' - pod 'Firebase/Auth', '11.2.0' + pod 'Firebase/Database', '11.4.1' + pod 'Firebase/Auth', '11.4.1' end post_install do |installer| diff --git a/dynamic_links/integration_test/Podfile b/dynamic_links/integration_test/Podfile index 456b8bb2c9..f39764719a 100644 --- a/dynamic_links/integration_test/Podfile +++ b/dynamic_links/integration_test/Podfile @@ -5,7 +5,7 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/DynamicLinks', '11.2.0' + pod 'Firebase/DynamicLinks', '11.4.1' end post_install do |installer| diff --git a/firestore/firestore_resources/build.gradle b/firestore/firestore_resources/build.gradle index eab7035ee5..90ee78a5e6 100644 --- a/firestore/firestore_resources/build.gradle +++ b/firestore/firestore_resources/build.gradle @@ -59,7 +59,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.3.0') + implementation platform('com.google.firebase:firebase-bom:33.5.0') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-firestore' } diff --git a/firestore/integration_test/Podfile b/firestore/integration_test/Podfile index fc3e6e59d3..b4dc47e341 100644 --- a/firestore/integration_test/Podfile +++ b/firestore/integration_test/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Firestore', '11.2.0' - pod 'Firebase/Auth', '11.2.0' + pod 'Firebase/Firestore', '11.4.1' + pod 'Firebase/Auth', '11.4.1' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/Firestore', '11.2.0' - pod 'Firebase/Auth', '11.2.0' + pod 'Firebase/Firestore', '11.4.1' + pod 'Firebase/Auth', '11.4.1' end post_install do |installer| diff --git a/firestore/integration_test_internal/Podfile b/firestore/integration_test_internal/Podfile index efc0c9b533..3601d0a88b 100644 --- a/firestore/integration_test_internal/Podfile +++ b/firestore/integration_test_internal/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Firestore', '11.2.0' - pod 'Firebase/Auth', '11.2.0' + pod 'Firebase/Firestore', '11.4.1' + pod 'Firebase/Auth', '11.4.1' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/Firestore', '11.2.0' - pod 'Firebase/Auth', '11.2.0' + pod 'Firebase/Firestore', '11.4.1' + pod 'Firebase/Auth', '11.4.1' end post_install do |installer| diff --git a/functions/integration_test/Podfile b/functions/integration_test/Podfile index ae8136e761..183551dd51 100644 --- a/functions/integration_test/Podfile +++ b/functions/integration_test/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Functions', '11.2.0' - pod 'Firebase/Auth', '11.2.0' + pod 'Firebase/Functions', '11.4.1' + pod 'Firebase/Auth', '11.4.1' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/Functions', '11.2.0' - pod 'Firebase/Auth', '11.2.0' + pod 'Firebase/Functions', '11.4.1' + pod 'Firebase/Auth', '11.4.1' end post_install do |installer| diff --git a/gma/gma_resources/build.gradle b/gma/gma_resources/build.gradle index f50bfb3e35..544d43e52a 100644 --- a/gma/gma_resources/build.gradle +++ b/gma/gma_resources/build.gradle @@ -56,7 +56,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.3.0') + implementation platform('com.google.firebase:firebase-bom:33.5.0') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.android.gms:play-services-ads:23.0.0' implementation 'com.google.android.ump:user-messaging-platform:2.2.0' diff --git a/gma/integration_test/Podfile b/gma/integration_test/Podfile index 89e9dad08d..c64797ab9e 100644 --- a/gma/integration_test/Podfile +++ b/gma/integration_test/Podfile @@ -5,7 +5,7 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/CoreOnly', '11.2.0' + pod 'Firebase/CoreOnly', '11.4.1' pod 'Google-Mobile-Ads-SDK', '11.2.0' pod 'GoogleUserMessagingPlatform', '2.3.0' end diff --git a/installations/integration_test/Podfile b/installations/integration_test/Podfile index 8443c4d822..53b1c29435 100644 --- a/installations/integration_test/Podfile +++ b/installations/integration_test/Podfile @@ -5,8 +5,8 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Analytics', '11.2.0' - pod 'Firebase/Installations', '11.2.0' + pod 'Firebase/Analytics', '11.4.1' + pod 'Firebase/Installations', '11.4.1' end post_install do |installer| diff --git a/ios_pod/Podfile b/ios_pod/Podfile index 4d9f95b5b8..682691c288 100644 --- a/ios_pod/Podfile +++ b/ios_pod/Podfile @@ -3,22 +3,22 @@ platform :ios, '13.0' use_frameworks! target 'GetPods' do - pod 'Firebase/Core', '11.2.0' + pod 'Firebase/Core', '11.4.1' pod 'Google-Mobile-Ads-SDK', '11.2.0' pod 'GoogleUserMessagingPlatform', '2.3.0' - pod 'Firebase/Analytics', '11.2.0' - pod 'Firebase/AppCheck', '11.2.0' - pod 'Firebase/Auth', '11.2.0' - pod 'Firebase/Crashlytics', '11.2.0' - pod 'Firebase/Database', '11.2.0' - pod 'Firebase/DynamicLinks', '11.2.0' - pod 'Firebase/Firestore', '11.2.0' - pod 'Firebase/Functions', '11.2.0' - pod 'Firebase/Installations', '11.2.0' - pod 'Firebase/Messaging', '11.2.0' - pod 'Firebase/RemoteConfig', '11.2.0' - pod 'Firebase/Storage', '11.2.0' + pod 'Firebase/Analytics', '11.4.1' + pod 'Firebase/AppCheck', '11.4.1' + pod 'Firebase/Auth', '11.4.1' + pod 'Firebase/Crashlytics', '11.4.1' + pod 'Firebase/Database', '11.4.1' + pod 'Firebase/DynamicLinks', '11.4.1' + pod 'Firebase/Firestore', '11.4.1' + pod 'Firebase/Functions', '11.4.1' + pod 'Firebase/Installations', '11.4.1' + pod 'Firebase/Messaging', '11.4.1' + pod 'Firebase/RemoteConfig', '11.4.1' + pod 'Firebase/Storage', '11.4.1' end diff --git a/messaging/integration_test/Podfile b/messaging/integration_test/Podfile index 1f171f15e0..ac6d69a4be 100644 --- a/messaging/integration_test/Podfile +++ b/messaging/integration_test/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Messaging', '11.2.0' - pod 'Firebase/Functions', '11.2.0' + pod 'Firebase/Messaging', '11.4.1' + pod 'Firebase/Functions', '11.4.1' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/Messaging', '11.2.0' - pod 'Firebase/Functions', '11.2.0' + pod 'Firebase/Messaging', '11.4.1' + pod 'Firebase/Functions', '11.4.1' end post_install do |installer| diff --git a/messaging/messaging_java/build.gradle b/messaging/messaging_java/build.gradle index 0424780e35..c368e21ff7 100644 --- a/messaging/messaging_java/build.gradle +++ b/messaging/messaging_java/build.gradle @@ -61,7 +61,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.3.0') + implementation platform('com.google.firebase:firebase-bom:33.5.0') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-messaging' implementation 'com.google.flatbuffers:flatbuffers-java:1.12.0' diff --git a/release_build_files/Android/firebase_dependencies.gradle b/release_build_files/Android/firebase_dependencies.gradle index 314319ec2d..a06eb7f158 100644 --- a/release_build_files/Android/firebase_dependencies.gradle +++ b/release_build_files/Android/firebase_dependencies.gradle @@ -132,7 +132,7 @@ project.afterEvaluate { // Add the bill-of-materials project.dependencies { - implementation platform('com.google.firebase:firebase-bom:33.3.0') + implementation platform('com.google.firebase:firebase-bom:33.5.0') } for (String lib : firebaseCpp.dependencies.libSet) { // Messaging includes an aar, which to be depended on properly requires diff --git a/release_build_files/readme.md b/release_build_files/readme.md index 95f1e351e2..c56567da91 100644 --- a/release_build_files/readme.md +++ b/release_build_files/readme.md @@ -86,7 +86,7 @@ distributed as part of the core Firebase Feature | Required Libraries and Gradle Packages -------------------------- | -------------------------------------- -All Firebase SDKs | platform(com.google.firebase:firebase-bom:33.3.0) +All Firebase SDKs | platform(com.google.firebase:firebase-bom:33.5.0) | | (Android Bill of Materials) Firebase Analytics | libfirebase_analytics.a | | libfirebase_app.a @@ -230,50 +230,50 @@ Feature | Required Frameworks and Cocoapods -------------------------- | --------------------------------------- Firebase Analytics | firebase_analytics.xcframework | | firebase.xcframework -| | Firebase/Analytics Cocoapod (11.2.0) +| | Firebase/Analytics Cocoapod (11.4.1) Firebase App Check | firebase_app_check.xcframework | | firebase.xcframework -| | Firebase/AppCheck Cocoapod (11.2.0) +| | Firebase/AppCheck Cocoapod (11.4.1) Firebase Authentication | firebase_auth.xcframework | | firebase.xcframework -| | Firebase/Auth Cocoapod (11.2.0) +| | Firebase/Auth Cocoapod (11.4.1) Firebase Dynamic Links | firebase_dynamic_links.xcframework | | firebase.xcframework -| | Firebase/DynamicLinks Cocoapod (11.2.0) +| | Firebase/DynamicLinks Cocoapod (11.4.1) Cloud Firestore | firebase_firestore.xcframework | | firebase_auth.xcframework | | firebase.xcframework -| | Firebase/Firestore Cocoapod (11.2.0) -| | Firebase/Auth Cocoapod (11.2.0) +| | Firebase/Firestore Cocoapod (11.4.1) +| | Firebase/Auth Cocoapod (11.4.1) Firebase Functions | firebase_functions.xcframework | | firebase_auth.xcframework (optional) | | firebase.xcframework -| | Firebase/Functions Cocoapod (11.2.0) -| | Firebase/Auth Cocoapod (11.2.0) +| | Firebase/Functions Cocoapod (11.4.1) +| | Firebase/Auth Cocoapod (11.4.1) Google Mobile Ads | firebase_gma.xcframework | | firebase.xcframework -| | Firebase/CoreOnly Cocoapod (11.2.0) +| | Firebase/CoreOnly Cocoapod (11.4.1) | | Google-Mobile-Ads-SDK Cocoapod (11.2.0) | | GoogleUserMessagingPlatform Cocoapod (2.3.0) Firebase Installations | firebase_installations.xcframework | | firebase.xcframework -| | FirebaseInstallations Cocoapod (11.2.0) +| | FirebaseInstallations Cocoapod (11.4.0) Firebase Cloud Messaging | firebase_messaging.xcframework | | firebase.xcframework -| | Firebase/Messaging Cocoapod (11.2.0) +| | Firebase/Messaging Cocoapod (11.4.1) Firebase Realtime Database | firebase_database.xcframework | | firebase_auth.xcframework | | firebase.xcframework -| | Firebase/Database Cocoapod (11.2.0) -| | Firebase/Auth Cocoapod (11.2.0) +| | Firebase/Database Cocoapod (11.4.1) +| | Firebase/Auth Cocoapod (11.4.1) Firebase Remote Config | firebase_remote_config.xcframework | | firebase.xcframework -| | Firebase/RemoteConfig Cocoapod (11.2.0) +| | Firebase/RemoteConfig Cocoapod (11.4.1) Firebase Storage | firebase_storage.xcframework | | firebase_auth.xcframework | | firebase.xcframework -| | Firebase/Storage Cocoapod (11.2.0) -| | Firebase/Auth Cocoapod (11.2.0) +| | Firebase/Storage Cocoapod (11.4.1) +| | Firebase/Auth Cocoapod (11.4.1) Important: Each version of the Firebase C++ SDK supports a specific version of the Firebase iOS SDK. Please ensure that you reference the Cocoapod versions @@ -293,50 +293,50 @@ Feature | Required Libraries and Cocoapods -------------------------- | ----------------------------------------- Firebase Analytics | libfirebase_analytics.a | | libfirebase_app.a -| | Firebase/Analytics Cocoapod (11.2.0) +| | Firebase/Analytics Cocoapod (11.4.1) Firebase App Check | firebase_app_check.xcframework | | firebase.xcframework -| | Firebase/AppCheck Cocoapod (11.2.0) +| | Firebase/AppCheck Cocoapod (11.4.1) Firebase Authentication | libfirebase_auth.a | | libfirebase_app.a -| | Firebase/Auth Cocoapod (11.2.0) +| | Firebase/Auth Cocoapod (11.4.1) Firebase Dynamic Links | libfirebase_dynamic_links.a | | libfirebase_app.a -| | Firebase/DynamicLinks Cocoapod (11.2.0) +| | Firebase/DynamicLinks Cocoapod (11.4.1) Cloud Firestore | libfirebase_firestore.a | | libfirebase_app.a | | libfirebase_auth.a -| | Firebase/Firestore Cocoapod (11.2.0) -| | Firebase/Auth Cocoapod (11.2.0) +| | Firebase/Firestore Cocoapod (11.4.1) +| | Firebase/Auth Cocoapod (11.4.1) Firebase Functions | libfirebase_functions.a | | libfirebase_app.a | | libfirebase_auth.a (optional) -| | Firebase/Functions Cocoapod (11.2.0) -| | Firebase/Auth Cocoapod (11.2.0) +| | Firebase/Functions Cocoapod (11.4.1) +| | Firebase/Auth Cocoapod (11.4.1) Google Mobile Ads | libfirebase_gma.a | | libfirebase_app.a -| | Firebase/CoreOnly Cocoapod (11.2.0) +| | Firebase/CoreOnly Cocoapod (11.4.1) | | Google-Mobile-Ads-SDK Cocoapod (11.2.0) | | GoogleUserMessagingPlatform Cocoapod (2.3.0) Firebase Installations | libfirebase_installations.a | | libfirebase_app.a -| | FirebaseInstallations Cocoapod (11.2.0) +| | FirebaseInstallations Cocoapod (11.4.0) Firebase Cloud Messaging | libfirebase_messaging.a | | libfirebase_app.a -| | Firebase/CloudMessaging Cocoapod (11.2.0) +| | Firebase/CloudMessaging Cocoapod (11.4.1) Firebase Realtime Database | libfirebase_database.a | | libfirebase_app.a | | libfirebase_auth.a -| | Firebase/Database Cocoapod (11.2.0) -| | Firebase/Auth Cocoapod (11.2.0) +| | Firebase/Database Cocoapod (11.4.1) +| | Firebase/Auth Cocoapod (11.4.1) Firebase Remote Config | libfirebase_remote_config.a | | libfirebase_app.a -| | Firebase/RemoteConfig Cocoapod (11.2.0) +| | Firebase/RemoteConfig Cocoapod (11.4.1) Firebase Storage | libfirebase_storage.a | | libfirebase_app.a | | libfirebase_auth.a -| | Firebase/Storage Cocoapod (11.2.0) -| | Firebase/Auth Cocoapod (11.2.0) +| | Firebase/Storage Cocoapod (11.4.1) +| | Firebase/Auth Cocoapod (11.4.1) Important: Each version of the Firebase C++ SDK supports a specific version of the Firebase iOS SDK. Please ensure that you reference the Cocoapod versions @@ -631,8 +631,10 @@ workflow use only during the development of your app, not for publicly shipping code. ## Release Notes -### Upcoming Release +### 12.4.0 - Changes + - General (iOS): Update to Firebase Cocoapods version 11.4.1. + - General (Android): Update to Firebase Android BoM version 33.5.0. - General (Android): Reduced minSdkVersion back to 23. - Analytics: Add support for Parameters of Lists of Dictionaries, needed by some events such as ViewCart. diff --git a/remote_config/integration_test/Podfile b/remote_config/integration_test/Podfile index 746d4c3eec..1e36a8732b 100644 --- a/remote_config/integration_test/Podfile +++ b/remote_config/integration_test/Podfile @@ -4,12 +4,12 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/RemoteConfig', '11.2.0' + pod 'Firebase/RemoteConfig', '11.4.1' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/RemoteConfig', '11.2.0' + pod 'Firebase/RemoteConfig', '11.4.1' end post_install do |installer| diff --git a/remote_config/remote_config_resources/build.gradle b/remote_config/remote_config_resources/build.gradle index 88fb5850e9..421775dadb 100644 --- a/remote_config/remote_config_resources/build.gradle +++ b/remote_config/remote_config_resources/build.gradle @@ -55,7 +55,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.3.0') + implementation platform('com.google.firebase:firebase-bom:33.5.0') implementation 'com.google.firebase:firebase-config' } diff --git a/storage/integration_test/Podfile b/storage/integration_test/Podfile index 9eba702a71..5721c8f316 100644 --- a/storage/integration_test/Podfile +++ b/storage/integration_test/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Storage', '11.2.0' - pod 'Firebase/Auth', '11.2.0' + pod 'Firebase/Storage', '11.4.1' + pod 'Firebase/Auth', '11.4.1' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/Storage', '11.2.0' - pod 'Firebase/Auth', '11.2.0' + pod 'Firebase/Storage', '11.4.1' + pod 'Firebase/Auth', '11.4.1' end post_install do |installer| diff --git a/storage/storage_resources/build.gradle b/storage/storage_resources/build.gradle index d631343b46..3b226f7502 100644 --- a/storage/storage_resources/build.gradle +++ b/storage/storage_resources/build.gradle @@ -54,7 +54,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.3.0') + implementation platform('com.google.firebase:firebase-bom:33.5.0') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-storage' } From 26849a62f350829d9c747b3fc6689438ba024a1e Mon Sep 17 00:00:00 2001 From: "firebase-workflow-trigger[bot]" <80733318+firebase-workflow-trigger[bot]@users.noreply.github.com> Date: Wed, 23 Oct 2024 17:46:31 -0700 Subject: [PATCH 29/34] Update mobile dependencies - Wed Oct 23 2024 (#1663) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update mobile dependencies - Wed Oct 23 2024 ### Android - com.google.firebase.firebase_bom → 33.5.1 ### iOS - Firebase/Analytics → 11.4.2 - Firebase/AppCheck → 11.4.2 - Firebase/Auth → 11.4.2 - Firebase/Core → 11.4.2 - Firebase/CoreOnly → 11.4.2 - Firebase/Crashlytics → 11.4.2 - Firebase/Database → 11.4.2 - Firebase/DynamicLinks → 11.4.2 - Firebase/Firestore → 11.4.2 - Firebase/Functions → 11.4.2 - Firebase/Installations → 11.4.2 - Firebase/Messaging → 11.4.2 - Firebase/RemoteConfig → 11.4.2 - Firebase/Storage → 11.4.2 > Created by [Update Android and iOS dependencies workflow](https://github.com/firebase/firebase-cpp-sdk/actions/runs/11485670640). * Update readme versions. --------- Co-authored-by: firebase-workflow-trigger-bot Co-authored-by: Jon Simantov --- Android/firebase_dependencies.gradle | 2 +- analytics/integration_test/Podfile | 4 +- analytics/ios_headers/FIREventNames.h | 2 +- analytics/ios_headers/FIRParameterNames.h | 2 +- analytics/ios_headers/FIRUserPropertyNames.h | 2 +- app/app_resources/build.gradle | 2 +- app/google_api_resources/build.gradle | 2 +- app/integration_test/Podfile | 2 +- app/invites_resources/build.gradle | 2 +- app_check/app_check_resources/build.gradle | 2 +- app_check/integration_test/Podfile | 20 +++--- auth/auth_resources/build.gradle | 2 +- auth/integration_test/Podfile | 4 +- cmake/external/firestore.cmake | 2 +- database/database_resources/build.gradle | 2 +- database/integration_test/Podfile | 8 +-- dynamic_links/integration_test/Podfile | 2 +- firestore/firestore_resources/build.gradle | 2 +- firestore/integration_test/Podfile | 8 +-- firestore/integration_test_internal/Podfile | 8 +-- functions/integration_test/Podfile | 8 +-- gma/gma_resources/build.gradle | 2 +- gma/integration_test/Podfile | 2 +- installations/integration_test/Podfile | 4 +- ios_pod/Podfile | 26 ++++---- messaging/integration_test/Podfile | 8 +-- messaging/messaging_java/build.gradle | 2 +- .../Android/firebase_dependencies.gradle | 2 +- release_build_files/readme.md | 66 +++++++++---------- remote_config/integration_test/Podfile | 4 +- .../remote_config_resources/build.gradle | 2 +- storage/integration_test/Podfile | 8 +-- storage/storage_resources/build.gradle | 2 +- 33 files changed, 108 insertions(+), 108 deletions(-) diff --git a/Android/firebase_dependencies.gradle b/Android/firebase_dependencies.gradle index 9d763b4815..b5d28e275d 100644 --- a/Android/firebase_dependencies.gradle +++ b/Android/firebase_dependencies.gradle @@ -159,7 +159,7 @@ project.afterEvaluate { // Add the bill-of-materials project.dependencies { - implementation platform('com.google.firebase:firebase-bom:33.5.0') + implementation platform('com.google.firebase:firebase-bom:33.5.1') } for (String lib : firebaseCpp.dependencies.libSet) { // Generate and include the proguard file diff --git a/analytics/integration_test/Podfile b/analytics/integration_test/Podfile index 67bccd201d..83b48e29d0 100644 --- a/analytics/integration_test/Podfile +++ b/analytics/integration_test/Podfile @@ -5,12 +5,12 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Analytics', '11.4.1' + pod 'Firebase/Analytics', '11.4.2' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/Analytics', '11.4.1' + pod 'Firebase/Analytics', '11.4.2' end post_install do |installer| diff --git a/analytics/ios_headers/FIREventNames.h b/analytics/ios_headers/FIREventNames.h index 7ff8056a01..503d00ca99 100644 --- a/analytics/ios_headers/FIREventNames.h +++ b/analytics/ios_headers/FIREventNames.h @@ -1,6 +1,6 @@ // Copyright 2024 Google LLC -// Copied from Firebase Analytics iOS SDK 11.4.1. +// Copied from Firebase Analytics iOS SDK 11.4.2. /// @file FIREventNames.h /// diff --git a/analytics/ios_headers/FIRParameterNames.h b/analytics/ios_headers/FIRParameterNames.h index d5b88a0218..a9cf4b1b3d 100644 --- a/analytics/ios_headers/FIRParameterNames.h +++ b/analytics/ios_headers/FIRParameterNames.h @@ -1,6 +1,6 @@ // Copyright 2024 Google LLC -// Copied from Firebase Analytics iOS SDK 11.4.1. +// Copied from Firebase Analytics iOS SDK 11.4.2. /// @file FIRParameterNames.h /// diff --git a/analytics/ios_headers/FIRUserPropertyNames.h b/analytics/ios_headers/FIRUserPropertyNames.h index b91d412e94..31afa28321 100644 --- a/analytics/ios_headers/FIRUserPropertyNames.h +++ b/analytics/ios_headers/FIRUserPropertyNames.h @@ -1,6 +1,6 @@ // Copyright 2024 Google LLC -// Copied from Firebase Analytics iOS SDK 11.4.1. +// Copied from Firebase Analytics iOS SDK 11.4.2. /// @file FIRUserPropertyNames.h /// diff --git a/app/app_resources/build.gradle b/app/app_resources/build.gradle index e33c360329..0856f18af6 100644 --- a/app/app_resources/build.gradle +++ b/app/app_resources/build.gradle @@ -56,7 +56,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.5.0') + implementation platform('com.google.firebase:firebase-bom:33.5.1') implementation 'com.google.firebase:firebase-analytics' } diff --git a/app/google_api_resources/build.gradle b/app/google_api_resources/build.gradle index 2785d623ae..3b78edcfdc 100644 --- a/app/google_api_resources/build.gradle +++ b/app/google_api_resources/build.gradle @@ -59,7 +59,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.5.0') + implementation platform('com.google.firebase:firebase-bom:33.5.1') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.android.gms:play-services-base:18.5.0' implementation project(':app:app_resources') diff --git a/app/integration_test/Podfile b/app/integration_test/Podfile index 170dc0cae1..fec2571832 100644 --- a/app/integration_test/Podfile +++ b/app/integration_test/Podfile @@ -4,7 +4,7 @@ platform :ios, '13.0' use_frameworks! :linkage => :static target 'integration_test' do - pod 'Firebase/Analytics', '11.4.1' + pod 'Firebase/Analytics', '11.4.2' end post_install do |installer| diff --git a/app/invites_resources/build.gradle b/app/invites_resources/build.gradle index daefe14007..0d5b80f4d1 100644 --- a/app/invites_resources/build.gradle +++ b/app/invites_resources/build.gradle @@ -55,7 +55,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.5.0') + implementation platform('com.google.firebase:firebase-bom:33.5.1') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-dynamic-links' implementation project(':app:app_resources') diff --git a/app_check/app_check_resources/build.gradle b/app_check/app_check_resources/build.gradle index 5c12dcf467..74190cb925 100644 --- a/app_check/app_check_resources/build.gradle +++ b/app_check/app_check_resources/build.gradle @@ -55,7 +55,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.5.0') + implementation platform('com.google.firebase:firebase-bom:33.5.1') implementation 'com.google.firebase:firebase-appcheck' } diff --git a/app_check/integration_test/Podfile b/app_check/integration_test/Podfile index 9af7c9a661..6cabf78af5 100644 --- a/app_check/integration_test/Podfile +++ b/app_check/integration_test/Podfile @@ -4,20 +4,20 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/AppCheck', '11.4.1' - pod 'Firebase/Database', '11.4.1' - pod 'Firebase/Auth', '11.4.1' - pod 'Firebase/Storage', '11.4.1' - pod 'Firebase/Functions', '11.4.1' + pod 'Firebase/AppCheck', '11.4.2' + pod 'Firebase/Database', '11.4.2' + pod 'Firebase/Auth', '11.4.2' + pod 'Firebase/Storage', '11.4.2' + pod 'Firebase/Functions', '11.4.2' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/AppCheck', '11.4.1' - pod 'Firebase/Database', '11.4.1' - pod 'Firebase/Auth', '11.4.1' - pod 'Firebase/Storage', '11.4.1' - pod 'Firebase/Functions', '11.4.1' + pod 'Firebase/AppCheck', '11.4.2' + pod 'Firebase/Database', '11.4.2' + pod 'Firebase/Auth', '11.4.2' + pod 'Firebase/Storage', '11.4.2' + pod 'Firebase/Functions', '11.4.2' end post_install do |installer| diff --git a/auth/auth_resources/build.gradle b/auth/auth_resources/build.gradle index 7ad8b9ba44..6ee4c212d2 100644 --- a/auth/auth_resources/build.gradle +++ b/auth/auth_resources/build.gradle @@ -55,7 +55,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.5.0') + implementation platform('com.google.firebase:firebase-bom:33.5.1') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-auth' implementation project(':app:app_resources') diff --git a/auth/integration_test/Podfile b/auth/integration_test/Podfile index 4b0a454c88..2ae115c43c 100644 --- a/auth/integration_test/Podfile +++ b/auth/integration_test/Podfile @@ -4,12 +4,12 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Auth', '11.4.1' + pod 'Firebase/Auth', '11.4.2' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/Auth', '11.4.1' + pod 'Firebase/Auth', '11.4.2' end post_install do |installer| diff --git a/cmake/external/firestore.cmake b/cmake/external/firestore.cmake index ee04db5fe5..04ea886530 100644 --- a/cmake/external/firestore.cmake +++ b/cmake/external/firestore.cmake @@ -20,7 +20,7 @@ endif() # If the format of the line below changes, then be sure to update # https://github.com/firebase/firebase-cpp-sdk/blob/fd054fa016/.github/workflows/update-dependencies.yml#L81 -set(version CocoaPods-11.4.1) +set(version CocoaPods-11.4.2) function(GetReleasedDep) message("Getting released firebase-ios-sdk @ ${version}") diff --git a/database/database_resources/build.gradle b/database/database_resources/build.gradle index ac2bca5341..561e2645ba 100644 --- a/database/database_resources/build.gradle +++ b/database/database_resources/build.gradle @@ -51,7 +51,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.5.0') + implementation platform('com.google.firebase:firebase-bom:33.5.1') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-database' //implementation project(':app:app_resources') diff --git a/database/integration_test/Podfile b/database/integration_test/Podfile index 9299fb3b99..8c3e617dbd 100644 --- a/database/integration_test/Podfile +++ b/database/integration_test/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Database', '11.4.1' - pod 'Firebase/Auth', '11.4.1' + pod 'Firebase/Database', '11.4.2' + pod 'Firebase/Auth', '11.4.2' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/Database', '11.4.1' - pod 'Firebase/Auth', '11.4.1' + pod 'Firebase/Database', '11.4.2' + pod 'Firebase/Auth', '11.4.2' end post_install do |installer| diff --git a/dynamic_links/integration_test/Podfile b/dynamic_links/integration_test/Podfile index f39764719a..700dc5c80d 100644 --- a/dynamic_links/integration_test/Podfile +++ b/dynamic_links/integration_test/Podfile @@ -5,7 +5,7 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/DynamicLinks', '11.4.1' + pod 'Firebase/DynamicLinks', '11.4.2' end post_install do |installer| diff --git a/firestore/firestore_resources/build.gradle b/firestore/firestore_resources/build.gradle index 90ee78a5e6..ac7406eace 100644 --- a/firestore/firestore_resources/build.gradle +++ b/firestore/firestore_resources/build.gradle @@ -59,7 +59,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.5.0') + implementation platform('com.google.firebase:firebase-bom:33.5.1') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-firestore' } diff --git a/firestore/integration_test/Podfile b/firestore/integration_test/Podfile index b4dc47e341..59dca3a1f6 100644 --- a/firestore/integration_test/Podfile +++ b/firestore/integration_test/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Firestore', '11.4.1' - pod 'Firebase/Auth', '11.4.1' + pod 'Firebase/Firestore', '11.4.2' + pod 'Firebase/Auth', '11.4.2' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/Firestore', '11.4.1' - pod 'Firebase/Auth', '11.4.1' + pod 'Firebase/Firestore', '11.4.2' + pod 'Firebase/Auth', '11.4.2' end post_install do |installer| diff --git a/firestore/integration_test_internal/Podfile b/firestore/integration_test_internal/Podfile index 3601d0a88b..1690d43f28 100644 --- a/firestore/integration_test_internal/Podfile +++ b/firestore/integration_test_internal/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Firestore', '11.4.1' - pod 'Firebase/Auth', '11.4.1' + pod 'Firebase/Firestore', '11.4.2' + pod 'Firebase/Auth', '11.4.2' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/Firestore', '11.4.1' - pod 'Firebase/Auth', '11.4.1' + pod 'Firebase/Firestore', '11.4.2' + pod 'Firebase/Auth', '11.4.2' end post_install do |installer| diff --git a/functions/integration_test/Podfile b/functions/integration_test/Podfile index 183551dd51..757757c294 100644 --- a/functions/integration_test/Podfile +++ b/functions/integration_test/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Functions', '11.4.1' - pod 'Firebase/Auth', '11.4.1' + pod 'Firebase/Functions', '11.4.2' + pod 'Firebase/Auth', '11.4.2' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/Functions', '11.4.1' - pod 'Firebase/Auth', '11.4.1' + pod 'Firebase/Functions', '11.4.2' + pod 'Firebase/Auth', '11.4.2' end post_install do |installer| diff --git a/gma/gma_resources/build.gradle b/gma/gma_resources/build.gradle index 544d43e52a..c2d573138a 100644 --- a/gma/gma_resources/build.gradle +++ b/gma/gma_resources/build.gradle @@ -56,7 +56,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.5.0') + implementation platform('com.google.firebase:firebase-bom:33.5.1') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.android.gms:play-services-ads:23.0.0' implementation 'com.google.android.ump:user-messaging-platform:2.2.0' diff --git a/gma/integration_test/Podfile b/gma/integration_test/Podfile index c64797ab9e..c888e005d9 100644 --- a/gma/integration_test/Podfile +++ b/gma/integration_test/Podfile @@ -5,7 +5,7 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/CoreOnly', '11.4.1' + pod 'Firebase/CoreOnly', '11.4.2' pod 'Google-Mobile-Ads-SDK', '11.2.0' pod 'GoogleUserMessagingPlatform', '2.3.0' end diff --git a/installations/integration_test/Podfile b/installations/integration_test/Podfile index 53b1c29435..636df8347d 100644 --- a/installations/integration_test/Podfile +++ b/installations/integration_test/Podfile @@ -5,8 +5,8 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Analytics', '11.4.1' - pod 'Firebase/Installations', '11.4.1' + pod 'Firebase/Analytics', '11.4.2' + pod 'Firebase/Installations', '11.4.2' end post_install do |installer| diff --git a/ios_pod/Podfile b/ios_pod/Podfile index 682691c288..3bb1b4156e 100644 --- a/ios_pod/Podfile +++ b/ios_pod/Podfile @@ -3,22 +3,22 @@ platform :ios, '13.0' use_frameworks! target 'GetPods' do - pod 'Firebase/Core', '11.4.1' + pod 'Firebase/Core', '11.4.2' pod 'Google-Mobile-Ads-SDK', '11.2.0' pod 'GoogleUserMessagingPlatform', '2.3.0' - pod 'Firebase/Analytics', '11.4.1' - pod 'Firebase/AppCheck', '11.4.1' - pod 'Firebase/Auth', '11.4.1' - pod 'Firebase/Crashlytics', '11.4.1' - pod 'Firebase/Database', '11.4.1' - pod 'Firebase/DynamicLinks', '11.4.1' - pod 'Firebase/Firestore', '11.4.1' - pod 'Firebase/Functions', '11.4.1' - pod 'Firebase/Installations', '11.4.1' - pod 'Firebase/Messaging', '11.4.1' - pod 'Firebase/RemoteConfig', '11.4.1' - pod 'Firebase/Storage', '11.4.1' + pod 'Firebase/Analytics', '11.4.2' + pod 'Firebase/AppCheck', '11.4.2' + pod 'Firebase/Auth', '11.4.2' + pod 'Firebase/Crashlytics', '11.4.2' + pod 'Firebase/Database', '11.4.2' + pod 'Firebase/DynamicLinks', '11.4.2' + pod 'Firebase/Firestore', '11.4.2' + pod 'Firebase/Functions', '11.4.2' + pod 'Firebase/Installations', '11.4.2' + pod 'Firebase/Messaging', '11.4.2' + pod 'Firebase/RemoteConfig', '11.4.2' + pod 'Firebase/Storage', '11.4.2' end diff --git a/messaging/integration_test/Podfile b/messaging/integration_test/Podfile index ac6d69a4be..025bd16fad 100644 --- a/messaging/integration_test/Podfile +++ b/messaging/integration_test/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Messaging', '11.4.1' - pod 'Firebase/Functions', '11.4.1' + pod 'Firebase/Messaging', '11.4.2' + pod 'Firebase/Functions', '11.4.2' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/Messaging', '11.4.1' - pod 'Firebase/Functions', '11.4.1' + pod 'Firebase/Messaging', '11.4.2' + pod 'Firebase/Functions', '11.4.2' end post_install do |installer| diff --git a/messaging/messaging_java/build.gradle b/messaging/messaging_java/build.gradle index c368e21ff7..46c7ad790e 100644 --- a/messaging/messaging_java/build.gradle +++ b/messaging/messaging_java/build.gradle @@ -61,7 +61,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.5.0') + implementation platform('com.google.firebase:firebase-bom:33.5.1') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-messaging' implementation 'com.google.flatbuffers:flatbuffers-java:1.12.0' diff --git a/release_build_files/Android/firebase_dependencies.gradle b/release_build_files/Android/firebase_dependencies.gradle index a06eb7f158..aaf7d9453c 100644 --- a/release_build_files/Android/firebase_dependencies.gradle +++ b/release_build_files/Android/firebase_dependencies.gradle @@ -132,7 +132,7 @@ project.afterEvaluate { // Add the bill-of-materials project.dependencies { - implementation platform('com.google.firebase:firebase-bom:33.5.0') + implementation platform('com.google.firebase:firebase-bom:33.5.1') } for (String lib : firebaseCpp.dependencies.libSet) { // Messaging includes an aar, which to be depended on properly requires diff --git a/release_build_files/readme.md b/release_build_files/readme.md index c56567da91..1863d4c4a8 100644 --- a/release_build_files/readme.md +++ b/release_build_files/readme.md @@ -86,7 +86,7 @@ distributed as part of the core Firebase Feature | Required Libraries and Gradle Packages -------------------------- | -------------------------------------- -All Firebase SDKs | platform(com.google.firebase:firebase-bom:33.5.0) +All Firebase SDKs | platform(com.google.firebase:firebase-bom:33.5.1) | | (Android Bill of Materials) Firebase Analytics | libfirebase_analytics.a | | libfirebase_app.a @@ -230,29 +230,29 @@ Feature | Required Frameworks and Cocoapods -------------------------- | --------------------------------------- Firebase Analytics | firebase_analytics.xcframework | | firebase.xcframework -| | Firebase/Analytics Cocoapod (11.4.1) +| | Firebase/Analytics Cocoapod (11.4.2) Firebase App Check | firebase_app_check.xcframework | | firebase.xcframework -| | Firebase/AppCheck Cocoapod (11.4.1) +| | Firebase/AppCheck Cocoapod (11.4.2) Firebase Authentication | firebase_auth.xcframework | | firebase.xcframework -| | Firebase/Auth Cocoapod (11.4.1) +| | Firebase/Auth Cocoapod (11.4.2) Firebase Dynamic Links | firebase_dynamic_links.xcframework | | firebase.xcframework -| | Firebase/DynamicLinks Cocoapod (11.4.1) +| | Firebase/DynamicLinks Cocoapod (11.4.2) Cloud Firestore | firebase_firestore.xcframework | | firebase_auth.xcframework | | firebase.xcframework -| | Firebase/Firestore Cocoapod (11.4.1) -| | Firebase/Auth Cocoapod (11.4.1) +| | Firebase/Firestore Cocoapod (11.4.2) +| | Firebase/Auth Cocoapod (11.4.2) Firebase Functions | firebase_functions.xcframework | | firebase_auth.xcframework (optional) | | firebase.xcframework -| | Firebase/Functions Cocoapod (11.4.1) -| | Firebase/Auth Cocoapod (11.4.1) +| | Firebase/Functions Cocoapod (11.4.2) +| | Firebase/Auth Cocoapod (11.4.2) Google Mobile Ads | firebase_gma.xcframework | | firebase.xcframework -| | Firebase/CoreOnly Cocoapod (11.4.1) +| | Firebase/CoreOnly Cocoapod (11.4.2) | | Google-Mobile-Ads-SDK Cocoapod (11.2.0) | | GoogleUserMessagingPlatform Cocoapod (2.3.0) Firebase Installations | firebase_installations.xcframework @@ -260,20 +260,20 @@ Firebase Installations | firebase_installations.xcframework | | FirebaseInstallations Cocoapod (11.4.0) Firebase Cloud Messaging | firebase_messaging.xcframework | | firebase.xcframework -| | Firebase/Messaging Cocoapod (11.4.1) +| | Firebase/Messaging Cocoapod (11.4.2) Firebase Realtime Database | firebase_database.xcframework | | firebase_auth.xcframework | | firebase.xcframework -| | Firebase/Database Cocoapod (11.4.1) -| | Firebase/Auth Cocoapod (11.4.1) +| | Firebase/Database Cocoapod (11.4.2) +| | Firebase/Auth Cocoapod (11.4.2) Firebase Remote Config | firebase_remote_config.xcframework | | firebase.xcframework -| | Firebase/RemoteConfig Cocoapod (11.4.1) +| | Firebase/RemoteConfig Cocoapod (11.4.2) Firebase Storage | firebase_storage.xcframework | | firebase_auth.xcframework | | firebase.xcframework -| | Firebase/Storage Cocoapod (11.4.1) -| | Firebase/Auth Cocoapod (11.4.1) +| | Firebase/Storage Cocoapod (11.4.2) +| | Firebase/Auth Cocoapod (11.4.2) Important: Each version of the Firebase C++ SDK supports a specific version of the Firebase iOS SDK. Please ensure that you reference the Cocoapod versions @@ -293,29 +293,29 @@ Feature | Required Libraries and Cocoapods -------------------------- | ----------------------------------------- Firebase Analytics | libfirebase_analytics.a | | libfirebase_app.a -| | Firebase/Analytics Cocoapod (11.4.1) +| | Firebase/Analytics Cocoapod (11.4.2) Firebase App Check | firebase_app_check.xcframework | | firebase.xcframework -| | Firebase/AppCheck Cocoapod (11.4.1) +| | Firebase/AppCheck Cocoapod (11.4.2) Firebase Authentication | libfirebase_auth.a | | libfirebase_app.a -| | Firebase/Auth Cocoapod (11.4.1) +| | Firebase/Auth Cocoapod (11.4.2) Firebase Dynamic Links | libfirebase_dynamic_links.a | | libfirebase_app.a -| | Firebase/DynamicLinks Cocoapod (11.4.1) +| | Firebase/DynamicLinks Cocoapod (11.4.2) Cloud Firestore | libfirebase_firestore.a | | libfirebase_app.a | | libfirebase_auth.a -| | Firebase/Firestore Cocoapod (11.4.1) -| | Firebase/Auth Cocoapod (11.4.1) +| | Firebase/Firestore Cocoapod (11.4.2) +| | Firebase/Auth Cocoapod (11.4.2) Firebase Functions | libfirebase_functions.a | | libfirebase_app.a | | libfirebase_auth.a (optional) -| | Firebase/Functions Cocoapod (11.4.1) -| | Firebase/Auth Cocoapod (11.4.1) +| | Firebase/Functions Cocoapod (11.4.2) +| | Firebase/Auth Cocoapod (11.4.2) Google Mobile Ads | libfirebase_gma.a | | libfirebase_app.a -| | Firebase/CoreOnly Cocoapod (11.4.1) +| | Firebase/CoreOnly Cocoapod (11.4.2) | | Google-Mobile-Ads-SDK Cocoapod (11.2.0) | | GoogleUserMessagingPlatform Cocoapod (2.3.0) Firebase Installations | libfirebase_installations.a @@ -323,20 +323,20 @@ Firebase Installations | libfirebase_installations.a | | FirebaseInstallations Cocoapod (11.4.0) Firebase Cloud Messaging | libfirebase_messaging.a | | libfirebase_app.a -| | Firebase/CloudMessaging Cocoapod (11.4.1) +| | Firebase/CloudMessaging Cocoapod (11.4.2) Firebase Realtime Database | libfirebase_database.a | | libfirebase_app.a | | libfirebase_auth.a -| | Firebase/Database Cocoapod (11.4.1) -| | Firebase/Auth Cocoapod (11.4.1) +| | Firebase/Database Cocoapod (11.4.2) +| | Firebase/Auth Cocoapod (11.4.2) Firebase Remote Config | libfirebase_remote_config.a | | libfirebase_app.a -| | Firebase/RemoteConfig Cocoapod (11.4.1) +| | Firebase/RemoteConfig Cocoapod (11.4.2) Firebase Storage | libfirebase_storage.a | | libfirebase_app.a | | libfirebase_auth.a -| | Firebase/Storage Cocoapod (11.4.1) -| | Firebase/Auth Cocoapod (11.4.1) +| | Firebase/Storage Cocoapod (11.4.2) +| | Firebase/Auth Cocoapod (11.4.2) Important: Each version of the Firebase C++ SDK supports a specific version of the Firebase iOS SDK. Please ensure that you reference the Cocoapod versions @@ -633,8 +633,8 @@ code. ## Release Notes ### 12.4.0 - Changes - - General (iOS): Update to Firebase Cocoapods version 11.4.1. - - General (Android): Update to Firebase Android BoM version 33.5.0. + - General (iOS): Update to Firebase Cocoapods version 11.4.2. + - General (Android): Update to Firebase Android BoM version 33.5.1. - General (Android): Reduced minSdkVersion back to 23. - Analytics: Add support for Parameters of Lists of Dictionaries, needed by some events such as ViewCart. diff --git a/remote_config/integration_test/Podfile b/remote_config/integration_test/Podfile index 1e36a8732b..cb67d96178 100644 --- a/remote_config/integration_test/Podfile +++ b/remote_config/integration_test/Podfile @@ -4,12 +4,12 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/RemoteConfig', '11.4.1' + pod 'Firebase/RemoteConfig', '11.4.2' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/RemoteConfig', '11.4.1' + pod 'Firebase/RemoteConfig', '11.4.2' end post_install do |installer| diff --git a/remote_config/remote_config_resources/build.gradle b/remote_config/remote_config_resources/build.gradle index 421775dadb..504894d636 100644 --- a/remote_config/remote_config_resources/build.gradle +++ b/remote_config/remote_config_resources/build.gradle @@ -55,7 +55,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.5.0') + implementation platform('com.google.firebase:firebase-bom:33.5.1') implementation 'com.google.firebase:firebase-config' } diff --git a/storage/integration_test/Podfile b/storage/integration_test/Podfile index 5721c8f316..e26d0d8102 100644 --- a/storage/integration_test/Podfile +++ b/storage/integration_test/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Storage', '11.4.1' - pod 'Firebase/Auth', '11.4.1' + pod 'Firebase/Storage', '11.4.2' + pod 'Firebase/Auth', '11.4.2' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/Storage', '11.4.1' - pod 'Firebase/Auth', '11.4.1' + pod 'Firebase/Storage', '11.4.2' + pod 'Firebase/Auth', '11.4.2' end post_install do |installer| diff --git a/storage/storage_resources/build.gradle b/storage/storage_resources/build.gradle index 3b226f7502..5a4ad39d82 100644 --- a/storage/storage_resources/build.gradle +++ b/storage/storage_resources/build.gradle @@ -54,7 +54,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.5.0') + implementation platform('com.google.firebase:firebase-bom:33.5.1') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-storage' } From ed3f87ba9594e89ff7bc276c188136cc40cb7812 Mon Sep 17 00:00:00 2001 From: a-maurice Date: Tue, 5 Nov 2024 17:02:03 -0800 Subject: [PATCH 30/34] Specify using v1 Cloud Functions (#1668) --- app_check/integration_test/functions/functions/index.js | 4 ++-- messaging/integration_test/functions/functions/index.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app_check/integration_test/functions/functions/index.js b/app_check/integration_test/functions/functions/index.js index 4d1a3435e5..b1e93b977b 100644 --- a/app_check/integration_test/functions/functions/index.js +++ b/app_check/integration_test/functions/functions/index.js @@ -14,9 +14,9 @@ * limitations under the License. */ -const functions = require('firebase-functions'); +const functions = require('firebase-functions/v1'); const admin = require('firebase-admin'); -admin.initializeApp(functions.config().firebase); +admin.initializeApp(); // Adds two numbers to each other. exports.addNumbers = functions diff --git a/messaging/integration_test/functions/functions/index.js b/messaging/integration_test/functions/functions/index.js index 62e5a7ae8f..9fe34b399c 100644 --- a/messaging/integration_test/functions/functions/index.js +++ b/messaging/integration_test/functions/functions/index.js @@ -15,7 +15,7 @@ */ // Import the Firebase SDK for Google Cloud Functions. -const functions = require('firebase-functions'); +const functions = require('firebase-functions/v1'); // Import and initialize the Firebase Admin SDK. const admin = require('firebase-admin'); admin.initializeApp(); From 43f3df8e5a20e56c3c45263cec3fd35ccaf8cd55 Mon Sep 17 00:00:00 2001 From: a-maurice Date: Wed, 13 Nov 2024 12:41:01 -0800 Subject: [PATCH 31/34] Update upload download artifacts to v4 (#1669) * Update upload download artifacts to v4 * Update report_build_status.py --- .github/workflows/cpp-packaging.yml | 48 ++++----- .github/workflows/desktop.yml | 4 +- .github/workflows/integration_tests.yml | 123 ++++++++++++------------ scripts/gha/report_build_status.py | 79 ++++++++------- 4 files changed, 134 insertions(+), 120 deletions(-) diff --git a/.github/workflows/cpp-packaging.yml b/.github/workflows/cpp-packaging.yml index 32e9617a46..dd8fff4217 100644 --- a/.github/workflows/cpp-packaging.yml +++ b/.github/workflows/cpp-packaging.yml @@ -178,7 +178,7 @@ jobs: tar -czhf ../packaging-tools.tgz . - name: upload artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: packaging-tools-${{ matrix.tools_platform }} path: packaging-tools.tgz @@ -236,7 +236,7 @@ jobs: find firebase-cpp-sdk-*-package -type f - name: upload artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: firebase-cpp-sdk-ios-tvos-package path: firebase-cpp-sdk-ios-tvos-package.tgz @@ -296,7 +296,7 @@ jobs: find firebase-cpp-sdk-*-package -type f - name: upload artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: firebase-cpp-sdk-android-package path: firebase-cpp-sdk-android-package.tgz @@ -450,7 +450,7 @@ jobs: continue-on-error: true - name: upload artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: firebase-cpp-sdk-${{ env.SDK_NAME }}-build path: firebase-cpp-sdk-${{ env.SDK_NAME }}-build.tgz @@ -509,12 +509,17 @@ jobs: with: path: sdk-src - - name: download artifact - uses: actions/download-artifact@v3 + - name: download packaging-tool artifacts + uses: actions/download-artifact@v4 + with: + path: artifacts + pattern: packaging-tools-* + + - name: download build artifacts + uses: actions/download-artifact@v4 with: - # download-artifact doesn't support wildcards, but by default - # will download all artifacts. Sadly this is what we must do. path: artifacts + pattern: firebase-cpp-sdk-* - name: Setup python uses: actions/setup-python@v4 @@ -586,7 +591,7 @@ jobs: find firebase-cpp-sdk-*-package -type f - name: upload SDK zip - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: firebase-cpp-sdk-${{ matrix.sdk_platform }}${{ matrix.suffix}}-package path: firebase-cpp-sdk-${{ matrix.sdk_platform }}${{ matrix.suffix}}-package.tgz @@ -656,12 +661,12 @@ jobs: if: ${{ github.event.inputs.downloadPublicVersion != '' || github.event.inputs.downloadPreviousRun != '' }} steps: - name: fetch artifact from previous run - uses: dawidd6/action-download-artifact@v2 + uses: actions/download-artifact@v4 if: ${{ github.event.inputs.downloadPreviousRun != '' }} with: name: 'firebase_cpp_sdk.zip' - workflow: 'cpp-packaging.yml' - run_id: ${{ github.event.inputs.downloadPreviousRun }} + github-token: ${{ github.token }} + run-id: ${{ github.event.inputs.downloadPreviousRun }} - name: fetch public SDK package from web if: ${{ github.event.inputs.downloadPublicVersion != '' && github.event.inputs.downloadPreviousRun == '' }} @@ -687,13 +692,13 @@ jobs: echo "::warning ::$(cat firebase_cpp_sdk_hash.txt)" - name: upload hash - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: firebase_cpp_sdk_hash.txt path: firebase_cpp_sdk_hash.txt - name: upload SDK zip - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: firebase_cpp_sdk.zip path: firebase_cpp_sdk.zip @@ -711,11 +716,10 @@ jobs: path: sdk-src - name: download artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: - # download-artifact doesn't support wildcards, but by default - # will download all artifacts. Sadly this is what we must do. path: artifacts + pattern: firebase-cpp-sdk-*-package - name: merge SDK packages shell: bash @@ -750,13 +754,13 @@ jobs: find firebase_cpp_sdk -type f - name: upload hash - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: firebase_cpp_sdk_hash.txt path: firebase_cpp_sdk_hash.txt - name: upload SDK zip - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: firebase_cpp_sdk.zip path: firebase_cpp_sdk.zip @@ -767,7 +771,7 @@ jobs: needs: [merge_packages] steps: - name: download SDK zip - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: firebase_cpp_sdk.zip - name: unzip SDK and remove non-Windows files @@ -795,12 +799,12 @@ jobs: ${{ env.hashCommand }} --tag firebase_cpp_sdk_windows.zip > firebase_cpp_sdk_windows_hash.txt echo "::warning ::$(cat firebase_cpp_sdk_windows_hash.txt)" - name: upload Windows hash - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: firebase_cpp_sdk_windows_hash.txt path: firebase_cpp_sdk_windows_hash.txt - name: upload Windows SDK zip - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: firebase_cpp_sdk_windows.zip path: firebase_cpp_sdk_windows.zip diff --git a/.github/workflows/desktop.yml b/.github/workflows/desktop.yml index 2c5930e93e..a1bd06c5ae 100644 --- a/.github/workflows/desktop.yml +++ b/.github/workflows/desktop.yml @@ -270,7 +270,7 @@ jobs: sudo chmod -R +rwx ~/Library/Logs/DiagnosticReports/* || : - name: Archive crashes and binaries (linux) - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: failure() && startsWith(matrix.build_type, 'Debug') && startsWith(matrix.os, 'ubuntu') with: name: crashes-${{ matrix.os }}-${{ matrix.build_type }}-${{ matrix.architecture }}-${{ matrix.python_version }} @@ -279,7 +279,7 @@ jobs: /tmp/bins/* - name: Archive crashes (mac) - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: failure() && startsWith(matrix.build_type, 'Debug') && startsWith(matrix.os, 'macos') with: name: crashes-${{ matrix.os }}-${{ matrix.build_type }}-${{ matrix.architecture }}-${{ matrix.python_version }}-${{ matrix.xcode_version }} diff --git a/.github/workflows/integration_tests.yml b/.github/workflows/integration_tests.yml index 1207b10ec9..440351f8f0 100644 --- a/.github/workflows/integration_tests.yml +++ b/.github/workflows/integration_tests.yml @@ -315,12 +315,12 @@ jobs: path: external/vcpkg/installed key: dev-vcpkg-${{ env.VCPKG_TRIPLET }}-${{ hashFiles(format('{0}', env.VCPKG_RESPONSE_FILE)) }}-${{ hashFiles('.git/modules/external/vcpkg/HEAD') }} - name: Fetch prebuilt packaged SDK from previous run - uses: dawidd6/action-download-artifact@v2 + uses: actions/download-artifact@v4 if: ${{ github.event.inputs.test_packaged_sdk != '' }} with: name: 'firebase_cpp_sdk.zip' - workflow: 'cpp-packaging.yml' - run_id: ${{ github.event.inputs.test_packaged_sdk }} + github-token: ${{ github.token }} + run-id: ${{ github.event.inputs.test_packaged_sdk }} - name: Build integration tests shell: bash env: @@ -358,7 +358,7 @@ jobs: --arch ${{ matrix.arch }} \ ${additional_flags[*]} - name: Upload Desktop Cmake - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: ${{ !cancelled() }} with: name: cmake-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.ssl_variant }} @@ -373,25 +373,25 @@ jobs: echo "__SUMMARY_MISSING__" > build-results-desktop-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.ssl_variant }}.log.json fi - name: Upload Desktop integration tests artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: ${{ !cancelled() }} with: name: testapps-desktop-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.ssl_variant }} path: testapps-desktop-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.ssl_variant }} retention-days: ${{ env.artifactRetentionDays }} - name: Upload Desktop build results artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: ${{ !cancelled() }} with: - name: log-artifact + name: log-artifact-build-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.ssl_variant }} path: build-results-desktop-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.ssl_variant }}* retention-days: ${{ env.artifactRetentionDays }} - name: Download log artifacts if: ${{ needs.check_and_prepare.outputs.pr_number && failure() && !cancelled() }} - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: path: test_results - name: log-artifact + name: log-artifact-build-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.ssl_variant }} - name: Update PR label and comment if: ${{ needs.check_and_prepare.outputs.pr_number && failure() && !cancelled() }} shell: bash @@ -450,12 +450,12 @@ jobs: max_attempts: 3 command: scripts/gha/install_test_workflow_prereqs.sh -p Android - name: Fetch prebuilt packaged SDK from previous run - uses: dawidd6/action-download-artifact@v2 + uses: actions/download-artifact@v4 if: ${{ github.event.inputs.test_packaged_sdk != '' }} with: name: 'firebase_cpp_sdk.zip' - workflow: 'cpp-packaging.yml' - run_id: ${{ github.event.inputs.test_packaged_sdk }} + github-token: ${{ github.token }} + run-id: ${{ github.event.inputs.test_packaged_sdk }} - name: Build integration tests shell: bash run: | @@ -485,25 +485,25 @@ jobs: echo "__SUMMARY_MISSING__" > build-results-android-${{ matrix.os }}.log.json fi - name: Upload Android integration tests artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: ${{ !cancelled() }} with: name: testapps-android-${{ matrix.os }} path: testapps-android-${{ matrix.os }} retention-days: ${{ env.artifactRetentionDays }} - name: Upload Android build results artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: ${{ !cancelled() }} with: - name: log-artifact + name: log-artifact-build-android-${{ matrix.os }} path: build-results-android-${{ matrix.os }}* retention-days: ${{ env.artifactRetentionDays }} - name: Download log artifacts if: ${{ needs.check_and_prepare.outputs.pr_number && failure() && !cancelled() }} - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: path: test_results - name: log-artifact + name: log-artifact-build-android-${{ matrix.os }} - name: Update PR label and comment if: ${{ needs.check_and_prepare.outputs.pr_number && failure() && !cancelled() }} shell: bash @@ -554,12 +554,12 @@ jobs: max_attempts: 3 command: scripts/gha/install_test_workflow_prereqs.sh -p iOS - name: Fetch prebuilt packaged SDK from previous run - uses: dawidd6/action-download-artifact@v2 + uses: actions/download-artifact@v4 if: ${{ github.event.inputs.test_packaged_sdk != '' }} with: name: 'firebase_cpp_sdk.zip' - workflow: 'cpp-packaging.yml' - run_id: ${{ github.event.inputs.test_packaged_sdk }} + github-token: ${{ github.token }} + run-id: ${{ github.event.inputs.test_packaged_sdk }} - name: Build integration tests shell: bash run: | @@ -590,25 +590,25 @@ jobs: echo "__SUMMARY_MISSING__" > build-results-ios-${{ matrix.os }}.log.json fi - name: Upload iOS integration tests artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: ${{ !cancelled() }} with: name: testapps-ios-${{ matrix.os }} path: testapps-ios-${{ matrix.os }} retention-days: ${{ env.artifactRetentionDays }} - name: Upload iOS build results artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: ${{ !cancelled() }} with: - name: log-artifact + name: log-artifact-build-ios-${{ matrix.os }} path: build-results-ios-${{ matrix.os }}* retention-days: ${{ env.artifactRetentionDays }} - name: Download log artifacts if: ${{ needs.check_and_prepare.outputs.pr_number && failure() && !cancelled() }} - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: path: test_results - name: log-artifact + name: log-artifact-build-ios-${{ matrix.os }} - name: Update PR label and comment if: ${{ needs.check_and_prepare.outputs.pr_number && failure() && !cancelled() }} shell: bash @@ -659,12 +659,12 @@ jobs: max_attempts: 3 command: scripts/gha/install_test_workflow_prereqs.sh -p tvOS - name: Fetch prebuilt packaged SDK from previous run - uses: dawidd6/action-download-artifact@v2 + uses: actions/download-artifact@v4 if: ${{ github.event.inputs.test_packaged_sdk != '' }} with: name: 'firebase_cpp_sdk.zip' - workflow: 'cpp-packaging.yml' - run_id: ${{ github.event.inputs.test_packaged_sdk }} + github-token: ${{ github.token }} + run-id: ${{ github.event.inputs.test_packaged_sdk }} - name: Build integration tests shell: bash run: | @@ -694,25 +694,25 @@ jobs: echo "__SUMMARY_MISSING__" > build-results-tvos-${{ matrix.os }}.log.json fi - name: Upload tvOS integration tests artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: ${{ !cancelled() }} with: name: testapps-tvos-${{ matrix.os }} path: testapps-tvos-${{ matrix.os }} retention-days: ${{ env.artifactRetentionDays }} - name: Upload tvOS build results artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: ${{ !cancelled() }} with: - name: log-artifact + name: log-artifact-build-tvos-${{ matrix.os }} path: build-results-tvos-${{ matrix.os }}* retention-days: ${{ env.artifactRetentionDays }} - name: Download log artifacts if: ${{ needs.check_and_prepare.outputs.pr_number && failure() && !cancelled() }} - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: path: test_results - name: log-artifact + name: log-artifact-build-tvos-${{ matrix.os }} - name: Update PR label and comment if: ${{ needs.check_and_prepare.outputs.pr_number && failure() && !cancelled() }} shell: bash @@ -772,7 +772,7 @@ jobs: with: ref: ${{needs.check_and_prepare.outputs.github_ref}} - name: Download Desktop integration tests artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: path: testapps/testapps-desktop-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.ssl_variant }} name: testapps-desktop-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.ssl_variant }} @@ -834,17 +834,17 @@ jobs: fi - name: Upload Desktop test results artifact if: ${{ !cancelled() }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: - name: log-artifact + name: log-artifact-test-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.ssl_variant }} path: testapps/test-results-desktop-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.ssl_variant }}* retention-days: ${{ env.artifactRetentionDays }} - name: Download log artifacts if: ${{ needs.check_and_prepare.outputs.pr_number && failure() && !cancelled() }} - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: path: test_results - name: log-artifact + name: log-artifact-test-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.ssl_variant }} - name: Update PR label and comment if: ${{ needs.check_and_prepare.outputs.pr_number && failure() && !cancelled() }} shell: bash @@ -885,7 +885,7 @@ jobs: with: ref: ${{needs.check_and_prepare.outputs.github_ref}} - name: Download Android integration tests artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: path: testapps/testapps-android-${{ matrix.build_os }} name: testapps-android-${{ matrix.build_os }} @@ -948,31 +948,31 @@ jobs: fi - name: Upload Android test results artifact if: ${{ !cancelled() }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: - name: log-artifact + name: log-artifact-test-android-${{ matrix.build_os }}-${{ matrix.android_device }}-${{ matrix.test_type }} path: testapps/test-results-android-${{ matrix.build_os }}-${{ matrix.android_device }}-${{ matrix.test_type }}* retention-days: ${{ env.artifactRetentionDays }} - name: Upload Android test video artifact if: ${{ steps.device-info.outputs.device_type == 'virtual' && !cancelled() }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: - name: mobile-simulator-test-video-artifact + name: mobile-simulator-test-video-artifact-${{ matrix.build_os }}-${{ matrix.android_device }}-${{ matrix.test_type }} path: testapps/video-*-android-${{ matrix.build_os }}-${{ matrix.android_device }}-${{ matrix.test_type }}.mp4 retention-days: ${{ env.artifactRetentionDays }} - name: Upload Android test logcat artifact if: ${{ steps.device-info.outputs.device_type == 'virtual' && !cancelled() }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: - name: mobile-simulator-test-logcat-artifact + name: mobile-simulator-test-logcat-artifact-${{ matrix.build_os }}-${{ matrix.android_device }}-${{ matrix.test_type }} path: testapps/logcat-*-android-${{ matrix.build_os }}-${{ matrix.android_device }}-${{ matrix.test_type }}.txt retention-days: ${{ env.artifactRetentionDays }} - name: Download log artifacts if: ${{ needs.check_and_prepare.outputs.pr_number && failure() && !cancelled() }} - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: path: test_results - name: log-artifact + name: log-artifact-test-android-${{ matrix.build_os }}-${{ matrix.android_device }}-${{ matrix.test_type }} - name: Update PR label and comment if: ${{ needs.check_and_prepare.outputs.pr_number && failure() && !cancelled() }} shell: bash @@ -1015,7 +1015,7 @@ jobs: with: ref: ${{needs.check_and_prepare.outputs.github_ref}} - name: Download iOS integration tests artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: path: testapps/testapps-ios-${{ matrix.build_os }} name: testapps-ios-${{ matrix.build_os }} @@ -1133,24 +1133,24 @@ jobs: security delete-keychain tmp-keychain || true - name: Upload iOS test results artifact if: ${{ !cancelled() }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: - name: log-artifact + name: log-artifact-test-ios-${{ matrix.build_os }}-${{ matrix.ios_device }}-${{ matrix.test_type }} path: testapps/test-results-ios-${{ matrix.build_os }}-${{ matrix.ios_device }}-${{ matrix.test_type }}* retention-days: ${{ env.artifactRetentionDays }} - name: Upload iOS test video artifact if: ${{ steps.device-info.outputs.device_type == 'virtual' && !cancelled() }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: mobile-simulator-test-video-artifact path: testapps/video-*-ios-${{ matrix.build_os }}-${{ matrix.ios_device }}-${{ matrix.test_type }}.mp4 retention-days: ${{ env.artifactRetentionDays }} - name: Download log artifacts if: ${{ needs.check_and_prepare.outputs.pr_number && failure() && !cancelled() }} - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: path: test_results - name: log-artifact + name: log-artifact-test-ios-${{ matrix.build_os }}-${{ matrix.ios_device }}-${{ matrix.test_type }} - name: Update PR label and comment if: ${{ needs.check_and_prepare.outputs.pr_number && failure() && !cancelled() }} shell: bash @@ -1185,7 +1185,7 @@ jobs: with: ref: ${{needs.check_and_prepare.outputs.github_ref}} - name: Download tvOS integration tests artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: path: testapps/testapps-tvos-${{ matrix.build_os }} name: testapps-tvos-${{ matrix.build_os }} @@ -1273,24 +1273,24 @@ jobs: security delete-keychain tmp-keychain || true - name: Upload tvOS test results artifact if: ${{ !cancelled() }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: - name: log-artifact + name: log-artifact-test-tvos-${{ matrix.build_os }}-${{ matrix.tvos_device }} path: testapps/test-results-tvos-${{ matrix.build_os }}-${{ matrix.tvos_device }}* retention-days: ${{ env.artifactRetentionDays }} - name: Upload tvOS test video artifact if: ${{ !cancelled() }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: mobile-simulator-test-video-artifact path: testapps/video-*-tvos-${{ matrix.build_os }}-${{ matrix.tvos_device }}.mp4 retention-days: ${{ env.artifactRetentionDays }} - name: Download log artifacts if: ${{ needs.check_and_prepare.outputs.pr_number && failure() && !cancelled() }} - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: path: test_results - name: log-artifact + name: log-artifact-test-tvos-${{ matrix.build_os }}-${{ matrix.tvos_device }} - name: Update PR label and comment if: ${{ needs.check_and_prepare.outputs.pr_number && failure() && !cancelled() }} shell: bash @@ -1326,10 +1326,11 @@ jobs: - name: Install python deps run: pip install -r scripts/gha/python_requirements.txt - name: Download log artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: path: test_results - name: log-artifact + pattern: log-artifact-* + merge-multiple: true # Use a different token to remove the "in-progress" label, # to allow the removal to trigger the "Check Labels" workflow. - name: Generate token for GitHub API diff --git a/scripts/gha/report_build_status.py b/scripts/gha/report_build_status.py index 757053d209..38a280da46 100644 --- a/scripts/gha/report_build_status.py +++ b/scripts/gha/report_build_status.py @@ -466,41 +466,50 @@ def main(argv): run['log_success'] = True run['log_results'] = '' artifacts = firebase_github.list_artifacts(FLAGS.token, run['id']) - if 'log-artifact' in [a['name'] for a in artifacts]: - artifact_id = [a['id'] for a in artifacts if a['name'] == 'log-artifact'][0] - artifact_contents = firebase_github.download_artifact(FLAGS.token, artifact_id) - if artifact_contents: - artifact_data = io.BytesIO(artifact_contents) - artifact_zip = zipfile.ZipFile(artifact_data) - with tempfile.TemporaryDirectory() as tmpdir: - artifact_zip.extractall(path=tmpdir) - (success, results) = summarize_test_results.summarize_logs(tmpdir, False, False, True) - run['log_success'] = success - run['log_results'] = results - else: - # Artifacts expire after some time, so if they are gone, we need - # to read the GitHub logs instead. This is much slower, so we - # prefer to read artifacts instead whenever possible. - logging.info("Reading github logs for run %s instead", run['id']) - - logs_url = run['logs_url'] - headers = {'Accept': 'application/vnd.github.v3+json', 'Authorization': 'Bearer %s' % FLAGS.token} - with requests.get(logs_url, headers=headers, stream=True) as response: - if response.status_code == 200: - logs_compressed_data = io.BytesIO(response.content) - logs_zip = zipfile.ZipFile(logs_compressed_data) - m = get_message_from_github_log( - logs_zip, - r'summarize-results/.*Summarize results into GitHub', - r'\[error\]INTEGRATION TEST FAILURES\n—+\n(.*)$') - if m: - run['log_success'] = False - m2 = re.match(r'(.*?)^' + day, m.group(1), re.MULTILINE | re.DOTALL) - if m2: - run['log_results'] = m2.group(1) - else: - run['log_results'] = m.group(1) - logging.debug("Integration test results: %s", run['log_results']) + found_artifacts = False + # There are possibly multiple artifacts, so iterate through all of them, + # and extract the relevant ones into a temp folder, and then summarize them all. + with tempfile.TemporaryDirectory() as tmpdir: + for a in artifacts: + if 'log-artifact' in a['name']: + print("Checking this artifact:", a['name'], "\n") + artifact_contents = firebase_github.download_artifact(FLAGS.token, a['id']) + if artifact_contents: + found_artifacts = True + artifact_data = io.BytesIO(artifact_contents) + artifact_zip = zipfile.ZipFile(artifact_data) + artifact_zip.extractall(path=tmpdir) + if found_artifacts: + (success, results) = summarize_test_results.summarize_logs(tmpdir, False, False, True) + print("Results:", success, " ", results, "\n") + run['log_success'] = success + run['log_results'] = results + + if not found_artifacts: + # Artifacts expire after some time, so if they are gone, we need + # to read the GitHub logs instead. This is much slower, so we + # prefer to read artifacts instead whenever possible. + logging.info("Reading github logs for run %s instead", run['id']) + + logs_url = run['logs_url'] + headers = {'Accept': 'application/vnd.github.v3+json', 'Authorization': 'Bearer %s' % FLAGS.token} + with requests.get(logs_url, headers=headers, stream=True) as response: + if response.status_code == 200: + logs_compressed_data = io.BytesIO(response.content) + logs_zip = zipfile.ZipFile(logs_compressed_data) + m = get_message_from_github_log( + logs_zip, + r'summarize-results/.*Summarize results into GitHub', + r'\[error\]INTEGRATION TEST FAILURES\n—+\n(.*)$') + if m: + run['log_success'] = False + m2 = re.match(r'(.*?)^' + day, m.group(1), re.MULTILINE | re.DOTALL) + if m2: + run['log_results'] = m2.group(1) + else: + run['log_results'] = m.group(1) + logging.debug("Integration test results: %s", run['log_results']) + tests[day] = run bar.next() From 6b34136f94ccbf2de8dfd73cd9346be867e65c8e Mon Sep 17 00:00:00 2001 From: a-maurice Date: Tue, 19 Nov 2024 13:48:41 -0800 Subject: [PATCH 32/34] Update video log names (#1672) --- .github/workflows/integration_tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/integration_tests.yml b/.github/workflows/integration_tests.yml index 440351f8f0..634a93f6df 100644 --- a/.github/workflows/integration_tests.yml +++ b/.github/workflows/integration_tests.yml @@ -1142,7 +1142,7 @@ jobs: if: ${{ steps.device-info.outputs.device_type == 'virtual' && !cancelled() }} uses: actions/upload-artifact@v4 with: - name: mobile-simulator-test-video-artifact + name: mobile-simulator-test-video-artifact-ios-${{ matrix.build_os }}-${{ matrix.ios_device }}-${{ matrix.test_type }} path: testapps/video-*-ios-${{ matrix.build_os }}-${{ matrix.ios_device }}-${{ matrix.test_type }}.mp4 retention-days: ${{ env.artifactRetentionDays }} - name: Download log artifacts @@ -1282,7 +1282,7 @@ jobs: if: ${{ !cancelled() }} uses: actions/upload-artifact@v4 with: - name: mobile-simulator-test-video-artifact + name: mobile-simulator-test-video-artifact-tvos-${{ matrix.build_os }}-${{ matrix.tvos_device }} path: testapps/video-*-tvos-${{ matrix.build_os }}-${{ matrix.tvos_device }}.mp4 retention-days: ${{ env.artifactRetentionDays }} - name: Download log artifacts From de11bb52049180afd7e222a5ed353eb6a4d82eed Mon Sep 17 00:00:00 2001 From: Jon Simantov Date: Tue, 3 Dec 2024 13:04:41 -0800 Subject: [PATCH 33/34] Add new GCS service account key file. (#1675) --- scripts/gha-encrypted/gcs_key_file.json.gpg | Bin 1720 -> 1745 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/scripts/gha-encrypted/gcs_key_file.json.gpg b/scripts/gha-encrypted/gcs_key_file.json.gpg index d792ec8bb6f13a6be0ab208e54d551df1a5b9413..99a77ae423957cfebac7981979201e03cf7b65fb 100644 GIT binary patch literal 1745 zcmV;?1}^!G4Fm}T0-Oi8Q|-ip7yr`g0n{QY|IBn%DGY2n1E++f%tU}MbNJ#73U9Wr zAI3JPM96}874d=<@oB$x*>Vy=&ySVVD0tXVUJ`R=JQCmnqzAosJ; z5~T5dJ!6(DxVVPO9R(1`2Y6~Htz4Vq97UyimF%Cz4Yp1rUE-!8w4+*~Lox3K#eq8j z_s&;r8>9eK`VU`;x)7z;@BNv?YuiveAmH?gS7>yc!GV@t6em{<)1wz@*Va|}KPJ1Z z=Dr!+22j74_w{Sy_0(ROr25hNor%iMupKcQ2^5|ADg@oxFGTBc7}-;HVj5?Xwyz); zG*Biw9`S;t5<3huPv@{ywEn)_e+4Zh4N!dY8MQbHRMLtLn}3p`+E#|vkWhami{pyZ zculOK7|!QU$BCahw+OsH7_J)kG3FFq4h61=Vh-S&;pcDGlv%n)eo2-fu=|;0o|i(h zF;XTRq{bMq(xBf(P2bCxHZLdoAd~wT^!4eD7p%YW?pNv*6vGkdfrFaLIci7laCZDu z;PDuk3a#NDrol>_Mq5?JyPm#h161xvx`N8^-F-*pIrTxd?F55F?=}ZCER*3h@8&oP z@SJ1$rR^45NQlOw7Lh_GtQ_ecRKSm*L% zhDDt85SexE3LrFR7~BX>*}b<~V~iPsJ3riuG?U@Kr7XVekH%IYRxi#5O2t9dT7Lb? zrS(W2LklnY7egz$1q%f;M!?H7w__96$Nk>oYu8x&L7n2V!@`GSfL2Y z8jEAPXfAsa#@!_-jH?(P%ut-km-~%l1KQ0O$*pAn?MUvtDgYU!6kz6Mp(IKuvCKok z0bIl4Uc>uhuS~@l!wG(amz1#nRMKTkukK=6)-aVykwmNFEJMj^zG~D{VzJ^A&)zqMsp8>_1F+&k>wrVA{$K9C+bAO7tkw7(y6l2KBYZ)6%toJY^lsH-_VMH@sEFo zA>!RDbJJ^q=?o}enS_7iuRC5RY&A3w z1RU(vMRDaEK!vKb$T()kn|N{F#iz6Ojs=eJ>-`N?AX*(oQK@(h2!1N4z(PlLM0`7T z+4Psj!LsAek>*A236sf=8QVds9Qka&m3HjmHK!0OtBr6OlM-?=qSpL=GN z3)_&XI^Vin#eZG1)B4P+Q&%6~$*1o%K9l?(hB*^7kyUCSCHX>LRu?ZIrCcAMT((4L za&k^+xPhHTV|E&hj>O=bhnv2a*rh z=y6`8&7faS@&m2uKLfx!jSP1HV(CLqn1GuW`29$Ox$4zpC6~$N$x?c%(gs+kBMLdx z6ZRLBvkj9bkatIU-k{zpx<>ZfciszRj1+0zJT#E`+GshL|1JLlF-`g$7RjwFrJyVV z0Nk~~m6_aHi=mfJX;1=x*KFxPsFsinAs(4<;&7D=0fKeP;6<3)ov1z_Q7k_!tfJe> ztu7JH_Tae|2}~75Oq+|a*?5Gc7Slry;*-yaS%JXZYvUq=zs(hu@wbC4oVW9AhD3$P z*9=jb$BasPCwVngsiorb-z|Yg)#-(c{!u!|P#oK=;f0ojY}7KvDeAMieb_HWR+Sx< z;lA9C+GC$m$&G=UkzMYGuMa(ndHaG(%Ep$ds@hmiw|@?%*6>V$!J`YI6y&nOIwG?c zu);kJ8hZ{ESrHmaE$5SZ(a?<#_9>@c9W<6F(h2AWH69uy=#)*)S=6w$xZ)Rsn46gz z6!MDMXZl)3%37^Q(jnKZ*~jUw5UAtjI*Hqks|PB!DRRrdFPJK6%KWaP~K! zm?X?%jqCdpT@NA(lQc&|GICVuZ#plRb6a1G1BPcyl&t8NhoOrQRlt}pu;YpKrvY)B zq*lqk>b8+bUyp|ihhycR82u{1V@E+A7TO>ALGkR1ggMU|cehrv!LQ%k+oV8OiW%+n z_TvGh6C_C}ZhZ5L<|M3MSg@GnD z@z4qAdq>(J`qAUjoM4mBuUX7m=b;w5`YE^n=zI2>H~Gml`_ICGPKZ6W{D<$e{Ey@P z{lzF#hS`y(FT}x~YH{~2+E+apIqI5d!jpG|ra_~KIJwZ-d|5yC`IPxx)0^vr<@b9h zP#T^OTVI?E%@ zX<-KtGEXgRNQj=ck6um^7r}i4ed(4KbTp_6cR77KCg7?-E@?6X>P`+#3Z0>!&F;`J zO{UIMMOgL~;=q;ElOfH+f`wl{aV-%*$|A{IE5SB21vyAf0;n2r%wvrfRFBXgu`rxD z99n<)ZCUP!Qg9id4y7-3*}8RQXwyW6g%&7HDRwk5PmhSME_?4aRI1kUzS)|F*FRbTI(9 z2p1G=R~=&$mGR4PAYnP6v=7j;pl9#&d#sYpnXUm(9TO?a9Zgt)489W=(cf?NJ5JV) zuxMSxd@$KhyQU$E1sC?CM>ZcN45`%^!l{a$He$CPbJ}j=lY(oN3TpezwU|6DPXO6- zvPiPMG<%7HVrrsAXzS04IGpoReY;`XOf--yrpQ)(R0UfC7im9#w?46|`L7XQj3uk} z5)DYUjLhjQL76n@EEz5^s{B@9LeV~Wd^#JKBsDIBra z5)StDeDfsZrU;V%GdjK7r1O3&Xh=SEUJ@yakyhrJXPCbIVVyH&MFb5F29*-}!wG7g*&eGW( z;CC;ZeiWAtAmylz?gz)f)}kzMH{?OnS2B>ZHN3`h$wWuN6)Clj|BG|ibk$E9XlTiP zkIs%4Kj|=g!e9HBT1a(nf2%eAzf`=-bBhBYP=MI+%EgxZ^_M5ZPG~ynCqq=}>nUTY zu;AdA!}~s$0*fa!x}OI?D(4@*E3{(x-icTax-@maYZgfPP>}_uDi>-&+o!o+cQYGm!wU0ApP7 zbsW@a&ejjHGiEeP$o#q`UYdN1jln4MPJy!7ld6O9nIT&DQ$GlF7wEM_wrcU=AI OP5ep(Nd{G0epWUSJzH!5 From 06f0b2d3bcc418180f619cf891a4502db1b47a57 Mon Sep 17 00:00:00 2001 From: "firebase-workflow-trigger[bot]" <80733318+firebase-workflow-trigger[bot]@users.noreply.github.com> Date: Mon, 9 Dec 2024 10:15:23 -0800 Subject: [PATCH 34/34] Update mobile dependencies - Fri Dec 06 2024 (#1678) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update mobile dependencies - Fri Dec 06 2024 ### Android - com.google.firebase.firebase_bom → 33.7.0 ### iOS - Firebase/Analytics → 11.6.0 - Firebase/AppCheck → 11.6.0 - Firebase/Auth → 11.6.0 - Firebase/Core → 11.6.0 - Firebase/CoreOnly → 11.6.0 - Firebase/Crashlytics → 11.6.0 - Firebase/Database → 11.6.0 - Firebase/DynamicLinks → 11.6.0 - Firebase/Firestore → 11.6.0 - Firebase/Functions → 11.6.0 - Firebase/Installations → 11.6.0 - Firebase/Messaging → 11.6.0 - Firebase/RemoteConfig → 11.6.0 - Firebase/Storage → 11.6.0 > Created by [Update Android and iOS dependencies workflow](https://github.com/firebase/firebase-cpp-sdk/actions/runs/12205292158). * Update version numbers. --------- Co-authored-by: firebase-workflow-trigger-bot Co-authored-by: Jon Simantov --- Android/firebase_dependencies.gradle | 2 +- analytics/integration_test/Podfile | 4 +- analytics/ios_headers/FIREventNames.h | 2 +- analytics/ios_headers/FIRParameterNames.h | 2 +- analytics/ios_headers/FIRUserPropertyNames.h | 2 +- app/app_resources/build.gradle | 2 +- app/google_api_resources/build.gradle | 2 +- app/integration_test/Podfile | 2 +- app/invites_resources/build.gradle | 2 +- app_check/app_check_resources/build.gradle | 2 +- app_check/integration_test/Podfile | 20 +- auth/auth_resources/build.gradle | 2 +- auth/integration_test/Podfile | 4 +- cmake/external/firestore.cmake | 2 +- cpp_sdk_version.json | 6 +- database/database_resources/build.gradle | 2 +- database/integration_test/Podfile | 8 +- dynamic_links/integration_test/Podfile | 2 +- firestore/firestore_resources/build.gradle | 2 +- firestore/integration_test/Podfile | 8 +- firestore/integration_test_internal/Podfile | 8 +- functions/integration_test/Podfile | 8 +- gma/gma_resources/build.gradle | 2 +- gma/integration_test/Podfile | 2 +- installations/integration_test/Podfile | 4 +- ios_pod/Podfile | 26 +- .../swift_headers/FirebaseAnalytics-Swift.h | 4 +- ios_pod/swift_headers/FirebaseAuth-Swift.h | 392 +++++++++++------- .../FirebaseCoreInternal-Swift.h | 20 +- .../swift_headers/FirebaseDatabase-Swift.h | 4 +- .../swift_headers/FirebaseFirestore-Swift.h | 4 +- .../swift_headers/FirebaseFunctions-Swift.h | 66 +-- .../FirebaseInAppMessaging-Swift.h | 4 +- .../FirebaseMLModelDownloader-Swift.h | 4 +- .../FirebaseRemoteConfig-Swift.h | 4 +- .../swift_headers/FirebaseSessions-Swift.h | 4 +- .../swift_headers/FirebaseSharedSwift-Swift.h | 4 +- ios_pod/swift_headers/FirebaseStorage-Swift.h | 158 +++---- ios_pod/swift_headers/Promises-Swift.h | 4 +- ios_pod/swift_headers/SwiftProtobuf-Swift.h | 4 +- messaging/integration_test/Podfile | 8 +- messaging/messaging_java/build.gradle | 2 +- .../Android/firebase_dependencies.gradle | 2 +- release_build_files/readme.md | 73 ++-- remote_config/integration_test/Podfile | 4 +- .../remote_config_resources/build.gradle | 2 +- storage/integration_test/Podfile | 8 +- storage/storage_resources/build.gradle | 2 +- 48 files changed, 515 insertions(+), 390 deletions(-) diff --git a/Android/firebase_dependencies.gradle b/Android/firebase_dependencies.gradle index b5d28e275d..4e6ee35cea 100644 --- a/Android/firebase_dependencies.gradle +++ b/Android/firebase_dependencies.gradle @@ -159,7 +159,7 @@ project.afterEvaluate { // Add the bill-of-materials project.dependencies { - implementation platform('com.google.firebase:firebase-bom:33.5.1') + implementation platform('com.google.firebase:firebase-bom:33.7.0') } for (String lib : firebaseCpp.dependencies.libSet) { // Generate and include the proguard file diff --git a/analytics/integration_test/Podfile b/analytics/integration_test/Podfile index 83b48e29d0..a349005075 100644 --- a/analytics/integration_test/Podfile +++ b/analytics/integration_test/Podfile @@ -5,12 +5,12 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Analytics', '11.4.2' + pod 'Firebase/Analytics', '11.6.0' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/Analytics', '11.4.2' + pod 'Firebase/Analytics', '11.6.0' end post_install do |installer| diff --git a/analytics/ios_headers/FIREventNames.h b/analytics/ios_headers/FIREventNames.h index 503d00ca99..a5e3b209af 100644 --- a/analytics/ios_headers/FIREventNames.h +++ b/analytics/ios_headers/FIREventNames.h @@ -1,6 +1,6 @@ // Copyright 2024 Google LLC -// Copied from Firebase Analytics iOS SDK 11.4.2. +// Copied from Firebase Analytics iOS SDK 11.6.0. /// @file FIREventNames.h /// diff --git a/analytics/ios_headers/FIRParameterNames.h b/analytics/ios_headers/FIRParameterNames.h index a9cf4b1b3d..abecd0c5d6 100644 --- a/analytics/ios_headers/FIRParameterNames.h +++ b/analytics/ios_headers/FIRParameterNames.h @@ -1,6 +1,6 @@ // Copyright 2024 Google LLC -// Copied from Firebase Analytics iOS SDK 11.4.2. +// Copied from Firebase Analytics iOS SDK 11.6.0. /// @file FIRParameterNames.h /// diff --git a/analytics/ios_headers/FIRUserPropertyNames.h b/analytics/ios_headers/FIRUserPropertyNames.h index 31afa28321..64ce75a35c 100644 --- a/analytics/ios_headers/FIRUserPropertyNames.h +++ b/analytics/ios_headers/FIRUserPropertyNames.h @@ -1,6 +1,6 @@ // Copyright 2024 Google LLC -// Copied from Firebase Analytics iOS SDK 11.4.2. +// Copied from Firebase Analytics iOS SDK 11.6.0. /// @file FIRUserPropertyNames.h /// diff --git a/app/app_resources/build.gradle b/app/app_resources/build.gradle index 0856f18af6..e7e1b054b8 100644 --- a/app/app_resources/build.gradle +++ b/app/app_resources/build.gradle @@ -56,7 +56,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.5.1') + implementation platform('com.google.firebase:firebase-bom:33.7.0') implementation 'com.google.firebase:firebase-analytics' } diff --git a/app/google_api_resources/build.gradle b/app/google_api_resources/build.gradle index 3b78edcfdc..044feb23bc 100644 --- a/app/google_api_resources/build.gradle +++ b/app/google_api_resources/build.gradle @@ -59,7 +59,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.5.1') + implementation platform('com.google.firebase:firebase-bom:33.7.0') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.android.gms:play-services-base:18.5.0' implementation project(':app:app_resources') diff --git a/app/integration_test/Podfile b/app/integration_test/Podfile index fec2571832..155f359d7a 100644 --- a/app/integration_test/Podfile +++ b/app/integration_test/Podfile @@ -4,7 +4,7 @@ platform :ios, '13.0' use_frameworks! :linkage => :static target 'integration_test' do - pod 'Firebase/Analytics', '11.4.2' + pod 'Firebase/Analytics', '11.6.0' end post_install do |installer| diff --git a/app/invites_resources/build.gradle b/app/invites_resources/build.gradle index 0d5b80f4d1..62510412b0 100644 --- a/app/invites_resources/build.gradle +++ b/app/invites_resources/build.gradle @@ -55,7 +55,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.5.1') + implementation platform('com.google.firebase:firebase-bom:33.7.0') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-dynamic-links' implementation project(':app:app_resources') diff --git a/app_check/app_check_resources/build.gradle b/app_check/app_check_resources/build.gradle index 74190cb925..51de09b1c6 100644 --- a/app_check/app_check_resources/build.gradle +++ b/app_check/app_check_resources/build.gradle @@ -55,7 +55,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.5.1') + implementation platform('com.google.firebase:firebase-bom:33.7.0') implementation 'com.google.firebase:firebase-appcheck' } diff --git a/app_check/integration_test/Podfile b/app_check/integration_test/Podfile index 6cabf78af5..d5b1642831 100644 --- a/app_check/integration_test/Podfile +++ b/app_check/integration_test/Podfile @@ -4,20 +4,20 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/AppCheck', '11.4.2' - pod 'Firebase/Database', '11.4.2' - pod 'Firebase/Auth', '11.4.2' - pod 'Firebase/Storage', '11.4.2' - pod 'Firebase/Functions', '11.4.2' + pod 'Firebase/AppCheck', '11.6.0' + pod 'Firebase/Database', '11.6.0' + pod 'Firebase/Auth', '11.6.0' + pod 'Firebase/Storage', '11.6.0' + pod 'Firebase/Functions', '11.6.0' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/AppCheck', '11.4.2' - pod 'Firebase/Database', '11.4.2' - pod 'Firebase/Auth', '11.4.2' - pod 'Firebase/Storage', '11.4.2' - pod 'Firebase/Functions', '11.4.2' + pod 'Firebase/AppCheck', '11.6.0' + pod 'Firebase/Database', '11.6.0' + pod 'Firebase/Auth', '11.6.0' + pod 'Firebase/Storage', '11.6.0' + pod 'Firebase/Functions', '11.6.0' end post_install do |installer| diff --git a/auth/auth_resources/build.gradle b/auth/auth_resources/build.gradle index 6ee4c212d2..89664f17be 100644 --- a/auth/auth_resources/build.gradle +++ b/auth/auth_resources/build.gradle @@ -55,7 +55,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.5.1') + implementation platform('com.google.firebase:firebase-bom:33.7.0') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-auth' implementation project(':app:app_resources') diff --git a/auth/integration_test/Podfile b/auth/integration_test/Podfile index 2ae115c43c..970a6842ca 100644 --- a/auth/integration_test/Podfile +++ b/auth/integration_test/Podfile @@ -4,12 +4,12 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Auth', '11.4.2' + pod 'Firebase/Auth', '11.6.0' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/Auth', '11.4.2' + pod 'Firebase/Auth', '11.6.0' end post_install do |installer| diff --git a/cmake/external/firestore.cmake b/cmake/external/firestore.cmake index 04ea886530..ba73012c8b 100644 --- a/cmake/external/firestore.cmake +++ b/cmake/external/firestore.cmake @@ -20,7 +20,7 @@ endif() # If the format of the line below changes, then be sure to update # https://github.com/firebase/firebase-cpp-sdk/blob/fd054fa016/.github/workflows/update-dependencies.yml#L81 -set(version CocoaPods-11.4.2) +set(version CocoaPods-11.6.0) function(GetReleasedDep) message("Getting released firebase-ios-sdk @ ${version}") diff --git a/cpp_sdk_version.json b/cpp_sdk_version.json index 874c94002e..f0d0f01c8f 100644 --- a/cpp_sdk_version.json +++ b/cpp_sdk_version.json @@ -1,5 +1,5 @@ { - "released": "12.4.0", - "stable": "12.4.0", - "head": "12.4.0" + "released": "12.5.0", + "stable": "12.5.0", + "head": "12.5.0" } diff --git a/database/database_resources/build.gradle b/database/database_resources/build.gradle index 561e2645ba..609199c899 100644 --- a/database/database_resources/build.gradle +++ b/database/database_resources/build.gradle @@ -51,7 +51,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.5.1') + implementation platform('com.google.firebase:firebase-bom:33.7.0') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-database' //implementation project(':app:app_resources') diff --git a/database/integration_test/Podfile b/database/integration_test/Podfile index 8c3e617dbd..0c67e82957 100644 --- a/database/integration_test/Podfile +++ b/database/integration_test/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Database', '11.4.2' - pod 'Firebase/Auth', '11.4.2' + pod 'Firebase/Database', '11.6.0' + pod 'Firebase/Auth', '11.6.0' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/Database', '11.4.2' - pod 'Firebase/Auth', '11.4.2' + pod 'Firebase/Database', '11.6.0' + pod 'Firebase/Auth', '11.6.0' end post_install do |installer| diff --git a/dynamic_links/integration_test/Podfile b/dynamic_links/integration_test/Podfile index 700dc5c80d..1529961603 100644 --- a/dynamic_links/integration_test/Podfile +++ b/dynamic_links/integration_test/Podfile @@ -5,7 +5,7 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/DynamicLinks', '11.4.2' + pod 'Firebase/DynamicLinks', '11.6.0' end post_install do |installer| diff --git a/firestore/firestore_resources/build.gradle b/firestore/firestore_resources/build.gradle index ac7406eace..8e4bfd44f6 100644 --- a/firestore/firestore_resources/build.gradle +++ b/firestore/firestore_resources/build.gradle @@ -59,7 +59,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.5.1') + implementation platform('com.google.firebase:firebase-bom:33.7.0') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-firestore' } diff --git a/firestore/integration_test/Podfile b/firestore/integration_test/Podfile index 59dca3a1f6..793525be1f 100644 --- a/firestore/integration_test/Podfile +++ b/firestore/integration_test/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Firestore', '11.4.2' - pod 'Firebase/Auth', '11.4.2' + pod 'Firebase/Firestore', '11.6.0' + pod 'Firebase/Auth', '11.6.0' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/Firestore', '11.4.2' - pod 'Firebase/Auth', '11.4.2' + pod 'Firebase/Firestore', '11.6.0' + pod 'Firebase/Auth', '11.6.0' end post_install do |installer| diff --git a/firestore/integration_test_internal/Podfile b/firestore/integration_test_internal/Podfile index 1690d43f28..bd0be435c1 100644 --- a/firestore/integration_test_internal/Podfile +++ b/firestore/integration_test_internal/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Firestore', '11.4.2' - pod 'Firebase/Auth', '11.4.2' + pod 'Firebase/Firestore', '11.6.0' + pod 'Firebase/Auth', '11.6.0' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/Firestore', '11.4.2' - pod 'Firebase/Auth', '11.4.2' + pod 'Firebase/Firestore', '11.6.0' + pod 'Firebase/Auth', '11.6.0' end post_install do |installer| diff --git a/functions/integration_test/Podfile b/functions/integration_test/Podfile index 757757c294..2edf6d83d1 100644 --- a/functions/integration_test/Podfile +++ b/functions/integration_test/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Functions', '11.4.2' - pod 'Firebase/Auth', '11.4.2' + pod 'Firebase/Functions', '11.6.0' + pod 'Firebase/Auth', '11.6.0' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/Functions', '11.4.2' - pod 'Firebase/Auth', '11.4.2' + pod 'Firebase/Functions', '11.6.0' + pod 'Firebase/Auth', '11.6.0' end post_install do |installer| diff --git a/gma/gma_resources/build.gradle b/gma/gma_resources/build.gradle index c2d573138a..fab9d20e93 100644 --- a/gma/gma_resources/build.gradle +++ b/gma/gma_resources/build.gradle @@ -56,7 +56,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.5.1') + implementation platform('com.google.firebase:firebase-bom:33.7.0') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.android.gms:play-services-ads:23.0.0' implementation 'com.google.android.ump:user-messaging-platform:2.2.0' diff --git a/gma/integration_test/Podfile b/gma/integration_test/Podfile index c888e005d9..23b9a3dee1 100644 --- a/gma/integration_test/Podfile +++ b/gma/integration_test/Podfile @@ -5,7 +5,7 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/CoreOnly', '11.4.2' + pod 'Firebase/CoreOnly', '11.6.0' pod 'Google-Mobile-Ads-SDK', '11.2.0' pod 'GoogleUserMessagingPlatform', '2.3.0' end diff --git a/installations/integration_test/Podfile b/installations/integration_test/Podfile index 636df8347d..6ff4d2168e 100644 --- a/installations/integration_test/Podfile +++ b/installations/integration_test/Podfile @@ -5,8 +5,8 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Analytics', '11.4.2' - pod 'Firebase/Installations', '11.4.2' + pod 'Firebase/Analytics', '11.6.0' + pod 'Firebase/Installations', '11.6.0' end post_install do |installer| diff --git a/ios_pod/Podfile b/ios_pod/Podfile index 3bb1b4156e..6f5603b8bd 100644 --- a/ios_pod/Podfile +++ b/ios_pod/Podfile @@ -3,22 +3,22 @@ platform :ios, '13.0' use_frameworks! target 'GetPods' do - pod 'Firebase/Core', '11.4.2' + pod 'Firebase/Core', '11.6.0' pod 'Google-Mobile-Ads-SDK', '11.2.0' pod 'GoogleUserMessagingPlatform', '2.3.0' - pod 'Firebase/Analytics', '11.4.2' - pod 'Firebase/AppCheck', '11.4.2' - pod 'Firebase/Auth', '11.4.2' - pod 'Firebase/Crashlytics', '11.4.2' - pod 'Firebase/Database', '11.4.2' - pod 'Firebase/DynamicLinks', '11.4.2' - pod 'Firebase/Firestore', '11.4.2' - pod 'Firebase/Functions', '11.4.2' - pod 'Firebase/Installations', '11.4.2' - pod 'Firebase/Messaging', '11.4.2' - pod 'Firebase/RemoteConfig', '11.4.2' - pod 'Firebase/Storage', '11.4.2' + pod 'Firebase/Analytics', '11.6.0' + pod 'Firebase/AppCheck', '11.6.0' + pod 'Firebase/Auth', '11.6.0' + pod 'Firebase/Crashlytics', '11.6.0' + pod 'Firebase/Database', '11.6.0' + pod 'Firebase/DynamicLinks', '11.6.0' + pod 'Firebase/Firestore', '11.6.0' + pod 'Firebase/Functions', '11.6.0' + pod 'Firebase/Installations', '11.6.0' + pod 'Firebase/Messaging', '11.6.0' + pod 'Firebase/RemoteConfig', '11.6.0' + pod 'Firebase/Storage', '11.6.0' end diff --git a/ios_pod/swift_headers/FirebaseAnalytics-Swift.h b/ios_pod/swift_headers/FirebaseAnalytics-Swift.h index 62044c5120..1d56fc3a10 100644 --- a/ios_pod/swift_headers/FirebaseAnalytics-Swift.h +++ b/ios_pod/swift_headers/FirebaseAnalytics-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.2.0. +// Copied from Firebase iOS SDK 11.6.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -338,7 +338,7 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.2.0. +// Copied from Firebase iOS SDK 11.6.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) diff --git a/ios_pod/swift_headers/FirebaseAuth-Swift.h b/ios_pod/swift_headers/FirebaseAuth-Swift.h index 3acf4d0fdf..1056048cf0 100644 --- a/ios_pod/swift_headers/FirebaseAuth-Swift.h +++ b/ios_pod/swift_headers/FirebaseAuth-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.2.0. +// Copied from Firebase iOS SDK 11.6.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -398,8 +398,8 @@ SWIFT_CLASS_NAMED("ActionCodeSettings") /// install the app, and the minimum Android version supported. If /// installIfNotAvailable is set to true and the link /// is opened on an android device, it will try to install the app if not -/// already available. Otherwise the web URL is used. \param androidPackageName -/// The Android package name. +/// already available. Otherwise the web URL is used. +/// \param androidPackageName The Android package name. /// /// \param installIfNotAvailable Indicates whether or not the app should be /// installed if not available. @@ -428,8 +428,8 @@ SWIFT_CLASS_NAMED("ActionCodeURL") /// Returns the language code from the link. nil, if not provided. @property(nonatomic, readonly, copy) NSString *_Nullable languageCode; /// Construct an ActionCodeURL from an out of band link (e.g. email -/// link). \param link The oob link string used to construct the action code -/// URL. +/// link). +/// \param link The oob link string used to construct the action code URL. /// /// /// returns: @@ -531,8 +531,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// Console. @property(nonatomic, copy) NSString *_Nullable customAuthDomain; /// Sets the currentUser on the receiver to the provided user -/// object. \param user The user object to be set as the current user of the -/// calling Auth instance. +/// object. +/// \param user The user object to be set as the current user of the calling +/// Auth instance. /// /// \param completion Optionally; a block invoked after the user of the calling /// Auth instance has been updated or an error was encountered. @@ -545,8 +546,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// Enumeration Protection is enabled, irrespective of the number of /// authentication methods available for the given email. Possible error codes: /// AuthErrorCodeInvalidEmail - Indicates the email address is -/// malformed. \param email The email address for which to obtain a list of -/// sign-in methods. +/// malformed. +/// \param email The email address for which to obtain a list of sign-in +/// methods. /// /// \param completion Optionally; a block which is invoked when the list of sign /// in methods for the specified email address is ready or an error was @@ -908,8 +910,8 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) NSError *_Nullable))completion; /// Applies out of band code. /// This method will not work for out of band codes which require an additional -/// parameter, such as password reset code. \param code The out of band code to -/// be applied. +/// parameter, such as password reset code. +/// \param code The out of band code to be applied. /// /// \param completion Optionally; a block which is invoked when the request /// finishes. Invoked asynchronously on the main thread in the future. @@ -1047,10 +1049,10 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// special attention to making sure the block does not inadvertently retain /// objects which should not be retained by the long-lived block. The block /// itself will be retained by Auth until it is unregistered or -/// until the Auth instance is otherwise deallocated. \param -/// listener The block to be invoked. The block is always invoked asynchronously -/// on the main thread, even for it’s initial invocation after having been added -/// as a listener. +/// until the Auth instance is otherwise deallocated. +/// \param listener The block to be invoked. The block is always invoked +/// asynchronously on the main thread, even for it’s initial invocation after +/// having been added as a listener. /// /// /// returns: @@ -1083,10 +1085,10 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// special attention to making sure the block does not inadvertently retain /// objects which should not be retained by the long-lived block. The block /// itself will be retained by Auth until it is unregistered or -/// until the Auth instance is otherwise deallocated. \param -/// listener The block to be invoked. The block is always invoked asynchronously -/// on the main thread, even for it’s initial invocation after having been added -/// as a listener. +/// until the Auth instance is otherwise deallocated. +/// \param listener The block to be invoked. The block is always invoked +/// asynchronously on the main thread, even for it’s initial invocation after +/// having been added as a listener. /// /// /// returns: @@ -1104,6 +1106,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// remote backend. - (void)useEmulatorWithHost:(NSString *_Nonnull)host port:(NSInteger)port; /// Revoke the users token with authorization code. +/// \param authorizationCode The authorization code used to perform the +/// revocation. +/// /// \param completion (Optional) the block invoked when the request to revoke /// the token is complete, or fails. Invoked asynchronously on the main thread /// in the future. @@ -1142,8 +1147,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// Whether the specific remote notification is handled by Auth . /// This method is available on iOS only. /// If swizzling is disabled, related remote notifications must be forwarded to -/// this method for phone number auth to work. \param userInfo A dictionary that -/// contains information related to the notification in question. +/// this method for phone number auth to work. +/// \param userInfo A dictionary that contains information related to the +/// notification in question. /// /// /// returns: @@ -1157,8 +1163,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// Whether the specific URL is handled by Auth . /// This method is available on iOS only. /// If swizzling is disabled, URLs received by the application delegate must be -/// forwarded to this method for phone number auth to work. \param url The URL -/// received by the application delegate from any of the openURL method. +/// forwarded to this method for phone number auth to work. +/// \param url The URL received by the application delegate from any of the +/// openURL method. /// /// /// returns: @@ -1269,9 +1276,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// May be used to obtain the accessToken and/or IDToken /// pertaining to a recently signed-in user. @property(nonatomic, readonly, strong) FIROAuthCredential *_Nullable credential; -SWIFT_CLASS_PROPERTY(@property(nonatomic, class) BOOL supportsSecureCoding;) +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly) + BOOL supportsSecureCoding;) + (BOOL)supportsSecureCoding SWIFT_WARN_UNUSED_RESULT; -+ (void)setSupportsSecureCoding:(BOOL)value; - (void)encodeWithCoder:(NSCoder *_Nonnull)coder; - (nullable instancetype)initWithCoder:(NSCoder *_Nonnull)coder OBJC_DESIGNATED_INITIALIZER; @@ -1660,8 +1667,8 @@ SWIFT_AVAILABILITY(maccatalyst, introduced = 13) SWIFT_PROTOCOL_NAMED("AuthUIDelegate") @protocol FIRAuthUIDelegate /// If implemented, this method will be invoked when Firebase Auth needs to -/// display a view controller. \param viewControllerToPresent The view -/// controller to be presented. +/// display a view controller. +/// \param viewControllerToPresent The view controller to be presented. /// /// \param flag Decides whether the view controller presentation should be /// animated. @@ -1674,8 +1681,9 @@ SWIFT_PROTOCOL_NAMED("AuthUIDelegate") animated:(BOOL)flag completion:(void (^_Nullable)(void))completion; /// If implemented, this method will be invoked when Firebase Auth needs to -/// display a view controller. \param flag Decides whether removing the view -/// controller should be animated or not. +/// display a view controller. +/// \param flag Decides whether removing the view controller should be animated +/// or not. /// /// \param completion The block to execute after the presentation finishes. /// This block has no return value and takes no parameters. @@ -1758,6 +1766,10 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// \param uiDelegate An optional UI delegate used to present the mobile web /// flow. /// +/// \param completionHandler Optionally; a block which is invoked +/// asynchronously on the main thread when the mobile web flow is +/// completed. +/// - (void)getCredentialWithUIDelegate:(id _Nullable)uiDelegate completion:(void (^_Nonnull)( FIRAuthCredential *_Nullable, @@ -1862,8 +1874,8 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) (void (^_Nullable)(FIRMultiFactorSession *_Nullable, NSError *_Nullable))completion; /// Enrolls a second factor as identified by the -/// MultiFactorAssertion parameter for the current user. \param -/// assertion The MultiFactorAssertion. +/// MultiFactorAssertion parameter for the current user. +/// \param assertion The MultiFactorAssertion. /// /// \param displayName An optional display name associated with the multi factor /// to enroll. @@ -1874,12 +1886,17 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) displayName:(NSString *_Nullable)displayName completion:(void (^_Nullable)(NSError *_Nullable))completion; /// Unenroll the given multi factor. +/// \param factorInfo The second factor instance to unenroll. +/// /// \param completion The block invoked when the request to send the /// verification email is complete, or fails. /// - (void)unenrollWithInfo:(FIRMultiFactorInfo *_Nonnull)factorInfo completion:(void (^_Nullable)(NSError *_Nullable))completion; /// Unenroll the given multi factor. +/// \param factorUID The unique identifier corresponding to the +/// second factor being unenrolled. +/// /// \param completion The block invoked when the request to send the /// verification email is complete, or fails. /// @@ -1956,9 +1973,11 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// The Auth reference for the current MultiResolver. @property(nonatomic, readonly, strong) FIRAuth *_Nonnull auth; /// A helper function to help users complete sign in with a second factor using -/// a MultiFactorAssertion confirming the user successfully -/// completed the second factor challenge. \param completion The block invoked -/// when the request is complete, or fails. +/// a +/// \param assertion The assertion confirming the user successfully +/// completed the second factor challenge. +/// +/// \param completion The block invoked when the request is complete, or fails. /// - (void)resolveSignInWithAssertion:(FIRMultiFactorAssertion *_Nonnull)assertion completion: @@ -2004,9 +2023,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// This will help the developer determine whether an access token / secret pair /// is needed. @property(nonatomic, readonly, copy) NSString *_Nullable secret; -SWIFT_CLASS_PROPERTY(@property(nonatomic, class) BOOL supportsSecureCoding;) +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly) + BOOL supportsSecureCoding;) + (BOOL)supportsSecureCoding SWIFT_WARN_UNUSED_RESULT; -+ (void)setSupportsSecureCoding:(BOOL)value; - (void)encodeWithCoder:(NSCoder *_Nonnull)coder; - (nullable instancetype)initWithCoder:(NSCoder *_Nonnull)coder OBJC_DESIGNATED_INITIALIZER; @@ -2044,8 +2063,9 @@ SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) + (FIROAuthProvider *_Nonnull)providerWithProviderID: (NSString *_Nonnull)providerID SWIFT_WARN_UNUSED_RESULT; /// An instance of OAuthProvider corresponding to the given provider ID and auth -/// instance. \param providerID The provider ID of the IDP for which this auth -/// provider instance will be configured. +/// instance. +/// \param providerID The provider ID of the IDP for which this auth provider +/// instance will be configured. /// /// \param auth The auth instance to be associated with the OAuthProvider /// instance. @@ -2058,8 +2078,9 @@ SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) auth:(FIRAuth *_Nonnull)auth SWIFT_WARN_UNUSED_RESULT; /// Creates an AuthCredential for the OAuth 2 provider identified -/// by provider ID, ID token, and access token. \param providerID The provider -/// ID associated with the Auth credential being created. +/// by provider ID, ID token, and access token. +/// \param providerID The provider ID associated with the Auth credential being +/// created. /// /// \param idToken The IDToken associated with the Auth credential being /// created. @@ -2076,8 +2097,9 @@ SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) accessToken:(NSString *_Nullable)accessToken SWIFT_WARN_UNUSED_RESULT; /// Creates an AuthCredential for the OAuth 2 provider identified -/// by provider ID, ID token, and access token. \param providerID The provider -/// ID associated with the Auth credential being created. +/// by provider ID, ID token, and access token. +/// \param providerID The provider ID associated with the Auth credential being +/// created. /// /// \param accessToken The access token associated with the Auth credential be /// created, if available. @@ -2090,8 +2112,9 @@ SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) accessToken:(NSString *_Nonnull)accessToken SWIFT_WARN_UNUSED_RESULT; /// Creates an AuthCredential for that OAuth 2 provider identified -/// by provider ID, ID token, raw nonce, and access token. \param providerID The -/// provider ID associated with the Auth credential being created. +/// by provider ID, ID token, raw nonce, and access token. +/// \param providerID The provider ID associated with the Auth credential being +/// created. /// /// \param idToken The IDToken associated with the Auth credential being /// created. @@ -2112,8 +2135,9 @@ SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) accessToken:(NSString *_Nonnull)accessToken SWIFT_WARN_UNUSED_RESULT; /// Creates an AuthCredential for that OAuth 2 provider identified -/// by providerID using an ID token and raw nonce. \param providerID The -/// provider ID associated with the Auth credential being created. +/// by providerID using an ID token and raw nonce. +/// \param providerID The provider ID associated with the Auth credential being +/// created. /// /// \param idToken The IDToken associated with the Auth credential being /// created. @@ -2134,6 +2158,10 @@ SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) /// \param uiDelegate An optional UI delegate used to present the mobile web /// flow. /// +/// \param completionHandler Optionally; a block which is invoked +/// asynchronously on the main thread when the mobile web flow is +/// completed. +/// - (void)getCredentialWithUIDelegate:(id _Nullable)uiDelegate completion:(void (^_Nonnull)( FIRAuthCredential *_Nullable, @@ -2145,8 +2173,9 @@ SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) /// Creates an AuthCredential for the Sign in with Apple OAuth 2 /// provider identified by ID token, raw nonce, and full name.This method is /// specific to the Sign in with Apple OAuth 2 provider as this provider -/// requires the full name to be passed explicitly. \param idToken The IDToken -/// associated with the Sign in with Apple Auth credential being created. +/// requires the full name to be passed explicitly. +/// \param idToken The IDToken associated with the Sign in with Apple Auth +/// credential being created. /// /// \param rawNonce The raw nonce associated with the Sign in with Apple Auth /// credential being created. @@ -2176,9 +2205,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) SWIFT_AVAILABILITY(ios, introduced = 13) @interface FIRPhoneAuthCredential : FIRAuthCredential -SWIFT_CLASS_PROPERTY(@property(nonatomic, class) BOOL supportsSecureCoding;) +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly) + BOOL supportsSecureCoding;) + (BOOL)supportsSecureCoding SWIFT_WARN_UNUSED_RESULT; -+ (void)setSupportsSecureCoding:(BOOL)value; - (void)encodeWithCoder:(NSCoder *_Nonnull)coder; - (nullable instancetype)initWithCoder:(NSCoder *_Nonnull)coder OBJC_DESIGNATED_INITIALIZER; @@ -2203,8 +2232,9 @@ SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) /// Auth object. + (FIRPhoneAuthProvider *_Nonnull)provider SWIFT_WARN_UNUSED_RESULT; /// Returns an instance of PhoneAuthProvider for the provided -/// Auth object. \param auth The auth object to associate with the -/// phone auth provider instance. +/// Auth object. +/// \param auth The auth object to associate with the phone auth provider +/// instance. /// + (FIRPhoneAuthProvider *_Nonnull)providerWithAuth:(FIRAuth *_Nonnull)auth SWIFT_WARN_UNUSED_RESULT; @@ -2282,8 +2312,8 @@ SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) NSError *_Nullable)) completion; /// Creates an AuthCredential for the phone number provider -/// identified by the verification ID and verification code. \param -/// verificationID The verification ID obtained from invoking +/// identified by the verification ID and verification code. +/// \param verificationID The verification ID obtained from invoking /// verifyPhoneNumber:completion: /// /// \param verificationCode The verification code obtained from the user. @@ -2325,8 +2355,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) @interface FIRPhoneMultiFactorGenerator : NSObject /// Initializes the MFA assertion to confirm ownership of the phone second /// factor. Note that this API is used for both enrolling and signing in with a -/// phone second factor. \param phoneAuthCredential The phone auth credential -/// used for multi factor flows. +/// phone second factor. +/// \param phoneAuthCredential The phone auth credential used for multi factor +/// flows. /// + (FIRPhoneMultiFactorAssertion *_Nonnull)assertionWithCredential: (FIRPhoneAuthCredential *_Nonnull)phoneAuthCredential @@ -2379,8 +2410,8 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) @interface FIRTOTPMultiFactorGenerator : NSObject /// Creates a TOTP secret as part of enrolling a TOTP second factor. Used for /// generating a QR code URL or inputting into a TOTP app. This method uses the -/// auth instance corresponding to the user in the multiFactorSession. \param -/// session The multiFactorSession instance. +/// auth instance corresponding to the user in the multiFactorSession. +/// \param session The multiFactorSession instance. /// /// \param completion Completion block /// @@ -2391,7 +2422,8 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) NSError *_Nullable))completion; /// Initializes the MFA assertion to confirm ownership of the TOTP second /// factor. This assertion is used to complete enrollment of TOTP as a second -/// factor. \param secret The TOTP secret. +/// factor. +/// \param secret The TOTP secret. /// /// \param oneTimePassword One time password string. /// @@ -2404,8 +2436,8 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) SWIFT_WARN_UNUSED_RESULT; /// Initializes the MFA assertion to confirm ownership of the TOTP second /// factor. This assertion is used to complete signIn with TOTP as a second -/// factor. \param enrollmentID The ID that identifies the enrolled TOTP second /// factor. +/// \param enrollmentID The ID that identifies the enrolled TOTP second factor. /// /// \param oneTimePassword one time password string. /// @@ -2430,7 +2462,8 @@ SWIFT_CLASS_NAMED("TOTPSecret") /// Returns a QRCode URL as described in /// https://github.com/google/google-authenticator/wiki/Key-Uri-Format. /// This can be displayed to the user as a QRCode to be scanned into a TOTP app -/// like Google Authenticator. \param accountName The name of the account/app. +/// like Google Authenticator. +/// \param accountName The name of the account/app. /// /// \param issuer Issuer of the TOTP(likely the app name). /// @@ -2647,9 +2680,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// Reloads the user’s profile data from the server. /// May fail with an AuthErrorCodeRequiresRecentLogin error code. /// In this case you should call reauthenticate(with:) before -/// re-invoking updateEmail(to:). \param completion Optionally; the -/// block invoked when the reload has finished. Invoked asynchronously on the -/// main thread in the future. +/// re-invoking updateEmail(to:). +/// \param completion Optionally; the block invoked when the reload has +/// finished. Invoked asynchronously on the main thread in the future. /// - (void)reloadWithCompletion:(void (^_Nullable)(NSError *_Nullable))completion; /// Renews the user’s authentication tokens by validating a fresh set of @@ -2727,16 +2760,18 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) (void (^_Nullable)(FIRAuthDataResult *_Nullable, NSError *_Nullable))completion; /// Retrieves the Firebase authentication token, possibly refreshing it if it -/// has expired. \param completion Optionally; the block invoked when the token -/// is available. Invoked asynchronously on the main thread in the future. +/// has expired. +/// \param completion Optionally; the block invoked when the token is available. +/// Invoked asynchronously on the main thread in the future. /// - (void)getIDTokenWithCompletion: (void (^_Nullable)(NSString *_Nullable, NSError *_Nullable))completion; /// Retrieves the Firebase authentication token, possibly refreshing it if it /// has expired. The authentication token will be refreshed (by making a network /// request) if it has expired, or if forceRefresh is -/// true. \param forceRefresh Forces a token refresh. Useful if the -/// token becomes invalid for some reason other than an expiration. +/// true. +/// \param forceRefresh Forces a token refresh. Useful if the token becomes +/// invalid for some reason other than an expiration. /// /// \param completion Optionally; the block invoked when the token is available. /// Invoked asynchronously on the main thread in the future. @@ -2746,8 +2781,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) (void (^_Nullable)(NSString *_Nullable, NSError *_Nullable))completion; /// Retrieves the Firebase authentication token, possibly refreshing it if it -/// has expired. \param completion Optionally; the block invoked when the token -/// is available. Invoked asynchronously on the main thread in the future. +/// has expired. +/// \param completion Optionally; the block invoked when the token is available. +/// Invoked asynchronously on the main thread in the future. /// - (void)getIDTokenResultWithCompletion: (void (^_Nullable)(FIRAuthTokenResult *_Nullable, @@ -2755,8 +2791,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// Retrieves the Firebase authentication token, possibly refreshing it if it /// has expired. The authentication token will be refreshed (by making a network /// request) if it has expired, or if forcingRefresh is -/// true. \param forcingRefresh Forces a token refresh. Useful if -/// the token becomes invalid for some reason other than an expiration. +/// true. +/// \param forcingRefresh Forces a token refresh. Useful if the token becomes +/// invalid for some reason other than an expiration. /// /// \param completion Optionally; the block invoked when the token is available. /// Invoked asynchronously on the main thread in the future. @@ -2785,8 +2822,8 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// /// This method may also return error codes associated with /// updateEmail(to:) and updatePassword(to:) on -/// User. \param credential The credential for the identity -/// provider. +/// User. +/// \param credential The credential for the identity provider. /// /// \param completion Optionally; the block invoked when the unlinking is /// complete, or fails. @@ -2908,7 +2945,8 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// - (void)deleteWithCompletion:(void (^_Nullable)(NSError *_Nullable))completion; /// Send an email to verify the ownership of the account then update to the new -/// email. \param email The email to be updated to. +/// email. +/// \param email The email to be updated to. /// /// \param completion Optionally; the block invoked when the request to send the /// verification email is complete, or fails. @@ -2918,7 +2956,8 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) (void (^_Nullable)( NSError *_Nullable))completion; /// Send an email to verify the ownership of the account then update to the new -/// email. \param email The email to be updated to. +/// email. +/// \param email The email to be updated to. /// /// \param actionCodeSettings An ActionCodeSettings object /// containing settings related to handling action codes. @@ -3011,8 +3050,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// Commits any pending changes. /// Invoked asynchronously on the main thread in the future. /// This method should only be called once.Once called, property values should -/// not be changed. \param completion Optionally; the block invoked when the -/// user profile change has been applied. +/// not be changed. +/// \param completion Optionally; the block invoked when the user profile change +/// has been applied. /// - (void)commitChangesWithCompletion: (void (^_Nullable)(NSError *_Nullable))completion; @@ -3031,7 +3071,7 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.2.0. +// Copied from Firebase iOS SDK 11.6.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -3428,8 +3468,8 @@ SWIFT_CLASS_NAMED("ActionCodeSettings") /// install the app, and the minimum Android version supported. If /// installIfNotAvailable is set to true and the link /// is opened on an android device, it will try to install the app if not -/// already available. Otherwise the web URL is used. \param androidPackageName -/// The Android package name. +/// already available. Otherwise the web URL is used. +/// \param androidPackageName The Android package name. /// /// \param installIfNotAvailable Indicates whether or not the app should be /// installed if not available. @@ -3458,8 +3498,8 @@ SWIFT_CLASS_NAMED("ActionCodeURL") /// Returns the language code from the link. nil, if not provided. @property(nonatomic, readonly, copy) NSString *_Nullable languageCode; /// Construct an ActionCodeURL from an out of band link (e.g. email -/// link). \param link The oob link string used to construct the action code -/// URL. +/// link). +/// \param link The oob link string used to construct the action code URL. /// /// /// returns: @@ -3561,8 +3601,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// Console. @property(nonatomic, copy) NSString *_Nullable customAuthDomain; /// Sets the currentUser on the receiver to the provided user -/// object. \param user The user object to be set as the current user of the -/// calling Auth instance. +/// object. +/// \param user The user object to be set as the current user of the calling +/// Auth instance. /// /// \param completion Optionally; a block invoked after the user of the calling /// Auth instance has been updated or an error was encountered. @@ -3575,8 +3616,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// Enumeration Protection is enabled, irrespective of the number of /// authentication methods available for the given email. Possible error codes: /// AuthErrorCodeInvalidEmail - Indicates the email address is -/// malformed. \param email The email address for which to obtain a list of -/// sign-in methods. +/// malformed. +/// \param email The email address for which to obtain a list of sign-in +/// methods. /// /// \param completion Optionally; a block which is invoked when the list of sign /// in methods for the specified email address is ready or an error was @@ -3938,8 +3980,8 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) NSError *_Nullable))completion; /// Applies out of band code. /// This method will not work for out of band codes which require an additional -/// parameter, such as password reset code. \param code The out of band code to -/// be applied. +/// parameter, such as password reset code. +/// \param code The out of band code to be applied. /// /// \param completion Optionally; a block which is invoked when the request /// finishes. Invoked asynchronously on the main thread in the future. @@ -4077,10 +4119,10 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// special attention to making sure the block does not inadvertently retain /// objects which should not be retained by the long-lived block. The block /// itself will be retained by Auth until it is unregistered or -/// until the Auth instance is otherwise deallocated. \param -/// listener The block to be invoked. The block is always invoked asynchronously -/// on the main thread, even for it’s initial invocation after having been added -/// as a listener. +/// until the Auth instance is otherwise deallocated. +/// \param listener The block to be invoked. The block is always invoked +/// asynchronously on the main thread, even for it’s initial invocation after +/// having been added as a listener. /// /// /// returns: @@ -4113,10 +4155,10 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// special attention to making sure the block does not inadvertently retain /// objects which should not be retained by the long-lived block. The block /// itself will be retained by Auth until it is unregistered or -/// until the Auth instance is otherwise deallocated. \param -/// listener The block to be invoked. The block is always invoked asynchronously -/// on the main thread, even for it’s initial invocation after having been added -/// as a listener. +/// until the Auth instance is otherwise deallocated. +/// \param listener The block to be invoked. The block is always invoked +/// asynchronously on the main thread, even for it’s initial invocation after +/// having been added as a listener. /// /// /// returns: @@ -4134,6 +4176,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// remote backend. - (void)useEmulatorWithHost:(NSString *_Nonnull)host port:(NSInteger)port; /// Revoke the users token with authorization code. +/// \param authorizationCode The authorization code used to perform the +/// revocation. +/// /// \param completion (Optional) the block invoked when the request to revoke /// the token is complete, or fails. Invoked asynchronously on the main thread /// in the future. @@ -4172,8 +4217,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// Whether the specific remote notification is handled by Auth . /// This method is available on iOS only. /// If swizzling is disabled, related remote notifications must be forwarded to -/// this method for phone number auth to work. \param userInfo A dictionary that -/// contains information related to the notification in question. +/// this method for phone number auth to work. +/// \param userInfo A dictionary that contains information related to the +/// notification in question. /// /// /// returns: @@ -4187,8 +4233,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// Whether the specific URL is handled by Auth . /// This method is available on iOS only. /// If swizzling is disabled, URLs received by the application delegate must be -/// forwarded to this method for phone number auth to work. \param url The URL -/// received by the application delegate from any of the openURL method. +/// forwarded to this method for phone number auth to work. +/// \param url The URL received by the application delegate from any of the +/// openURL method. /// /// /// returns: @@ -4299,9 +4346,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// May be used to obtain the accessToken and/or IDToken /// pertaining to a recently signed-in user. @property(nonatomic, readonly, strong) FIROAuthCredential *_Nullable credential; -SWIFT_CLASS_PROPERTY(@property(nonatomic, class) BOOL supportsSecureCoding;) +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly) + BOOL supportsSecureCoding;) + (BOOL)supportsSecureCoding SWIFT_WARN_UNUSED_RESULT; -+ (void)setSupportsSecureCoding:(BOOL)value; - (void)encodeWithCoder:(NSCoder *_Nonnull)coder; - (nullable instancetype)initWithCoder:(NSCoder *_Nonnull)coder OBJC_DESIGNATED_INITIALIZER; @@ -4690,8 +4737,8 @@ SWIFT_AVAILABILITY(maccatalyst, introduced = 13) SWIFT_PROTOCOL_NAMED("AuthUIDelegate") @protocol FIRAuthUIDelegate /// If implemented, this method will be invoked when Firebase Auth needs to -/// display a view controller. \param viewControllerToPresent The view -/// controller to be presented. +/// display a view controller. +/// \param viewControllerToPresent The view controller to be presented. /// /// \param flag Decides whether the view controller presentation should be /// animated. @@ -4704,8 +4751,9 @@ SWIFT_PROTOCOL_NAMED("AuthUIDelegate") animated:(BOOL)flag completion:(void (^_Nullable)(void))completion; /// If implemented, this method will be invoked when Firebase Auth needs to -/// display a view controller. \param flag Decides whether removing the view -/// controller should be animated or not. +/// display a view controller. +/// \param flag Decides whether removing the view controller should be animated +/// or not. /// /// \param completion The block to execute after the presentation finishes. /// This block has no return value and takes no parameters. @@ -4788,6 +4836,10 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// \param uiDelegate An optional UI delegate used to present the mobile web /// flow. /// +/// \param completionHandler Optionally; a block which is invoked +/// asynchronously on the main thread when the mobile web flow is +/// completed. +/// - (void)getCredentialWithUIDelegate:(id _Nullable)uiDelegate completion:(void (^_Nonnull)( FIRAuthCredential *_Nullable, @@ -4892,8 +4944,8 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) (void (^_Nullable)(FIRMultiFactorSession *_Nullable, NSError *_Nullable))completion; /// Enrolls a second factor as identified by the -/// MultiFactorAssertion parameter for the current user. \param -/// assertion The MultiFactorAssertion. +/// MultiFactorAssertion parameter for the current user. +/// \param assertion The MultiFactorAssertion. /// /// \param displayName An optional display name associated with the multi factor /// to enroll. @@ -4904,12 +4956,17 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) displayName:(NSString *_Nullable)displayName completion:(void (^_Nullable)(NSError *_Nullable))completion; /// Unenroll the given multi factor. +/// \param factorInfo The second factor instance to unenroll. +/// /// \param completion The block invoked when the request to send the /// verification email is complete, or fails. /// - (void)unenrollWithInfo:(FIRMultiFactorInfo *_Nonnull)factorInfo completion:(void (^_Nullable)(NSError *_Nullable))completion; /// Unenroll the given multi factor. +/// \param factorUID The unique identifier corresponding to the +/// second factor being unenrolled. +/// /// \param completion The block invoked when the request to send the /// verification email is complete, or fails. /// @@ -4986,9 +5043,11 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// The Auth reference for the current MultiResolver. @property(nonatomic, readonly, strong) FIRAuth *_Nonnull auth; /// A helper function to help users complete sign in with a second factor using -/// a MultiFactorAssertion confirming the user successfully -/// completed the second factor challenge. \param completion The block invoked -/// when the request is complete, or fails. +/// a +/// \param assertion The assertion confirming the user successfully +/// completed the second factor challenge. +/// +/// \param completion The block invoked when the request is complete, or fails. /// - (void)resolveSignInWithAssertion:(FIRMultiFactorAssertion *_Nonnull)assertion completion: @@ -5034,9 +5093,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// This will help the developer determine whether an access token / secret pair /// is needed. @property(nonatomic, readonly, copy) NSString *_Nullable secret; -SWIFT_CLASS_PROPERTY(@property(nonatomic, class) BOOL supportsSecureCoding;) +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly) + BOOL supportsSecureCoding;) + (BOOL)supportsSecureCoding SWIFT_WARN_UNUSED_RESULT; -+ (void)setSupportsSecureCoding:(BOOL)value; - (void)encodeWithCoder:(NSCoder *_Nonnull)coder; - (nullable instancetype)initWithCoder:(NSCoder *_Nonnull)coder OBJC_DESIGNATED_INITIALIZER; @@ -5074,8 +5133,9 @@ SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) + (FIROAuthProvider *_Nonnull)providerWithProviderID: (NSString *_Nonnull)providerID SWIFT_WARN_UNUSED_RESULT; /// An instance of OAuthProvider corresponding to the given provider ID and auth -/// instance. \param providerID The provider ID of the IDP for which this auth -/// provider instance will be configured. +/// instance. +/// \param providerID The provider ID of the IDP for which this auth provider +/// instance will be configured. /// /// \param auth The auth instance to be associated with the OAuthProvider /// instance. @@ -5088,8 +5148,9 @@ SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) auth:(FIRAuth *_Nonnull)auth SWIFT_WARN_UNUSED_RESULT; /// Creates an AuthCredential for the OAuth 2 provider identified -/// by provider ID, ID token, and access token. \param providerID The provider -/// ID associated with the Auth credential being created. +/// by provider ID, ID token, and access token. +/// \param providerID The provider ID associated with the Auth credential being +/// created. /// /// \param idToken The IDToken associated with the Auth credential being /// created. @@ -5106,8 +5167,9 @@ SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) accessToken:(NSString *_Nullable)accessToken SWIFT_WARN_UNUSED_RESULT; /// Creates an AuthCredential for the OAuth 2 provider identified -/// by provider ID, ID token, and access token. \param providerID The provider -/// ID associated with the Auth credential being created. +/// by provider ID, ID token, and access token. +/// \param providerID The provider ID associated with the Auth credential being +/// created. /// /// \param accessToken The access token associated with the Auth credential be /// created, if available. @@ -5120,8 +5182,9 @@ SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) accessToken:(NSString *_Nonnull)accessToken SWIFT_WARN_UNUSED_RESULT; /// Creates an AuthCredential for that OAuth 2 provider identified -/// by provider ID, ID token, raw nonce, and access token. \param providerID The -/// provider ID associated with the Auth credential being created. +/// by provider ID, ID token, raw nonce, and access token. +/// \param providerID The provider ID associated with the Auth credential being +/// created. /// /// \param idToken The IDToken associated with the Auth credential being /// created. @@ -5142,8 +5205,9 @@ SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) accessToken:(NSString *_Nonnull)accessToken SWIFT_WARN_UNUSED_RESULT; /// Creates an AuthCredential for that OAuth 2 provider identified -/// by providerID using an ID token and raw nonce. \param providerID The -/// provider ID associated with the Auth credential being created. +/// by providerID using an ID token and raw nonce. +/// \param providerID The provider ID associated with the Auth credential being +/// created. /// /// \param idToken The IDToken associated with the Auth credential being /// created. @@ -5164,6 +5228,10 @@ SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) /// \param uiDelegate An optional UI delegate used to present the mobile web /// flow. /// +/// \param completionHandler Optionally; a block which is invoked +/// asynchronously on the main thread when the mobile web flow is +/// completed. +/// - (void)getCredentialWithUIDelegate:(id _Nullable)uiDelegate completion:(void (^_Nonnull)( FIRAuthCredential *_Nullable, @@ -5175,8 +5243,9 @@ SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) /// Creates an AuthCredential for the Sign in with Apple OAuth 2 /// provider identified by ID token, raw nonce, and full name.This method is /// specific to the Sign in with Apple OAuth 2 provider as this provider -/// requires the full name to be passed explicitly. \param idToken The IDToken -/// associated with the Sign in with Apple Auth credential being created. +/// requires the full name to be passed explicitly. +/// \param idToken The IDToken associated with the Sign in with Apple Auth +/// credential being created. /// /// \param rawNonce The raw nonce associated with the Sign in with Apple Auth /// credential being created. @@ -5206,9 +5275,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) SWIFT_AVAILABILITY(ios, introduced = 13) @interface FIRPhoneAuthCredential : FIRAuthCredential -SWIFT_CLASS_PROPERTY(@property(nonatomic, class) BOOL supportsSecureCoding;) +SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly) + BOOL supportsSecureCoding;) + (BOOL)supportsSecureCoding SWIFT_WARN_UNUSED_RESULT; -+ (void)setSupportsSecureCoding:(BOOL)value; - (void)encodeWithCoder:(NSCoder *_Nonnull)coder; - (nullable instancetype)initWithCoder:(NSCoder *_Nonnull)coder OBJC_DESIGNATED_INITIALIZER; @@ -5233,8 +5302,9 @@ SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) /// Auth object. + (FIRPhoneAuthProvider *_Nonnull)provider SWIFT_WARN_UNUSED_RESULT; /// Returns an instance of PhoneAuthProvider for the provided -/// Auth object. \param auth The auth object to associate with the -/// phone auth provider instance. +/// Auth object. +/// \param auth The auth object to associate with the phone auth provider +/// instance. /// + (FIRPhoneAuthProvider *_Nonnull)providerWithAuth:(FIRAuth *_Nonnull)auth SWIFT_WARN_UNUSED_RESULT; @@ -5312,8 +5382,8 @@ SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, copy) NSError *_Nullable)) completion; /// Creates an AuthCredential for the phone number provider -/// identified by the verification ID and verification code. \param -/// verificationID The verification ID obtained from invoking +/// identified by the verification ID and verification code. +/// \param verificationID The verification ID obtained from invoking /// verifyPhoneNumber:completion: /// /// \param verificationCode The verification code obtained from the user. @@ -5355,8 +5425,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) @interface FIRPhoneMultiFactorGenerator : NSObject /// Initializes the MFA assertion to confirm ownership of the phone second /// factor. Note that this API is used for both enrolling and signing in with a -/// phone second factor. \param phoneAuthCredential The phone auth credential -/// used for multi factor flows. +/// phone second factor. +/// \param phoneAuthCredential The phone auth credential used for multi factor +/// flows. /// + (FIRPhoneMultiFactorAssertion *_Nonnull)assertionWithCredential: (FIRPhoneAuthCredential *_Nonnull)phoneAuthCredential @@ -5409,8 +5480,8 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) @interface FIRTOTPMultiFactorGenerator : NSObject /// Creates a TOTP secret as part of enrolling a TOTP second factor. Used for /// generating a QR code URL or inputting into a TOTP app. This method uses the -/// auth instance corresponding to the user in the multiFactorSession. \param -/// session The multiFactorSession instance. +/// auth instance corresponding to the user in the multiFactorSession. +/// \param session The multiFactorSession instance. /// /// \param completion Completion block /// @@ -5421,7 +5492,8 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) NSError *_Nullable))completion; /// Initializes the MFA assertion to confirm ownership of the TOTP second /// factor. This assertion is used to complete enrollment of TOTP as a second -/// factor. \param secret The TOTP secret. +/// factor. +/// \param secret The TOTP secret. /// /// \param oneTimePassword One time password string. /// @@ -5434,8 +5506,8 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) SWIFT_WARN_UNUSED_RESULT; /// Initializes the MFA assertion to confirm ownership of the TOTP second /// factor. This assertion is used to complete signIn with TOTP as a second -/// factor. \param enrollmentID The ID that identifies the enrolled TOTP second /// factor. +/// \param enrollmentID The ID that identifies the enrolled TOTP second factor. /// /// \param oneTimePassword one time password string. /// @@ -5460,7 +5532,8 @@ SWIFT_CLASS_NAMED("TOTPSecret") /// Returns a QRCode URL as described in /// https://github.com/google/google-authenticator/wiki/Key-Uri-Format. /// This can be displayed to the user as a QRCode to be scanned into a TOTP app -/// like Google Authenticator. \param accountName The name of the account/app. +/// like Google Authenticator. +/// \param accountName The name of the account/app. /// /// \param issuer Issuer of the TOTP(likely the app name). /// @@ -5677,9 +5750,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// Reloads the user’s profile data from the server. /// May fail with an AuthErrorCodeRequiresRecentLogin error code. /// In this case you should call reauthenticate(with:) before -/// re-invoking updateEmail(to:). \param completion Optionally; the -/// block invoked when the reload has finished. Invoked asynchronously on the -/// main thread in the future. +/// re-invoking updateEmail(to:). +/// \param completion Optionally; the block invoked when the reload has +/// finished. Invoked asynchronously on the main thread in the future. /// - (void)reloadWithCompletion:(void (^_Nullable)(NSError *_Nullable))completion; /// Renews the user’s authentication tokens by validating a fresh set of @@ -5757,16 +5830,18 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) (void (^_Nullable)(FIRAuthDataResult *_Nullable, NSError *_Nullable))completion; /// Retrieves the Firebase authentication token, possibly refreshing it if it -/// has expired. \param completion Optionally; the block invoked when the token -/// is available. Invoked asynchronously on the main thread in the future. +/// has expired. +/// \param completion Optionally; the block invoked when the token is available. +/// Invoked asynchronously on the main thread in the future. /// - (void)getIDTokenWithCompletion: (void (^_Nullable)(NSString *_Nullable, NSError *_Nullable))completion; /// Retrieves the Firebase authentication token, possibly refreshing it if it /// has expired. The authentication token will be refreshed (by making a network /// request) if it has expired, or if forceRefresh is -/// true. \param forceRefresh Forces a token refresh. Useful if the -/// token becomes invalid for some reason other than an expiration. +/// true. +/// \param forceRefresh Forces a token refresh. Useful if the token becomes +/// invalid for some reason other than an expiration. /// /// \param completion Optionally; the block invoked when the token is available. /// Invoked asynchronously on the main thread in the future. @@ -5776,8 +5851,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) (void (^_Nullable)(NSString *_Nullable, NSError *_Nullable))completion; /// Retrieves the Firebase authentication token, possibly refreshing it if it -/// has expired. \param completion Optionally; the block invoked when the token -/// is available. Invoked asynchronously on the main thread in the future. +/// has expired. +/// \param completion Optionally; the block invoked when the token is available. +/// Invoked asynchronously on the main thread in the future. /// - (void)getIDTokenResultWithCompletion: (void (^_Nullable)(FIRAuthTokenResult *_Nullable, @@ -5785,8 +5861,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// Retrieves the Firebase authentication token, possibly refreshing it if it /// has expired. The authentication token will be refreshed (by making a network /// request) if it has expired, or if forcingRefresh is -/// true. \param forcingRefresh Forces a token refresh. Useful if -/// the token becomes invalid for some reason other than an expiration. +/// true. +/// \param forcingRefresh Forces a token refresh. Useful if the token becomes +/// invalid for some reason other than an expiration. /// /// \param completion Optionally; the block invoked when the token is available. /// Invoked asynchronously on the main thread in the future. @@ -5815,8 +5892,8 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// /// This method may also return error codes associated with /// updateEmail(to:) and updatePassword(to:) on -/// User. \param credential The credential for the identity -/// provider. +/// User. +/// \param credential The credential for the identity provider. /// /// \param completion Optionally; the block invoked when the unlinking is /// complete, or fails. @@ -5938,7 +6015,8 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// - (void)deleteWithCompletion:(void (^_Nullable)(NSError *_Nullable))completion; /// Send an email to verify the ownership of the account then update to the new -/// email. \param email The email to be updated to. +/// email. +/// \param email The email to be updated to. /// /// \param completion Optionally; the block invoked when the request to send the /// verification email is complete, or fails. @@ -5948,7 +6026,8 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) (void (^_Nullable)( NSError *_Nullable))completion; /// Send an email to verify the ownership of the account then update to the new -/// email. \param email The email to be updated to. +/// email. +/// \param email The email to be updated to. /// /// \param actionCodeSettings An ActionCodeSettings object /// containing settings related to handling action codes. @@ -6041,8 +6120,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// Commits any pending changes. /// Invoked asynchronously on the main thread in the future. /// This method should only be called once.Once called, property values should -/// not be changed. \param completion Optionally; the block invoked when the -/// user profile change has been applied. +/// not be changed. +/// \param completion Optionally; the block invoked when the user profile change +/// has been applied. /// - (void)commitChangesWithCompletion: (void (^_Nullable)(NSError *_Nullable))completion; diff --git a/ios_pod/swift_headers/FirebaseCoreInternal-Swift.h b/ios_pod/swift_headers/FirebaseCoreInternal-Swift.h index db063dc7a7..74c3846184 100644 --- a/ios_pod/swift_headers/FirebaseCoreInternal-Swift.h +++ b/ios_pod/swift_headers/FirebaseCoreInternal-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.2.0. +// Copied from Firebase iOS SDK 11.6.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -355,6 +355,14 @@ SWIFT_CLASS_NAMED("_ObjC_HeartbeatController") /// returns: /// A heartbeats payload for the flushed heartbeat(s). - (FIRHeartbeatsPayload* _Nonnull)flush SWIFT_WARN_UNUSED_RESULT; +/// Asynchronously flushes heartbeats from storage into a heartbeats payload. +/// note: +/// This API is thread-safe. +/// +/// returns: +/// A heartbeats payload for the flushed heartbeat(s). +- (void)flushAsyncWithCompletionHandler: + (void (^_Nonnull)(FIRHeartbeatsPayload* _Nonnull))completionHandler; /// Synchronously flushes the heartbeat for today. /// If no heartbeat was logged today, the returned payload is empty. /// note: @@ -394,7 +402,7 @@ SWIFT_CLASS_NAMED("_ObjC_HeartbeatsPayload") #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.2.0. +// Copied from Firebase iOS SDK 11.6.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -748,6 +756,14 @@ SWIFT_CLASS_NAMED("_ObjC_HeartbeatController") /// returns: /// A heartbeats payload for the flushed heartbeat(s). - (FIRHeartbeatsPayload* _Nonnull)flush SWIFT_WARN_UNUSED_RESULT; +/// Asynchronously flushes heartbeats from storage into a heartbeats payload. +/// note: +/// This API is thread-safe. +/// +/// returns: +/// A heartbeats payload for the flushed heartbeat(s). +- (void)flushAsyncWithCompletionHandler: + (void (^_Nonnull)(FIRHeartbeatsPayload* _Nonnull))completionHandler; /// Synchronously flushes the heartbeat for today. /// If no heartbeat was logged today, the returned payload is empty. /// note: diff --git a/ios_pod/swift_headers/FirebaseDatabase-Swift.h b/ios_pod/swift_headers/FirebaseDatabase-Swift.h index 205b5c77c7..0e7da41c12 100644 --- a/ios_pod/swift_headers/FirebaseDatabase-Swift.h +++ b/ios_pod/swift_headers/FirebaseDatabase-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.2.0. +// Copied from Firebase iOS SDK 11.6.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -338,7 +338,7 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.2.0. +// Copied from Firebase iOS SDK 11.6.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) diff --git a/ios_pod/swift_headers/FirebaseFirestore-Swift.h b/ios_pod/swift_headers/FirebaseFirestore-Swift.h index 6958c09229..3c3f6d07f1 100644 --- a/ios_pod/swift_headers/FirebaseFirestore-Swift.h +++ b/ios_pod/swift_headers/FirebaseFirestore-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.2.0. +// Copied from Firebase iOS SDK 11.6.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -346,7 +346,7 @@ SWIFT_CLASS_PROPERTY(@property(nonatomic, class, readonly, #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.2.0. +// Copied from Firebase iOS SDK 11.6.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) diff --git a/ios_pod/swift_headers/FirebaseFunctions-Swift.h b/ios_pod/swift_headers/FirebaseFunctions-Swift.h index f859e931b4..18213c930d 100644 --- a/ios_pod/swift_headers/FirebaseFunctions-Swift.h +++ b/ios_pod/swift_headers/FirebaseFunctions-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.2.0. +// Copied from Firebase iOS SDK 11.6.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -346,8 +346,8 @@ SWIFT_CLASS_NAMED("Functions") /// FirebaseApp. + (FIRFunctions* _Nonnull)functions SWIFT_WARN_UNUSED_RESULT; /// Creates a Cloud Functions client with the given app, or returns a -/// pre-existing instance if one already exists. \param app The app for the -/// Firebase project. +/// pre-existing instance if one already exists. +/// \param app The app for the Firebase project. /// /// /// returns: @@ -366,8 +366,9 @@ SWIFT_CLASS_NAMED("Functions") + (FIRFunctions* _Nonnull)functionsForRegion:(NSString* _Nonnull)region SWIFT_WARN_UNUSED_RESULT; /// Creates a Cloud Functions client with the given custom domain or returns a -/// pre-existing instance if one already exists. \param customDomain A custom -/// domain for the HTTP trigger, such as “https://mydomain.com”. +/// pre-existing instance if one already exists. +/// \param customDomain A custom domain for the HTTP trigger, such as +/// “https://mydomain.com”. /// /// /// returns: @@ -376,8 +377,8 @@ SWIFT_CLASS_NAMED("Functions") + (FIRFunctions* _Nonnull)functionsForCustomDomain: (NSString* _Nonnull)customDomain SWIFT_WARN_UNUSED_RESULT; /// Creates a Cloud Functions client with the given app and region, or returns a -/// pre-existing instance if one already exists. \param app The app for the -/// Firebase project. +/// pre-existing instance if one already exists. +/// \param app The app for the Firebase project. /// /// \param region The region for the HTTP trigger, such as /// us-central1. @@ -389,8 +390,8 @@ SWIFT_CLASS_NAMED("Functions") region:(NSString* _Nonnull)region SWIFT_WARN_UNUSED_RESULT; /// Creates a Cloud Functions client with the given app and custom domain, or -/// returns a pre-existing instance if one already exists. \param app The app -/// for the Firebase project. +/// returns a pre-existing instance if one already exists. +/// \param app The app for the Firebase project. /// /// \param customDomain A custom domain for the HTTP trigger, such as /// https://mydomain.com. @@ -411,7 +412,8 @@ SWIFT_CLASS_NAMED("Functions") - (FIRHTTPSCallable* _Nonnull)HTTPSCallableWithName:(NSString* _Nonnull)name SWIFT_WARN_UNUSED_RESULT; /// Creates a reference to the Callable HTTPS trigger with the given name and -/// configuration options. \param name The name of the Callable HTTPS trigger. +/// configuration options. +/// \param name The name of the Callable HTTPS trigger. /// /// \param options The options with which to customize the Callable HTTPS /// trigger. @@ -432,7 +434,8 @@ SWIFT_CLASS_NAMED("Functions") - (FIRHTTPSCallable* _Nonnull)HTTPSCallableWithURL:(NSURL* _Nonnull)url SWIFT_WARN_UNUSED_RESULT; /// Creates a reference to the Callable HTTPS trigger with the given name and -/// configuration options. \param url The URL of the Callable HTTPS trigger. +/// configuration options. +/// \param url The URL of the Callable HTTPS trigger. /// /// \param options The options with which to customize the Callable HTTPS /// trigger. @@ -552,8 +555,8 @@ SWIFT_CLASS_NAMED("HTTPSCallable") /// also automatically included. Firebase Cloud Messaging sends data to the /// Firebase backend periodically to collect information regarding the app /// instance. To stop this, see Messaging.deleteData(). It resumes -/// with a new FCM Token the next time you call this method. \param data -/// Parameters to pass to the trigger. +/// with a new FCM Token the next time you call this method. +/// \param data Parameters to pass to the trigger. /// /// \param completion The block to call when the HTTPS request has completed. /// @@ -569,8 +572,8 @@ SWIFT_CLASS_NAMED("HTTPSCallable") /// information /// regarding the app instance. To stop this, see /// Messaging.deleteData(). It resumes with a new FCM Token the -/// next time you call this method. \param completion The block to call when the -/// HTTPS request has completed. +/// next time you call this method. +/// \param completion The block to call when the HTTPS request has completed. /// - (void)callWithCompletion:(void (^_Nonnull)(FIRHTTPSCallableResult* _Nullable, NSError* _Nullable))completion; @@ -619,7 +622,7 @@ SWIFT_CLASS_NAMED("HTTPSCallableResult") #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.2.0. +// Copied from Firebase iOS SDK 11.6.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -964,8 +967,8 @@ SWIFT_CLASS_NAMED("Functions") /// FirebaseApp. + (FIRFunctions* _Nonnull)functions SWIFT_WARN_UNUSED_RESULT; /// Creates a Cloud Functions client with the given app, or returns a -/// pre-existing instance if one already exists. \param app The app for the -/// Firebase project. +/// pre-existing instance if one already exists. +/// \param app The app for the Firebase project. /// /// /// returns: @@ -984,8 +987,9 @@ SWIFT_CLASS_NAMED("Functions") + (FIRFunctions* _Nonnull)functionsForRegion:(NSString* _Nonnull)region SWIFT_WARN_UNUSED_RESULT; /// Creates a Cloud Functions client with the given custom domain or returns a -/// pre-existing instance if one already exists. \param customDomain A custom -/// domain for the HTTP trigger, such as “https://mydomain.com”. +/// pre-existing instance if one already exists. +/// \param customDomain A custom domain for the HTTP trigger, such as +/// “https://mydomain.com”. /// /// /// returns: @@ -994,8 +998,8 @@ SWIFT_CLASS_NAMED("Functions") + (FIRFunctions* _Nonnull)functionsForCustomDomain: (NSString* _Nonnull)customDomain SWIFT_WARN_UNUSED_RESULT; /// Creates a Cloud Functions client with the given app and region, or returns a -/// pre-existing instance if one already exists. \param app The app for the -/// Firebase project. +/// pre-existing instance if one already exists. +/// \param app The app for the Firebase project. /// /// \param region The region for the HTTP trigger, such as /// us-central1. @@ -1007,8 +1011,8 @@ SWIFT_CLASS_NAMED("Functions") region:(NSString* _Nonnull)region SWIFT_WARN_UNUSED_RESULT; /// Creates a Cloud Functions client with the given app and custom domain, or -/// returns a pre-existing instance if one already exists. \param app The app -/// for the Firebase project. +/// returns a pre-existing instance if one already exists. +/// \param app The app for the Firebase project. /// /// \param customDomain A custom domain for the HTTP trigger, such as /// https://mydomain.com. @@ -1029,7 +1033,8 @@ SWIFT_CLASS_NAMED("Functions") - (FIRHTTPSCallable* _Nonnull)HTTPSCallableWithName:(NSString* _Nonnull)name SWIFT_WARN_UNUSED_RESULT; /// Creates a reference to the Callable HTTPS trigger with the given name and -/// configuration options. \param name The name of the Callable HTTPS trigger. +/// configuration options. +/// \param name The name of the Callable HTTPS trigger. /// /// \param options The options with which to customize the Callable HTTPS /// trigger. @@ -1050,7 +1055,8 @@ SWIFT_CLASS_NAMED("Functions") - (FIRHTTPSCallable* _Nonnull)HTTPSCallableWithURL:(NSURL* _Nonnull)url SWIFT_WARN_UNUSED_RESULT; /// Creates a reference to the Callable HTTPS trigger with the given name and -/// configuration options. \param url The URL of the Callable HTTPS trigger. +/// configuration options. +/// \param url The URL of the Callable HTTPS trigger. /// /// \param options The options with which to customize the Callable HTTPS /// trigger. @@ -1170,8 +1176,8 @@ SWIFT_CLASS_NAMED("HTTPSCallable") /// also automatically included. Firebase Cloud Messaging sends data to the /// Firebase backend periodically to collect information regarding the app /// instance. To stop this, see Messaging.deleteData(). It resumes -/// with a new FCM Token the next time you call this method. \param data -/// Parameters to pass to the trigger. +/// with a new FCM Token the next time you call this method. +/// \param data Parameters to pass to the trigger. /// /// \param completion The block to call when the HTTPS request has completed. /// @@ -1187,8 +1193,8 @@ SWIFT_CLASS_NAMED("HTTPSCallable") /// information /// regarding the app instance. To stop this, see /// Messaging.deleteData(). It resumes with a new FCM Token the -/// next time you call this method. \param completion The block to call when the -/// HTTPS request has completed. +/// next time you call this method. +/// \param completion The block to call when the HTTPS request has completed. /// - (void)callWithCompletion:(void (^_Nonnull)(FIRHTTPSCallableResult* _Nullable, NSError* _Nullable))completion; diff --git a/ios_pod/swift_headers/FirebaseInAppMessaging-Swift.h b/ios_pod/swift_headers/FirebaseInAppMessaging-Swift.h index 5c5068d1c5..1297fb6135 100644 --- a/ios_pod/swift_headers/FirebaseInAppMessaging-Swift.h +++ b/ios_pod/swift_headers/FirebaseInAppMessaging-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.2.0. +// Copied from Firebase iOS SDK 11.6.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -337,7 +337,7 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.2.0. +// Copied from Firebase iOS SDK 11.6.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) diff --git a/ios_pod/swift_headers/FirebaseMLModelDownloader-Swift.h b/ios_pod/swift_headers/FirebaseMLModelDownloader-Swift.h index d8fa7da60a..cbdf583382 100644 --- a/ios_pod/swift_headers/FirebaseMLModelDownloader-Swift.h +++ b/ios_pod/swift_headers/FirebaseMLModelDownloader-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.2.0. +// Copied from Firebase iOS SDK 11.6.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -338,7 +338,7 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.2.0. +// Copied from Firebase iOS SDK 11.6.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) diff --git a/ios_pod/swift_headers/FirebaseRemoteConfig-Swift.h b/ios_pod/swift_headers/FirebaseRemoteConfig-Swift.h index f25767e18a..88701f47cf 100644 --- a/ios_pod/swift_headers/FirebaseRemoteConfig-Swift.h +++ b/ios_pod/swift_headers/FirebaseRemoteConfig-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.2.0. +// Copied from Firebase iOS SDK 11.6.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -338,7 +338,7 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.2.0. +// Copied from Firebase iOS SDK 11.6.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) diff --git a/ios_pod/swift_headers/FirebaseSessions-Swift.h b/ios_pod/swift_headers/FirebaseSessions-Swift.h index 54742b8197..489a2cb6d8 100644 --- a/ios_pod/swift_headers/FirebaseSessions-Swift.h +++ b/ios_pod/swift_headers/FirebaseSessions-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.2.0. +// Copied from Firebase iOS SDK 11.6.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -383,7 +383,7 @@ typedef SWIFT_ENUM_NAMED(NSInteger, FIRSessionsSubscriberName, #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.2.0. +// Copied from Firebase iOS SDK 11.6.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) diff --git a/ios_pod/swift_headers/FirebaseSharedSwift-Swift.h b/ios_pod/swift_headers/FirebaseSharedSwift-Swift.h index 0a7e8797bf..305e5cd5f0 100644 --- a/ios_pod/swift_headers/FirebaseSharedSwift-Swift.h +++ b/ios_pod/swift_headers/FirebaseSharedSwift-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.2.0. +// Copied from Firebase iOS SDK 11.6.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -337,7 +337,7 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.2.0. +// Copied from Firebase iOS SDK 11.6.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) diff --git a/ios_pod/swift_headers/FirebaseStorage-Swift.h b/ios_pod/swift_headers/FirebaseStorage-Swift.h index d3adea86ed..06f5e0fd59 100644 --- a/ios_pod/swift_headers/FirebaseStorage-Swift.h +++ b/ios_pod/swift_headers/FirebaseStorage-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.2.0. +// Copied from Firebase iOS SDK 11.6.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -358,8 +358,8 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// A method used to create Storage instances initialized with a /// custom storage bucket URL. Any StorageReferences generated from /// this instance of Storage will reference files and directories -/// within the specified bucket. \param url The gs:// URL to your -/// Firebase Storage bucket. +/// within the specified bucket. +/// \param url The gs:// URL to your Firebase Storage bucket. /// /// /// returns: @@ -369,8 +369,8 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// Creates an instance of Storage, configured with a custom /// FirebaseApp. StorageReferences generated from a /// resulting instance will reference files in the Firebase project associated -/// with custom FirebaseApp. \param app The custom -/// FirebaseApp used for initialization. +/// with custom FirebaseApp. +/// \param app The custom FirebaseApp used for initialization. /// /// /// returns: @@ -379,8 +379,8 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) + (FIRStorage *_Nonnull)storageForApp:(FIRApp *_Nonnull)app SWIFT_WARN_UNUSED_RESULT; /// Creates an instance of Storage, configured with a custom -/// FirebaseApp and a custom storage bucket URL. \param app The -/// custom FirebaseApp used for initialization. +/// FirebaseApp and a custom storage bucket URL. +/// \param app The custom FirebaseApp used for initialization. /// /// \param url The gs:// url to your Firebase Storage bucket. /// @@ -442,8 +442,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) SWIFT_AVAILABILITY(tvos, introduced = 13) SWIFT_AVAILABILITY(ios, introduced = 13); /// Creates a StorageReference initialized at a location specified -/// by the path parameter. \param path A relative path from the -/// root of the storage bucket, for instance @“path/to/object”. +/// by the path parameter. +/// \param path A relative path from the root of the storage bucket, +/// for instance @“path/to/object”. /// /// /// returns: @@ -452,8 +453,8 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) SWIFT_WARN_UNUSED_RESULT; /// Configures the Storage SDK to use an emulated backend instead of the default /// remote backend. This method should be called before invoking any other -/// methods on a new instance of Storage. \param host A string -/// specifying the host. +/// methods on a new instance of Storage. +/// \param host A string specifying the host. /// /// \param port The port specified as an Int. /// @@ -517,7 +518,8 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) SWIFT_AVAILABILITY(ios, introduced = 13) @interface FIRStorageObservableTask : FIRStorageTask /// Observes changes in the upload status: Resume, Pause, Progress, Success, and -/// Failure. \param status The StorageTaskStatus change to observe. +/// Failure. +/// \param status The StorageTaskStatus change to observe. /// /// \param handler A callback that fires every time the status event occurs, /// containing a StorageTaskSnapshot describing task state. @@ -731,7 +733,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) - (FIRStorageReference *_Nonnull)root SWIFT_WARN_UNUSED_RESULT; /// Creates a new StorageReference pointing to the parent of the /// current reference or nil if this instance references the root -/// location. \code For example: +/// location. +/// \code +/// For example: /// path = foo/bar/baz parent = foo/bar /// path = foo parent = (root) /// path = (root) parent = nil @@ -742,7 +746,8 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// reference. - (FIRStorageReference *_Nullable)parent SWIFT_WARN_UNUSED_RESULT; /// Creates a new StorageReference pointing to a child object of -/// the current reference. \code +/// the current reference. +/// \code /// path = foo child = bar newPath = foo/bar /// path = foo/bar child = baz ntask.impl.snapshotwPath = foo/bar/baz /// All leading and trailing slashes will be removed, and consecutive slashes @@ -776,8 +781,8 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) (FIRStorageMetadata *_Nullable)metadata; /// Asynchronously uploads data to the currently specified /// StorageReference. This is not recommended for large files, and -/// one should instead upload a file from disk. \param uploadData The data to -/// upload. +/// one should instead upload a file from disk. +/// \param uploadData The data to upload. /// /// /// returns: @@ -786,8 +791,8 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) - (FIRStorageUploadTask *_Nonnull)putData:(NSData *_Nonnull)uploadData; /// Asynchronously uploads data to the currently specified /// StorageReference. This is not recommended for large files, and -/// one should instead upload a file from disk. \param uploadData The data to -/// upload. +/// one should instead upload a file from disk. +/// \param uploadData The data to upload. /// /// \param metadata StorageMetadata containing additional /// information (MIME type, etc.) about the object being uploaded. @@ -805,8 +810,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) completion:(void (^_Nullable)(FIRStorageMetadata *_Nullable, NSError *_Nullable))completion; /// Asynchronously uploads a file to the currently specified -/// StorageReference. \param fileURL A URL representing the system -/// file path of the object to be uploaded. +/// StorageReference. +/// \param fileURL A URL representing the system file path of the object to be +/// uploaded. /// /// \param metadata StorageMetadata containing additional /// information (MIME type, etc.) about the object being uploaded. @@ -826,8 +832,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// manage the upload. - (FIRStorageUploadTask *_Nonnull)putFile:(NSURL *_Nonnull)fileURL; /// Asynchronously uploads a file to the currently specified -/// StorageReference. \param fileURL A URL representing the system -/// file path of the object to be uploaded. +/// StorageReference. +/// \param fileURL A URL representing the system file path of the object to be +/// uploaded. /// /// \param metadata StorageMetadata containing additional /// information (MIME type, etc.) about the object being uploaded. @@ -848,9 +855,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// a Data instance in memory. A Data buffer of the /// provided max size will be allocated, so ensure that the device has enough /// free memory to complete the download. For downloading large files, -/// write(toFile:) may be a better option. \param maxSize The -/// maximum size in bytes to download. If the download exceeds this size, the -/// task will be cancelled and an error will be returned. +/// write(toFile:) may be a better option. +/// \param maxSize The maximum size in bytes to download. If the download +/// exceeds this size, the task will be cancelled and an error will be returned. /// /// \param completion A completion block that either returns the object data on /// success, or an error on failure. @@ -865,8 +872,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) NSError *_Nullable))completion; /// Asynchronously retrieves a long lived download URL with a revokable token. /// This can be used to share the file with others, but can be revoked by a -/// developer in the Firebase Console. \param completion A completion block that -/// either returns the URL on success, or an error on failure. +/// developer in the Firebase Console. +/// \param completion A completion block that either returns the URL on success, +/// or an error on failure. /// - (void)downloadURLWithCompletion: (void (^_Nonnull)(NSURL *_Nullable, NSError *_Nullable))completion; @@ -882,8 +890,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// - (FIRStorageDownloadTask *_Nonnull)writeToFile:(NSURL *_Nonnull)fileURL; /// Asynchronously downloads the object at the current path to a specified -/// system filepath. \param fileURL A file system URL representing the path the -/// object should be downloaded to. +/// system filepath. +/// \param fileURL A file system URL representing the path the object should be +/// downloaded to. /// /// \param completion A closure that fires when the file download completes, /// passed either a URL pointing to the file path of the downloaded file on @@ -903,9 +912,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// of the result is not guaranteed if objects are inserted or removed while /// this operation is executing. All results are buffered in memory. /// listAll(completion:) is only available for projects using -/// Firebase Rules Version 2. \param completion A completion handler that will -/// be invoked with all items and prefixes under the current -/// StorageReference. +/// Firebase Rules Version 2. +/// \param completion A completion handler that will be invoked with all items +/// and prefixes under the current StorageReference. /// - (void)listAllWithCompletion:(void (^_Nonnull)(FIRStorageListResult *_Nullable, NSError *_Nullable))completion; @@ -930,9 +939,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// as a path delimiter. Storage does not support unsupported object paths that /// end with “/” or contain two consecutive “/“s. All invalid objects in GCS /// will be filtered. list(maxResults:pageToken:completion:)is only -/// available for projects using Firebase Rules Version 2. \param maxResults The -/// maximum number of results to return in a single page. Must be greater than 0 -/// and at most 1000. +/// available for projects using Firebase Rules Version 2. +/// \param maxResults The maximum number of results to return in a single page. +/// Must be greater than 0 and at most 1000. /// /// \param pageToken A page token from a previous call to list. /// @@ -1050,7 +1059,7 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.2.0. +// Copied from Firebase iOS SDK 11.6.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -1407,8 +1416,8 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// A method used to create Storage instances initialized with a /// custom storage bucket URL. Any StorageReferences generated from /// this instance of Storage will reference files and directories -/// within the specified bucket. \param url The gs:// URL to your -/// Firebase Storage bucket. +/// within the specified bucket. +/// \param url The gs:// URL to your Firebase Storage bucket. /// /// /// returns: @@ -1418,8 +1427,8 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// Creates an instance of Storage, configured with a custom /// FirebaseApp. StorageReferences generated from a /// resulting instance will reference files in the Firebase project associated -/// with custom FirebaseApp. \param app The custom -/// FirebaseApp used for initialization. +/// with custom FirebaseApp. +/// \param app The custom FirebaseApp used for initialization. /// /// /// returns: @@ -1428,8 +1437,8 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) + (FIRStorage *_Nonnull)storageForApp:(FIRApp *_Nonnull)app SWIFT_WARN_UNUSED_RESULT; /// Creates an instance of Storage, configured with a custom -/// FirebaseApp and a custom storage bucket URL. \param app The -/// custom FirebaseApp used for initialization. +/// FirebaseApp and a custom storage bucket URL. +/// \param app The custom FirebaseApp used for initialization. /// /// \param url The gs:// url to your Firebase Storage bucket. /// @@ -1491,8 +1500,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) SWIFT_AVAILABILITY(tvos, introduced = 13) SWIFT_AVAILABILITY(ios, introduced = 13); /// Creates a StorageReference initialized at a location specified -/// by the path parameter. \param path A relative path from the -/// root of the storage bucket, for instance @“path/to/object”. +/// by the path parameter. +/// \param path A relative path from the root of the storage bucket, +/// for instance @“path/to/object”. /// /// /// returns: @@ -1501,8 +1511,8 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) SWIFT_WARN_UNUSED_RESULT; /// Configures the Storage SDK to use an emulated backend instead of the default /// remote backend. This method should be called before invoking any other -/// methods on a new instance of Storage. \param host A string -/// specifying the host. +/// methods on a new instance of Storage. +/// \param host A string specifying the host. /// /// \param port The port specified as an Int. /// @@ -1566,7 +1576,8 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) SWIFT_AVAILABILITY(ios, introduced = 13) @interface FIRStorageObservableTask : FIRStorageTask /// Observes changes in the upload status: Resume, Pause, Progress, Success, and -/// Failure. \param status The StorageTaskStatus change to observe. +/// Failure. +/// \param status The StorageTaskStatus change to observe. /// /// \param handler A callback that fires every time the status event occurs, /// containing a StorageTaskSnapshot describing task state. @@ -1780,7 +1791,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) - (FIRStorageReference *_Nonnull)root SWIFT_WARN_UNUSED_RESULT; /// Creates a new StorageReference pointing to the parent of the /// current reference or nil if this instance references the root -/// location. \code For example: +/// location. +/// \code +/// For example: /// path = foo/bar/baz parent = foo/bar /// path = foo parent = (root) /// path = (root) parent = nil @@ -1791,7 +1804,8 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// reference. - (FIRStorageReference *_Nullable)parent SWIFT_WARN_UNUSED_RESULT; /// Creates a new StorageReference pointing to a child object of -/// the current reference. \code +/// the current reference. +/// \code /// path = foo child = bar newPath = foo/bar /// path = foo/bar child = baz ntask.impl.snapshotwPath = foo/bar/baz /// All leading and trailing slashes will be removed, and consecutive slashes @@ -1825,8 +1839,8 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) (FIRStorageMetadata *_Nullable)metadata; /// Asynchronously uploads data to the currently specified /// StorageReference. This is not recommended for large files, and -/// one should instead upload a file from disk. \param uploadData The data to -/// upload. +/// one should instead upload a file from disk. +/// \param uploadData The data to upload. /// /// /// returns: @@ -1835,8 +1849,8 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) - (FIRStorageUploadTask *_Nonnull)putData:(NSData *_Nonnull)uploadData; /// Asynchronously uploads data to the currently specified /// StorageReference. This is not recommended for large files, and -/// one should instead upload a file from disk. \param uploadData The data to -/// upload. +/// one should instead upload a file from disk. +/// \param uploadData The data to upload. /// /// \param metadata StorageMetadata containing additional /// information (MIME type, etc.) about the object being uploaded. @@ -1854,8 +1868,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) completion:(void (^_Nullable)(FIRStorageMetadata *_Nullable, NSError *_Nullable))completion; /// Asynchronously uploads a file to the currently specified -/// StorageReference. \param fileURL A URL representing the system -/// file path of the object to be uploaded. +/// StorageReference. +/// \param fileURL A URL representing the system file path of the object to be +/// uploaded. /// /// \param metadata StorageMetadata containing additional /// information (MIME type, etc.) about the object being uploaded. @@ -1875,8 +1890,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// manage the upload. - (FIRStorageUploadTask *_Nonnull)putFile:(NSURL *_Nonnull)fileURL; /// Asynchronously uploads a file to the currently specified -/// StorageReference. \param fileURL A URL representing the system -/// file path of the object to be uploaded. +/// StorageReference. +/// \param fileURL A URL representing the system file path of the object to be +/// uploaded. /// /// \param metadata StorageMetadata containing additional /// information (MIME type, etc.) about the object being uploaded. @@ -1897,9 +1913,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// a Data instance in memory. A Data buffer of the /// provided max size will be allocated, so ensure that the device has enough /// free memory to complete the download. For downloading large files, -/// write(toFile:) may be a better option. \param maxSize The -/// maximum size in bytes to download. If the download exceeds this size, the -/// task will be cancelled and an error will be returned. +/// write(toFile:) may be a better option. +/// \param maxSize The maximum size in bytes to download. If the download +/// exceeds this size, the task will be cancelled and an error will be returned. /// /// \param completion A completion block that either returns the object data on /// success, or an error on failure. @@ -1914,8 +1930,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) NSError *_Nullable))completion; /// Asynchronously retrieves a long lived download URL with a revokable token. /// This can be used to share the file with others, but can be revoked by a -/// developer in the Firebase Console. \param completion A completion block that -/// either returns the URL on success, or an error on failure. +/// developer in the Firebase Console. +/// \param completion A completion block that either returns the URL on success, +/// or an error on failure. /// - (void)downloadURLWithCompletion: (void (^_Nonnull)(NSURL *_Nullable, NSError *_Nullable))completion; @@ -1931,8 +1948,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// - (FIRStorageDownloadTask *_Nonnull)writeToFile:(NSURL *_Nonnull)fileURL; /// Asynchronously downloads the object at the current path to a specified -/// system filepath. \param fileURL A file system URL representing the path the -/// object should be downloaded to. +/// system filepath. +/// \param fileURL A file system URL representing the path the object should be +/// downloaded to. /// /// \param completion A closure that fires when the file download completes, /// passed either a URL pointing to the file path of the downloaded file on @@ -1952,9 +1970,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// of the result is not guaranteed if objects are inserted or removed while /// this operation is executing. All results are buffered in memory. /// listAll(completion:) is only available for projects using -/// Firebase Rules Version 2. \param completion A completion handler that will -/// be invoked with all items and prefixes under the current -/// StorageReference. +/// Firebase Rules Version 2. +/// \param completion A completion handler that will be invoked with all items +/// and prefixes under the current StorageReference. /// - (void)listAllWithCompletion:(void (^_Nonnull)(FIRStorageListResult *_Nullable, NSError *_Nullable))completion; @@ -1979,9 +1997,9 @@ SWIFT_AVAILABILITY(watchos, introduced = 7) /// as a path delimiter. Storage does not support unsupported object paths that /// end with “/” or contain two consecutive “/“s. All invalid objects in GCS /// will be filtered. list(maxResults:pageToken:completion:)is only -/// available for projects using Firebase Rules Version 2. \param maxResults The -/// maximum number of results to return in a single page. Must be greater than 0 -/// and at most 1000. +/// available for projects using Firebase Rules Version 2. +/// \param maxResults The maximum number of results to return in a single page. +/// Must be greater than 0 and at most 1000. /// /// \param pageToken A page token from a previous call to list. /// diff --git a/ios_pod/swift_headers/Promises-Swift.h b/ios_pod/swift_headers/Promises-Swift.h index c729d60da4..5d3f38f3b2 100644 --- a/ios_pod/swift_headers/Promises-Swift.h +++ b/ios_pod/swift_headers/Promises-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.2.0. +// Copied from Firebase iOS SDK 11.6.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -336,7 +336,7 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.2.0. +// Copied from Firebase iOS SDK 11.6.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) diff --git a/ios_pod/swift_headers/SwiftProtobuf-Swift.h b/ios_pod/swift_headers/SwiftProtobuf-Swift.h index ff89de94fb..d4c4dcbf42 100644 --- a/ios_pod/swift_headers/SwiftProtobuf-Swift.h +++ b/ios_pod/swift_headers/SwiftProtobuf-Swift.h @@ -1,7 +1,7 @@ #if 0 #elif defined(__arm64__) && __arm64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.2.0. +// Copied from Firebase iOS SDK 11.6.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) @@ -337,7 +337,7 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #elif defined(__x86_64__) && __x86_64__ // Copyright 2024 Google LLC -// Copied from Firebase iOS SDK 11.2.0. +// Copied from Firebase iOS SDK 11.6.0. // Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 // clang-1500.1.0.2.5) diff --git a/messaging/integration_test/Podfile b/messaging/integration_test/Podfile index 025bd16fad..86721eb768 100644 --- a/messaging/integration_test/Podfile +++ b/messaging/integration_test/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Messaging', '11.4.2' - pod 'Firebase/Functions', '11.4.2' + pod 'Firebase/Messaging', '11.6.0' + pod 'Firebase/Functions', '11.6.0' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/Messaging', '11.4.2' - pod 'Firebase/Functions', '11.4.2' + pod 'Firebase/Messaging', '11.6.0' + pod 'Firebase/Functions', '11.6.0' end post_install do |installer| diff --git a/messaging/messaging_java/build.gradle b/messaging/messaging_java/build.gradle index 46c7ad790e..f48cfa1b83 100644 --- a/messaging/messaging_java/build.gradle +++ b/messaging/messaging_java/build.gradle @@ -61,7 +61,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.5.1') + implementation platform('com.google.firebase:firebase-bom:33.7.0') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-messaging' implementation 'com.google.flatbuffers:flatbuffers-java:1.12.0' diff --git a/release_build_files/Android/firebase_dependencies.gradle b/release_build_files/Android/firebase_dependencies.gradle index aaf7d9453c..66967593e1 100644 --- a/release_build_files/Android/firebase_dependencies.gradle +++ b/release_build_files/Android/firebase_dependencies.gradle @@ -132,7 +132,7 @@ project.afterEvaluate { // Add the bill-of-materials project.dependencies { - implementation platform('com.google.firebase:firebase-bom:33.5.1') + implementation platform('com.google.firebase:firebase-bom:33.7.0') } for (String lib : firebaseCpp.dependencies.libSet) { // Messaging includes an aar, which to be depended on properly requires diff --git a/release_build_files/readme.md b/release_build_files/readme.md index 1863d4c4a8..46a6e69c4e 100644 --- a/release_build_files/readme.md +++ b/release_build_files/readme.md @@ -86,7 +86,7 @@ distributed as part of the core Firebase Feature | Required Libraries and Gradle Packages -------------------------- | -------------------------------------- -All Firebase SDKs | platform(com.google.firebase:firebase-bom:33.5.1) +All Firebase SDKs | platform(com.google.firebase:firebase-bom:33.7.0) | | (Android Bill of Materials) Firebase Analytics | libfirebase_analytics.a | | libfirebase_app.a @@ -149,7 +149,7 @@ Firebase Messaging | libfirebase_messaging.a | | com.google.firebase:firebase-messaging | | (Maven package) | | libmessaging_java.jar (Android service) -| | androidx.core:core:1.13.1 (Maven package) +| | androidx.core:core:1.15.0 (Maven package) Firebase Realtime Database | libfirebase_database.a | | libfirebase_auth.a | | libfirebase_app.a @@ -230,50 +230,50 @@ Feature | Required Frameworks and Cocoapods -------------------------- | --------------------------------------- Firebase Analytics | firebase_analytics.xcframework | | firebase.xcframework -| | Firebase/Analytics Cocoapod (11.4.2) +| | Firebase/Analytics Cocoapod (11.6.0) Firebase App Check | firebase_app_check.xcframework | | firebase.xcframework -| | Firebase/AppCheck Cocoapod (11.4.2) +| | Firebase/AppCheck Cocoapod (11.6.0) Firebase Authentication | firebase_auth.xcframework | | firebase.xcframework -| | Firebase/Auth Cocoapod (11.4.2) +| | Firebase/Auth Cocoapod (11.6.0) Firebase Dynamic Links | firebase_dynamic_links.xcframework | | firebase.xcframework -| | Firebase/DynamicLinks Cocoapod (11.4.2) +| | Firebase/DynamicLinks Cocoapod (11.6.0) Cloud Firestore | firebase_firestore.xcframework | | firebase_auth.xcframework | | firebase.xcframework -| | Firebase/Firestore Cocoapod (11.4.2) -| | Firebase/Auth Cocoapod (11.4.2) +| | Firebase/Firestore Cocoapod (11.6.0) +| | Firebase/Auth Cocoapod (11.6.0) Firebase Functions | firebase_functions.xcframework | | firebase_auth.xcframework (optional) | | firebase.xcframework -| | Firebase/Functions Cocoapod (11.4.2) -| | Firebase/Auth Cocoapod (11.4.2) +| | Firebase/Functions Cocoapod (11.6.0) +| | Firebase/Auth Cocoapod (11.6.0) Google Mobile Ads | firebase_gma.xcframework | | firebase.xcframework -| | Firebase/CoreOnly Cocoapod (11.4.2) +| | Firebase/CoreOnly Cocoapod (11.6.0) | | Google-Mobile-Ads-SDK Cocoapod (11.2.0) | | GoogleUserMessagingPlatform Cocoapod (2.3.0) Firebase Installations | firebase_installations.xcframework | | firebase.xcframework -| | FirebaseInstallations Cocoapod (11.4.0) +| | FirebaseInstallations Cocoapod (11.6.0) Firebase Cloud Messaging | firebase_messaging.xcframework | | firebase.xcframework -| | Firebase/Messaging Cocoapod (11.4.2) +| | Firebase/Messaging Cocoapod (11.6.0) Firebase Realtime Database | firebase_database.xcframework | | firebase_auth.xcframework | | firebase.xcframework -| | Firebase/Database Cocoapod (11.4.2) -| | Firebase/Auth Cocoapod (11.4.2) +| | Firebase/Database Cocoapod (11.6.0) +| | Firebase/Auth Cocoapod (11.6.0) Firebase Remote Config | firebase_remote_config.xcframework | | firebase.xcframework -| | Firebase/RemoteConfig Cocoapod (11.4.2) +| | Firebase/RemoteConfig Cocoapod (11.6.0) Firebase Storage | firebase_storage.xcframework | | firebase_auth.xcframework | | firebase.xcframework -| | Firebase/Storage Cocoapod (11.4.2) -| | Firebase/Auth Cocoapod (11.4.2) +| | Firebase/Storage Cocoapod (11.6.0) +| | Firebase/Auth Cocoapod (11.6.0) Important: Each version of the Firebase C++ SDK supports a specific version of the Firebase iOS SDK. Please ensure that you reference the Cocoapod versions @@ -293,50 +293,50 @@ Feature | Required Libraries and Cocoapods -------------------------- | ----------------------------------------- Firebase Analytics | libfirebase_analytics.a | | libfirebase_app.a -| | Firebase/Analytics Cocoapod (11.4.2) +| | Firebase/Analytics Cocoapod (11.6.0) Firebase App Check | firebase_app_check.xcframework | | firebase.xcframework -| | Firebase/AppCheck Cocoapod (11.4.2) +| | Firebase/AppCheck Cocoapod (11.6.0) Firebase Authentication | libfirebase_auth.a | | libfirebase_app.a -| | Firebase/Auth Cocoapod (11.4.2) +| | Firebase/Auth Cocoapod (11.6.0) Firebase Dynamic Links | libfirebase_dynamic_links.a | | libfirebase_app.a -| | Firebase/DynamicLinks Cocoapod (11.4.2) +| | Firebase/DynamicLinks Cocoapod (11.6.0) Cloud Firestore | libfirebase_firestore.a | | libfirebase_app.a | | libfirebase_auth.a -| | Firebase/Firestore Cocoapod (11.4.2) -| | Firebase/Auth Cocoapod (11.4.2) +| | Firebase/Firestore Cocoapod (11.6.0) +| | Firebase/Auth Cocoapod (11.6.0) Firebase Functions | libfirebase_functions.a | | libfirebase_app.a | | libfirebase_auth.a (optional) -| | Firebase/Functions Cocoapod (11.4.2) -| | Firebase/Auth Cocoapod (11.4.2) +| | Firebase/Functions Cocoapod (11.6.0) +| | Firebase/Auth Cocoapod (11.6.0) Google Mobile Ads | libfirebase_gma.a | | libfirebase_app.a -| | Firebase/CoreOnly Cocoapod (11.4.2) +| | Firebase/CoreOnly Cocoapod (11.6.0) | | Google-Mobile-Ads-SDK Cocoapod (11.2.0) | | GoogleUserMessagingPlatform Cocoapod (2.3.0) Firebase Installations | libfirebase_installations.a | | libfirebase_app.a -| | FirebaseInstallations Cocoapod (11.4.0) +| | FirebaseInstallations Cocoapod (11.6.0) Firebase Cloud Messaging | libfirebase_messaging.a | | libfirebase_app.a -| | Firebase/CloudMessaging Cocoapod (11.4.2) +| | Firebase/CloudMessaging Cocoapod (11.6.0) Firebase Realtime Database | libfirebase_database.a | | libfirebase_app.a | | libfirebase_auth.a -| | Firebase/Database Cocoapod (11.4.2) -| | Firebase/Auth Cocoapod (11.4.2) +| | Firebase/Database Cocoapod (11.6.0) +| | Firebase/Auth Cocoapod (11.6.0) Firebase Remote Config | libfirebase_remote_config.a | | libfirebase_app.a -| | Firebase/RemoteConfig Cocoapod (11.4.2) +| | Firebase/RemoteConfig Cocoapod (11.6.0) Firebase Storage | libfirebase_storage.a | | libfirebase_app.a | | libfirebase_auth.a -| | Firebase/Storage Cocoapod (11.4.2) -| | Firebase/Auth Cocoapod (11.4.2) +| | Firebase/Storage Cocoapod (11.6.0) +| | Firebase/Auth Cocoapod (11.6.0) Important: Each version of the Firebase C++ SDK supports a specific version of the Firebase iOS SDK. Please ensure that you reference the Cocoapod versions @@ -631,6 +631,11 @@ workflow use only during the development of your app, not for publicly shipping code. ## Release Notes +### 12.5.0 +- Changes + - General (iOS): Update to Firebase Cocoapods version 11.6.0. + - General (Android): Update to Firebase Android BoM version 33.7.0. + ### 12.4.0 - Changes - General (iOS): Update to Firebase Cocoapods version 11.4.2. diff --git a/remote_config/integration_test/Podfile b/remote_config/integration_test/Podfile index cb67d96178..be82f00dd1 100644 --- a/remote_config/integration_test/Podfile +++ b/remote_config/integration_test/Podfile @@ -4,12 +4,12 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/RemoteConfig', '11.4.2' + pod 'Firebase/RemoteConfig', '11.6.0' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/RemoteConfig', '11.4.2' + pod 'Firebase/RemoteConfig', '11.6.0' end post_install do |installer| diff --git a/remote_config/remote_config_resources/build.gradle b/remote_config/remote_config_resources/build.gradle index 504894d636..0ec2a1e964 100644 --- a/remote_config/remote_config_resources/build.gradle +++ b/remote_config/remote_config_resources/build.gradle @@ -55,7 +55,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.5.1') + implementation platform('com.google.firebase:firebase-bom:33.7.0') implementation 'com.google.firebase:firebase-config' } diff --git a/storage/integration_test/Podfile b/storage/integration_test/Podfile index e26d0d8102..281a14cada 100644 --- a/storage/integration_test/Podfile +++ b/storage/integration_test/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '13.0' - pod 'Firebase/Storage', '11.4.2' - pod 'Firebase/Auth', '11.4.2' + pod 'Firebase/Storage', '11.6.0' + pod 'Firebase/Auth', '11.6.0' end target 'integration_test_tvos' do platform :tvos, '13.0' - pod 'Firebase/Storage', '11.4.2' - pod 'Firebase/Auth', '11.4.2' + pod 'Firebase/Storage', '11.6.0' + pod 'Firebase/Auth', '11.6.0' end post_install do |installer| diff --git a/storage/storage_resources/build.gradle b/storage/storage_resources/build.gradle index 5a4ad39d82..109dbe8056 100644 --- a/storage/storage_resources/build.gradle +++ b/storage/storage_resources/build.gradle @@ -54,7 +54,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:33.5.1') + implementation platform('com.google.firebase:firebase-bom:33.7.0') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-storage' }