2012-05-06 9 views
1

Xcodeで実行中のとき、私のアプリが今日神秘的にクラッシュし始めました。私は利用されていない設定に問題を追跡し、そして実際に、私のアプリの設定アプリを見て、私は次を参照してください。アプリの設定、特にRoot.plistが壊れています。どうして?

enter image description here

はXcodeの、特にRoot.plistの私Settings.bundleに行きます、

enter image description here

ので、ファイルが破損している:私は、このエラーメッセージが表示されます。邪魔になるが、あまり心配しない。私は昨夜からファイルのコピーを取得します(TimeMachineに感謝します)。私はそのファイルと私が今持っているファイルとの間に差異を設けます。違いは見られません。私は別のバージョンを見つけるまで数日前に戻ってきます。残念ながら、それは私が真剣にroot.plistファイルを改造したので、私は最新のバージョンで何か壊れたものを見つけることができませんでした。

また、私のアプリが一度もインストールされていない新しいiPhoneでのみ、アプリケーションがクラッシュします。私の他のiPhoneはXcode経由で同じアプリを実行してもクラッシュしませんが、上記のスクリーンショットのように空の設定ウィンドウが表示されます。私は多分root.plistが壊れているにもかかわらず、実際のNSUSerDefaultsはまだ一点で壊れていないroot.plistを持っていたが、新しいiPhoneではNSUSerDefaultsがなく、私のアプリ。

ここは私のplistコンテンツです。あなたは壊れたものを見つけられますか?ありがとう。 (私はすでにSO: Empty Settings Bundle in Xcode 4.2をチェックし、それは役立ちません。)

<?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>PreferenceSpecifiers</key> 
    <array> 
     <dict> 
      <key>Type</key> 
      <string>PSGroupSpecifier</string> 
     </dict> 
     <dict> 
      <key>Type</key> 
      <string>PSMultiValueSpecifier</string> 
      <key>Title</key> 
      <string>Initial Magnification</string> 
      <key>Values</key> 
      <array> 
       <integer>1</integer> 
       <integer>2</integer> 
       <integer>3</integer> 
      </array> 
      <key>Titles</key> 
      <array> 
       <string>1x</string> 
       <string>2x</string> 
       <string>3x</string> 
      </array> 
      <key>Key</key> 
      <string>LuminInitialMagnificationKey</string> 
      <key>DefaultValue</key> 
      <integer>2</integer> 
     </dict> 
     <dict> 
      <key>Type</key> 
      <string>PSToggleSwitchSpecifier</string> 
      <key>Title</key> 
      <string>Large Lock Button</string> 
      <key>Key</key> 
      <string>LuminLockButtonEmphasis</string> 
      <key>DefaultValue</key> 
      <true/> 
     </dict> 
     <dict> 
      <key>Type</key> 
      <string>PSToggleSwitchSpecifier</string> 
      <key>Title</key> 
      <string>Picture-in-Picture Frame</string> 
      <key>Key</key> 
      <string>LuminOutlineEnabled</string> 
      <key>DefaultValue</key> 
      <true/> 
     </dict> 
     <dict> 
      <key>Type</key> 
      <string>PSGroupSpecifier</string> 
      <key>Title</key> 
      <string>Sound</string> 
     </dict> 
     <dict> 
      <key>DefaultValue</key> 
      <false/> 
      <key>Key</key> 
      <string>LuminFocusBeepKey</string> 
      <key>Title</key> 
      <string>Focus Beep</string> 
      <key>Type</key> 
      <string>PSToggleSwitchSpecifier</string> 
     </dict> 
     <dict> 
      <key>Type</key> 
      <string>PSGroupSpecifier</string> 
      <key>Title</key> 
      <string>Share Options</string> 
     </dict> 
     <dict> 
      <key>Type</key> 
      <string>PSChildPaneSpecifier</string> 
      <key>Title</key> 
      <string>Mail</string> 
      <key>File</key> 
      <string>EmailSettings</string> 
     </dict> 
     <dict> 
      <key>Type</key> 
      <string>PSChildPaneSpecifier</string> 
      <key>Title</key> 
      <string>Tweet</string> 
      <key>File</key> 
      <string>TweetSettings</string> 
     </dict> 
     <dict> 
      <key>Type</key> 
      <string>PSChildPaneSpecifier</string> 
      <key>Title</key> 
      <string>Facebook</string> 
      <key>File</key> 
      <string>FacebookSettings</string> 
     </dict> 
     <dict> 
      <key>Type</key> 
      <string>PSGroupSpecifier</string> 
      <key>Title</key> 
      <string>History</string> 
      <key>FooterText</key> 
      <string>Tagged images will not be deleted. Dropbox mirroring is queued until WiFi connectivity is available.</string> 
     </dict> 
     <dict> 
      <key>Type</key> 
      <string>PSMultiValueSpecifier</string> 
      <key>Title</key> 
      <string>Delay Before Saving</string> 
      <key>Values</key> 
      <array> 
       <string>1</string> 
       <string>3</string> 
       <string>5</string> 
       <string>7</string> 
      </array> 
      <key>DefaultValue</key> 
      <string>3</string> 
      <key>Titles</key> 
      <array> 
       <string>1 second</string> 
       <string>3 seconds</string> 
       <string>5 seconds</string> 
       <string>7 seconds</string> 
      </array> 
      <key>Key</key> 
      <string>LuminTimeToWaitBeforeHistoryKey</string> 
     </dict> 
     <dict> 
      <key>Type</key> 
      <string>PSTextFieldSpecifier</string> 
      <key>Title</key> 
      <string>Number of Images to Keep</string> 
      <key>Key</key> 
      <string>LuminNumberOfHistoryFilesKey</string> 
      <key>DefaultValue</key> 
      <string>100</string> 
      <key>KeyboardType</key> 
      <string>NumberPad</string> 
     </dict> 
     <dict> 
      <key>DefaultValue</key> 
      <false/> 
      <key>Key</key> 
      <string>LuminDropboxActive</string> 
      <key>Title</key> 
      <string>Mirror to Dropbox</string> 
      <key>Type</key> 
      <string>PSToggleSwitchSpecifier</string> 
     </dict> 
     <dict> 
      <key>Type</key> 
      <string>PSGroupSpecifier</string> 
      <key>FooterText</key> 
      <string>Lumin™ © 2011-2012 M. Zabetian & BitsOnTheGo.com. All rights reserved. Special Thanks to Tim Smith and AppliedDesign.tv.</string> 
     </dict> 
     <dict> 
      <key>Type</key> 
      <string>PSTitleValueSpecifier</string> 
      <key>DefaultValue</key> 
      <string>Unknown</string> 
      <key>Title</key> 
      <string>Version</string> 
      <key>Key</key> 
      <string>AppVersionStringKey</string> 
     </dict> 
    </array> 
    <key>StringsTable</key> 
    <string>Root</string> 
</dict> 
</plist> 
+0

私もこの問題に気付きました。私はXcodeのバグだと思っています。 .plistを手作業で(コード内で)変更するたびに私に起こります。Xcodeは、そうでないと主張するとファイルが壊れていると主張します。私がこれを完全に避けるために見つけた唯一の方法は、XcodeのUIでファイルを変更することです。 –

+0

私はそれを理解したかもしれないと思います。あなたは@MDT、あなたのplistのどこに "&"を持っていますか? – mahboudz

+0

私はこれがあなたのために何をしたのかと推測しています。私はXcodeに問題があるとは思わないでしょう。 –

答えて

1

私はこれを解決しました。私はXcodeのように別のテキストエディタを使用して開いていないだろうしなければならなかったBitsOnTheGo.com

Zabetianとし、BitsOnTheGo.com Zabetian &

を置き換えますそのファイルは破損していると主張していました。そのアンパサンドを置き換えた後、Xcodeで開くことができ、アプリケーションをビルドして実行し、完全な設定ペインを見ることができます。

これがXcodeでバグとしてカウントされるかどうかは不明です。 "&"とそのような文字を設定plistに含めることが合法かどうかによって異なります。なぜそうでないのか分かりません。

+2

そのプロパティリストはXMLなので、[特定の特殊文字をエスケープする]必要があります(http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Predefined_entities_in_XML)。 '&'は '&'としてエスケープする必要があります。 –

関連する問題