شما در این صفحه می‌توانید از تغییرات هر نسخه کتابخانه چابک مطلع شوید. چابک برای نسخه‌گذاری از مدل Semantic Versioning استفاده می‌کند. برای آشنایی با این مدل این قسمت را مطالعه نمایید.


نسخه ۲.۳.۰ - ۱۳۹۹/۱۰/۱۳

تغییرات

  • بهبود و ارتقا موارد امنیتی به هنگام نصب و بازدید کاربر
  • رفع مشکل فراخوانی callback در متدlogin:userAttributes.

نسخه ۲.۲.۱ - ۱۳۹۹/۰۸/۲۶

تغییرات

  • حل مشکل ارسال اتریبیوت DateTime در ارسال اتریبیوت در پروفایل کاربر و ایونت

نسخه ۲.۲.۰ - ۱۳۹۸/۱۱/۱۹

تغییرات

  • به کمک متد publishLocation می‌توانید رویدادهای مکانی را ثبت کنید.

  • پشتیبانی از تاریخ و ساعت برای مقادیری که در زمان انتشار رویدادها ارسال می‌کنید با استفاده از Datetime که در کتابخانه چابک موجود هست.

  • بهبود روند ثبت نصب‌های کاربران در چابک

  • بهبود فرآیند انتشار رویدادها در چابک

  • افزودن متد decrementUserAttribute برای کاهش داده‌های کمیتی کاربر

نسخه ۲.۱.۰ - ۱۳۹۸/۰۷/۱۷

تغییرات

  • دریافت پارامتر label با استفاده از پیاده‌سازی متد chabokReferralResponse:(NSString *)referralId، که این پارامتر در لینک ترکر قرار می‌گیرد و جهت پیاده‌سازی فرایند دعوت از دوستان در اپلیکیشن‌تان کاربرد دارد.

  • پشتیبانی از افزودن به مقادیر آرایه‌ای که برای داده‌های سفارشی کاربر استفاده کرده‌اید با فراخوانی متد addToUserAttributeArray:(NSString *)attributeKey attributeValue:(NSString *)attributeValue.

  • پشتیبانی از حذف مقادیر آرایه‌ای برای داده‌های سفارشی کاربر با فراخوانی متد removeFromUserAttributeArray:(NSString *)attributeKey attributeValue:(NSString *)attributeValue.

  • پشتیبانی از حذف داده‌های سفارشی کاربر با فراخوانی متد unsetUserAttribute:(NSString *) attributeKey.

  • پشتیبانی از تاریخ و ساعت برای مقادیری که در رویدادها و داده‌های سفارشی کاربر ارسال می‌کنید با استفاده از Datetime که در کتابخانه چابک موجود هست.

نسخه ۲.۰.۱ - ۱۳۹۸/۰۷/۳۰

تغییرات

  • به کمک متد disableSdk می‌توانید کتابخانه چابک را غیرفعال کنید.

  • بهبود تعیین وضعیت اتصال برای ریکت‌نیتو

  • افزودن متد login:hash به منظور احراز هویت سرور به سرور.

نسخه ۲.۰.۰ - ۱۳۹۸/۰۷/۱۷

نکته: در صورتی که می‌خواهید نسخه خود را ارتقا دهید، حتما مستندات مهاجرت به نسخه ۲ چابک را مطالعه کنید.

تغییرات

  • افزودن متد configureEnvironment برای خودکارسازی مقداردهی اولیه توسط فایل Chabok.sandbox.plist یا Chabok.production.plist

  • افزودن متدهای ‍‍login برای ثبت کاربر

  • افزودن متد logout برای تبدیل کاربر به مهمان

  • افزودن پراپرتی logLevel برای لاگ گرفتن در سطوح مختلف (مانند … ,debug, warning, info)

  • برداشته شدن هشدارها

  • از این پس قابلیت‌های آنی (realtime) و پوش‌نوتیفیکیشن به صورت پیش‌فرض در فایل Chabok.sandbox.plist یا Chabok.production.plist قابل تنظیم است.

  • افزودن مدل‌های جدید آیفون (iPhone 11, iPhone 11 Max, iPhone 11 Pro Max) به SDK

  • خودکارسازی دریافت دیتای نوتیفیکیشن از طریق swizzle کردن متدهای UNUserNotificationCenterDelegate

  • خودکارسازی دریافت توکن پوش‌نوتیفیکیشن و تشخیص بازدید اپلیکیشن از طریق swizzle کردن متدهای UIApplicationDelegate

ارتقا

  • حذف متدهای register و unregister. به جای این دو، از متدهای login و logout استفاده کنید.

  • حذف متد registerApplication (مقداردهی به صورت خودکار انجام می‌شود)

  • منسوخ شدن متد setDevelopment. به جای آن از متد configureEnvironment استفاده کنید.

  • تغییر کلاس DeliveryMessage به PushClientDeliveryMessage

  • تغییر مقدار پیش‌فرض پارامتر realtime به NO

  • افزودن پارامتر logLevel به جای enableLog

  • برداشته شدن متدهای زیر با swizzle کردن متدهای UIApplicationDelegate:

- [PushClientManager.defaultManager application:didFailToRegisterForRemoteNotificationsWithError:];

- [PushClientManager.defaultManager application:didRegisterForRemoteNotificationsWithDeviceToken:];

- [PushClientManager.defaultManager application:didRegisterUserNotificationSettings:];

- [PushClientManager.defaultManager application:didReceiveRemoteNotification:];

- [PushClientManager.defaultManager application:didReceiveRemoteNotification:fetchCompletionHandler:];

- [PushClientManager.defaultManager application:didFinishLaunchingWithOptions:];

- [PushClientManager.defaultManager application:didReceiveLocalNotification:];

- [PushClientManager.defaultManager applicationDidBecomeActive:];

- [PushClientManager.defaultManager applicationDidEnterBackground:];

- [PushClientManager.defaultManager applicationWillEnterForeground:];

- [PushClientManager.defaultManager applicationWillResignActive:];

- [PushClientManager.defaultManager applicationWillTerminate:];

- [PushClientManager.defaultManager appWillOpenUrl:];

نسخه ۱.۲۰.۲ - ۱۳۹۸/۰۵/۲۶

تغییرات

  • از این پس متد registerWithGuestId شناسه مهمان (guestId) می‌گیرد.

  • حالا حداقل طول userId یک کاراکتر است.

  • حل مشکل برداشته شدن تگ مهمان پس از ثبت نام کاربر

  • از این پس trackName در متد trackPurchase و track از white space پشتیبانی می‌کند.

نسخه ۱.۲۰.۱ - ۱۳۹۸/۰۴/۱۷

تغییرات

نسخه ۱.۲۰.۰ - ۱۳۹۸/۰۴/۰۴

تغییرات

ارتقا

  • جایگزین شدن userinfo با userAttributes

نسخه ۱.۱۹.۰ - ۱۳۹۸/۰۲/۱۸

تغییرات

  • پشتیبانی از advertisingId

  • بهبود رصد رویداد برای پشتیبانی از کاربرانی که از vpn استفاده می‌کنند

  • حل مشکل ارسال اطلاعات کاربر در متد setUserInfo

  • افزودن آمار و آنالیتیکس برای کلیک روی نوتیفیکیشن (اکشن‌ها و رد کردن (dismiss))

  • افزودن متد setDefaultTracker برای ترک کمپین‌های نصب (Pre-Install Campaigns)

  • حالا چابک ‍‍osBuild و ‍‍locale کاربر را برای آنالیتیکس جمع‌آوری می‌کند

  • پشتیبانی از دیپ لینک (deep link) و ری‌دایرکت (redirect) برای کلیک روی نوتیفیکیشن

  • افزودن متد appWillOpenUrl برای ارسال اطلاعات اتریبیوشن دیپ لینک و لینک همگانی (universal link)

  • تغییر رفتار در متد registerAsGuest (دیگر با هر بار فراخوانی کاربر جدید ایجاد نمی‌کند.)

  • افزودن رویداد ‍‍userNotificationCenter:willPresentNotification:withCompletionHandler: برای مدیریت نمایش نوتیفیکیشن در فورگراند

ارتقا

  • برای دریافت advertisingId باید AdSupport.framework را به Linked Frameworks and Libraries آن پروژه اضافه کنید

نسخه ۱.۱۸.۱ - ۱۳۹۷/۱۲/۱۳

تغییرات

  • حل مشکل لاگ‌های غیر ضروری

  • بهبود تایید نصب

  • افزودن قابلیت تشخیص Build اپلیکیشن (Debug یا Release) و انقضای آن

  • افزودن متد registerAsGuest برای اپلیکیشن‌هایی که کاربر مهمان دارند یا می‌خواهند نصب با اولین بازدید شمرده شود (مانند سرویس ادجاست)

  • حل مشکل اجرا روی simulator با معماری x86

نسخه ۱.۱۸.۰ - ۱۳۹۷/۰۸/۲۱

تغییرات

  • تعریف دستگاه‌های جدید اپل در چابک

ارتقا

  • انتقال داده‌های کاستوم به کلید data در متدهای publishEvent و track

نسخه ۱.۱۷.۱ - ۱۳۹۷/۰۶/۱۸

تغییرات

  • افزودن متدهای addTags و removeTags برای پشتیبانی از آرایه‌ای از تگ‌ها
  • بهبود Register مجدد کاربر با قابلیت تغییر userId از متد register
  • حل مشکل LaunchCount و LaunchTime برای زمانی که اپ از طریق ‌Location در Background باز می‌شود

نسخه ۱.۱۷.۰ - ۱۳۹۷/۰۵/۱۷

تغییرات

  • افزودن متد track:data برای رصد تعامل کاربر
  • افزودن متد screenView برای ذخیره رفتار کاربر در هر صفحه با مدت هر session
  • افزودن قابلیت automaticallyTrackScreens برای رصد خودکار صفحه
  • افزودن قابلیت sessionTimeout برای تعیین زمان پایان هر session در background
  • حل مشکل چک کردن NULL در payload RichNotification

ارتقا

  • تفییر پیش‌فرض live برای متد publishEvent به YES

نکته : کسانی که در نسخه‌های پایین‌تر از پیش‌فرض default متد publishEvent استفاده می‌کردند برای حفظ تنظیمات قبلی‌شان بهتر است اکنون از پیش‌فرض publishEvent:data:live با مقدار NO برای live استفاده کنند.

نسخه ۱.۱۶.۲ - ۱۳۹۷/۰۴/۲۶

تغییرات

  • افزودن قابلیت یکتا سازی دستگاه
  • افزودن قابلیت تشخیص وضوح تصویر و نوع مجوز دسترسی به موقعیت مکانی
  • حل مشکل قطع شدن اتصال در حالت باز شدن اپلیکیشن توسط موقعیت مکانی
  • حل مشکل تشخیص باز شدن برنامه به هنگام باز شدن اپلیکیشن توسط موقعیت مکانی

نسخه ۱.۱۶.۱ - ۱۳۹۷/۰۳/۲۹

تغییرات

  • حل مشکل عدم ارسال پوش نوتیفیکیشن برای کاربرانی که دسترسی DENIED داده‌اند.

نسخه ۱.۱۶.۰ - ۱۳۹۷/۰۳/۲۱

تغییرات

  • پشتیبانی از قابلیت Rich Notification برای iOS 10 به بالا
  • قابلیت تشخیص غیرفعال کردن پوش نوتیفیکیشن توسط کاربر DENIED
  • افزودن property enableLog جهت فعال/غیرفعال سازی گزارش‌های چابک
  • تشخیص زمان نصب اپلیکیشن
  • تشخیص شناسه اپلیکیشن bundleIdentifier

نسخه ۱.۱۵.۱ - ۱۳۹۶/۱۱/۰۳

تغییرات

  • استفاده از کلیدهای title و body به منظور نمایش عنوان و متن در Notification
  • تشخیص نصب جدید و باز شدن برنامه (دسترسی به این رویدادها به کمک کلیدهای kPushClientDetectAppNewInstall و kPushClientDetectAppWasLaunched)
  • حل مشکل متد deviceSubscriptions به هنگام فراخوانی قبل از متد registerUser:
  • اعلان خطا به هنگام فراخوانی متد updateNotificationSettings:sound:alert: قبل از رجیستر شدن کاربر

نسخه ۱.۱۵.۰ - ۱۳۹۶/۱۰/۱۸

ارتقا

  • از متد registerUser: بجای متد registerAgainWithUserId:، جهت تغییر userId استفاده کنید. برای تغییر نام کاربری، چابک به صورت خودکار userId قدیمی را به صورت کامل پاک کرده و userId جدید را در سرور ثبت می‌کند.
  • تغییر پیش فرض متد SetDevelopment به مقدار YES،‌ به این معنی که محیط کلاینت چابک بصورت پیش‌فرض حالت تست (sandbox) می‌باشد.

تغییرات

  • تغییر پیش فرض متد SetDevelopment به مقدار YES.
  • حل مشکل نمایش هشدار background
  • حذف متد registerAgainWithUserId:.

نسخه ۱.۱۴.۱ - ۱۳۹۶/۱۰/۰۳

تغییرات

  • publish موقعیت مکانی به صورت live

نسخه ۱.۱۴.۰ - ۱۳۹۶/۰۹/۲۰

ارتقا

  • عضویت در کانال عمومی به صورت CHANNEL_NAME و در کانال خصوصی به صورت private/CHANNEL_NAME امکان پذیر است.
  • تغییر نام متد enableEventDelivery:forPublic: به subscribeEvent:
  • تغییر نام متد enableEventDelivery: به subscribeEvent:installationId:
  • تغییر نام متد getRegistrationId به getInstallationId
  • اجباری کردن property messageBody در کلاس PushClientMessage

تغییرات

  • افزودن متد جدید برای عضویت روی یک رویداد (unsubscribeEvent: و unsubscribeEvent:installationId:)
  • افزودن متد جدید برای ارسال پیام به صورت خصوصی (publish:toChannel:withText:)
  • افزودن delegate method جدید برای مدیریت خطاها در متدهای subscribe، unsubscribe و publish (pushClientManagerDidSubscribed: و pushClientManagerDidSubscribed: و pushClientManagerDidFailInSubscribe: و pushClientManagerDidFailInUnsubscribe: و pushClientManagerDidFailInPublish:)
  • شخصی سازی داده ارسال موقعیت مکانی با استفاده از closure customizeGeoData



مدل نسخه‌گذاری در چابک (Semantic Versioning)

چابک از مدل نسخه‌گذاری MAJOR.MINOR.PATCH استفاده می‌کند. همه تغییرات نسخه‌ها بلافاصله پس از انتشارشان به صورت موردی در صفحه لیست تغییرات برای اطلاع شما اضافه می‌شوند. برای همین توصیه می‌کنیم این صفحه را حتما مطالعه نمایید. این موارد برای هر نسخه در دو بخش ارتقا (در صورت وجود ارتقا) و تغییرات برای شما نمایش داده شده‌ است.

  • Patch: تغییرات در این سطح شامل Bug Fix و قابلیت‌های بسیار کوچک می‌باشد. به روز رسانی به این نسخه‌ها نیاز به تغییری در کد ندارد. برای آگاهی از آن‌ها، باید بخش تغییرات را مطالعه کنید. به عنوان مثال به‌ روز رسانی کتابخانه چابک از نسخه 1.17.0 به نسخه 1.17.1 مربوط به این سطح می‌شود.
  • Minor: تغییرات در این سطح شامل قابلیت‌های بزرگتر و تغییر در کارکرد (Functionality) کتابخانه می‌شود. در به روز رسانی به این نسخه‌ها حتما باید بخش ارتقا و تغییرات صفحه لیست تغییرات را با دقت مطالعه کنید. در صورت بروز هر گونه مشکل در نتیجه رعایت نکردن نکات بخش ارتقا و تغییرات در به روز رسانی به نسخه‌های Minor، تیم چابک مسئولیتی را نمی‌پذیرد. توصیه می‌کنیم که هر سه تا شش ماه اقدام به بررسی نسخه‌های Minor نمایید. به عنوان مثال به‌ روز رسانی کتابخانه چابک از نسخه 1.17.1 به نسخه 1.18.0 مربوط به این سطح می‌شود.
  • Major: این سطح از تغییرات مخصوص بازنویسی و یا تغییرات اساسی در کتابخانه چابک است. در به روز رسانی به این نسخه‌ها حتما باید بخش ارتقا و تغییرات تغییرات صفحه لیست تغییرات را با دقت مطالعه کنید. در صورت بروز هر گونه مشکل در نتیجه رعایت نکردن نکات بخش ارتقا و تغییرات در به روز رسانی به نسخه‌های Major، تیم چابک مسئولیتی را نمی‌پذیرد. بنابراین توصیه می‌کنیم که هر یک سال اقدام به بررسی نسخه‌های Major نمایید. به عنوان مثال به‌روزرسانی کتابخانه چابک از نسخه 0.9.0 به نسخه 1.18.0 مربوط به این سطح می‌شود.

نکته: توصیه می‌کنیم برای دریافت آخرین نسخه Bug Fixها از کاراکتر + (wildcard) استفاده نمایید تا به صورت خودکار نسخه‌های patch بیاید.