iOS的Settings.Bundle动态配置

iOS的Settings.Bundle动态配置,第1张

Settings.Bundle是App的配置项,通过配置Settings.Bundle可以修改App的运行环境、显示App的授权信息等等。

默认项目中是没有Settings.Bundle,需要手动添加。添加完了之后在“设置”中找到“对应的App”即可看到Settings.Bundle的界面。

Type :配置类型

Title :配置项显示的Title

Identifier : 配置项的标识符,用来获取配置项的配置内容

Default Value :配置项默认值

Autocapitalization Style : 自动大写。有四个值: None(无)、Sentences(句子首字母大写)、Words(单词首字母大写)、All Characters(所有字母大写)。

Autocorrection Style : 自动纠正拼写,如果开启,你输入一个不存在的单词,系统会划红线提示。有三个值:Default(默认)、No Autocorrection(不自动纠正)、Autocorrection(自动纠正)。

Keyboard Type : 键盘样式。有五个值:Alphabet(字母表,默认)、Numbers and Punctuation(数字和标点符号)、Number Pad(数字面板)、URL(比Alphabet多出了.com等域名后缀)、Email Address(比Alphabet多出了@)。

Text Field is Secure : 是否为安全文本。如果设置为YES,则内容以圆点符号出现。

Value for ON :当开关置为ON时,取得的字符串值。

Value for OFF :当开关置为OFF时,取得的字符串值。

Minimum Value : 最小值,Number类型。

Maximum Value : 最大值,Number类型。

Min Value Image Filename : 最小值那一端的图片。

Max Value Image Filename :最大值那一端的图片。

(图片大小必须为21*21,并且要放在Settings.bundle包内)

Values :值的集合。

Titles : 标题的集合,与值一一对应。

Filename :子plist的文件名。

在用户实际修改了setting里的数据之前 , 这时配置数据并没有真正的写入到app的NSUserDefaults中, 此时用NSUserDefaults获取的值都是空的。对此, 可以在 - (void)applicationDidBecomeActive:(UIApplication *)application 方法中获取信息。

在工程目录下创建文件夹Setting以及子文件夹Release和Debug(当然,也可以根据环境来创建,比如:Dev、Test、hotfix等), 并添加到工程中。

点击工程文件, 选中info, 在Configurations下点击+, 复制一个Configuration。

新建Setting.Bundle, 但不要添加到当前Target中, 并分别保存到Release和Debug

文件夹下:

不添加到Target的原因就是 , 我们要用脚本把Setting.Bundle拷贝到ipa中。选中"Target", 切换到Build Phases, 点击+, 选中New Run Script Phase。

添加脚本:

创建文件夹TestBundle,并改名为TestBundle.bundle。然后再把资源文件放入该Bundle就可以了。

使用此方式的目的:可通过Xcode管理资源文件,且可多Target管理。

在 Build Settings 中修改 Base SDK 为 iOS

在 Build Settings 中修改 Versioning System 为 None

此处需要特别注意,一定要确认,如果设置不对,会导致Bundle中包含了可执行文件,会导致上架AppStore被拒。

在 Build Settings 中删除 Installation Directory 后面对应的路径。

在 Build Settings 中删除 Code Signing Identity 后面对应的路径。(先选择Other,再删除即可)

在 Build Settings 中设置 iOS Deployment Target 为 iOS9.0

一般情况下设置为最小的即可。

在 Build Settings 中设置 Skip Install 为 NO

在 Build Settings 中设置 COMBINE_HIDPI_IMAGES 为 NO

在 Info.plist 中删除 Executable file

确认生成的Bundle的 Info.plist , Bundle OS Type code 值是否为 BNDL ,如不是,手动修改为 BNDL


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/bake/11397335.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存