از مدتها پیش، در سیستمعامل آیاواس، برای اینکه یه اپ بتونه به اطلاعات شخصی کاربر (مثل عکسها و یا مخاطبین) دسترسی داشته باشه، باید اول از کاربر سوال میکرد و ازش اجازه میگرفت. (البته این اجازه، در هر زمانی که کاربر بخواد، از طریق منو تنظیمات قابل ویرایش هست)
توی نسخه ۱۰ از سیستمعامل آیاواس، اپل محدوده اطلاعاتی که جزء اطلاعات شخصی کاربر محسوب میشه رو بیشتر کرده؛ بطوریکه الان موزیکهای کاربر هم جزء اطلاعات شخصی کاربر بحساب میاد.
تغییر قابل توجه دیگهای که توی نسخه ۱۰ اعمال شده، اینه که برنامهنویس باید از قبل، این دسترسیها رو مشخص کنه؛ وگرنه در زمان اجرا، اپ کرش میکنه! راه حل این موضوع هم سریعه و هم ساده. پس اگه میخواین اپ خودتون رو برای آیاواس ۱۰ بهینه کنین، ادامه رو هم بخونین.
زمانیکه دارین اپ آیاواس رو برای نسخه ۱۰ بهینه میکنین، باید از قبل، تمام دسترسیها به اطلاعات شخصی کاربر رو مشخص کنین. این روند با استفاده از اضافه کردن کلیدهای مشخص به فایل Info.plist بهمراه پیام مورد نظرتون (که مثلا این دسترسی برای چی داره گرفته میشه) انجام میشه. لیست فریمورکهایی که برای استفادهشون به مجوز کاربر نیاز هست ایناست:
Contacts, Calendar, Reminders, Photos, Bluetooth Sharing, Microphone, Camera, Location, Health, HomeKit, Media Library, Motion, CallKit, Speech Recognition, SiriKit, TV Provider.
اگه هر کدوم از این فریمورکها رو بخواین استفاده کنین، ولی کلید مربوطه بهمراه پیام رو داخل فایل Info.plist ثبت نکرده باشین، در اولین دسترسی به این فریمورکها، برنامه کرش میکنه. البته گزارشی که در زمان این کرش داده میشه، خیلی مشخص به شما میگه که کدوم فریمورک رو میخواستین استفاده کنین، بعلاوه اینکه چه کلیدی رو باید اضافه میکردین که نکردین. برای مثال، این پیامی هست که در زمان استفاده از دوربین دستگاه، بدون ثبت کلید مربوطه، به شما نشون داده میشه:
This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app’s Info.plist must contain an NSCameraUsageDescription key with a string value explaining to the user how the app uses this data.
برای جلوگیری از این کرش، نیاز هست که کلیدی که توی گزارش هم نام برده شده، به فایل Info.plist اضافه بشه. خوشبختانه از ایکسکد نسخه ۸، همه کلیدها براحتی قابل دسترسی هست:
بعد از این روند، در اولین دسترسی به دوربین، سیستمعامل پیام شما رو برای کسب اجازه از کاربر نشون میده:
? برای اطلاعات بیشتر، میتونین فیلم مربوط به نشست WWDC که درباره حریم شخصی کاربران هست رو در این آدرس ببینین.
? منبع مطلب: این مطلب رو بر اساس این پست نوشتم.