在应用程序中,我可以在设置中选择应使用哪种语言.如果未选择任何内容,则会检测并选择iPhone语言为英语,法语或德语.如果这些语言都不是iPhone语言,则设置为使用英语.手动更改设置中的语言可以正常工作.现在我添加了一个今天的扩展,它运行得很好但我需要访问settings-bundle来获取语言的NSUserDefaults(如果手动更改).在这两个目标中,我激活了App-Groups
group.com.companyname.appname
Run Code Online (Sandbox Code Playgroud)
并选择它.
在应用程序中我得到了语言
NSString *manualLanguageSet = [[NSUserDefaults standardUserDefaults] valueForKey:SPRACHWAHL];
Run Code Online (Sandbox Code Playgroud)
在今天的扩展中,我试图通过:
NSString *manualLanguageSet = [[[NSUserDefaults alloc] initWithSuiteName:@"group.com.companyname.appname"] valueForKey:SPRACHWAHL];
Run Code Online (Sandbox Code Playgroud)
对于NSLog(@"Settings-Sprache: %@", manualLanguageSet);
运行today-extension时的结果是(无论是否在设置中选择了哪种语言)
2014-09-13 16:48:36.331 HdB今日[3734:284836]设置 - Sprache:(null)
我该怎么做才能更正/如何访问设置(settings.bundle)?
对于这个问题看似显而易见的道歉,但无论出于何种原因,我都无法在Apple文档中找到关于存储Settings.bundle密码信息的位置和方式的明确答案.我的问题:如果我需要为应用程序存储一些凭据,并且我使用Settings.bundle,以便在Apple的设置区域中使用IsSecure = YES将密码输入到PSTextFieldSpecifier文本字段中,然后我使用我的应用程序访问该值CFPreferencesCopyAppValue,从未将其写入NSUserDefaults并且只通过网络安全地发送,与在我自己的应用程序设置中使用钥匙串存储和检索密码相比,该存储和检索方法有多安全?感谢您的输入.
我正在尝试在ios 8上为自定义键盘扩展创建设置包.我已将设置包添加到键盘扩展目标.然后当加载键盘视图时,我试图以下列方式访问设置包.
BOOL autoCapitalizationEnabled = [[NSUserDefaults standardUserDefaults] boolForKey:@"autoCapitalizationEnabled"];
Run Code Online (Sandbox Code Playgroud)
结果总是0,似乎程序无法访问设置包文件.
有没有人有扩展设置捆绑之前的问题?顺便说一下,这个东西与设置包的默认值无关,因为每次我在键盘启动前禁用并启用此属性以强制使用默认值.
我创建了一个随Root.plist文件和本地化目录en.lproj一起提供的Settings.bundle.
我编辑了Root.plist并添加了几个我想要的应用程序设置.
当我从iPhone删除应用程序并安装它并第一次运行时,我读取的所有设置都返回错误的值.例如:
highQualityFlag = [[[NSUserDefaults standardUserDefaults] stringForKey:@"qualityFlag"] boolValue];
Run Code Online (Sandbox Code Playgroud)
即使设置默认值为YES,该标志也为NO.
如果我在设置上更改了某些内容并再次运行,则所有后续运行都会给出正确的值(??)
我该如何解决?
谢谢
我被动地使用这个网站已经有一段时间了,并且阅读了常见问题解答,所以我希望我能够将这些保持在最低限度.
我在Objective-C中有关于Settings.bundle文件的问题.我一直在使用以下指南来实现其中一个:
我正在使用Xcode 4.1和最新的Xcode 3.我使用版本3来创建Settings.bundle及其plist,因为我发现Xcode 4的plist编辑器有点儿错误.
这些是我的Root.plist的内容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>StringsTable</key>
<string>Root</string>
<key>PreferenceSpecifiers</key>
<array>
<dict>
<key>Type</key>
<string>PSGroupSpecifier</string>
<key>Title</key>
<string>Authentication</string>
</dict>
<dict>
<key>Type</key>
<string>PSTextFieldSpecifier</string>
<key>Title</key>
<string>User ID</string>
<key>Key</key>
<string>user_id_key</string>
<key>DefaultValue</key>
<string>1234</string>
<key>IsSecure</key>
<false/>
<key>KeyboardType</key>
<string>Alphabet</string>
<key>AutocapitalizationType</key>
<string>None</string>
<key>AutocorrectionType</key>
<string>No</string>
</dict>
</array>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)
我可以毫无问题地访问iOS设置菜单中的设置,还可以更改我目前为止的单个条目的值.该值存储在iOS模拟器上的会话之间以及我的物理iOS设备(iPhone 4)上.
但我似乎无法从我的代码中访问此值.让我告诉你我是如何尝试实现它的(在我的应用程序的ViewController.m中):
- (void)viewDidLoad
{
[super viewDidLoad];
myDefaults = [NSUserDefaults standardUserDefaults];
// DEBUG
userID = [myDefaults stringForKey:@"user_id_key"];
// userID = [NSString stringWithString:@"1234"];
// …
Run Code Online (Sandbox Code Playgroud) 我无法从文档中看到这是如何实现的,但是这里nike正在他们的应用程序中这样做,所以必须有一种方法.
所以我是移动开发的新手,但我接近使用HTML/CSS/JS和Cordova PhoneGap 3完成我的第一个IOS应用程序.我试图让用户通过iPhone的原生"设置"应用程序提供文本输入(灰色齿轮图标).我的应用程序将在"设置"应用程序中拥有自己的设置部分,用户可以在其中输入特定的IP地址,然后我的应用程序将使用该地址.
到目前为止我发现的是我可能需要安装PhoneGap插件并需要添加settings.bundle root.plist文件:
https://github.com/phonegap/phonegap-plugins/tree/DEPRECATED/iOS/ApplicationPreferences
Phonegap 3.0 iOS7 ApplicationPreferences插件
不幸的是,我没有足够的经验来做到这一点:/我希望有经验的有用兽医可以更清楚地说出来并指出我正确的方向:
<script type="text/javascript" src="applicationPreferences.js"></script>
对不起所有漫长的新手混乱..我只是为了我的生活找不到一个易于理解的指南,如何在网上任何地方这样做.我相信在我之后会有很多有这些相同问题的人,所以我非常感谢你的帮助.非常感谢.
我的iPad应用程序当前使用Settings.bundle来允许通过内置的Settings.app以及InAppSettingsKit进行设置.我现在想完全切换到IASK并禁用内置设置.我已将Settings.bundle文件夹重命名为InAppSettings.bundle,但是当我将此新版本部署到我的测试设备时,旧的设置数据似乎仍然存在 - 至少,我仍然可以通过Settings.app访问旧设置.
有没有办法在安装新版本的应用程序时强行删除Settings.bundle?
我有一个应用,当我从
XCode>常规>版本。
但是最近我已将XCode更新为11.0,似乎脚本无法按预期工作:
version=`/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" $SRCROOT/MyApp/Info.plist`
version+=" ("
version+=`/usr/libexec/PlistBuddy -c "Print CFBundleVersion" $SRCROOT/MyApp/Info.plist`
version+=")"
/usr/libexec/PlistBuddy "$SRCROOT/MyApp/Settings.bundle/Root.plist" -c "set PreferenceSpecifiers:1:DefaultValue $version"
Run Code Online (Sandbox Code Playgroud)
上面的脚本假设可以自动更新版本,并且可以在“设置”>“应用”中看到。
但是问题是,此脚本是否需要进行任何更改才能从XCode自动更新版本号?
当前,当版本从XCode> General> Version递增时,脚本将其替换为$(MARKETING_VERSION),这是不正确的。
settings.bundle ×10
ios ×7
iphone ×5
ios8 ×2
cocoa-touch ×1
cordova ×1
javascript ×1
objective-c ×1
root.plist ×1
scripting ×1
sdk ×1
security ×1
uipickerview ×1
versioning ×1
xcode ×1
xcode11 ×1
xcode4 ×1