Why can't I add a child pane plist file into my project's Settings.bundle?
I'm running Xcode 4.1 and I've been following a tutorial about app settings. Everything has been going great up until I get ready to add a plist for a child pane that I want to add.
The video tutorial I'm watching (also using Xcode 4.1) shows the guy right-clicking the settings.bundle and choosing Add File... and then saving a file named More. In the video tutorial, he ends up with a More.plist showing up in the project and also in the settings.bundle right in the same level with the Root.plist. I just get it in the project. Nothing in the settings.bundle, and I can't figure out how to copy it there.
I've also noticed that in the tutorial, in the Project Nav开发者_运维技巧igator, the settings.bundle has an icon that looks kind of like an outline of a shield. In my Project Navigator, the settings.bundle looks like a white sheet of paper with a corner folded down.
Anyone know what the heck is going on?
FWIW, the root app settings works fine in the simulator. I can see the stuff I set up just fine. I can click on the link to my child pane and it switches to it, but nothing that I added in the more.plist shows up there.
Any help GREATLY appreciated!!
Argh, Apple tends to change things without letting anyone know. The whole settings bundle thing is just not well integrated into XCode if you ask me. If you ever try to localize your application, you will find that you have to manually add the localization folders to the settings.bundle.
Looks like we have to do the same thing to add child menus now, as just adding the plist file does not put it into the settings.bundle.
Here is the set of steps I just tried that worked.
- Open up finder, you can right click or two finger click Settings.bundle and choose "Show in Finder".
- Right click Settings.bundle in the finder window, choose show package contents.
- Copy the new plist file into this the settings.bundle next to the Root.plist
- Delete the new plist from the main project.
I was not able to get the text field to show up under additional .plist page.
My Fix:
- Leave only 1
Child.plist
file outsideSettings.bundle
- Navigate to
Root.plist
- Right click and select 'Show Ray Keys/Values'
- Right click and select 'Add Row'. Add:
- Key: File
- Type: String
- Value: Root
In Xcode 4.3.2,
- Right click the Project Name in the Project Navigator, and choose
Show in Finder
. - In Finder, right click the setting.bundle and choose
Show Package Contents
. - Copy the new .plist to setting.bundle.
- Back to XCode, open the
setting.bundle
, wilfully add one item under thePreference Items
, then expand it and modify the value ofType
toChild Pane
.I can't upload the image, so give the link of the blog.
This problem still exists in Xcode 4.2. Creating and moving [child].plist in Finder does help thanks to John S up there.
Some additional tips.
Make sure to turn on "Show Raw Keys/Values" by right clicking inside the opened root.plist file for the "ChildPane Type" to appear. Also make sure to select "Property List Type" as "iPhone Settings plist". If you're having trouble with ordering items, just open the plist file in a text editor and move the xml elements around accordingly.
Additional additional tip: in Xcode 4.2 to explore/expand the contents of the bundle make sure to set its type to Application Bundle (via File Inspector Menu).
Same issue, waste my almost 1 hour. 1st make sure your plist format is correct.
My solution: Delete you bundle, and re-build & run.
Now everything is fine...
精彩评论