id | title | layout | permalink | prev |
---|---|---|---|---|
release-note |
لیست تغییرات کتابخانه |
ios |
ios/release-note.html |
troubleshoot.html |
شما در این صفحه میتوانید از تغییرات هر نسخه کتابخانه چابک مطلع شوید. چابک برای نسخهگذاری از مدل Semantic Versioning استفاده میکند. برای آشنایی با این مدل این قسمت را مطالعه نمایید.
نکته:
دقت بفرمایید نسخه ۲.۳.۰ حذف و دیگر پشتیبانی نخواهد شد. حتما به نسخه ۲.۴.۰ بروزرسانی کنید.
- غیرفعالسازی قابلیت SSL Pinning
- بهبود و ارتقا موارد امنیتی به هنگام نصب و بازدید کاربر
- رفع مشکل فراخوانی 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
چابک از مدل نسخهگذاری 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 بیاید.