2 votes

Comment ajouter des valeurs différentes de la ressource chaîne pour des saveurs différentes ?

Je suis un développeur iOS qui essaie d'apporter quelques petits changements du côté d'Android mais sans savoir comment les réaliser. Mon objectif est de mettre en œuvre le SDK de Facebook dans l'application, comme le dit la documentation officielle :

Dans /app/res/values/strings.xml, ajoutez un nouvel élément string :

<string name="facebook_app_id">Facebook App ID</string>

Puis ajoutez dans le fichier AndroidManifest.xml de nouvelles méta-données comme ci-dessous :

<application android:label="@string/app_name" ...>
    ...
    <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
    ...
</application>

Tout est compris mais mon problème est que j'ai quelques saveurs de produits sur la base desquelles je construis à la fin des applications autonomes, pour chacune d'entre elles, j'ai différents Facebook App ID . J'apprécierais toute forme d'aide. Merci.

2voto

Roshaan Farrukh Points 387

Vous pouvez créer plusieurs types de construction ou saveurs de produit dans le fichier build.gradle au niveau de l'application, puis définir des chaînes de caractères différentes pour chaque variante de construction, comme suit

   buildTypes {

    prod{
        resValue "string", "facebook_app_id", "your app id"
    }

    dev {
        resValue "string", "facebook_app_id", "your app id"
         }
}

Maintenant vous pouvez accéder à cette chaîne dans le manifeste

    <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>

1voto

Amninder Singh Points 301

Il y a plusieurs façons de procéder. Mais comme vous avez déjà défini plusieurs saveurs dans build.gradle au niveau de l'application, vous pouvez définir la chaîne de caractères comme suit

android {
    buildTypes {
        flavour1 {
            buildConfigField "String", "facebook_app_id", "\"first facebook id 1\""

        }

        flavour2 {
            buildConfigField "String", "facebook_app_id", "\"first facebook id 2\""
        }
    }
}

Il initialise automatiquement le facebook_app_id au build lorsque vous créez le build de la saveur.

Bon codage :)

0voto

Lingeshwaran Points 406

Dans build.gradle :

productFlavors {
        appDev {
            applicationId 'com.android.dev'
        }

        appTest {
            applicationId 'com.android.test'
        }
}
flavorDimensions "default"

Dans le dossier src :
créer un dossier avec le nom des saveurs

-src
    -appDev(folder)
        -java(folder)
        -res(folder)
         -values(folder)

    -appTest(folder)
        -java(folder)
        -res(folder)
         -values(folder)

à l'intérieur du dossier values vous pouvez créer strings.xml chaque dossier agit comme une saveur différente

-1voto

Rahul Singh Points 192

Vous devez passer votre facebook app_id dans les fichiers string.

<string name="facebook_app_id">35166120881***</string>
<string name="fb_login_protocol_scheme">fb35166120881****</string>

-1voto

Firat Points 45
       ...

    <activity android:name="com.facebook.FacebookActivity"
                android:configChanges=
                    "keyboard|keyboardHidden|screenLayout|screenSize|orientation"
                android:label="@string/app_name" />
            <activity
                android:name="com.facebook.CustomTabActivity"
                android:exported="true">
                <intent-filter>
                    <action android:name="android.intent.action.VIEW" />
                    <category android:name="android.intent.category.DEFAULT" />
                    <category android:name="android.intent.category.BROWSABLE" />
                    <data android:scheme="@string/fb_login_protocol_scheme" />
                </intent-filter>
            </activity>
        ...

    </application>

C'est important

        <meta-data android:name="com.facebook.sdk.ApplicationId"
            android:value="@string/facebook_app_id"/>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X