From 8133f4d1b22b7e19f50b1e7daf21a1a53e74aadd Mon Sep 17 00:00:00 2001 From: "Liubing\\LB" Date: Thu, 30 Apr 2026 17:08:53 +0800 Subject: [PATCH] feat: Flexion channel build fixes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add google-services.json per-channel copy in SwitchChannel (Flexion has extra client) - Add GooglePlay default google-services.json for fallback - Switch Bundle Identifier per channel (Flexion → com.arkgame.ft.flexion) - Fix FlexionSDKHelper missing BillingService import - Fix Flexion AndroidManifest: add fullBackupContent override with flexion_backup_rules - Add MainProcessName tools:replace to resolve gasdk/tuyoosdk manifest conflict - Add billing:6.0.1 dependency for tuyoosdk AAR init compatibility Co-Authored-By: Claude Opus 4.7 --- .../Android/flexion/AndroidManifest.xml | 8 +- .../flexion/Files/google-services.json | 100 ++++++++++++++++++ .../Android/flexion/FlexionSDKHelper.java | 1 + .../Plugins/Android/tuyoosdk_1.0.0.aar | Bin 5398553 -> 5398548 bytes .../Android/flexion/launcherTemplate.gradle | 3 +- .../Android/flexion/mainTemplate.gradle | 6 +- .../googleplay/Files/google-services.json | 47 ++++++++ .../Assets/Editor/ChannelBuildTool.cs | 20 +++- .../Plugins/Android/mainTemplate.gradle | 1 - .../Plugins/Android/settingsTemplate.gradle | 3 - 10 files changed, 178 insertions(+), 11 deletions(-) create mode 100644 ExtraPluginCfgs/Android/flexion/Files/google-services.json create mode 100644 ExtraPluginCfgs/Android/googleplay/Files/google-services.json diff --git a/ExtraPluginCfgs/Android/flexion/AndroidManifest.xml b/ExtraPluginCfgs/Android/flexion/AndroidManifest.xml index 6a04330..567a8f2 100644 --- a/ExtraPluginCfgs/Android/flexion/AndroidManifest.xml +++ b/ExtraPluginCfgs/Android/flexion/AndroidManifest.xml @@ -7,7 +7,8 @@ @@ -36,6 +37,11 @@ + + + diff --git a/ExtraPluginCfgs/Android/flexion/Files/google-services.json b/ExtraPluginCfgs/Android/flexion/Files/google-services.json new file mode 100644 index 0000000..c390912 --- /dev/null +++ b/ExtraPluginCfgs/Android/flexion/Files/google-services.json @@ -0,0 +1,100 @@ +{ + "project_info": { + "project_number": "481260393117", + "project_id": "fishing-travel", + "storage_bucket": "fishing-travel.firebasestorage.app" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:481260393117:android:4e8da50d0ee3b5c207fa74", + "android_client_info": { + "package_name": "com.arkgame.ft" + } + }, + "oauth_client": [ + { + "client_id": "481260393117-jhq50gh6n2p6pat1bjhcgj3th1ke19jg.apps.googleusercontent.com", + "client_type": 1, + "android_info": { + "package_name": "com.arkgame.ft", + "certificate_hash": "c9cf2f5eaba383cbdd5b968d0342c49afabc32a2" + } + }, + { + "client_id": "481260393117-vfn1jueugjqjach8kgc0kfi54g085q6l.apps.googleusercontent.com", + "client_type": 1, + "android_info": { + "package_name": "com.arkgame.ft", + "certificate_hash": "53fd6ff623712411792a4665163e4cbf4a7a22ec" + } + }, + { + "client_id": "481260393117-0ah0ekk7lu5r44ko2uqlfoebgak8dmhj.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyBU6gAwu0O28jg7-TRd_Vx2YMCH_Baa8Bw" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "481260393117-0ah0ekk7lu5r44ko2uqlfoebgak8dmhj.apps.googleusercontent.com", + "client_type": 3 + }, + { + "client_id": "481260393117-88n0v3ht8ashhk0r5ri47hced7o5qj62.apps.googleusercontent.com", + "client_type": 2, + "ios_info": { + "bundle_id": "com.arkgame.ft", + "app_store_id": "6505145935" + } + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:481260393117:android:eafec4a060b0224907fa74", + "android_client_info": { + "package_name": "com.arkgame.ft.flexion" + } + }, + "oauth_client": [ + { + "client_id": "481260393117-0ah0ekk7lu5r44ko2uqlfoebgak8dmhj.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyBU6gAwu0O28jg7-TRd_Vx2YMCH_Baa8Bw" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "481260393117-0ah0ekk7lu5r44ko2uqlfoebgak8dmhj.apps.googleusercontent.com", + "client_type": 3 + }, + { + "client_id": "481260393117-88n0v3ht8ashhk0r5ri47hced7o5qj62.apps.googleusercontent.com", + "client_type": 2, + "ios_info": { + "bundle_id": "com.arkgame.ft", + "app_store_id": "6505145935" + } + } + ] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/ExtraPluginCfgs/Android/flexion/FlexionSDKHelper.java b/ExtraPluginCfgs/Android/flexion/FlexionSDKHelper.java index bbe44ef..bc60ef3 100644 --- a/ExtraPluginCfgs/Android/flexion/FlexionSDKHelper.java +++ b/ExtraPluginCfgs/Android/flexion/FlexionSDKHelper.java @@ -13,6 +13,7 @@ import com.flexionmobile.ddpx.model.params.BillingFlowParams; import com.flexionmobile.ddpx.model.params.ConsumeParams; import com.flexionmobile.ddpx.model.params.QueryPurchasesParams; import com.flexionmobile.ddpx.model.params.ProductDetailsParams; +import com.flexionmobile.ddpx.service.BillingService; import com.flexionmobile.fdk.FLX; import com.tuyoo.gamesdk.api.SDKAPI; diff --git a/ExtraPluginCfgs/Android/flexion/Plugins/Android/tuyoosdk_1.0.0.aar b/ExtraPluginCfgs/Android/flexion/Plugins/Android/tuyoosdk_1.0.0.aar index 2fcfaf0f9d2c5f1eee9c5e3c29dad2003b5d0261..b16d93c574510b35d10cd4e6969ed6c627b52b31 100644 GIT binary patch delta 6773 zcmZA51yodB`zY`kMj8fY=#cIXX^;j1siSmbi#(Q z;))31d-tEh>bMoX%(C4W_8e(Ha$tmD_rLGFQ^g_<&sJj|70GO3kG8_&Bl%RtPe}4w zT~z5I)vcr{OTTQX{YP=nZ3%z+t(sVM)UIZjz8`z!h~ag2R3#Eo&7~NCe?`oE?kAg_ zPi8M)p;w}1qRgQbmQ)<@Fp+%Qd_DAOgRcFSooG}-1zlJOw}P4j73Z4uBn>TQFp};h z!Edl@BvIzds0&k&+Ge2dpT{+FRr&ksa%Q)LBy6vD?)!y&&bqgJ(0tJ4pNosjy|vgv zF1quIb?U@7T2b5WwmNgcuis6H`OkfS(h|?4npC74&0c69<8qIXl4*%d2}R|~O@nLf zc0a1bFBn1eLsm)d4DO9bJRsVR34LkUSh8doF4YlWb1$xS>AhL1+S}4ZzbR3*SPE`Z zzScag4Hr4Jy&?w7H}N=G?GFmD`Y3xTg`(YBAF9Xjjot@EP5NX4acnkN-RGW}%D(XH zJ@1dqAcc#5=vdOr#YsZ2Kh|41cGIEmh|{C=kFkMY$FVvy|5FM7nlC|VkKr?9Za}*b zTyiNRe#9E+cz)VCKhR7Pm|%AtB0rpxH>N;%q+D&+^KXFxPELLu zlK2tUO?M@HDA0X*KG^QGuQ7gaW;2k9OH4V+rgwRb<(yg3DV(mV6Ovm^QnypLK5~y| z5Nj>))bs79h>8a;vA7U)E_SfAr2ENQr~b1Trc_tcRQb*B4dLX2Zez|~{ui?bU6rZ2 z!anbFx8iqA3qH)a?1+11)UGW*F0IK(G>8k0CuOMpm{gM8Y{(FkYQHG(xJh-%xwJ-^ z&VA_0Cor-jjCb6d0>O)a#~0n;bHt}n@m5#sn>_y64VIo3;udJC1JH)OB#eAX2!~)n z5Rh9CYzPhn7lH@DhY&#i<`O}OAxH=bgtY!8A?nL835}#BRtXvg%hH9xC}1!UWdcxw zUUMiE2Gi)@*!}Uxz`oE3Iz_ z{3^H?49~eFNa*R|GyE`BR+gRKi8Setii?ZO5oCE4aQZ%RJN#*QpIv&;6diGd9LI>B zntS7Uwb91!<=FYkVtM~!6#+tun1DZ`IGAkrB8*Qj&_Zc-`kW@MUa?q(ZOxs>kJB}6 z+)08b(Ga&QTqN0*G+{xbZl%qO#(6mN`pQLC0+XGU=6*KR{}Kz=YM`TtbXVCC**+Ir zIAmJfri7o2H7t~oMI3p}Ry!4NPdVKwd8<_x_ucPXH(t4=-`ACSDRikkUpM&%{;Af! zr-doh$~~Z|>{KUyx4uY#$FY7s0p@a;sDDi#y5}uiD9`Y`%IXtKP&7uadt&9N7{S?^ zb=x-vyL~%zS_vn6?ao}Cn?#Lk{w|y5K}W{)Kvpw{hh<<-Nr4alNF(9q9pf0E4?mhW z?WrFP>hwpA4=b`z37>B|@@n@Okh9sczJy^qOpQJUKElbqGv#IX+Cet_h0Z{eeUFgO zFT5~UyHl>UD(W+RH|d=&-XW1~?e21sNk=E=$*yF}P=Y{>by=NOwIkcQgxUfIi@LpF zc3n1!Uya0)M_Jw_G&xuEtkSso9+-S|z6D1p+koe&`GBb}bq3dbN3tHpl-p2apGpK~ z!BLjzQSzR)bmNnp6M@>9bT5pE&cjs-Whyq=7ge5Kd(3ARONsbKgu@}`Dl!i;YUmE{ zCKDoFeKQ1R%|3rmsUj2pY2yBwKnf_$t;Fs>a zOuTXBz55s`Uzn#@Em-tpxm~H3g>anILl`eXK6buC*-BoDzEB~Y^Lj-aVF*7!`q1BI z4Bp2pU}T^aRDBszCY8hfm70Tz2J_Yz^<&WYWvm0Iid%T24#h05UMh`^->8IpOUF7B zlfr@Br7~A*4PK1-+xGkGRaNOJdgE~KG+$|HMv}onLBRpRK~AdnSi64SX`yITvtz^8 zitZ`%Hx>gC!>gS%iP;BkUg8-!Snrc1zr^VbK2|pwpqEBy^@f{vOVwrWC1d7@2U32Z z2|AcaKrD(oIi4mF5A%GkgvS{!#Bhfw?X{x2e8e1z_$JY(!G|^W^5iTNOfK^dCM-Sz z)WKWfFH|d5Y5B-ct;r&nZmzcnOWGHgV;5ID?H=6vDL;dL7wjCqHi)0@j~B&e$XoaD z7xQ#bd^K+BBp6qmZi7l+H^W2=9n&&?cv=Sb%gJ^rZn69E7~iCVa^(NMY`rm4?{W;sriqI%B1&nCoAMoIzGH0Tzh%M05Qg!H;Efn`FHDuO z}(`*w`SuKS>8OaxEM8WM^NB>-G+>g{^ zz$+>w7?(QV=kF0@j-X|I6u$U=sL-JI9IK`meUH>>XuwJ}$@HVrD0y>fyvF@^ePjBG zr9VCy*k;xK6EOBd#D6%mg>#C@EX0!=zO7Ffm)~k~sTcg`&B-+8ZR>R61%w&jYAH!{@svg)-TunbdNS;=3i z%LJBZX3o&7{O%q-^Gcv9v9v>wJ+cNV-7EMXw-M(CY;|LayD_}4?d^Gog-V*#)(nwA zt*#RI{K&$*P29ttL_{cWMIBMR@<@~Gj;0hst>Fs24rraf_e?cX$IaR#^Mht`6nf*; z9~C0|{@QMaai&jG8o|-eJ_s3iK431LWC(T(su6)>F7gzl&082z#WrO170yCEPZol^ zoP+n%q%mhlZ}=5x4+bUKD?5hz_Jf-QSd_?bv3Z_gVn(K4t|#rNZrQMTIrI0&+7fkX z@amN6%5ik`j3NDL^<{l}u;Q2!skp<8f|hUZUDv^DzrSl68P0_*v}(E%@~P@GFRPbl z6mopM3Hmd7bGa&b{*&>h{I!zHZuD*H6^W+>&Ver3K(s^OXDil<0$l$W7Ptv@F%eZb zhb)3sm?}%nECrK;V{dNqabu(UlrevL#mS+J3}ealI@TtYyBDU(KU_~c?(yyotiz7Y&alVIQJP92 zg*+QqDMUw9blK#_g^qUdm~5syp4y`w zQ(G%j3@NJv<{v{C4#OnO*No1s-rJ?0*Ah2khX_mmD&rVk7_A4j#$atCvX zj;4>Yr2AWD$BDG?M=fTHq+_~FN&7|cKlNksfc6@gFrh?BYks1(bqtXL;RRl^a`K4e zJ!Wce)exc@4W(zYho|ey($AVVf8M(LiXn;4Ns?UO=bB%M>XTyw7 zz?wJT{lms<9Pd`LhbH3ab|3c)?rV6Y)9Q4WDu&2AWcenfGsXC6WKVp>2#=oxb6DS( z_t};Ef8r))xf}MMb31Gpx;yh6bjwIF4Y)Pnj?wBhgqBj+BBZ2k>Za+Jo3q&i!+AXx z`o?rj|4dIOT!drkVy}CA_q5r?vi*js2#HR{DX@MSWjY+L_BB@^GT8Z-Me4yXlBc6H z9 zUdXw(XI)ixh{psP@X0$P@)KgXc^`5 ziiRhj?wXOrPm?|Ieu;*O^N$$t)N`AK{rvShvV8A|T5A1NrbxQq zekV<@X=4BudJ%spl^RedR1(x2*WTfv*OKYMk1mu6^Uza$Q*j@sZ>ab4M~u%%W{a@j zbKmNAO?0&O8ubjRDaHJ$b^ZkE=GUrS)ogNA^%`CWx6pG!0vZyd0Gr#mF#~WT-s8eH zbCR{_^Nk|M(KPSLv#7K+tVX4>QjOP-6smE!T$lilqQ@RvqIM?S^~#cwy&p367+5yC zSS@}#&ckKv=BMe?jswo|`=3`v<$W&RVg|AEuiLf1jVIPPawz+aK8$Y8 z+6kWbBN7Z>)l1JS^O+;i1O9pE+DCUt*ZezTaP8yS&E=oolRwL^Kz>aBt{;`&*{u>q z{RQpH@m7P3qlf-GsWIh>sgAn~-*cud)BX0R^q-(JU)C3zo-2dD&RVq3OfQ(XceHf{ z)s~MISDuN`%K6H!e9JQ~&t~gPmzJ~Wbw5-V0d4CR-p4*^z6=WXcgjOqwtam11Ku%~ z+PgVKCNrAj?l-*%Y#b6Ub|wA%n6MTf` z>NvXj=KI@QuQylx)D~qt;@)$)BsOehgnS+pAxpZ7OO@RtG`_}rzM)0LJpcQ=T&Ckb zyN9kj`|~7fRf4{|<1wtxWxa$$zJ8fjD?#*C`cwR z_9PVc4{~IabYXwcO*F?ZeW#RZ%(<`0?swiQdAimFn|@@;K6X>(v)2SYNhGt;6^DrR}0Kab7s6jPd*@8XFsWiMZ_%xxx z_vCw!lk;c)?Z<7^!macMyDy|%nmX4xyhHXZ+7@q5MLA=WN2LdTlOq#26oU6Ze={Uc zdSl9|c*D_h+Mi&KqfXk@c9dRcHtF?_<$EmOD{4lp#u@Yh@qr$E^~q4LYk2e3*C*lK z#0)aMkE<~bM~oZ>cX!hyPmLRfVrZsQ=LFEle8z984mhvR<2H{PXEqb5ZqJ`X%Ufs^K2 zI}DLy`ok`HFo;PM{Pi|mF1WK?c#-9f#1cc#YI#$U@;>g!7s)4X`p2w=@wT^1y!*e8 z23U1&Pn2FPbqf#6mbYI0A>*$r7#^odY4O64-Eh%XJh(CR;5_Qyuf8B15_m6)s=D{V;lF@?^h8US{g*$NUWfwAn<`MoJ%`AZQ2~gd9Qv zp@dLDs3A0vzj<^JddO`E1B4O61Yw4-Kv*Gc5OxR$gcHIA;fC-)cp-cceuw}>5F!K- zhKN8!A$K5R5OIhEL=qwek%q`XWFc~pyAXMZ0z?s_1W|^lKvW@W5Ov5shz3Lxq6N7R z(T3Zb(Xi!!UcnE(A zChGxuaC>k`4_Zwf6w?Q^5nDS*5PuiR1QO`~?;PO5F7g)PztjAkqyrq%2c!{)yGW39 z4_b^50C*6H{r~jnK)HP+J{b5nbo}3tzyXpF9D+h{V(#pActjo`fn%U z6iEU~8A2tK8$i!U1r#&@bm6fe#sE-)xBhLY!D$0P3hN0L7;FGgfeH*Hw?H97Kolz+ z=l_WW8v>G8gbe>DLJqDPLWNg@q(*=wV(teD6dXrUfwo3~7=m>CKRp(($q3qR?c~2> zsm6bYW}watiuK=3VdeLG^ z1qnIxe&2h}nd|ypGxu}f&pb7MO?q1&b{43L6QAIg{zn2A6bnl!jUS&L?LH<;zHoj& z;hcdZME8lR`c4U1ZPAmv*~LQDJwv^ige+=hk{wtq&WEQ)Rqw67b1+dnxX8{pp-jk+ zeZo=0W!&X|Amx3qJDqql&}P^j7oXJL)_HKQdQpc#@_|3OkB`g9zGRim~ zj^~t!H@Z(nCQ`{(Dl5HRBhlEsat?SDBtBF@;tFQNPj|9e(9AWGTklG^rNUy^)3GUW zW9BS^^281u5{O;Ymx6v78+Hp#(7d16DgRub(ICi@)WAMUxQUgPw{N~qQ2FeAoP`$* zPQ;h29Z&U&X|r*VPPTOJS-$_=%^h2zm<;QhU@5&9#9G72KP*}&p2?u;-ABZBB&i1i zCU#n$-io+Tn;~l*vrFc0vKKX57oJ~^NJzGP3%%X^eTwNBev@p8M&~bDpmhb^aF%}2 zt)+T%`G)8ZmeC%egh+o3t+)s-DaBZKj+J&I1jM_AZE%RFV&V2iD)s3JP#(deaVP_M zifoE<*ds>5=+Da!9u1;7w~K?h-MbW-SRA4{@p-Bn?49qZgtR>_mCF365^g0IZr0B} z!0*ND;SnmnRSVOaMe5XP)P<==LW{*wc3BSM`F&=K+mDD97zcJY#t>ZNL=V}ee-`6s z#@?fd#uk#rcHxgelwNsvz*o|br}bb&rySU(j{<{9_*1`ClWn4_3Cmtv*={LQ)7V*5 zc(uXXjz^2x%q!J@zU8M#LsxO*Zg5_W^{Nd*3n`^E9QOt~2^6Kw82-sOoUVg6 zu2Lw(yACA1vc`_4L)ID(_O~)d`C7Sk$i0h(&+MDP6xVnrQPARzcedT0+ z#9k#!_5{ghq`!mq^l}xK%#H{NH~Ldybyk$9qQlULjNUJte3KShCjG&NXQt{-rPsiT zmYBj==|lDseL6Xwoi}AYQVxG87Vq0B3}1=MbT@`c`6ZBK&!c+H?XPYAq({`_yMzRL zyWaf4bWaX#bYmv9zG14Ixp_7fgbJ5gi}7k4uqUbkLdDSs=?~@;&Q(HrU)MR^gGDj& zdgKQ=wPW+zSltURQDJdB%o7`ZedfINM|ow@GQx`}+KUJR!UjP>cR)BGTo4`zA4C8m z1pQM>3?c!+K%^kDdM_gQ!YF}{M>S(P0t>4YFj|1~pl>gq&8zQUSI*5zJeqb-WKxi2 zHh#_KYFttAqo1YJkJ&ouMaWUR_%`I4aI&34ChiW^QQxQKn1n%_)E^G^XM+#?dTo>x z9qg{3!?V^WK1o+1>L|FA?Jw;eM|S-)RTQYZwyy`Y3LLe0#apwl_tav|D7eZ0tUD6_ zHS;VE=tHAg5SD&E)S2~iC5mhgp4{Rb?wOM=65Podc-@f#sqSP+%c^zD?GA9)(X8tm zAJIqXO0B^LJf{-X@Ce@0RaDGI0o!+va~7_e3}-$=`6Aiz6+aQLA;Z{CT=nw*zN3N=( zNSf`3m!~}uFbt7lC-3p6&5POV=Iu5D4@bPbu@@_6nr=)`ZSQP%lLlH7kx>W4y#O0c zx7{I&jvPbAlWk6m*qQ@*aS{raJYFA1fgRx|)8Q+#50%%pyKT_g;Rm|X ztk9ypPDX8l@P!s+71u4Mw=M?;8LTb&m?3sDhed08{=)E`G>4w#pdq7e@J72ZlJ~$?Zq~;_WI*Q4j}McH zU+h${lo6vVvLf94yUt$(tH&sZ@uRVdYsotyx$a*MMr@HtvAu2tmUMsZ7iwW!nuzJ& z7s_zrsJAuN@yE7QGVc6;#~t-t)_BQ8E|M8xI+i@$(AyQ=zcjYY%|CWueupTMLA^5L zO;)TJ>6{qXO~OCTrb>R*!)k^yDEHtkOLS~SM|TmW+VM^0Xy3IazMDck-i*fIag^-q znjnDF6;$fskZN%b4BCmOiFmfOZSu*5E%#hR>x4PO$s2W|vxcm!^|%Tupa)EW0+O`( zu;F2)QcBz2RLY3I{1~KfW@pS&jhW4otzh2C_REIM+~lEv+iM>|!md3pKAPWKd)ET1 z%Enss(ooaBNRuux;T(p{Z)n;auCjaSF>(wK@02?UyVaAG$sb?ZR!Cu<;337uq$W$vVo;I#4)cm2@WH7R^6hJ)ck{1{jL7)q^NThAv81ZHX z2P8y{6P+3yg^}<|2zDfJvmYL@TA^Mvxz-_qm9Et#7l07 zteOaCNOqDCmyv>dvba910DeTL!?yF9LnD?%UsOyK)nD?WuS|6ezV;{)Va@Dr?m6_p zCJ(7xXk%`*7(M&9e))SZV}-c@pYsMW)y%NntKLN8hdkw}LSbmEv>grOg{T~XFl ze1|g&pXdvlWA$PPAfnBJx5CLoJ`Ky^I%?%suOn_3+pq5_>e?11csxgD*KkwkM+h5Z ztID5c|M`Ib)78KUF`6}<*;!O>Mt_#6mS}pfxvScdr##G>%g*YO@d~q2bnC;tk%xz!8eytNmVa!H*p#Ew zoyVUBM!~~rGG9e~OON{?%4M8-B1DA<{n=ZrL-?e_{NOX`bF>uKt4a}X1+A=p&ATK; zCyjTus=}S`L-ONlkJJ=ZBq_0U3>%F@9R+$4otkij@CYtVBch(nc_7tBl>awm+Hs3oa(qKK=59YTN+H3#-gM;sqZv+u z{41CA_w~}Xg-K{Xjr87^Ge%fkP8!dcD;)9*V%W{@M!vBgdZ43IMp^7 zgay1jcA_j!gA%JJ&l)uu!o{N~V=K3AFSli~w_WKM<~Nx7W%63;eVawkXlOGzp-qCx z-fsLv?pVL{WGJe_zZiYgP%=Qqgmt>32%BR$c@5hN4;0bnKD=!Vd~_(~9Nw&)@KZXR zA97?Hczmy$dlpr^9!G0=SQ)1o6{{!`oT{3WMTl+8+LF4G&F`_bDT?LOR;-q#=s$(Y ziprQ|g|*)3Fws9;O2!|niZvAxqOue8kX;jM^Vi62y$T%K;G;bn7QOeWbEN+;yjfT; zk`rHL=Msr7uEiNCgQApT>+GGN2+l4GI7-2xl4BUw!~JyK zEir$y4;vT$fUB+?fgJ|D-*~@@{P9cTd_k92Gz7O-+uFCkf!1X-`nq0;u)4a`&njg} zFtPINbD-M2Jg&pg#D*k>J)|Fx=qxu)2Tf;ub6W>Gh}jq0zWvKmv5t|g`GStYq30c> zMCEyW(0d}tZUv3Yr6VU5inzD?_9~W=k!LHCz=z#IyH7d6!**o(URCR|lW($1pD9OG z#S|vwql$}guuT!t-_Zx_^5fNu9RvJ(1+pmQX{b`vpLii{!UsQVs=Jl8z9H8f7P1-) zYe!bl!`)ln%NxBdb{p)G*1x`Y<^{an^kuKdnpR6Qo8GUl$Ip465H-kHKMh%mIH z-eaE8z^@BmR^0KVoynB&W4Eq56o1))O{_zNi>n(+CDs&-f=~rmLD${f+W42U?+g&) zcuOsw%{aGDk^dE9V#oig_7?v9_$4Wk{|otYbjw^>JtUt3H(>K=m%4{U1))Eol$o$y zz9ZS~i4CqO{e8X+$C}6H8H6NT9^2i%WdfbfP|_T2rzT(F@(mlUC&h^8&muj8V%k)T zz4>&Qd&#Y|;61CHvCOhIQp66Wlm~Kv9Q8)+rm1gcNaF|U3`9v&gQhQeVl7jqJ;Eak ztxz2046&hb=L~<$_@<4VI*bAX4~l28-{gB~H7|rCFv70+YOSnZhH)x&SK}{c+mgwb z6GKP+R{Wpmn?KX0@euNl(^`LIpY4C`dZL~+`bR;4G-fGu}0puX1`g`)h)PNnuZ~)#_cYV625>H6J3w-6oh*-Lk#j^ zMuSseUM%Srk3!F;mYzlAtJ;UHg-BxV+sdGpmfc4d-k;W6riydknRX?XwJ{#9hlzgg zV$h!p??-BUB%>WHL^^!vqdGWyu+3_g1vRYn`}uQfvTk0PJb+s?-?fs+m6FU9T}Psk zAV`IirZ^tQE{MSO6}w}WcKA6GKszCx)gLgfIe6GcW#d+ILCo%+ytH&v9G~QHUAK7o z5Z+{jH7-<&>2mO8==S1L(#2g8lb+!>wXCaCwsFKeY`y|I!}qL|g-*9P#hT|`YLCb9 z2UQ+JD*2hz7->9^v6Od?yaF82@6^35CMJq=?Eyz)X>~QuW2W;ME~8a%65^7Va%!08 zM7OUIY#s3;nA6We7zW}ATS8;MM7-jgv3T!Kqf0R-M-cMFObSl~PEB6`@!54#)2_&{ zIO=3sxckkckyRt(u^syF@vaSS)ule52^XrKr?RqNK}+d4xB-z>+J2l+lZ zyVRzvVpM`l-LG{VE@}OxsrvJW90gp?;%m=JQ5uJg9Ovz9%bCu5sTY2D zToBnY7V{FXw9m)}9?PK29qHuo-)^l6<=-`;k_cYLV~CmRmS_OmK1Xeby{Udtjpu|D zO=6SpVrv{daLZ%HidALNS(wikArzareYAzj0J~`gTk5oJQZ-S*lNC2o_5k{0K1*rb ze)?GM`$?iXtMc)gDaRgto0G0@m-jqt6-9P__(*|f5av2)#HPP`Q()%s*opS9G=>%B#YWZhzR!VV%C{p{_X*?qsdBB5Iaes3zKV8)DlYK@XW%%9e{jf)6z&>FW%JH51fax*q zx4%)^j$`My*O%80XXxW=d#HEQqL{u+yC^4N^Y00&RyFT(7t$qEHUEXcNBY)3dUNr5 zhf-IBO`Ro2JY_6@M@sNRoyNXRhW3g}q#buz1xzxUC*el?E)8kfivM*Y$)zOhR5@+7A4%mMbkHh5%}fl1b8!A-@o7r@4NpJ#h!u% ztMW>!u!Q3ola)e*S|Ze{?7XRcs}cDf`tVA{7rR|cwbnS($FP+9@j?+HyiFH2x}3T7 zs{$RB48javiRd3XnsgyXgPMCwAN@3?t4x<6&arU%TajAAz2!r1{8o76&|B=d+&-Cw zmf(S-0*)Xy1E2Tq$3SC9US;5m_T_Agy=jCxlhoK5Yx66sp~dYxv+C*Fg(m8(y^NQ$ zrXL9;c()D=Lyj{{Z`LwgJS3b*v9?OaC{!JBsFYH(Qqb=x)nZDi4ZqqoV|{ynp{(Ud zd2yW7v6>UE8Y^~gx$Zu-et}b;p)q>q_W?QuwEyOuf;5HNUpD6HUgRZMBVX=YQ<@8V z)SHxGf6gC$)$}3GpFyO@e1ag{yTEdjM#7%{$kIA|wO0TsN@|r6|`)P1zGug^3OfSj6 z%WiR2nV=*e?a7fduL+vuzChUhD3PjFhTx^Y3|ms@zl9-Bur69W0||htH>VL+6=O*=L{!%a)DLYh$N27 z`h#^kw3>iJ{v~I>0g$4ANu#mPlenJW$ec4=+AFOqp>5D2%t(Z6ym#RpOkJaw7HK5% zIV6M~_9~g(e=9qu;6hj3yEsAK z&l)z*@wcMX+oswSaMBCqIOgCO7;zz-;XI%MopRkR3#`jGJ^1ZjKxAiXswkQ`R5;14vC-`&(Gzo7luebD zAitDbO{xEe)91!C5HFYp&s5_vO{vZW+XSVr9|PUK^~}eR_lGE(i;AJvJ>KJK1xqYz zbU={#)dow5#cdqoFY1MT+cy3$>d5lvU%GyVhRxkO% z-)Rz0f1O$AlAc{u2&Xvz+DH_bxHWVRmq9LgI&g+k_~5^1OK;9)jWxHLvK%O zujVe4tJlQO4n^t((ANe{q!4QvGO&3{-tknTC6agRi(WP&HpERHUL!t;hs>V^5%eAsmcCd}q|vyGveFYU4VQ`@Q5 zg;3wmH>2Nf@iK}L_ne-F_1V&0wf8N0!f2p zK(Zh?kUU5MqzHNpQUWQ1R6wdAHIO<;1EdMk0%?PE>V=MUx6S|m-#Wmdg+f7mfFLcD zD1P$>49m;jn-^FyMbQD1S|}J~8Th4z5{3`}blNCo=*cDwAlZVk0AkuGG9XhMMFZ{J zf&oigFh;;wA8e}9MG*r>+F(a(;8q(Yf*rpNB%ADM5M=H!3m5CAk#xVf@1y~u>#I|U~c#1-(2NCx%uD!Mx>`O0>Hosob%=> zjEo5D->WEm4&c*A=|RKKV1V@>7!r7+kCK9#Vg8Md^ig6^r9c0PSOM)P-~fpbQlJ2r zlmdA5Pt@_h(Zmy!7{mo2H9%=Yq5w++ls=S%;Xjo$z=#1#98v=i8KOj?OXF~WXA({c zm>Z&mpoq!;L@YqPA^5WT>3?%qU=D%+_>I7qO#|Wo+^B$2BNPMu|NWuW#==7W?<&B1 zQMkea9I#k`Q~a~d|DKGrF?cdefTl5c7}`LbF-i@b#e^|R0Hbpr=^Z;Tr6hFitkTyd}K#O5C zz&98T4Ul05mRtetX5a|c0I@l^6^Ve7IZ6@Sk$7`(plD#+9NgFXGG1V~jF%4Jvj96R z0j3t11wsgWFf2oqb1mn39z$7i9*zYTuYP!qz+iIMDgG*YofrV{tx;p BTAKg> diff --git a/ExtraPluginCfgs/Android/flexion/launcherTemplate.gradle b/ExtraPluginCfgs/Android/flexion/launcherTemplate.gradle index 2b518da..31efa26 100644 --- a/ExtraPluginCfgs/Android/flexion/launcherTemplate.gradle +++ b/ExtraPluginCfgs/Android/flexion/launcherTemplate.gradle @@ -1,6 +1,5 @@ apply plugin: 'com.android.application' -// 临时注销掉,打完包之后就打开 -// apply plugin: 'com.google.gms.google-services' +apply plugin: 'com.google.gms.google-services' dependencies { implementation project(':unityLibrary') diff --git a/ExtraPluginCfgs/Android/flexion/mainTemplate.gradle b/ExtraPluginCfgs/Android/flexion/mainTemplate.gradle index b2dfd0a..0505686 100644 --- a/ExtraPluginCfgs/Android/flexion/mainTemplate.gradle +++ b/ExtraPluginCfgs/Android/flexion/mainTemplate.gradle @@ -38,13 +38,13 @@ dependencies { api "io.reactivex:rxandroid:1.2.1" api "io.reactivex:rxjava:1.1.9" - // Google Play In-App Review + // Google Play In-App Review implementation 'com.google.android.play:review:2.0.1' + // Google Play Billing — tuyoosdk AAR references BillingManager during init + implementation 'com.android.billingclient:billing:6.0.1' implementation 'net.aihelp:android-aihelp-aar:5.3.+' implementation 'com.google.android.gms:play-services-auth:20.2.0' - // NOTE: Google Play BillingClient NOT included — Flexion SDK provides its own billing wrapper - // implementation('com.android.billingclient:billing:6.0.1') // Flexion SDK (includes wrapped billing) implementation("com.flexionmobile:sdk:4.0.1") diff --git a/ExtraPluginCfgs/Android/googleplay/Files/google-services.json b/ExtraPluginCfgs/Android/googleplay/Files/google-services.json new file mode 100644 index 0000000..8ae069a --- /dev/null +++ b/ExtraPluginCfgs/Android/googleplay/Files/google-services.json @@ -0,0 +1,47 @@ +{ + "project_info": { + "project_number": "481260393117", + "project_id": "fishing-travel", + "storage_bucket": "fishing-travel.appspot.com" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:481260393117:android:4e8da50d0ee3b5c207fa74", + "android_client_info": { + "package_name": "com.arkgame.ft" + } + }, + "oauth_client": [ + { + "client_id": "481260393117-jhq50gh6n2p6pat1bjhcgj3th1ke19jg.apps.googleusercontent.com", + "client_type": 1, + "android_info": { + "package_name": "com.arkgame.ft", + "certificate_hash": "c9cf2f5eaba383cbdd5b968d0342c49afabc32a2" + } + }, + { + "client_id": "481260393117-0ah0ekk7lu5r44ko2uqlfoebgak8dmhj.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyBU6gAwu0O28jg7-TRd_Vx2YMCH_Baa8Bw" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "481260393117-0ah0ekk7lu5r44ko2uqlfoebgak8dmhj.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/sdk-intergration/Assets/Editor/ChannelBuildTool.cs b/sdk-intergration/Assets/Editor/ChannelBuildTool.cs index 9511e67..988665f 100644 --- a/sdk-intergration/Assets/Editor/ChannelBuildTool.cs +++ b/sdk-intergration/Assets/Editor/ChannelBuildTool.cs @@ -9,6 +9,7 @@ public class ChannelBuildTool private const string ExtraCfgRoot = "../ExtraPluginCfgs/Android"; private const string TysdkPlugins = "Packages/tysdk/Plugins/Android"; + private const string TysdkFiles = "Packages/tysdk/Files"; private const string AssetsPlugins = "Assets/Plugins/Android"; private static readonly string[] GradleFiles = @@ -78,7 +79,24 @@ public class ChannelBuildTool Debug.Log($"[ChannelSwitch] Java: {javaFile} → {dest}"); } - // 5. Set runtime channel + // 5. Sync google-services.json (fallback to GooglePlay default) + var srcGoogleServices = Path.Combine(cfgDir, "Files/google-services.json"); + if (!File.Exists(srcGoogleServices)) + srcGoogleServices = Path.Combine(ExtraCfgRoot, "googleplay/Files/google-services.json"); + var destGoogleServices = Path.Combine(TysdkFiles, "google-services.json"); + File.Copy(srcGoogleServices, destGoogleServices, true); + Debug.Log($"[ChannelSwitch] google-services.json: {srcGoogleServices} → {destGoogleServices}"); + + // 6. Set Bundle Identifier per channel + var bundleId = channel switch + { + "Flexion" => "com.arkgame.ft.flexion", + _ => "com.arkgame.ft" + }; + PlayerSettings.SetApplicationIdentifier(BuildTargetGroup.Android, bundleId); + Debug.Log($"[CHANNEL-VERIFY] Bundle Identifier → {bundleId}"); + + // 7. Set runtime channel tysdk.ChannelConfig.SetChannel(channel); AssetDatabase.Refresh(ImportAssetOptions.ForceSynchronousImport); diff --git a/sdk-intergration/Assets/Plugins/Android/mainTemplate.gradle b/sdk-intergration/Assets/Plugins/Android/mainTemplate.gradle index fa895c0..814c5c6 100644 --- a/sdk-intergration/Assets/Plugins/Android/mainTemplate.gradle +++ b/sdk-intergration/Assets/Plugins/Android/mainTemplate.gradle @@ -72,7 +72,6 @@ dependencies { implementation 'com.appsflyer:purchase-connector:2.2.0' // Assets/AppsFlyer/Editor/AppsFlyerDependencies.xml:8 implementation 'com.appsflyer:unity-wrapper:6.17.7' // Assets/AppsFlyer/Editor/AppsFlyerDependencies.xml:6 implementation 'com.google.android.ump:user-messaging-platform:2.1.0' // Assets/MaxSdk/AppLovin/Editor/Dependencies.xml:5 - implementation 'com.tapjoy:tapjoy-android-unitybridge:14.5.0' // Packages/com.unity.package-offerwall/Editor/TJPluginDependencies.xml:10 // Android Resolver Dependencies End **DEPS**} diff --git a/sdk-intergration/Assets/Plugins/Android/settingsTemplate.gradle b/sdk-intergration/Assets/Plugins/Android/settingsTemplate.gradle index d25174e..73133c1 100644 --- a/sdk-intergration/Assets/Plugins/Android/settingsTemplate.gradle +++ b/sdk-intergration/Assets/Plugins/Android/settingsTemplate.gradle @@ -18,9 +18,6 @@ dependencyResolutionManagement { mavenCentral() // Android Resolver Repos Start def unityProjectPath = $/file:///**DIR_UNITYPROJECT**/$.replace("\\", "/") - maven { - url "https://sdk.tapjoy.com/" // Packages/com.unity.package-offerwall/Editor/TJPluginDependencies.xml:9 - } maven { url "https://android-sdk.is.com/" // Assets/MaxSdk/Mediation/IronSource/Editor/Dependencies.xml:8 }