我在 Xcode 中打开了一个项目,该项目依赖于RxSwift通过内置 Swift 包管理器作为 Swift 包包含在内的项目。\n几周前我创建该项目时,它运行良好。
现在突然间,当尝试构建和运行我的项目时,我收到一条有关该 Swift 包的错误消息:
\nCouldn\xe2\x80\x99t get revision \xe2\x80\x986.5.0^{commit}\xe2\x80\x99
我尝试清理构建文件夹,但仍然会出现相同的错误。
\n我的互联网连接工作正常,所以这不是网络问题。
\n我也很惊讶 Xcode 会尝试再次获得修订版,因为没有更新有问题的包,RxSwift是在上次构建正常工作到今天之间发布的。因此,我假设本地缓存的任何内容都应该仍然存在并且正常运行。
\n到目前为止,我找不到有关此错误消息的任何其他报告。
\n我想在 iOS 14 上打开用户选择的默认邮件应用程序 - 但不显示撰写视图。注册帐户后,用户应该确认他们的电子邮件地址,因此我想将用户引导到那里。
根据我发现的其他问题,似乎有两种已知的方法:
UIApplication.shared.open(URL(string: "mailto://")!)
和
UIApplication.shared.open(URL(string: "message://")!)
第一个选项的问题在于,它将在应用程序中打开一个空的撰写邮件视图,要求用户输入新电子邮件。那不是我想要的。这会让用户感到困惑,他们认为必须向我们发送电子邮件。通过 mailto URL 语法的参数输入一些文本,我基本上用一些文本预先填充邮件撰写视图,指示放弃新的电子邮件草稿并要求检查他们的电子邮件,这可以作为一种解决方法,但不是很好。
第二个选项的问题是,即使这不是默认的邮件应用程序,它也会始终打开 Mail.app,并且如果用户从手机中删除 Mail.app,它可能会要求用户安装 Mail.app,因为他们选择了例如Protonmail 作为他们的默认邮件应用程序。对于不主要使用 Mail.app 的人来说,这也不是一个很好的选择。
因此,其他人提出的两种方法都不能很好地解决我的问题。
解决这个问题的最佳方法是什么?
是否有一些应用程序可以查询 iOS 的默认邮件应用程序,以便至少我可以尝试启动该应用程序(如果我知道该应用程序的自定义 URL 方案(例如googlegmail://))?
我有一个实时活动,需要经常更新它,例如每分钟或每隔几分钟,就像 Uber 应用程序更新其实时活动以向您显示行程进度一样。我知道推送通知是一种通用的替代方案,但我想首先了解本地路径,因为当前的文档(从 iOS 16.4 / Xcode 14.3 开始)似乎建议我使用staleDate+ 后台任务是 Apple 推荐的一种方法即使文档没有具体说明更新之间的频率/时间间隔,也要保持您的活动更新。
首先,我像这样设置我的活动:
if ActivityAuthorizationInfo().areActivitiesEnabled {
let state = MyAttributes.ContentState(info: info)
let attributes = MyAttributes(name: "test")
let content = ActivityContent(state: state, staleDate: Date(timeIntervalSinceNow: Self.activityUpdateTimeInterval)) // e.g. 60 seconds
currentActivity = try Activity.request(attributes: attributes, content: content)
observeActivityStateUpdates()
}
Run Code Online (Sandbox Code Playgroud)
在第二个函数中,observeActivityStateUpdates我试图观察activityStateUpdates流的变化:
private func observeActivityStateUpdates() {
Task { [weak self] in
guard let activityStateUpdates = self?.currentActivity?.activityStateUpdates else { return }
for await update in activityStateUpdates {
print("LiveActivity: new …Run Code Online (Sandbox Code Playgroud) 当我使用 plainUserDefaults而不使用任何其他框架且不使用时NSUbiquitousKeyValueStore,从手机中删除该应用程序后,UserDefaults 是否会保留在 iCloud 中,并在重新安装该应用程序时从 iCloud 中恢复?
我在文档中读到,通常 UserDefaults 包含在(iCloud)备份中。因此,如果用户安装该应用程序,该应用程序会存储一些 UserDefaults,用户进行 iCloud 备份,然后从该备份恢复手机,UserDefaults 应该会再次存在。
但是,如果用户故意从手机中删除我的应用程序,然后从商店重新安装它,UserDefaults 是否仍然存在(从 iCloud 恢复),或者它们是否会因应用程序删除而被清除,并且不会因重新安装而恢复?
用户是否必须从 iCloud 设置应用程序中额外删除我的应用程序的 iCloud 数据才能摆脱 UserDefaults,或者是否会删除应用程序(而不是移至应用程序库)?
我基本上想在用户从手机中删除应用程序后从零开始。
iOS 13 和 iOS 14 有什么不同吗?