ویرایش
شما در این صفحه میتوانید از تغییرات هر نسخه کتابخانه چابک مطلع شوید. چابک برای نسخهگذاری از مدل 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:
//Objective-C
- [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 پشتیبانی میکند.
نسخه ۱.۲۰.۱ - ۱۳۹۸/۰۴/۱۷
تغییرات
پشتیبانی متد
incrementUserAttributeاز آرایهای از اطلاعات (attribute) کاربرافزودن متد
incrementUserAttributeValue:valueبرای افزایش هر کدام از اطلاعات کاربر (attribute) به مقدار دلخواهافزودن متد
incrementUserAttributeValues:valueبرای افزایش بیش از یکی از اطلاعات کاربر (attribute) به مقدار دلخواه (این متد از dictionary از اطلاعات کاربر پشتیبانی میکند)
نسخه ۱.۲۰.۰ - ۱۳۹۸/۰۴/۰۴
تغییرات
پشتیبانی از مقدار درآمد با استفاده از متد
trackPurchaseپشتیبانی از بازخورد نوتیفیکیشن (influence) به صورت مستقیم یا غیر مستقیم
پشتیبانی از دیپ لینک در صورت نداشتن اپلیکیشن با delegate کالبک
:chabokDeeplinkResponseافزودن متد
incrementUserAttributeبرای افزایش مقدار دادههای کمیتی کاربرافزایش تعداد کاراکترهای قابل قبول در
userIdبه ۶۴ کاراکترحل مشکل افزودن تگ
CHABOK_GUESTبا متدregisterAsGuest
ارتقا
- جایگزین شدن
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 بیاید.