چگونه مانیفست حریم خصوصی بسته فلاتر خود را سازگار کنیم
از اول ماه مه، اپل تمام برنامههای جدید یا نسخههای بهروزشده برنامههایی را که در فروشگاه اپل آپلود میشوند، اجرا میکند تا شامل یک فایل Manifest Privacy باشد.
اگر با چیستی مانیفست حریم خصوصی آشنا نیستید، پیشنهاد می کنم مقاله دیگرم را بخوانید.
در مورد اینکه توسعه دهندگان در صورت استفاده از Flutter چه کاری باید انجام دهند، سردرگمی زیادی وجود دارد.
این به این دلیل است که Flutter توسط اپل به عنوان "SDK متداول استفاده می شود" (شامل چندین بسته دیگر Flutter) علامت گذاری شده است. این موضوع تا حدودی توسط جامعه فلاتر مورد توجه قرار گرفته است. اگر علاقه مند هستید، می توانید مشکلات GitHub زیر را بخوانید:
از Manifest Privacy و APIهای مورد نیاز در iOS و macOS پشتیبانی کنید
نحوه مدیریت مانیفست های حریم خصوصی در بسته ها را تعیین کنید
از ماه می 2024، همه چیز هنوز کمی مبهم است. بهتر است راه حلی داشته باشیم که به ما اطمینان دهد که می توانیم بسته خود را به روز کنیم و باعث رد شدن برنامه هایی که از آن استفاده می کنند نباشد.
ما قصد داریم به شهروندان خوبی در اکوسیستم موبایل ادامه دهیم.
نحوه ارتقاء وابستگی ها
صرف نظر از اینکه چه منطقی در داخل بسته خود دارید، برای پشتیبانی از تغییرات اپل، باید بسته خود را مجبور کنید حداقل از Flutter نسخه 3.19 استفاده کنید.
می توانید این کار را با رفتن به فایل pubspec.yaml
و تغییر نسخه در آنجا انجام دهید:
environment: sdk: ">=3.0.0 <4.0.0" flutter: "^2.0.0" /// <--- Change this to 3.19
سپس، باید تمام وابستگیهایی را که ممکن است در فایل pubspec.yaml
خود داشته باشید تحلیل کنید و ببینید آیا بستههایی دارید که در زیر «sdksهای متداول استفاده میشوند» فهرست شدهاند.
اگر چنین است، باید دریابید که آیا آن بسته نسخه جدیدی با فایل مانیفست حریم خصوصی منتشر کرد یا خیر. برای مثال، اگر pubspec.yaml
بسته ما به این شکل باشد:
dependencies: flutter: sdk: flutter intl: ^0.17.0 shared_preferences: ^2.0.5 url_launcher: ^6.0.17 package_info_plus: ^3.1.2
بسته ما به url_launcher
بستگی دارد، که همانطور که اتفاق می افتد، در زیر "sdks های معمولی استفاده می شود" نیز فهرست شده است.
وقتی به صفحه url_launcher
در pub.dev می رویم، می توانیم ببینیم که آنها نسخه جدیدی به نام 6.2.6 منتشر کرده اند که شامل مانیفست حریم خصوصی است.
پس ما به آن نسخه ارتقا می دهیم.
هنگامی که تمام وابستگیهایمان را برطرف کردیم، میتوانیم ادامه دهیم و با کد موجود در بسته خودمان مقابله کنیم.
نحوه گفت ن فایل Manifest Privacy
فایل مانیفست حریم خصوصی باید در داخل Resources
قرار گیرد پوشه در ساختار پروژه شما (تحت darwin
).
اطمینان حاصل کنید که دستورالعمل های اپل را در مورد اینکه چه داده هایی باید در آنجا قرار دهید را دنبال کنید. این به مورد استفاده بسته شما بستگی دارد. اگر مطمئن نیستید، می توانید به مستندات اپل مراجعه کنید یا مقاله من را که در ابتدا به آن پیوند دادم، تحلیل کنید.
سپس، در داخل podspec
بسته خود فایل، باید مانیفست حریم خصوصی را به عنوان یک منبع در آنجا اضافه کنید:
s.resource_bundles = {'package_name_privacy' => ['Resources/PrivacyInfo.xcprivacy']}
تقریبا انجام شد
همانطور که گفته شد، هنوز همه چیز در مورد اینکه آیا راه حل های ارائه شده در آزمون زمان مقاومت می کنند یا خیر روشن نیست.
یکی از مسائلی که در حال حاضر در حال تحلیل است، این واقعیت است که بسته های فلاتر در زیر هود، چارچوب های ثابت قرار دارند. این می تواند مشکلاتی را برای توسعه دهندگان برنامه ایجاد کند.
هنگام استفاده از بسته خود، فایل مانیفست حریم خصوصی می تواند توسط منابع سطح بالای خود برنامه پنهان شود. به این معنی که فایل مانیفست حریم خصوصی خود برنامه ممکن است فایل مانیفست حریم خصوصی بسته شما را تحت الشعاع قرار دهد. این به نوبه خود باعث میشود که برنامه از فروشگاه اپل رد شود زیرا متوجه نمیشود که بسته شما واقعاً یک فایل مانیفست حریم خصوصی دارد.
طبق این نظر مشکل GitHub ، این یک مشکل شناخته شده برای اپل است و آنها در حال کار بر روی رفع آن هستند.
در اطلاعیه 26 آوریل اپل ، آنها بیان می کنند که:
اگر برنامهها شرایط مانیفست و امضا را برآورده نکنند، پذیرفته نمیشوند.
اگر همه موارد زیر اعمال شوند، برنامهها نیز پذیرفته نمیشوند:
آنها دلیلی برای API فهرست شده ندارند.
کد بخشی از یک چارچوب پویا است که از طریق مرحله ساخت Embed Frameworks تعبیه شده است.
این چارچوب یک SDK شخص ثالث است که به تازگی اضافه شده است که در فهرست SDK های شخص ثالث رایج است.
به نظر می رسد که همه چیز در حال حاضر به چارچوب های پویا محدود شده است، همانطور که اپل اضافه می کند:
در آینده، این الزامات دلیل مورد نیاز گسترش مییابد تا کل باینری برنامه را شامل شود.
نتیجه
امیدواریم تا کنون دانش و ابزار لازم برای اطمینان از سازگاری بسته Flutter شما با تغییرات Manifest Privacy Apple را داشته باشید.
اما مطمئن شوید که چشم ها و گوش های خود را برای هر اطلاعیه ای که اپل اعلام می کند، نگه دارید زیرا ممکن است تغییرات بیشتری در بسته فلاتر شما مورد نیاز باشد.
ارسال نظر