{"id":1046,"date":"2019-04-13T12:39:15","date_gmt":"2019-04-13T11:39:15","guid":{"rendered":"http:\/\/duskosavic.com\/blog\/?p=1046"},"modified":"2019-04-13T12:41:41","modified_gmt":"2019-04-13T11:41:41","slug":"missing-purpose-string-in-info-plist-file-after-uploading-binary-to-app-store-connect","status":"publish","type":"post","link":"https:\/\/duskosavic.com\/blog\/ios\/missing-purpose-string-in-info-plist-file-after-uploading-binary-to-app-store-connect\/","title":{"rendered":"Missing Purpose String in Info.plist File After Uploading Binary to App Store Connect"},"content":{"rendered":"<p>Occasionally, when you upload a binary to App Store Connect, you will one such message:<\/p>\n<p><quote>Dear Developer,<\/p>\n<p>We identified one or more issues with a recent delivery for your app, &#8220;TimeShare SellBOX Calculator&#8221;. Please correct the following issues, then upload again.<\/p>\n<p><b>Missing Purpose String in Info.plist File<\/b> &#8211; Your app&#8217;s code references one or more APIs that access sensitive user data. The app&#8217;s Info.plist file should contain a NSPhotoLibraryUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. Starting Spring 2019, all apps submitted to the App Store that access user data will be required to include a purpose string. If you&#8217;re using external libraries or SDKs, they may reference APIs that require a purpose string. While your app might not use these APIs, a purpose string is still required. You can contact the developer of the library or SDK and request they release a version of their code that doesn&#8217;t contain the APIs. Learn more (<a href=\"https:\/\/developer.apple.com\/documentation\/uikit\/core_app\/protecting_the_user_s_privacy\">https:\/\/developer.apple.com\/documentation\/uikit\/core_app\/protecting_the_user_s_privacy<\/a>).<br \/>\n<\/quote><\/p>\n<p>It tells you that a string is missing from the info.plist file. To fix this issue, find that info.plist file and insert the appropriate string.<\/p>\n<p>Since we are developing mobile apps with Flutter, the location of info.plist is in ios folder and then in the Runner subfolder. If you are using Android Studio 3.3, the easiest way to get there is by clicking directly. Once you click on info.plist, it will show up in the editor and you will be able to edit it as normal text.<\/p>\n<div id=\"attachment_1047\" style=\"width: 622px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/duskosavic.com\/blog\/wp-content\/uploads\/2019\/04\/info_plist.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1047\" class=\" wp-image-1047\" src=\"https:\/\/duskosavic.com\/blog\/wp-content\/uploads\/2019\/04\/info_plist-300x146.png\" alt=\"Android Studio for Flutter info.plist\" width=\"612\" height=\"298\" srcset=\"https:\/\/duskosavic.com\/blog\/wp-content\/uploads\/2019\/04\/info_plist-300x146.png 300w, https:\/\/duskosavic.com\/blog\/wp-content\/uploads\/2019\/04\/info_plist-768x375.png 768w, https:\/\/duskosavic.com\/blog\/wp-content\/uploads\/2019\/04\/info_plist-1024x499.png 1024w, https:\/\/duskosavic.com\/blog\/wp-content\/uploads\/2019\/04\/info_plist.png 1501w\" sizes=\"auto, (max-width: 612px) 100vw, 612px\" \/><\/a><p id=\"caption-attachment-1047\" class=\"wp-caption-text\">Access info.plist in Android Studio to file in the missing info string<\/p><\/div>\n<p>Depending on the missing key, you may need to insert one or more key strings. A typical key string is like this:<\/p>\n<p>&lt;key&gt;NSAppleMusicUsageDescription&lt;\/key&gt;<br \/>\n&lt;string&gt;We use access to music responsibly&lt;\/string&gt;<\/p>\n<p>The message &#8220;We use access to music responsibly&#8221; will show up if the app is running but permission is not granted for some reason. You should, of course, insert a more appropriate message then this, somewhat, bland message.<\/p>\n<p>If you want to &#8220;set and forget&#8221; about missing strings in info.plist, you may copy the following text into info.plist:<\/p>\n<p><code><br \/>\n&lt;key&gt;NSAppleMusicUsageDescription&lt;\/key&gt;<br \/>\n&lt;string&gt;We use access to music responsibly&lt;\/string&gt;<br \/>\n&lt;key&gt;NSBluetoothPeripheralUsageDescription&lt;\/key&gt;<br \/>\n&lt;string&gt;We use access to Bluetooth peripherals responsibly&lt;\/string&gt;<br \/>\n&lt;key&gt;NSCalendarsUsageDescription&lt;\/key&gt;<br \/>\n&lt;string&gt;We use access to Calendars responsibly&lt;\/string&gt;<br \/>\n&lt;key&gt;NSCameraUsageDescription&lt;\/key&gt;<br \/>\n&lt;string&gt;We use access to camera responsibly&lt;\/string&gt;<br \/>\n&lt;key&gt;NSContactsUsageDescription&lt;\/key&gt;<br \/>\n&lt;string&gt;We use access to contacts responsibly&lt;\/string&gt;<br \/>\n&lt;key&gt;NSFaceIDUsageDescription&lt;\/key&gt;<br \/>\n&lt;string&gt;We use access to FaceID responsibly&lt;\/string&gt;<br \/>\n&lt;key&gt;NSHealthShareUsageDescription&lt;\/key&gt;<br \/>\n&lt;string&gt;We use access to HealthShare responsibly&lt;\/string&gt;<br \/>\n&lt;key&gt;NSHealthUpdateUsageDescription&lt;\/key&gt;<br \/>\n&lt;string&gt;We use access to health update responsibly&lt;\/string&gt;<br \/>\n&lt;key&gt;NSHomeKitUsageDescription&lt;\/key&gt;<br \/>\n&lt;string&gt;We use access to home kit responsibly&lt;\/string&gt;<br \/>\n&lt;key&gt;NSLocationUsageDescription&lt;\/key&gt;<br \/>\n&lt;string&gt;We use access to location usage responsibly&lt;\/string&gt;<br \/>\n&lt;key&gt;NSLocationAlwaysUsageDescription&lt;\/key&gt;<br \/>\n&lt;string&gt;We use access to location always responsibly&lt;\/string&gt;<br \/>\n&lt;key&gt;NSLocationWhenInUseUsageDescription&lt;\/key&gt;<br \/>\n&lt;string&gt;We use access to location when in use responsibly&lt;\/string&gt;<br \/>\n&lt;key&gt;NSMicrophoneUsageDescription&lt;\/key&gt;<br \/>\n&lt;string&gt;We use access to mictophone responsibly&lt;\/string&gt;<br \/>\n&lt;key&gt;NSMotionUsageDescription&lt;\/key&gt;<br \/>\n&lt;string&gt;We use access to motion usage responsibly&lt;\/string&gt;<br \/>\n&lt;key&gt;NFCReaderUsageDescription&lt;\/key&gt;<br \/>\n&lt;string&gt;We use access to NFC reader responsibly&lt;\/string&gt;<br \/>\n&lt;key&gt;NSPhotoLibraryUsageDescription&lt;\/key&gt;<br \/>\n&lt;string&gt;We use access to photo library responsibly&lt;\/string&gt;<br \/>\n&lt;key&gt;NSPhotoLibraryAddUsageDescription&lt;\/key&gt;<br \/>\n&lt;string&gt;We use access to photo library with write only responsibly&lt;\/string&gt;<br \/>\n&lt;key&gt;NSRemindersUsageDescription&lt;\/key&gt;<br \/>\n&lt;string&gt;We use access to reminders responsibly&lt;\/string&gt;<br \/>\n&lt;key&gt;NSSiriUsageDescription&lt;\/key&gt;<br \/>\n&lt;string&gt;We use access to Siri responsibly&lt;\/string&gt;<br \/>\n&lt;key&gt;NSSpeechRecognitionUsageDescription&lt;\/key&gt;<br \/>\n&lt;string&gt;We use access to speech recognition usage responsibly&lt;\/string&gt;<br \/>\n<\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Occasionally, when you upload a binary to App Store Connect, you will one such message: Dear Developer, We identified one or more issues with a recent delivery for your app, &#8220;TimeShare SellBOX Calculator&#8221;. Please correct the following issues, then upload &hellip; <a href=\"https:\/\/duskosavic.com\/blog\/ios\/missing-purpose-string-in-info-plist-file-after-uploading-binary-to-app-store-connect\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[572,281],"tags":[574,4,573,577,357,576,575,591,578,579,580,581,582,583,584,585,587,586,588,589,590,592,593,594,595],"series":[],"class_list":["post-1046","post","type-post","status-publish","format-standard","hentry","category-flutter","category-ios","tag-android-studio","tag-duskosaviccom","tag-flutter","tag-info-plist","tag-ios-2","tag-ios-permission","tag-missing-string","tag-nfcreaderusagedescription","tag-nsbluetoothperipheralusagedescription","tag-nscalendarsusagedescription","tag-nscamerausagedescription","tag-nscontactsusagedescription","tag-nsfaceidusagedescription","tag-nshealthshareusagedescription","tag-nshealthupdateusagedescription","tag-nshomekitusagedescription","tag-nslocationalwaysusagedescription","tag-nslocationusagedescription","tag-nslocationwheninuseusagedescription","tag-nsmicrophoneusagedescription","tag-nsmotionusagedescription","tag-nsphotolibraryusagedescription","tag-nsremindersusagedescription","tag-nssiriusagedescription","tag-nsspeechrecognitionusagedescription"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Missing Purpose String in Info.plist File After Uploading Binary to App Store Connect - DuskoSavic.com<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/duskosavic.com\/blog\/ios\/missing-purpose-string-in-info-plist-file-after-uploading-binary-to-app-store-connect\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Missing Purpose String in Info.plist File After Uploading Binary to App Store Connect - DuskoSavic.com\" \/>\n<meta property=\"og:description\" content=\"Occasionally, when you upload a binary to App Store Connect, you will one such message: Dear Developer, We identified one or more issues with a recent delivery for your app, &#8220;TimeShare SellBOX Calculator&#8221;. Please correct the following issues, then upload &hellip; Continue reading &rarr;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/duskosavic.com\/blog\/ios\/missing-purpose-string-in-info-plist-file-after-uploading-binary-to-app-store-connect\/\" \/>\n<meta property=\"og:site_name\" content=\"DuskoSavic.com\" \/>\n<meta property=\"article:published_time\" content=\"2019-04-13T11:39:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-04-13T11:41:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/duskosavic.com\/blog\/wp-content\/uploads\/2019\/04\/info_plist-300x146.png\" \/>\n<meta name=\"author\" content=\"Dusko\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dusko\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/duskosavic.com\\\/blog\\\/ios\\\/missing-purpose-string-in-info-plist-file-after-uploading-binary-to-app-store-connect\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/duskosavic.com\\\/blog\\\/ios\\\/missing-purpose-string-in-info-plist-file-after-uploading-binary-to-app-store-connect\\\/\"},\"author\":{\"name\":\"Dusko\",\"@id\":\"https:\\\/\\\/duskosavic.com\\\/blog\\\/#\\\/schema\\\/person\\\/5c90e82c5c70eaeee96d0b2efbfd4396\"},\"headline\":\"Missing Purpose String in Info.plist File After Uploading Binary to App Store Connect\",\"datePublished\":\"2019-04-13T11:39:15+00:00\",\"dateModified\":\"2019-04-13T11:41:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/duskosavic.com\\\/blog\\\/ios\\\/missing-purpose-string-in-info-plist-file-after-uploading-binary-to-app-store-connect\\\/\"},\"wordCount\":406,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/duskosavic.com\\\/blog\\\/#\\\/schema\\\/person\\\/5c90e82c5c70eaeee96d0b2efbfd4396\"},\"image\":{\"@id\":\"https:\\\/\\\/duskosavic.com\\\/blog\\\/ios\\\/missing-purpose-string-in-info-plist-file-after-uploading-binary-to-app-store-connect\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/duskosavic.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/04\\\/info_plist-300x146.png\",\"keywords\":[\"android studio\",\"duskosavic.com\",\"flutter\",\"info.plist\",\"ios\",\"ios permission\",\"missing string\",\"NFCReaderUsageDescription\",\"NSBluetoothPeripheralUsageDescription\",\"NSCalendarsUsageDescription\",\"NSCameraUsageDescription\",\"NSContactsUsageDescription\",\"NSFaceIDUsageDescription\",\"NSHealthShareUsageDescription\",\"NSHealthUpdateUsageDescription\",\"NSHomeKitUsageDescription\",\"NSLocationAlwaysUsageDescription\",\"NSLocationUsageDescription\",\"NSLocationWhenInUseUsageDescription\",\"NSMicrophoneUsageDescription\",\"NSMotionUsageDescription\",\"NSPhotoLibraryUsageDescription\",\"NSRemindersUsageDescription\",\"NSSiriUsageDescription\",\"NSSpeechRecognitionUsageDescription\"],\"articleSection\":[\"Flutter\",\"iOS\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/duskosavic.com\\\/blog\\\/ios\\\/missing-purpose-string-in-info-plist-file-after-uploading-binary-to-app-store-connect\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/duskosavic.com\\\/blog\\\/ios\\\/missing-purpose-string-in-info-plist-file-after-uploading-binary-to-app-store-connect\\\/\",\"url\":\"https:\\\/\\\/duskosavic.com\\\/blog\\\/ios\\\/missing-purpose-string-in-info-plist-file-after-uploading-binary-to-app-store-connect\\\/\",\"name\":\"Missing Purpose String in Info.plist File After Uploading Binary to App Store Connect - DuskoSavic.com\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/duskosavic.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/duskosavic.com\\\/blog\\\/ios\\\/missing-purpose-string-in-info-plist-file-after-uploading-binary-to-app-store-connect\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/duskosavic.com\\\/blog\\\/ios\\\/missing-purpose-string-in-info-plist-file-after-uploading-binary-to-app-store-connect\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/duskosavic.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/04\\\/info_plist-300x146.png\",\"datePublished\":\"2019-04-13T11:39:15+00:00\",\"dateModified\":\"2019-04-13T11:41:41+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/duskosavic.com\\\/blog\\\/ios\\\/missing-purpose-string-in-info-plist-file-after-uploading-binary-to-app-store-connect\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/duskosavic.com\\\/blog\\\/ios\\\/missing-purpose-string-in-info-plist-file-after-uploading-binary-to-app-store-connect\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/duskosavic.com\\\/blog\\\/ios\\\/missing-purpose-string-in-info-plist-file-after-uploading-binary-to-app-store-connect\\\/#primaryimage\",\"url\":\"https:\\\/\\\/duskosavic.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/04\\\/info_plist-300x146.png\",\"contentUrl\":\"https:\\\/\\\/duskosavic.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/04\\\/info_plist-300x146.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/duskosavic.com\\\/blog\\\/ios\\\/missing-purpose-string-in-info-plist-file-after-uploading-binary-to-app-store-connect\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/duskosavic.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Missing Purpose String in Info.plist File After Uploading Binary to App Store Connect\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/duskosavic.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/duskosavic.com\\\/blog\\\/\",\"name\":\"DuskoSavic.com\",\"description\":\"Rapid Mobile Apps Development With Flutter\",\"publisher\":{\"@id\":\"https:\\\/\\\/duskosavic.com\\\/blog\\\/#\\\/schema\\\/person\\\/5c90e82c5c70eaeee96d0b2efbfd4396\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/duskosavic.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/duskosavic.com\\\/blog\\\/#\\\/schema\\\/person\\\/5c90e82c5c70eaeee96d0b2efbfd4396\",\"name\":\"Dusko\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d249b8ea0c85e62fd0339dd1412b99f721f072408db9a9a546efe3a86a93b667?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d249b8ea0c85e62fd0339dd1412b99f721f072408db9a9a546efe3a86a93b667?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d249b8ea0c85e62fd0339dd1412b99f721f072408db9a9a546efe3a86a93b667?s=96&d=mm&r=g\",\"caption\":\"Dusko\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d249b8ea0c85e62fd0339dd1412b99f721f072408db9a9a546efe3a86a93b667?s=96&d=mm&r=g\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Missing Purpose String in Info.plist File After Uploading Binary to App Store Connect - DuskoSavic.com","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/duskosavic.com\/blog\/ios\/missing-purpose-string-in-info-plist-file-after-uploading-binary-to-app-store-connect\/","og_locale":"en_US","og_type":"article","og_title":"Missing Purpose String in Info.plist File After Uploading Binary to App Store Connect - DuskoSavic.com","og_description":"Occasionally, when you upload a binary to App Store Connect, you will one such message: Dear Developer, We identified one or more issues with a recent delivery for your app, &#8220;TimeShare SellBOX Calculator&#8221;. Please correct the following issues, then upload &hellip; Continue reading &rarr;","og_url":"https:\/\/duskosavic.com\/blog\/ios\/missing-purpose-string-in-info-plist-file-after-uploading-binary-to-app-store-connect\/","og_site_name":"DuskoSavic.com","article_published_time":"2019-04-13T11:39:15+00:00","article_modified_time":"2019-04-13T11:41:41+00:00","og_image":[{"url":"https:\/\/duskosavic.com\/blog\/wp-content\/uploads\/2019\/04\/info_plist-300x146.png","type":"","width":"","height":""}],"author":"Dusko","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Dusko","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/duskosavic.com\/blog\/ios\/missing-purpose-string-in-info-plist-file-after-uploading-binary-to-app-store-connect\/#article","isPartOf":{"@id":"https:\/\/duskosavic.com\/blog\/ios\/missing-purpose-string-in-info-plist-file-after-uploading-binary-to-app-store-connect\/"},"author":{"name":"Dusko","@id":"https:\/\/duskosavic.com\/blog\/#\/schema\/person\/5c90e82c5c70eaeee96d0b2efbfd4396"},"headline":"Missing Purpose String in Info.plist File After Uploading Binary to App Store Connect","datePublished":"2019-04-13T11:39:15+00:00","dateModified":"2019-04-13T11:41:41+00:00","mainEntityOfPage":{"@id":"https:\/\/duskosavic.com\/blog\/ios\/missing-purpose-string-in-info-plist-file-after-uploading-binary-to-app-store-connect\/"},"wordCount":406,"commentCount":0,"publisher":{"@id":"https:\/\/duskosavic.com\/blog\/#\/schema\/person\/5c90e82c5c70eaeee96d0b2efbfd4396"},"image":{"@id":"https:\/\/duskosavic.com\/blog\/ios\/missing-purpose-string-in-info-plist-file-after-uploading-binary-to-app-store-connect\/#primaryimage"},"thumbnailUrl":"https:\/\/duskosavic.com\/blog\/wp-content\/uploads\/2019\/04\/info_plist-300x146.png","keywords":["android studio","duskosavic.com","flutter","info.plist","ios","ios permission","missing string","NFCReaderUsageDescription","NSBluetoothPeripheralUsageDescription","NSCalendarsUsageDescription","NSCameraUsageDescription","NSContactsUsageDescription","NSFaceIDUsageDescription","NSHealthShareUsageDescription","NSHealthUpdateUsageDescription","NSHomeKitUsageDescription","NSLocationAlwaysUsageDescription","NSLocationUsageDescription","NSLocationWhenInUseUsageDescription","NSMicrophoneUsageDescription","NSMotionUsageDescription","NSPhotoLibraryUsageDescription","NSRemindersUsageDescription","NSSiriUsageDescription","NSSpeechRecognitionUsageDescription"],"articleSection":["Flutter","iOS"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/duskosavic.com\/blog\/ios\/missing-purpose-string-in-info-plist-file-after-uploading-binary-to-app-store-connect\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/duskosavic.com\/blog\/ios\/missing-purpose-string-in-info-plist-file-after-uploading-binary-to-app-store-connect\/","url":"https:\/\/duskosavic.com\/blog\/ios\/missing-purpose-string-in-info-plist-file-after-uploading-binary-to-app-store-connect\/","name":"Missing Purpose String in Info.plist File After Uploading Binary to App Store Connect - DuskoSavic.com","isPartOf":{"@id":"https:\/\/duskosavic.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/duskosavic.com\/blog\/ios\/missing-purpose-string-in-info-plist-file-after-uploading-binary-to-app-store-connect\/#primaryimage"},"image":{"@id":"https:\/\/duskosavic.com\/blog\/ios\/missing-purpose-string-in-info-plist-file-after-uploading-binary-to-app-store-connect\/#primaryimage"},"thumbnailUrl":"https:\/\/duskosavic.com\/blog\/wp-content\/uploads\/2019\/04\/info_plist-300x146.png","datePublished":"2019-04-13T11:39:15+00:00","dateModified":"2019-04-13T11:41:41+00:00","breadcrumb":{"@id":"https:\/\/duskosavic.com\/blog\/ios\/missing-purpose-string-in-info-plist-file-after-uploading-binary-to-app-store-connect\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/duskosavic.com\/blog\/ios\/missing-purpose-string-in-info-plist-file-after-uploading-binary-to-app-store-connect\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/duskosavic.com\/blog\/ios\/missing-purpose-string-in-info-plist-file-after-uploading-binary-to-app-store-connect\/#primaryimage","url":"https:\/\/duskosavic.com\/blog\/wp-content\/uploads\/2019\/04\/info_plist-300x146.png","contentUrl":"https:\/\/duskosavic.com\/blog\/wp-content\/uploads\/2019\/04\/info_plist-300x146.png"},{"@type":"BreadcrumbList","@id":"https:\/\/duskosavic.com\/blog\/ios\/missing-purpose-string-in-info-plist-file-after-uploading-binary-to-app-store-connect\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/duskosavic.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Missing Purpose String in Info.plist File After Uploading Binary to App Store Connect"}]},{"@type":"WebSite","@id":"https:\/\/duskosavic.com\/blog\/#website","url":"https:\/\/duskosavic.com\/blog\/","name":"DuskoSavic.com","description":"Rapid Mobile Apps Development With Flutter","publisher":{"@id":"https:\/\/duskosavic.com\/blog\/#\/schema\/person\/5c90e82c5c70eaeee96d0b2efbfd4396"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/duskosavic.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/duskosavic.com\/blog\/#\/schema\/person\/5c90e82c5c70eaeee96d0b2efbfd4396","name":"Dusko","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/d249b8ea0c85e62fd0339dd1412b99f721f072408db9a9a546efe3a86a93b667?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/d249b8ea0c85e62fd0339dd1412b99f721f072408db9a9a546efe3a86a93b667?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d249b8ea0c85e62fd0339dd1412b99f721f072408db9a9a546efe3a86a93b667?s=96&d=mm&r=g","caption":"Dusko"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/d249b8ea0c85e62fd0339dd1412b99f721f072408db9a9a546efe3a86a93b667?s=96&d=mm&r=g"}}]}},"_links":{"self":[{"href":"https:\/\/duskosavic.com\/blog\/wp-json\/wp\/v2\/posts\/1046","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/duskosavic.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/duskosavic.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/duskosavic.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/duskosavic.com\/blog\/wp-json\/wp\/v2\/comments?post=1046"}],"version-history":[{"count":3,"href":"https:\/\/duskosavic.com\/blog\/wp-json\/wp\/v2\/posts\/1046\/revisions"}],"predecessor-version":[{"id":1050,"href":"https:\/\/duskosavic.com\/blog\/wp-json\/wp\/v2\/posts\/1046\/revisions\/1050"}],"wp:attachment":[{"href":"https:\/\/duskosavic.com\/blog\/wp-json\/wp\/v2\/media?parent=1046"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/duskosavic.com\/blog\/wp-json\/wp\/v2\/categories?post=1046"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/duskosavic.com\/blog\/wp-json\/wp\/v2\/tags?post=1046"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/duskosavic.com\/blog\/wp-json\/wp\/v2\/series?post=1046"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}