问题标签 [settings-bundle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
340 浏览

ios - iOS自定义键盘设置不保存

我正在使用Apple 键盘扩展文档及其链接的设置教程为自定义键盘实现设置包。

此方法在父应用程序中有效,但是当我为键盘扩展尽可能相同地实现它时,设置包似乎没有保存任何数据,如本视频所示。似乎有什么东西在不断地重置这些值:任何时候我退出设置视图(例如多任务视图,以前的设置页面),这些值都设置为零(不是默认值:分别为空、假和零)。这是默认设置包模板,没有编辑,代码中没有提到。

是否存在导致此问题的文档中未明确说明(或我错过)的扩展设置的特殊实现?

为清楚起见,我采取的步骤(在创建扩展之后):

  1. 使用 New File –> Settings Bundle 创建了包。
  2. 命名它,针对键盘扩展。
  3. 建造并运行。

这些是我为父应用程序(针对应用程序)采取的相同步骤,它能够保存设置。

这是在物理 iOS 11.0 (15A5326a) 设备上;使用 Xcode 9.0 (9M202q)、Swift 4 构建的应用程序。

0 投票
1 回答
545 浏览

ios - 如何本地化 iOS 设置包?

我在标题中添加了英文字符串,其他语言呢?另外如何为当前标题自动生成根字符串文件?

在此处输入图像描述

0 投票
1 回答
114 浏览

ios - Settings.bundle 本地化损坏

几周前,我在我的应用程序中添加了一个设置包,并按照Use Your Loaf的精彩教程本地化了它的条目。那时,它可以毫无问题地工作。

现在我在几周后回到我的项目,同样的 Xcode 版本(9.3),发现了这些问题:

  • 我在项目导航器中看不到字符串文件:语言文件夹缺少预期的披露控件:

在此处输入图像描述

  • 如果我删除设置包并重新开始,我会得到:

    • Settings.bundle
    • en.lproj
    • 根目录

...但英语文件夹仍然缺少披露指示符。

  • 当我在设备或模拟器中安装我的应用程序并转到“设置”页面时,会显示本地化(好像所有语言的字符串文件都丢失了)。

  • 但是,如果我转到Products文件夹(从 Xcode Project Navigator,“在 Finder 中显示...”)并检查我的应用程序包的内容,以及其中的设置包,语言目录与它们各自的字符串文件在那里里面。

我错过了什么?


更新

我尝试创建一个新的裸项目并向其中添加一个设置包,但我得到了相同的结果。我回到 Xcode 9.2(我也安装了),问题没有发生。要么是 9.3 存在错误(不太可能,因为当我第一次添加捆绑包时它正在工作)或者我的安装已损坏。

我刚刚检查并注意到有一个可用于 Xcode 9.3 (9.3.1) 的更新,所以我将下载它并重试...

0 投票
1 回答
42 浏览

ios - 在应用升级时从 iOS 的设置屏幕中删除设置

我的应用程序最初使用了需要麦克风访问权限的功能。因此,设置屏幕用于显示用于打开或关闭该权限的切换开关。在新版本中,我们不再需要该功能。所以我从 Settings.bundle 的 Root.plist 中删除了麦克风条目。这适用于新安装。但是对于更新应用程序的用户,设置仍然显示麦克风权限。有什么办法可以删除那个条目吗?

0 投票
2 回答
42 浏览

ios - 基于方案目标如何设置默认设置包

我在模式 Dev/QA/UAT/Prod 中配置了不同的环境

基于模式选择动态需要更改设置捆绑。

由于在 Settings.Bundles 中默认值设置为 dev,

如果通过将默认设置为动态我的 SettingsBundle 来运行应用程序。

首选项项目 0(多值 - 环境) - > 设置为 dev 的默认值应根据系统目标进行更改。

0 投票
1 回答
42 浏览

ios - 在运行时更改通过 iOS 设置包定义的设置的标题字符串?

我正在开发一个允许用户使用 Touch ID 登录的 iPad 应用程序。我还在应用程序设置包中包含了一个名为“Touch ID”的首选项,用户可以在其中打开/关闭该选项以启用或禁用 Touch ID 身份验证。

以下 plist 文件是我用来设置设置包的文件。

下图是应用程序设置屏幕的屏幕截图。

应用程序设置屏幕

但是,某些 iPad 具有“Face ID”而不是“Touch ID”,我想提供选项名称(Plist 文件中的标题字段)用于将捆绑设置为“Face ID”而不是“Touch ID”设备。

如果应用程序设置选项的动态标题是可能的,有人可以告诉我吗? 

注意:我有一些替代解决方案,例如在我的应用程序本身中创建一个设置屏幕,将设置名称重命名为通用名称等。