لیست تغییرات کتابخانه
ویرایش
شما در این صفحه میتوانید از تغییرات هر نسخه کتابخانه چابک مطلع شوید. چابک برای نسخهگذاری از مدل 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 بیاید.