diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d47cdd8..704b884 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -6,7 +6,8 @@ on: workflow_dispatch: # Allows manual trigger env: - GOOGLE_OAUTH_CLIENT_ID: ${{ secrets.GOOGLE_OAUTH_CLIENT_ID }} + GOOGLE_OAUTH_CLIENT_ID_ANDROID: ${{ secrets.GOOGLE_OAUTH_CLIENT_ID_ANDROID }} + GOOGLE_OAUTH_CLIENT_ID_IOS: ${{ secrets.GOOGLE_OAUTH_CLIENT_ID_IOS }} SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} CI: true diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 95f03e4..32685f5 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -14,7 +14,8 @@ concurrency: cancel-in-progress: ${{ github.ref != 'refs/heads/develop' }} env: - GOOGLE_OAUTH_CLIENT_ID: ${{ secrets.GOOGLE_OAUTH_CLIENT_ID }} + GOOGLE_OAUTH_CLIENT_ID_ANDROID: ${{ secrets.GOOGLE_OAUTH_CLIENT_ID_ANDROID }} + GOOGLE_OAUTH_CLIENT_ID_IOS: ${{ secrets.GOOGLE_OAUTH_CLIENT_ID_IOS }} SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} # iOS signing (App Store Connect API key) + Firebase App Distribution + match APP_STORE_CONNECT_ISSUER_ID: ${{ secrets.APP_STORE_CONNECT_ISSUER_ID }} diff --git a/common/build.gradle.kts b/common/build.gradle.kts index 57a03f2..d23cc2e 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle.kts @@ -25,7 +25,12 @@ val secretProps = Properties().apply { fun secret(key: String, default: String): String = secretProps.getProperty(key) ?: project.findProperty(key)?.toString() ?: System.getenv(key) ?: default -val oauthClientId = secret("GOOGLE_OAUTH_CLIENT_ID", "YOUR_OAUTH_CLIENT_ID.apps.googleusercontent.com") +// Native OAuth clients are per-platform (separate Google Cloud client ids for Android & iOS). +val oauthClientIdAndroid = secret( + "GOOGLE_OAUTH_CLIENT_ID_ANDROID", + "YOUR_ANDROID_OAUTH_CLIENT_ID.apps.googleusercontent.com" +) +val oauthClientIdIos = secret("GOOGLE_OAUTH_CLIENT_ID_IOS", "YOUR_IOS_OAUTH_CLIENT_ID.apps.googleusercontent.com") // endregion kotlin { @@ -111,9 +116,26 @@ buildkonfig { packageName = "${ProjectSettings.PROJECT_ID}.config" defaultConfigs { - buildConfigField(STRING, "GOOGLE_OAUTH_CLIENT_ID", oauthClientId) + // Fallback (Android client id); overridden per target below so shared code can keep + // referencing BuildKonfig.GOOGLE_OAUTH_CLIENT_ID and get the platform-correct value. + buildConfigField(STRING, "GOOGLE_OAUTH_CLIENT_ID", oauthClientIdAndroid) buildConfigField(STRING, "OAUTH_REDIRECT_SCHEME", ProjectSettings.PROJECT_ID) } + + targetConfigs { + create("android") { + buildConfigField(STRING, "GOOGLE_OAUTH_CLIENT_ID", oauthClientIdAndroid) + } + create("iosX64") { + buildConfigField(STRING, "GOOGLE_OAUTH_CLIENT_ID", oauthClientIdIos) + } + create("iosArm64") { + buildConfigField(STRING, "GOOGLE_OAUTH_CLIENT_ID", oauthClientIdIos) + } + create("iosSimulatorArm64") { + buildConfigField(STRING, "GOOGLE_OAUTH_CLIENT_ID", oauthClientIdIos) + } + } } dependencies {