为啥我的 iOS 应用程序强制设置设置包

Posted

技术标签:

【中文标题】为啥我的 iOS 应用程序强制设置设置包【英文标题】:Why is my iOS app forcing a Settings Bundle为什么我的 iOS 应用程序强制设置设置包 【发布时间】:2015-03-22 16:50:07 【问题描述】:

我不明白为什么当我调试我的应用程序时它总是有一个设置包。设置页面中的唯一选项是“使用蜂窝数据”。它在我的 iPhone 6 Plus 上有设置包,但在我的 4S 上没有。我已经删除了我的应用程序,清理了我的项目,并删除了 Organizer 中的派生数据。我的项目中从未有过 Settings.bundle。我已经在另一个应用程序中测试了我的所有库,它不会强制设置捆绑包。两款 iPhone 都运行 ios 8.2。有什么我想念的吗?是否有任何秘密的 Xcode 构建设置或 plist 设置强制使用此设置包?

【问题讨论】:

iOS 8 下的每个应用程序都有一个设置页面 - 即使没有设置包 - 这是一项功能。您的 4S 必须安装 iOS 7 或更低版本。 @rmaddy 不,这不是真的,至少在没有其他上下文的情况下不会。我的 4S 肯定是 iOS 8,而且我在两部手机上都有很多没有设置页面的应用程序。 是的,这是真的。 iOS 8 现在显示所有应用程序的设置页面。如果应用程序没有设置包,那么设置页面上显示的唯一内容就是允许或不允许蜂窝数据的选项。如果我没记错的话,这个设置页面直到您第一次使用该应用程序时才会显示,而您只有蜂窝网络连接(没有 WiFi)。因此,您可能还没有在 4S 上使用过您的应用,而只有蜂窝网络连接。 还有一件事我忘记了。如果应用程序使用各种隐私设置(例如位置、相机等),也会出现“设置”页面。即使没有设置包,通知和后台刷新也会在设置页面中产生。 @rmaddy 就是这样!非常感谢你。关键是在应用程序使用蜂窝数据或您提到其他服务之前,设置页面不会显示。如果您想将您的评论作为答案,我会将其标记为正确。 【参考方案1】:

从 iOS 8.0 开始,即使应用没有设置包,也会为所有应用显示设置页面。

如果应用执行以下任一操作,iOS 8 设置页面将显示,但不包含设置包:

尝试通过蜂窝网络访问数据 各种隐私数据 相机 麦克风 图片库 联系方式 位置 通知 后台数据获取

如果尚未满足这些条件,则可能不会显示应用的设置页面。

【讨论】:

我的应用程序有一个用于“蜂窝数据”的切换开关,但据我所知,我从不使用数据或互联网。有没有办法禁用我的应用程序中的所有数据,从而不会收到这个自动的settings.bundle @pkamb 你在使用第三方库吗?它使您可以拨打您不知道的网络电话。 不,我不是。只是一个标准的 Single View Xcode Swift 应用示例项目。这种“自动设置”功能非常烦人,因为它无法链接到 Settings.app 的主页...UIApplicationOpenSettingsURLString 链接会转到您的应用程序设置,当/如果该设置页面是(随机)创建的。跨度> @pkamb 这就是UIApplicationOpenSettingsURLString 的意义所在。它的唯一目的是将用户带到您应用的设置页面。无法转到“设置”应用中的任何其他页面。 嗯,它有时可以作为 iOS 设置的便捷快捷方式,用于手动启用应用扩展。直到您在设备上安装,也就是说,链接突然开始转到您无用的“应用程序设置”!

以上是关于为啥我的 iOS 应用程序强制设置设置包的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 iOS 应用程序中的变量或强制转换为空? [复制]

iOS 使用新的隐私设置强制重启应用

当用户代理设置为 iOS 时,为啥我的 iTunes 链接无法在 Chrome 中打开?

为啥需要在 pageControl 中为 iOS 13 和 iOS 14 设置不同的常量

为啥我的win10在选择默认应用是就是更改不起?

css设置了强制不换行,但是为啥遇到右括号或者空格还是自动换行