在我的 Android 项目中使用暂存和生产版本设置 Facebook

Facebook setup with staging and prod version in my Android project

我在 Facebook 中定义了我的应用程序的 2 个版本(生产版本和暂存版本):

在清单中我有这个官方设置:

<!-- https://developers.facebook.com/docs/android/getting-started -->
        <meta-data
            android:name="com.facebook.sdk.ApplicationId"
            tools:replace="android:value"
            android:value="@string/facebook_app_id" />

在我的 Gradle:

// Facebook app id
        resValue "string", "facebook_app_id", FACEBOOK_APP_ID
        resValue "string", "facebook_app_id_staging", FACEBOOK_APP_ID_STAGING

在我的 Gradle.properties:

# Facebook identifier (app ID)
FACEBOOK_APP_ID="XXXXXXXX"
FACEBOOK_APP_ID_STAGING="YYYYYYYY"

那么如何在项目构建期间轻松切换到 facebook App prod <-> staging,因为目前它已固定为始终 prod 版本(请参阅清单摘录)。

非常感谢你们!

您可以通过这种方式将属性移动到应用 build.gradle 文件中。

defaultConfig {
    //this will be valid for release and debug buildTypes
    manifestPlaceholders = [facebook_app_id:"RELEASE_KEY_XXXX"]
    ...
}
buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    staging {
        initWith debug
        manifestPlaceholders = [facebook_app_id:"STAGING_KEY_XXXX"]
    }
}

AndroidManifest.xml那么可以使用占位符:

<meta-data
     android:name="com.facebook.sdk.ApplicationId"
     tools:replace="android:value"
     android:value="${facebook_app_id}" />

如果您想执行更高级的配置,您可以阅读更多here关于配置构建变体的内容