我刚开始面对iOS 10 GM版本的这个问题.我收到一封电子邮件说:
要处理您的交付,必须纠正以下问题:
此应用程序尝试在没有使用说明的情况下访问隐私敏感数据.应用程序的Info.plist必须包含一个NSCameraUsageDescription键,其中包含一个字符串值,向用户解释应用程序如何使用此数据.
完成所需的更正后,您可以重新更新已更正的二进制文件.
问候,
App Store团队
我正在使用谷歌GoogleSignIn.我没有使用Firebase,但在使用可可豆荚安装GoogleSignIn时,我在日志中看到它自动安装了Firebase.
除了必须定义这些键之外我们还可以做些什么,因为我的应用程序与相机/照片等无关,因此我不希望用户认为我们正在使用它们.
我注意到其他人也遇到过这个问题:https: //forums.developer.apple.com/thread/62229
我是Cordova CLI的新手.
我需要通过Cordova以编程方式执行以下步骤.
我想我需要在项目根目录中的config.xml文件中执行此操作(或者可能是"platforms"文件夹中的那个).
有人可以向我解释如何通过config.xml添加条目,以便在编译时添加上述条目吗?
我正在使用Cordova 3.3.1-0.42(我知道它不是最新的).我已经完成了我的项目,一切都很好,我只需要将这个条目添加到pList中.
我有一个设置视图,用户可以选择打开或关闭" 导出到相机胶卷 "功能
当用户第一次打开它时(而不是当他拍摄第一张照片时),我希望该应用程序向他询问是否允许访问相机胶卷.
我在许多应用程序中看到了行为,但无法找到方法.
更新:
我尝试将一个字符串值添加到"NSPhotoLibraryUsageDescription"
键.
它的工作原理.我的TestFlight现在提供了构建版本.
但是我想知道为什么Apple Store只让我为"NSPhotoLibraryUsageDescription"
key而不是"Camera Usage Description"
或者添加String值"Location When In Use Usage Description"
?以及如何本地化info.plist.
亲爱的开发者,
我们发现您最近为"家庭健康追踪器"发送的一个或多个问题.要处理您的交付,必须纠正以下问题:
此应用程序尝试在没有使用说明的情况下访问隐私敏感数据.应用程序的Info.plist必须包含一个NSPhotoLibraryUsageDescription键,其中包含一个字符串值,向用户解释应用程序如何使用此数据.
一旦纠正了这些问题,您就可以重新更新已更正的二进制文件.
问候,
App Store团队
他们仍然告诉我添加NSPhotoLibraryUsageDescription
我使用应用程序加载器完全上传我的.ipa文件,但我没有找到内置的Itunes Connect,我也从苹果支持部门收到此消息:"我们发现了您最近交付的"更新HF"的一个或多个问题.您的交付,必须纠正以下问题:缺少Info.plist密钥 - 此应用程序尝试访问隐私敏感数据而没有使用说明.应用程序的Info.plist必须包含一个NSPhotoLibraryUsageDescription键,其中包含一个字符串值,向用户解释如何应用程序使用这些数据."
我将以下代码添加到config.xml文件,但我仍然有相同的错误:
我想通过点击按钮打开相机,但无法在iOS包中添加相机和图库权限。
我有这些钥匙:
NSPhotoLibraryUsageDescription
NSCameraUsageDescription
NSMicrophoneUsageDescription
Run Code Online (Sandbox Code Playgroud)
我不知道应该把这些线放在哪里。
我是一个早期的初学者,我正在尝试截取该应用程序并与共享按钮共享.分享按钮工作,它让我分享我的初始文本和URL,只是截图似乎甚至没有采取.
经过几天的研究后,我发现所有答案对我来说都可能过于先进,我可能在开始时缺少基础知识.
我不知道在哪里放置截图的代码,或者我必须设置什么才能使它工作.我也不知道如何将截图实现为图像.
这是我的分享按钮代码,效果很好:
func socialShare(sharingText: String?, sharingImage: UIImage?, sharingURL: NSURL?) {
var sharingItems = [AnyObject]()
if let text = sharingText {
sharingItems.append(text)
}
if let image = sharingImage {
sharingItems.append(image)
}
if let url = sharingURL {
sharingItems.append(url)
}
let activityViewController = UIActivityViewController(activityItems: sharingItems, applicationActivities: nil)
activityViewController.excludedActivityTypes = [UIActivityTypeCopyToPasteboard,UIActivityTypeAirDrop,UIActivityTypeAddToReadingList,
UIActivityTypeAssignToContact,UIActivityTypePostToTencentWeibo,UIActivityTypePostToVimeo,UIActivityTypePrint,UIActivityTypeSaveToCameraRoll,UIActivityTypePostToWeibo]
self.presentViewController(activityViewController, animated: true, completion: nil)
}
@IBAction func clickShare(sender: AnyObject) {
socialShare("Text to share #Hashtag", sharingImage: UIImage(named: "image"), sharingURL: NSURL(string: "http://itunes.apple.com/app/"))
}
Run Code Online (Sandbox Code Playgroud)
这是我到处找到截图的代码.但我没有让它工作/不知道把它放在哪里,如何将它与IBAction连接以及如何将屏幕截图实现为图像.
//Generate the screenshot
UIGraphicsBeginImageContext(view.frame.size)
view.layer.renderInContext(UIGraphicsGetCurrentContext())
var …
Run Code Online (Sandbox Code Playgroud) 我在应用程序中实现了以下代码,以允许用户向应用程序添加图像。但是,永远不会要求用户授予访问照片的权限。我在这里想念什么?
在我的info.plist中,我设置了:隐私-图片库使用说明=请提供对您图片库的访问权限
捆绑包标识符为:$(PRODUCT_BUNDLE_IDENTIFIER)
import UIKit
class NewPostXIB: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
@IBOutlet weak var image: UIImageView!
let imagePicker = UIImagePickerController()
override func viewDidLoad() {
super.viewDidLoad()
imagePicker.delegate = self
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
super.touchesBegan(touches, with: event)
self.view.endEditing(true)
}
@IBAction func closeButton(_ sender: Any) {
dismiss(animated: false, completion: nil)
}
@IBAction func addImageButton(_ sender: Any) {
if UIImagePickerController.isSourceTypeAvailable(.photoLibrary) {
imagePicker.allowsEditing = true
imagePicker.sourceType = .photoLibrary
present(imagePicker, animated: true, completion: nil)
}
}
func imagePickerController(_ picker: UIImagePickerController, …
Run Code Online (Sandbox Code Playgroud) 有什么办法可以将Documents目录中的视频保存到照片库吗?我在文档目录中有视频的链接,我只是不知道如何将其保存到Photos应用程序.
谢谢,
凯文
由于缺少info.plist键,我的应用被拒绝了。
缺少Info.plist键-此应用尝试访问对隐私敏感的数据,而没有使用说明。该应用程序的Info.plist必须包含一个NSPhotoLibraryUsageDescription键,该键具有字符串值,该字符串值向用户说明该应用程序如何使用此数据。
我知道如何“修复”它。听起来很简单,只需添加NSPhotoLibraryUsageDescription
到我的info.plist并附上其用途说明即可。
问题是我没有使用任何可以触发此要求的东西。我不想添加此描述,而无需了解它的用途。
我能想到的唯一可能导致此问题的原因是我正在使用的一个外部框架CocoaPods
与此有关。
这是我的podfile:
def myPods
pod 'HockeySDK', '4.1.2'
pod 'ReactiveCocoa', '2.4.7'
pod 'TTTAttributedLabel', '2.0.0'
pod 'GoogleMaps', '2.1.0'
pod 'GoogleAnalytics', '3.17.0'
end
target 'MainApp' do
myPods
end
target 'BetaApp' do
myPods
pod 'Instabug', '7.0.5'
end
Run Code Online (Sandbox Code Playgroud)
我知道事实上Instabug
需要此键(以及使用麦克风的键),但正如您所见,我并不总是包含Instabug。假设我有两个目标;MainApp
和BetaApp
。他们每个人都有自己的info.plist
。在BetaApp的info.plist中,我包括了所需的密钥。在MainApp中,我没有包括它们,因为在MainApp中未使用Instabug。现在,当我尝试将MainApp上传到AppStore时,遭到拒绝。我还尝试了完全删除Instabug-pod(即使它仅存在于BetaApp中),并且仍然在MainApp中发生。
我以前从未在MainApp中遇到过这种拒绝(这不是一个新应用,只是一个更新)。我认为自上一个版本以来,我已经更新了GoogleMaps,也许还有其他一些,但是我不知道如何找出Apple认为我必须实施的原因NSPhotoLibraryUsageDescription
。
有没有办法找出我的应用程序的哪一部分触发了此要求?
我假设如果实现这些键,它们实际上将永远不会被触发,并且永远不会提示用户允许访问照片库(因为我没有尝试访问用户照片库的代码),但是我会我想知道为什么会这样,所以我不愿意在知道之前添加它。
ios ×7
cordova ×2
objective-c ×2
swift ×2
admob ×1
cocoapods ×1
cordova-3 ×1
firebase ×1
flutter ×1
info.plist ×1
ios-camera ×1
ios10 ×1
iphone ×1
photo ×1
screenshot ×1
testflight ×1
video ×1
xcode ×1
xcode7-beta5 ×1
xcode8 ×1