不同的网站(例如)解释说iOS权限模型的工作原理如下:所有应用程序都有一组基本权限(包括Internet访问权限).如果在运行时期间需要其他权限,则会询问用户是授予还是拒绝它.
在android中,您可以在清单文件中定义gps,sms发送,位置,...的权限.iOS中是否有类似内容,因此用户在安装之前会知道某些应用程序使用的手机功能?或者当某个功能想要使用某些功能时(例如gps,短信......),用户在应用程序使用时会收到警告?
我正在尝试在KIF上编写一个验收测试,该应用程序很早就要求提供本地通知权限.不幸的是,由于iOS模拟器安全原因,无法使用KIF自动接受iOS权限警报.根据/sf/answers/1991062041/,有些方法可以禁用位置,地址簿,日历和照片的权限警报,但我找不到禁用本地通知权限的方法.我尝试了链接问题的权利方法,但没有以下任何键工作:
kTCCServiceNotifications
kTCCServiceNotification
kTCCServiceLocalNotification
kTCCServiceLocalNotifications
Run Code Online (Sandbox Code Playgroud)
还有其他想法吗?现在我正在通过更改生产代码来解决这个问题,以便在验收测试运行时有条件地禁用本地通知,但理想情况下我不必这样做.
当我使用iOS11我的info.plist包含时,我在向用户请求位置权限时遇到问题
<key>NSLocationWhenInUseUsageDescription</key>
<string>When in use permissions</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>always permissions</string>
<key>NSLocationAlwaysAndWhenInUsageDescription</key>
<string>Always and in usage permissions</string>
Run Code Online (Sandbox Code Playgroud)
我有两张地图供客户使用,另一张供员工使用.对于员工,我需要知道他们的位置,即使应用程序没有运行或后台(他们能够在退出时关闭它)并请求使用权限
locationManager.requestAlwaysAuthorization()
对于客户,我只需要在应用程序正在使用时使用位置并请求使用权限
locationManager.requestWhenInUseAuthorization()
在iOS 11中,这仅在使用时请求权限,而不是始终在权限上.
在iOS 10中,它具有正确的行为.
我想要的行为如下:当他们是客户(未登录)时,它只询问何时使用权限.如果他们登录(员工),即使不使用它也会请求位置.
如果有人能够了解我所遗漏/做错的事情,我将不胜感激.
需要注意的是,如果我删除了NSLocationAlwaysUsageDescriptioniOS10和iOS11 的权限,则同样的问题是不要求总是允许.
多一点澄清.我已经实现了didChangeAuthorization委托函数,当用户允许来自警报的权限时,它会被调用,requestWhenInUseAuthorization()
但是当我requestWhenInUseAuthorization()在位置管理器上调用函数时,没有调用委托方法,就好像它从未接收到该调用并且没有显示警告对话框用户.
在Crashlytics中,我可以看到iOS 10用户经常遇到此崩溃.但是,当我使用iPhone 7/10.2在Simulator中测试时,我无法重现崩溃.在我的plist中,我已经有了字符串
NSCalendarsUsageDescription,NSMicrophoneUsageDescription和NSPhotoLibraryUsageDescription.
这是来自Crashlytics的堆栈跟踪:
Crashed: com.apple.root.default-qos
0 libsystem_kernel.dylib 0x183765d74 __abort_with_payload + 8
1 libsystem_kernel.dylib 0x18376249c <redacted> + 100
2 libsystem_kernel.dylib 0x1837624c8 abort_with_payload + 10
3 TCC 0x1869d6328 __TCCAccessRequest_block_invoke_2.80 + 258
4 TCC 0x1869d6224 __CRASHING_DUE_TO_PRIVACY_VIOLATION__ + 702
5 TCC 0x1869d9330 __tccd_send_block_invoke + 348
6 libxpc.dylib 0x18386afcc _xpc_connection_reply_callout + 80
7 libxpc.dylib 0x18386af3c _xpc_connection_call_reply + 40
8 libdispatch.dylib 0x1836221bc _dispatch_client_callout + 16
9 libdispatch.dylib 0x183630a4c _dispatch_queue_override_invoke + 732
10 libdispatch.dylib 0x18363234c _dispatch_root_queue_drain + 572
11 libdispatch.dylib 0x1836320ac _dispatch_worker_thread3 + 124
12 …Run Code Online (Sandbox Code Playgroud) 我有一个在ios模拟器上运行的简单应用程序(将在应用程序中的某个时刻),提示用户授权以下内容:
因为我在iOS模拟器上进行自动化测试(在虚拟机上有数千个),有没有办法强制iOS模拟器在安装应用程序时将这些权限设置为yes?
我依稀记得有一种方法可以使用与iOS模拟器关联的plist文件来操纵它,但我不是百分之百确定"它是否在我脑海中".我在谷歌上找不到太多东西.
我刚刚安装了 iOS 14 beta 并将 Xcode 更新到最新的 Version 12 beta 3。
*Unable to locate DeviceSupport directory with suffix 'DeveloperDiskImage.dmg'. This probably means you don't have Xcode installed, you will need to launch the app manually and logging output will not be shown! Could not run build/ios/iphoneos/Runner.app on 00008020-001338A20E01002E. Try launching Xcode and selecting "Product > Run" to fix the problem: open ios/Runner.xcworkspace*当我从flutter运行应用程序时出现错误 。
我可以从 Xcode 运行该应用程序,但是一旦 USB 电缆断开,该应用程序将无法打开/应用程序崩溃。
请帮助我找出问题所在并解决
鉴于即将推出的 iOS 14 权限提示使用 IDFA 标识符的应用程序,我想知道 Firebase Analytics 和 Firebase Auth 是否确实需要访问 IDFA 才能运行。
在这种情况下,我们是否需要在 AppStore 上发布该应用程序时声明该应用程序正在使用 IDFA?
idfa firebase-authentication firebase-analytics ios-permissions ios14
我的应用程序请求允许添加到照片库,但我不需要读取权限.我看到应该有一个选项,但我找不到如何具体要求这种访问.
我这样做:
PHPhotoLibrary.requestAuthorization({status in
if(status == .authorized){
// save
}
})
Run Code Online (Sandbox Code Playgroud)
这样可以正常工作,但显示的请求是完全访问权限.
我可以指定我只需要写访问权限吗?我在info.plist中设置了两个隐私密钥
我在模拟器上运行它,ios 11.4
我使用 angular PWA 创建了一个应用程序,它具有条形码扫描功能。它在 ios 中运行良好,但问题是每次在此页面上使用时,每次都会请求相机许可,即使用户给了一次,PWA 也会再次请求许可。
一旦用户允许相机并使用该权限,我是否可以存储该权限,以便它不会每次都询问用户?
提前致谢。
ios-permissions ×10
ios ×8
permissions ×3
ios14 ×2
swift ×2
angular-pwa ×1
crash ×1
flutter ×1
idfa ×1
ios11 ×1
kif ×1
manifest ×1
objective-c ×1
privacy ×1
xcode12 ×1