这个是愚蠢的,可能有一个我只是不知道的荒谬简单的答案:
我正在尝试编辑plist,Settings.bundle以便在我的应用中实现首选项.我想调整一些组的顺序,但我无法弄清楚如何移动行.在XCode 3中你可以拖动行来重新排列它们,但它似乎不再适用于XCode 4.如果没有删除所有内容并以正确的顺序重新创建它们,我该如何重新排列行?
谢谢.
我想在目标C中以编程方式在我的应用程序Documents文件夹中创建plist文件.我在文档目录中创建一个文件夹:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectoryPath = [paths objectAtIndex:0];
NSString *path = [NSString stringWithFormat:@"%@/Data.plist", documentsDirectoryPath];
Run Code Online (Sandbox Code Playgroud)
我正在尝试创建一个看起来像XML文件的plist文件./****必需的XML文件****/
<?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">
<array>
<dict>
<key>height</key>
<integer>4007</integer>
<key>name</key>
<string>map</string>
<key>width</key>
<integer>6008</integer>
</dict>
</array>
</plist>
Run Code Online (Sandbox Code Playgroud)
/****通过代码****/获得文件
<?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>height</key>
<string>4007</string>
<key>name</key>
<string>map</string>
<key>width</key>
<string>6008</string>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)
所需文件需要一个数组,在数组中我们有一个字典对象.我怎么能改变这个?我也知道如何将文件写入路径,但主要问题是如何创建plist文件然后读取它?
我想在itms-services链接中传递用户标识和密码,以便可以访问受保护的plist.
为了澄清,在以下链接中,无法直接访问plist,因为访问需要输入用户标识和密码以便可以访问plist.
<a href="itms-services://?action=download-manifest&url=http://example.com/app.plist">
Run Code Online (Sandbox Code Playgroud)
目前上述链接出错
无法连接到example.com
当我开发iPhone应用程序(时间跟踪器,ToDoList等)时,我永远不知道什么是处理数据的最佳方式.一旦我使用了plist,下次使用sqlite或CoreData.
您如何确定最适合您项目的内容?(只讨论数据管理)
例如,如果你想开发:
对于初学者,你能指点我正确的方向吗?(我知道这很大程度上取决于应用程序以及你喜欢用它做什么,但任何想法都会有所帮助)
我远没有开发复杂的应用程序,它们仍然非常简单.
谢谢你的帮助,马克
我刚刚在我的Xcode项目中本地化了Localizable.strings文件,以便将我的应用程序本地化为几种不同的语言.但是,在以标准"key = value"格式编辑每个文件后,我收到以下解析错误,该错误未指定文件,因此很难找到它所指的内容.
CFPropertyListCreateFromXMLData():旧式plist解析器:第10行的字典中缺少分号.解析将被放弃.打破_CFPropertyListMissingSemicolon进行调试.
我查看了每个*.strings文件,特别是在第10行,我发现没有任何兴趣或问题导致问题.请你能告诉我哪里出错了.
这是我项目中Localizable.strings文件的示例.所有其他文件遵循相同的格式.
"Enter URL" = "Voer adres in"
"Headers" = "Koppen"
"Key" = "sleutel"
"Value" = "waarde"
"Parameters" = "Parameters"
"Tap to add a new line" = "Tik om een nieuwe lijn toe te voegen"
"Perform request" = "Verzoek Uitvoeren"
"Response" = "Antwoord"
"Received Headers" = "Ontvangen Koppen"
"Error" = "Fout"
"Loading" = "Verzoek aan het versturen"
Run Code Online (Sandbox Code Playgroud)
然后我用它NSLocalizedString()来提供翻译的字符串.
我想在我的plist中设置Bundle Version.但是,当您查看更多信息时,finder实际上看到的值是"捆绑版本字符串,简短",但是,编辑此内容需要打开plist文件,而不是仅仅编辑"版本" "在目标设置中.
有没有办法要么a)使捆绑版本始终等于捆绑版本短,b)使查找器查看捆绑版本而不是短串或c)使短版本出现在编辑目标设置窗口中?
或者,有什么更好的方法我应该处理这个?
谢谢.
是否有一个功能可以在Xcode的属性列表编辑器中一次扩展当前所选节点的所有后代节点?
如何编写我的.plist文件的CFBundleDocumentTypes属性,以允许应用程序显示在其他应用程序的"Open in ..."对话框中?
这是我的,但它不起作用
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeIconFiles</key>
<array/>
<key>CFBundleTypeName</key>
<string>Readings</string>
<key>LSItemContentTypes</key>
<array>
<string>text.csv</string>
</array>
</dict>
</array>
Run Code Online (Sandbox Code Playgroud) 使用Xcode 5的新资产库,添加图像和组织它们从未如此简单.但是,似乎它已经破坏了我用于创建构建的一些脚本.
我的Run Script Phase中有一个脚本,它设置CFBundleVersion为plist中的当前时间戳.在脚本中,我执行此语句:
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $timestamp" $BUILT_PRODUCTS_DIR/$INFOPLIST_PATH
Run Code Online (Sandbox Code Playgroud)
但是,执行此操作时,将显示以下语句:
Set: Entry, ":CFBundleVersion", Does Not Exist
File Doesn't Exist, Will Create: /Users/SpacePyro/Library/DerivedData/BundleTest-duikdqngfmrovnagrcsvdcuxxstz/Build/Products/Debug-iphoneos/BundleTest.app/Info.plist
Run Code Online (Sandbox Code Playgroud)
这似乎发生在干净的构建上.直到构建中途,plist似乎才会生成,可能是由于资产库.
我也使用了这个命令,虽然它没有抛出错误,但它仍然吹走了我的更改(假设INFO_PLIST="${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Info"):
defaults write $INFO_PLIST CFBundleVersion $timestamp
Run Code Online (Sandbox Code Playgroud)
当我开始使用资源库来组织我的应用程序图标和启动图像时,情况并非如此.谁知道为什么会这样?更好的是,是否有一种解决方法可以将此值添加到plist中?我已经尝试将脚本置于行动前构建阶段以及动作后构建阶段.我还尝试在构建完成后运行命令,但是当我尝试对其进行协同编码和打包时,它表示签名因修改plist而无效.
如果不存在合理的解决方案,我想我总是可以从资产库中迁移,直到我可以让我的脚本工作.
我想使用Xcode Version 7.0.1将基于HTML的网站捆绑为iPhone应用程序,一切正常,我唯一的问题是,当我在iPhone 4s上测试应用程序时,它不会显示通过访问的图像http.但是,我可以访问另一个提供https其图像访问权限的网站的图像.
有没有办法为捆绑添加http支持?
更新
我NSExceptionDomains在我的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>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleDisplayName</key>
<string>My Project</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIcons</key>
<dict/>
<key>CFBundleIcons~ipad</key>
<dict/>
<key>CFBundleIdentifier</key>
<string>com.myproject.names</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>1.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0.1</string>
<key>CFBundleSignature</key>
<string>myproject</string>
<key>CFBundleVersion</key>
<string>1.1</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
<key>UIMainStoryboardFile</key>
<string>Main_iPhone</string>
<key>UIMainStoryboardFile~ipad</key>
<string>Main_iPad</string>
<key>UIRequiresFullScreen</key>
<string>YES</string>
<key>UIStatusBarHidden</key>
<false/>
<key>UIStatusBarStyle</key>
<string>UIStatusBarStyleLightContent</string>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
</array>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
<key>NSAppTransportSecurity</key>
<dict> …Run Code Online (Sandbox Code Playgroud)