iOS的Settings.Bundle动态配置

前言

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

添加Settings.Bundle

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

添加Settings.Bundle.png

Settings.Bundle默认的界面.png

再次运行程序时,程序设置页面不再有settings bundle的设置选项了,双击home键弹出多任务列表,从多任务列表中移除调试的app和系统设置app,再进入系统设置app就可以了

Settings.Bundle控件类型

添加控件类型.png
  • TextField(文本框)
  • Title(标题)
  • ToggleSwitch(开关)
  • Slider(滑块)
  • MultiValue(多值)
  • Group(组)
  • Child Pane(子窗格)

Type:配置类型
Title:配置项显示的Title
Identifier: 配置项的标识符,用来获取配置项的配置内容
Default Value :配置项默认值

TextField(文本框):

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,则内容以圆点符号出现。

ToggleSwitch(开关):

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

Slider(滑块)

Minimum Value: 最小值,Number类型。
Maximum Value: 最大值,Number类型。
Min Value Image Filename: 最小值那一端的图片。
Max Value Image Filename:最大值那一端的图片。
(图片大小必须为21*21,并且要放在Settings.bundle包内)

MultiValue(多值)

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

Child Pane

Filename:子plist的文件名。

    //获取SettingsBundle信息
    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
    [userDefaults removeObjectForKey:@"Identifier值"];
    // 修改值
    [userDefaults setValue:@"abc" forKey:@"Identifier值"];

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

Settings.Bundle动态配置

1、创建目录

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


创建目录.png

2、创建配置

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


创建配置.png

3、添加Setting.bundle

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


添加Settingbundle.png

4、添加拷贝脚本

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


添加拷贝脚本.png

添加脚本:

if [ ${CONFIGURATION} = "Debug" ]; then
cp -r ${PROJECT_DIR}/${PROJECT_NAME}/Setting/Release/Settings.bundle ${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app
fi

if [ ${CONFIGURATION} = "Release" ]; then
cp -r ${PROJECT_DIR}/${PROJECT_NAME}/Setting/Release/Settings.bundle ${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app
fi
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容

  • App Settings.Bundle 写在前边 Settings.Bundle 是App的配置项, 用户和测试可...
    ROBIN2015阅读 3,739评论 1 6
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,580评论 18 139
  • 在iphone里面,应用都会在“设置”里面有个专属的应用设置,选择该菜单界面,用户便可以在其中输入和更改各种选项,...
    啊左阅读 4,509评论 9 12
  • 记得上次我坐火车回家的时候,火车中途上来了一个女子,她一手提个大袋子,鼓鼓囊囊的,另一只手则是拉个小推车,...
    谁识明月心阅读 360评论 0 0
  • 因为志同道合的人本来就少,相处得来的又寥寥无几,所以人生大半就是孤独的状态,但是很多时候,容易孤独可能也是因为本身...
    有糖衣披风的叮当猫阅读 186评论 4 2