@@ -263,6 +263,48 @@ def build_package(self):
263263 'displayImageURL' : display_image_url ,
264264 'fullSizeImageURL' : full_size_image_url ,
265265 }
266+ # Permissions and their Justification Descriptions
267+ local_network_usage_description = self .buildozer .config .getdefault (
268+ "app" , "ios.local_network_usage_description" , None )
269+ media_usage_description = self .buildozer .config .getdefault (
270+ "app" , "ios.media_usage_description" , None )
271+ camera_usage_description = self .buildozer .config .getdefault (
272+ "app" , "ios.camera_usage_description" , None )
273+ viewcontroller_based_statusbar_appearance = self .buildozer .config .getdefault (
274+ "app" , "ios.viewcontroller_based_statusbar_appearance" , None )
275+
276+ # types
277+ custom_ext_types = self .buildozer .config .getdefault ("app" , "ios.app_extensions" , None )
278+
279+ if media_usage_description :
280+ plist ['NSAppleMusicUsageDescription' ] = media_usage_description
281+ if local_network_usage_description :
282+ plist ['NSLocalNetworkUsageDescription' ] = local_network_usage_description
283+ if camera_usage_description :
284+ plist ['NSCameraUsageDescription' ] = camera_usage_description
285+ if viewcontroller_based_statusbar_appearance :
286+ plist ['UIViewControllerBasedStatusBarAppearance' ] = viewcontroller_based_statusbar_appearance
287+ if custom_ext_types :
288+ import ast
289+ custom_ext_types = ast .literal_eval (custom_ext_types )
290+ plist ["UTExportedTypeDeclarations" ] = []
291+ plist ["CFBundleDocumentTypes" ] = []
292+ for ext in custom_ext_types :
293+ plist ["UTExportedTypeDeclarations" ].append ({
294+ 'UTTypeConformsTo' : ext [1 ],
295+ 'UTTypeIdentifier' : ext [2 ],
296+ 'UTTypeDescription' : ext [3 ],
297+ 'UTTypeIconFile' : ext [4 ],
298+ 'UTTypeReferenceURL' : ext [5 ],
299+ 'UTTypeTagSpecification' : {'public.filename-extension' : ext [0 ]}, })
300+ plist ["CFBundleDocumentTypes" ].append ({
301+ "CFBundleTypeName" : ext [3 ],
302+ "CFBundleTypeIconFile" : ext [4 ],
303+ "CFBundleTypeRole" : "Editor" ,
304+ "LSHandlerRank" : "Owner" ,
305+ "LSItemContentTypes" : [ext [2 ]], })
306+ plist ["LSSupportsOpeningDocumentsInPlace" ] = "NO"
307+ plist ["UISupportsDocumentBrowser" ] = "NO"
266308
267309 # ok, write the modified plist.
268310 self .dump_plist_to_file (plist , plist_rfn )
0 commit comments