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 ها مقدار متناظر استرینگ جایگزین میشه.
خروجی:
۰۰/۰۴/۱۲