خیلی سریع میریم سر اصل مطلب ?.
توی پروژههای مربوط به برنامههای iOS، نسخه اپ، با دو تا عدد مشخص میشه. یکی شماره اصلی نسخه، و یکی دیگه شماره ساخت (یا همون Build Number) هست. ترکیب این دو تا عدد، نسخه اپ رو مشخص میکنه.
این دو تا عدد با اسمهای زیر بکار میرن:
برای نمونه میتونین این عکس رو ببینین:
رویه به این صورت هست خروجیهایی که شما از پروژه میگیرین، میتونن دارای شماره اصلی یکسان، و یک یا چندین شماره ساخت باشه. مثلا چهار تا خروجی داریم که همهشون شماره نسخه ۱.۶ هستن، ولی با شماره ساختهای ۱۰۰۰، ۱۰۰۱، ۱۰۲۰ و ۱۰۵۰. توجه داشته باشین که اگه ما شماره اصلی رو ثابت نگه داریم، و شماره ساخت رو تغییر بدیم، این خروجیها، توسط پنل آیتونز (یا iTunes Connect) بعنوان نسخههای مجزا شناخته میشن.
برای مثال، عکس زیر. این عکس خروجیهایی هست که برای اپ «مثقال» گرفته شده و روی پنل آیتونز بارگذاری شده، تا با استفاده از تستفلایت (TestFlight ابزار کمکی اپل هست که برای روند تست اپها مورد استفاده قرار میگیره)، تستکنندهها بتونن نسخههای مختلف (چه از نظر شماره اصلی نسخه، و چه از نظر شماره ساخت) رو روی دستگاههاشون نصب و تست کنن؛ و تیم پیادهسازیکننده بتونن از بازخوردهاشون برای ارتقاء اپ و یا رفع خطاهای احتمالی استفاده کنن.
⚠️ : یه نکتهای که توی روند بارگذاری این نسخهها روی آیتونز کانکت هست، اینه که اگه ما بخوایم دو تا نسخه با شماره اصلی نسخه، و شماره ساخت یکسان رو بارگذاری کنیم، خود پنل خطا میده، و از این کار جلوگیری میکنه.
مورد بعدی که بیشتر برای من جنبه شخصی داره، اینه که من معمولا دوست دارم همینطور که قسمتهای مختلف یه اپ رو پیادهسازی میکنم، این شماره ساخت رو هم زیاد کنم! ? ولی خب این روند باید بصورت دستی انجام میشد، و یکم برای اذیتکننده میشد؛ هم میخواستم انجامش بدم، و هم رویهش دم دستی نبود!
با یه سرچ کوچیک، یه کدی پیاده کردم، که برای اینکار هست!
کار این کد اینه که در هر بار خروجی گرفتن از اپ (یا در واقع Buildکردن پروژه)، میاد و مقدار شماره ساخت رو یک واحد افزایش میده. بهمین راحتی، بهمین خوشمزگی! ?
کد مورد نظرمون اینه:
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${PROJECT_DIR}/${INFOPLIST_FILE}") buildNumber=$(($buildNumber + 1)) /usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "${PROJECT_DIR}/${INFOPLIST_FILE}"
کاری که این اسکریپت میکنه، در حقیقت اینه:
برای اطلاعات بیشتر، باید بگم این مقادیری که توی اسکریپت میبینین، مثل PROJECT_DIR و یا INFOPLIST_FILE، متغیرهایی هستن که خود ایکس کد باهاشون کار میکنه.
اگه بازم اطلاعات بیشتری میخواین، میتونین از این لینک که از مستندات خود سایت اپل هست استفاده کنین.
نمونه نهایی این روند میشه مثل عکس زیر:
⚠️ توجه داشته باشین، زمانیکه از این اسکریپت استفاده میکنین، مقداری که برای قسمت Build Number تنظیم میشه، و یا خودتون بطور دستی بعدا تغییرش میدین، حتمن عددی باشه؛ تا اسکریپت بتونه بدرستی کار خودش رو انجام بده.
از حالا به بعد، هر موقع که پروژه رو Build کنین، شماره ساخت، یک واحد اضافه میشه. ?
? : برای فهم راحتتر و بهتر این اسکریپتها، میتونین اسم مربوط به این اسکریپت رو هم تغییر بدینش. برای اینکار روی عنوانش دوباره کلیک کنین، و اسم دلخواهتون رو تایپ کنین.
من بشخصه با این اسکریپت خیلی حال کردم! ?
شمام اگه ازش خوشتون اومد، توی پروژههاتون استفاده کنین.
? منبع مطلب: این مطلب رو بر اساس این پست نوشتم.