{"id":1516,"date":"2017-06-22T10:45:41","date_gmt":"2017-06-22T01:45:41","guid":{"rendered":"http:\/\/www.chihayafuru.jp\/tech\/?p=1516"},"modified":"2021-05-25T14:20:21","modified_gmt":"2021-05-25T05:20:21","slug":"missing-info-plist-key%e3%82%92%e7%90%86%e7%94%b1%e3%81%abappstore%e5%af%a9%e6%9f%bb%e4%b8%8d%e5%90%88%e6%a0%bc","status":"publish","type":"post","link":"https:\/\/www.chihayafuru.jp\/tech\/index.php\/archives\/1516","title":{"rendered":"&#8220;Missing Info.plist key&#8221;\u3092\u7406\u7531\u306bAppStore\u5be9\u67fb\u4e0d\u5408\u683c"},"content":{"rendered":"<blockquote><p>Dear developer,<br \/>\nWe have discovered one or more issues with your recent delivery for &#8220;xxxxx&#8221;. To process your delivery, the following issues must be corrected:<br \/>\nMissing Info.plist key &#8211; This app attempts to access privacy-sensitive data without a usage description. The app&#8217;s Info.plist must contain an NSCameraUsageDescription key with a string value explaining to the user how the app uses this data.<br \/>\nOnce these issues have been corrected, you can then redeliver the corrected binary.<br \/>\nRegards,<br \/>\nThe App Store team<\/p><\/blockquote>\n<h3>\u4e0d\u5408\u683c\u306e\u76f4\u63a5\u7684\u7406\u7531<\/h3>\n<p>\u30a2\u30d7\u30ea\u304c\u30ab\u30e1\u30e9\u6a5f\u80fd\u3092\u4f7f\u7528\u3059\u308b\u306b\u3082\u304b\u304b\u308f\u3089\u305a xxx-Info.plist \u306b\u30ab\u30e1\u30e9\u6a5f\u80fd\u3092\u4f7f\u7528\u3059\u308b\u7406\u7531\u306e\u8a18\u8f09(NSCameraUsageDescription)\u304c\u306a\u3044\u3002<\/p>\n<p><!--more--><\/p>\n<h3>\u4e0d\u5408\u683c\u306e\u9593\u63a5\u7684\u7406\u7531<\/h2>\n<p>\u30ab\u30e1\u30e9\u6a5f\u80fd\u3092\u660e\u793a\u7684\u306b\u306f\u4f7f\u7528\u3057\u3066\u3044\u306a\u3044\u304c\u3001\u7d44\u307f\u8fbc\u3093\u3067\u3044\u308b\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af(opencv2.framework)\u304c\u30ab\u30e1\u30e9\u6a5f\u80fd(AVCaptureDeviceInput)\u3092\u547c\u3073\u51fa\u3059\uff08\u3053\u3068\u304c\u3067\u304d\u308b\uff09\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u30a4\u30f3\u30af\u30eb\u30fc\u30c9\u3057\u3066\u3044\u305f\u3002<\/p>\n<h3>\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\uff08\u30d0\u30a4\u30ca\u30ea\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\uff09\u306e\u4e2d\u8eab\u306e\u30c1\u30a7\u30c3\u30af\u65b9\u6cd5<\/h3>\n<pre class=\"lang:default highlight:0 decode:true \" >$ nm opencv2.framework\/opencv2 | grep AVCaptureDeviceInput\r\n\r\n                 U _OBJC_CLASS_$_AVCaptureDeviceInput\r\n                 U _OBJC_CLASS_$_AVCaptureDeviceInput<\/pre>\n<p>AVCaptureDeviceInput\u304c\u30b7\u30f3\u30dc\u30eb\u306b\u542b\u307e\u308c\u308b\u3053\u3068\u304c\u4e0d\u5408\u683c\u306e\u7406\u7531\u3068\u306a\u3063\u3066\u3044\u308b<\/p>\n<p>&nbsp;<\/p>\n<h3>\u30ab\u30e1\u30e9\u30a2\u30af\u30bb\u30b9\u6a5f\u80fd\u3092\u9664\u5916\u3057\u3066opencv2.framework\u3092\u4f5c\u6210\u3059\u308b\u65b9\u6cd5<\/h3>\n<h4>1. GitHub\u304b\u3089\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3092\u53d6\u5f97\u3059\u308b<\/h4>\n<pre class=\"lang:default highlight:0 decode:true \" >$ cd ~\/<my_working_directory>\r\n\r\n$ git clone https:\/\/github.com\/opencv\/opencv.git \r\n<\/pre>\n<ul>\n<li>~\/&lt;my_working_directory&gt;\u306f\u500b\u4eba\u306e\u74b0\u5883\u306b\u5fdc\u3058\u3066\u66f8\u304d\u63db\u3048\u308b<\/li>\n<ul>\n<h4>2. \u30d3\u30eb\u30c9\u3059\u308b\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u30c1\u30a7\u30c3\u30af\u30a2\u30a6\u30c8\u3059\u308b<\/h4>\n<pre class=\"lang:default highlight:0 decode:true \" >$ cd ~\/<my_working_directory>\/opencv\r\n\r\n$ git checkout refs\/tags\/3.2.0<\/pre>\n<ul>\n<li>&quot;3.2.0&quot;\u306f\u5fc5\u8981\u306b\u5fdc\u3058\u3066\u66f8\u304d\u63db\u3048\u308b<\/li>\n<\/ul>\n<h4>3. \uff08OpenCV\u306e\u30d3\u30eb\u30c9\u30b9\u30af\u30ea\u30d7\u30c8\u306e\u305f\u3081\u306e\uff09\u30b7\u30f3\u30dc\u30ea\u30c3\u30af\u30fb\u30ea\u30f3\u30af\u3092\u4f5c\u6210\u3059\u308b<\/h4>\n<pre class=\"lang:default highlight:0 decode:true \" >$ cd \/\r\n\r\n$ sudo ln -s \/Applications\/Xcode.app\/Contents\/Developer Developer<\/pre>\n<h4>4. \u30ab\u30e1\u30e9\u30a2\u30af\u30bb\u30b9\u6a5f\u80fd(videoio)\u9664\u5916\u3092\u30aa\u30d7\u30b7\u30e7\u30f3\u6307\u5b9a\u306b\u52a0\u3048\u3066\u30d3\u30eb\u30c9\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u5b9f\u884c\u3059\u308b<\/h4>\n<pre class=\"lang:default highlight:0 decode:true \" >$ cd ~\/<my_working_directory>\r\n\r\n$ python opencv\/platforms\/ios\/build_framework.py  --without videoio  ios<\/pre>\n<h3>References<\/h3>\n<ul>\n<li><a href=\"https:\/\/developer.apple.com\/library\/content\/qa\/qa1937\/_index.html\">Technical Q&#038;A QA1937 Resolving the Privacy-Sensitive Data App Rejection<\/a><\/li>\n<li><a href=\"https:\/\/developer.apple.com\/library\/content\/documentation\/General\/Reference\/InfoPlistKeyReference\/Articles\/iPhoneOSKeys.html\">Information Property List Key Reference &#8211; iOS keys<\/a><\/ul>\n<li><a href=\"\/tech\/index.php\/archives\/1573\">OpenCV\u3092\u7d44\u307f\u8fbc\u3093\u3060iOS\u30a2\u30d7\u30ea\u304c\u201cMissing Info.plist key\u201d\u3092\u7406\u7531\u306bAppStore\u5be9\u67fb\u4e0d\u5408\u683c<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Dear developer, We have discovered one or more issues with your recent delivery for &#8220;xxxxx&#8221;. To pr [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[7,50],"class_list":["post-1516","post","type-post","status-publish","format-standard","hentry","category-memo","tag-ios","tag-opencv"],"_links":{"self":[{"href":"https:\/\/www.chihayafuru.jp\/tech\/index.php\/wp-json\/wp\/v2\/posts\/1516","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.chihayafuru.jp\/tech\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.chihayafuru.jp\/tech\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.chihayafuru.jp\/tech\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.chihayafuru.jp\/tech\/index.php\/wp-json\/wp\/v2\/comments?post=1516"}],"version-history":[{"count":18,"href":"https:\/\/www.chihayafuru.jp\/tech\/index.php\/wp-json\/wp\/v2\/posts\/1516\/revisions"}],"predecessor-version":[{"id":4186,"href":"https:\/\/www.chihayafuru.jp\/tech\/index.php\/wp-json\/wp\/v2\/posts\/1516\/revisions\/4186"}],"wp:attachment":[{"href":"https:\/\/www.chihayafuru.jp\/tech\/index.php\/wp-json\/wp\/v2\/media?parent=1516"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.chihayafuru.jp\/tech\/index.php\/wp-json\/wp\/v2\/categories?post=1516"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.chihayafuru.jp\/tech\/index.php\/wp-json\/wp\/v2\/tags?post=1516"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}