productFlavor در گریدل
شنبه, ۱۲ تیر ۱۴۰۰، ۰۱:۱۶ ق.ظ
اگر بخواهیم از یک سورس کد دو تا خروجی با ویژگی های متفاوت بگیریم (مثلا نسخه free و paid) از productFlavor استفاده میکنیم. توی هر نسخه میشه ریسورس های مختلفی داد که در ادامه توضیح میدم.
کد زیر رو در بلاک android نوشتم:
flavorDimensions "dev"
productFlavors{
    free {
        dimension "dev"
        applicationIdSuffix ".free"
        buildConfigField "String", "BASE_URL", "\"https://freeversion.com\""
    }
    paid {
        dimension "dev"
        applicationIdSuffix ".paid"
        buildConfigField "String", "BASE_URL", '"https://paidversion.com"'
    }
}
در اینجا تکستی که قراره توی ورژن free و paid نشون داده بشه متفاوت هست. تکست توی ریسورس استرینگ تعریف شده. توی اندروید استودیو وارد مد project میشیم و در دایرکتوری src مسیر استرینگ رو مثل پروژه اصلی برای دایرکتوری های free و paid میسازیم. مثل شکل زیر:
بهتره که در پروژه اصلی و در حالت پیش فرض هم این مقدار تعریف بشه تا کرش پیش نیاد.
حالا با انتخاب هر کدوم از variant ها مقدار متناظر استرینگ جایگزین میشه.
خروجی:
۰۰/۰۴/۱۲


