Files
tysdk-intergration/sdk-intergration/CLAUDE.md
2025-12-22 16:11:55 +08:00

4.0 KiB

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Project Overview

This is a Unity 2022.3.53f1c1 mobile game SDK integration testing project for "Fishing Travel" (com.arkgame.ft). The project focuses on validating and testing various mobile SDK integrations including authentication, payments, analytics, and advertising networks.

Build Commands

Android Builds

# Command-line build (CI/CD)
/Applications/Unity/Unity.app/Contents/MacOS/Unity -batchmode -quit -projectPath . -executeMethod BuildTool.CIBuildAndroid --out ../Bin/tysdkTest.apk --bundle-type FirstPack --build-type New

# Manual build via Unity Editor
Tools > Build Android

iOS Builds

# Command-line build (CI/CD)
/Applications/Unity/Unity.app/Contents/MacOS/Unity -batchmode -quit -projectPath . -executeMethod BuildTool.CIBuildIOS --out ../Bin --bundle-type FirstPack --build-type New

# Manual build via Unity Editor
Tools > Build iOS

Build Parameters

  • --out: Output path for build
  • --bundle-type: None, FirstPack, or ALL
  • --build-type: Build type (default: "New")
  • --define-symbol: Custom compilation defines
  • --patch: Enable patch build
  • --split: Enable split APKs
  • --aab: Build Android App Bundle instead of APK

Architecture

Core SDK Structure

  • TYSdkFacade (Packages/tysdk/Runtime/TYSdkFacade.cs): Main SDK interface using facade pattern

    • Account management with persistent storage
    • Multiple social login providers (Google, Facebook, Apple, Guest)
    • JWT token handling and linked account tracking
    • Singleton pattern with DontDestroyOnLoad
  • UnityBridgeFunc (Assets/CoreLib/Data/sdk/base/UnityBridgeFunc.cs): Platform-specific native bridge

    • Android/iOS native method calls
    • ATT (App Tracking Transparency) handling
    • Social sharing functionality

Test Infrastructure

  • SDKTest.cs (Assets/Scripts/SDKTest.cs): Comprehensive SDK testing UI
    • Tests all login methods and account linking
    • Payment testing and ad display
    • Integrates AppsFlyer, Max SDK, Thinking Analytics
  • UnbindTest.cs: Account unbinding functionality test
  • Test Scenes: SampleScene, UnbindTest, OneLinkTest

Package Dependencies

Key Unity packages and third-party SDKs:

  • UniRx: Reactive Extensions for Unity
  • tysdk: Custom Tuyoo SDK wrapper (v0.0.1)
  • AppsFlyer SDK: Attribution tracking
  • Max SDK: Ad mediation platform
  • Thinking Analytics: Custom analytics
  • Facebook SDK: Social login and sharing
  • Firebase Analytics: Google analytics
  • Google Play Services: Auth, Billing, Review

Platform-Specific Configuration

Android

  • Target SDK: 35 (configurable via gradle template)
  • Package Name: com.arkgame.ft
  • Deep Linking: OneLink support and custom URI scheme zzft://mainactivity
  • Key Files:
    • Assets/Plugins/Android/AndroidManifest.xml
    • Assets/Plugins/Android/mainTemplate.gradle
    • Assets/Plugins/Android/gradleTemplate.properties

iOS

  • Build Output: ../Bin directory
  • Keystore: Located in keystore/ directory
  • Apple Sign-In: Supported for iOS platform

Development Workflow

Testing SDK Features

  1. Open SampleScene or test scenes
  2. Use SDKTest UI to test:
    • Initialization
    • Login methods (Guest, Google, Facebook, Apple, Token)
    • Account linking/unlinking
    • Payments and ad display
    • Analytics events

Adding New SDK Tests

  1. Create test methods in SDKTest.cs
  2. Add UI buttons in the corresponding scene
  3. Hook up button listeners in Start() method

Modifying Build Configuration

  1. Edit BuildTool.cs for new build parameters
  2. Modify mainTemplate.gradle for Android dependencies
  3. Update AndroidManifest.xml for permissions/activities

Important Notes

  • The project uses a custom TYApp/TYUnityActivity for Android
  • Multiple ad network adapters integrated via Max SDK mediation
  • Server URLs can be configured for test/production environments
  • Uses PlayerPrefs for account persistence
  • Implements comprehensive callback management for async operations