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 2fcfaf0..b16d93c 100644
Binary files a/ExtraPluginCfgs/Android/flexion/Plugins/Android/tuyoosdk_1.0.0.aar and b/ExtraPluginCfgs/Android/flexion/Plugins/Android/tuyoosdk_1.0.0.aar differ
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
}