iOS:当您没有权利文件时,如何为您的应用程序实施关键警报?
Posted
技术标签:
【中文标题】iOS:当您没有权利文件时,如何为您的应用程序实施关键警报?【英文标题】:iOS: How Do You Implement Critical Alerts for Your App When You Don't Have an Entitlements File? 【发布时间】:2021-02-05 05:06:05 【问题描述】:如果您还没有授权文件,您会怎么做?
【问题讨论】:
【参考方案1】:如何实施 IOS 严重警报的指南 [2021 年 7 月]
第一步
您需要在 Apple 网站上request 获得重要警报通知权利。
那么你需要等待苹果方面批准你的请求。他们会向您发送一封电子邮件。就我而言,我只等了 3 天。一些开发者等待了大约 1-4 周的答案。
申请批准后您需要做什么?
打开 developer.apple.com 上的 Identifiers 页面并选择您要启用严重警报的应用程序的标识符。
在打开的页面上,点击«附加功能»并勾选«严重警报»框。然后单击«保存»按钮。
导航到Profile page 并单击加号按钮以注册新的配置文件。
选择«ios App Development»选项并单击«Continue»按钮。
选择您的应用程序 ID 并点击«继续»按钮。
选择所有证书并单击«继续»按钮。
选择您的设备并点击«继续»按钮。
输入您的配置文件的名称,然后单击“生成”按钮。例如,名称可以是您的应用名称。
您的配置文件已准备就绪。单击下载按钮。然后双击以下文件以安装您的配置文件。
如何在 XCODE 中选择您的配置文件
打开您的 Xcode 项目。
选择你的目标。
选择«签名和功能»。
取消选中«自动管理签名»。
在 Provisioning Profile 字段中,选择您在之前的步骤中下载并安装的 Profile。
检查权利。
如何添加权利文件
mobiledev99指导
-
单击加号添加功能。
选择«钥匙串共享»
打开 .entitlements 文件。将光标悬停在 «Entitlements File» 字段并单击加号按钮。
将值键名称更改为 «com.apple.developer.usernotifications.critical-alerts»,
类型为“布尔”,值为“1”。
然后将光标悬停在 «Keychain Access Groups» 字段并单击减号按钮。
我们需要在代码中添加什么
请求授权
let center = UNUserNotificationCenter.current()
center.requestAuthorization(options: [.alert, .badge, .sound, .criticalAlert]) (granted, error) in
本地通知
将您的 UNMutableNotificationContent
声音更改为下一个:
let notificationContent = UNMutableNotificationContent()
notificationContent.sound = UNNotificationSound.defaultCritical
如果你想使用你的自定义声音,你需要用这个替换代码:
let notificationContent = UNMutableNotificationContent()
notificationContent.sound = UNNotificationSound.criticalSoundNamed(UNNotificationSoundName(rawValue:"YourCustomSound.mp3"))
用于推送通知(来自 Tapcode 教程)
"aps":
"alert": "This is a Critical Alert!",
"badge": 1,
"sound":
"critical": 1,
"name": "your_custom_sound.aiff",
"volume": 1.0
【讨论】:
【参考方案2】:有多种来源可以帮助您为您的 iOS 应用实施关键警报。我发现了两个非常有帮助的:
https://www.tapcode.co/2018/10/17/how-to-implement-critical-alerts-in-ios-12/
https://medium.com/@shashidharyamsani/implementing-ios-critical-alerts-7d82b4bb5026#:~:text=iOS%2012%20has%20the%20critical,allowed%20to%20send%20critical%20alerts.
两者都描述了请求 Apple 批准的必要条件,以及如何更新您的项目以包含关键警报通知 - 有一个例外。这些文章解释了如何更新您的权利文件以添加关键警报密钥。但是,当您的应用当前没有权利文件时,您会怎么做? 经过一番研究,我得出了以下步骤,可以作为处理这种困境的指南。 当您到达处理更新权利文件的文章部分时,请按以下步骤操作:
-
在功能选项卡下,单击 +(加号)以添加功能(我选择了钥匙串共享)。这将导致 Xcode 生成一个 .entitlements 文件(克服主要障碍)。
在项目导航器中单击该文件将其打开。如果权利文件旁边的显示三角形打开,您将看到您选择的功能(钥匙串共享)的密钥。如果提示三角没有打开,请点击打开。
单击权利文件旁边的 +(加号)以添加权利。将出现一个带有选项的下拉菜单,但您必须输入关键警报通知的键才能手动输入。
输入文章中的关键警报通知的密钥:
com.apple.developer.usernotifications.critical-alerts
将类型更改为布尔值并选择“是”作为值。
单击您在步骤 1(钥匙串共享)中用于创建权利文件的功能旁边的 -(破折号)以将其删除。您现在有了一个包含您需要的关键警报密钥的权利文件。
构建并运行您的应用程序,您应该会看到要求用户允许关键警报的提示。
任务完成!
特里·柴森
【讨论】:
谢谢。你为我节省了很多时间。以上是关于iOS:当您没有权利文件时,如何为您的应用程序实施关键警报?的主要内容,如果未能解决你的问题,请参考以下文章