ios - 当应用程序的设置不存在时如何打开它们

标签 ios swift settings

我的应用需要访问用户的媒体库。我的问题涉及以下场景:

  1. 此应用不存在 iOS 设置条目。
  2. 用户按下链接即可启动 Apple 的媒体选择器。
  3. 我弹出 Apple 的媒体库访问授权对话框 MPMediaLibrary.requestAuthorization()
  4. 用户按下“不允许”
  5. 用户再次按下链接即可启动 Apple 的媒体选择器。
  6. 我弹出一个警告对话框,解释问题并提供用于打开应用的 iOS 设置的按钮。

    UIApplication.shared.open(URL(string:UIApplicationOpenSettingsURLString)!)
    

只要 iOS 设置应用程序/屏幕未打开,此功能就可以正常工作。 iOS 设置应用程序启动并打开我的应用程序新创建的设置。

如果 iOS 设置应用程序/屏幕打开(不是我的应用程序,只需在某个位置打开),iOS 设置应用程序就会出现并位于原来的位置。不是我想要的。 如果我切换回我的应用程序,弹出对话框,然后再次执行打开 URL,则会为我的应用程序打开 iOS 设置。

这是正常行为吗?我该如何纠正它?

Stackoverflow 在提供现有问题的链接方面做得很好,这些问题可能是我正在寻找的答案,但没有。

<小时/> 我仍然被我的应用程序设置问题所困扰。进一步的测试揭示了一个相关的问题。与设置一样,我的应用程序图标没有出现。这两个问题似乎都可以通过第二次安装来解决。我认为通过提供应用程序图标的详细信息,有人可能会发现问题。

Mac迷你
Mojave 10.14.4
Xcode 10.2
Xcode - 项目 - IOS 部署目标 = 11.0
Xcode - 目标 - 部署目标 = 12.1
Xcode - Swift v5

物理设备:
- iPhone 6plus ios 12.1.3
- iPhone X iOS 12.1.4

行为:

- installation on Xcode Simulator results in:
    * icon appears as it should with initial installation.(multiple devices tested)  

- installation on physical devices by Xcode side-loading via debugger results in:
    * after initial installation, icon is missing. 
    * app runs as expected.
    * ios settings entry exists.
    * ios iPhone storage entry exists.
    * 2nd debug run, icon appears. (2nd run can be immediate or after device disconnected/reconnected or Xcode restarted)  

- installation of ipa on physical devices by Xcode -> Window -> Devices & Simulators results in:
    * after initial installation, icon is missing.
    * (of course app cannot be run without icon)
    * ios settings entry exists.
    * ios iPhone storage entry exists.
    * 2nd ipa installation, icon appears. (2nd run can be immediate or after device disconnected/reconnected or Xcode restarted)

注意:我已经通过几种不同的工具重新创建并重新生成了我的图标。行为没有改变。

注意:我从 GitHub 下载了几个简单的技术演示 Xcode 项目。 它们不包含任何图标。他们依赖ios默认图标。与我的应用程序的行为相同。

任何见解或直接猜测将不胜感激。

最佳答案

不管怎样,我已将应用程序提交给 Apple 进行审核。它已获得批准并已在应用商店(歌曲播音员)上架。当我通过 Xcode 安装到我的设备上时,我上传到 App Store Connect 的 ipa 也表现出相同的“初始安装时没有应用程序图标”行为。从 App Store 下载后,图标会按预期显示。

想想看。

关于ios - 当应用程序的设置不存在时如何打开它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55564035/

相关文章:

objective-c - 将文本字段的值放入另一个字符串

ios - Realm - commitWriteTransaction :outError

ios - 类型 'String.Index' 不符合协议(protocol) 'IntegerLiteralConvertible'

swift - "Expression too complex": How to adapt this for Swift compiler?

Android - 在用户启用输入法后关闭 IME 设置 Activity

用于触摸 ID 和密码设置的 iOS 首选项 url 方案

iphone - 两部 iPhone 的故事 - 一部崩溃,一部没有

ios - Xcode - 如何根据构建配置自动选择资源?

django 设置变量在传递给模板时丢失

ios - 更改内容 View 背景?