1

今日、Xcode 経由で実行しているときに、私のアプリが不思議なことにクラッシュし始めました。設定が利用できないという問題を追跡しました。実際、自分のアプリの設定アプリを見ると、次のように表示されます。

ここに画像の説明を入力

Xcode の Settings.bundle、具体的には Root.plist に移動すると、次のエラー メッセージが表示されます。

ここに画像の説明を入力

そのため、ファイルが破損しています。邪魔ですが、あまり気になりません。昨夜のファイルのコピーを取得しました (TimeMachine に感謝します)。そのファイルと現在持っているファイルとの差分をとりますが、違いはありません。異なるバージョンが見つかるまで数日戻ります。残念ながら、それは私が root.plist ファイルを真剣に改良したときだったので、最新バージョンで破損しているものは見つかりません。

また、アプリは、以前にアプリをインストールしたことがない新しい iPhone でのみクラッシュします。私の他の iPhone は、Xcode 経由で同じアプリを実行してもクラッシュしませんが、上記のスクリーンショットのように空の [設定] ウィンドウが表示されます。おそらく破損した root.plist にもかかわらず、実際の NSUSerDefaults は、ある時点で破損していない root.plist があった iPhone にまだ残っていると思いますが、新しい 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>
4

1 に答える 1

1

私はこれを解決しました。交換しました

ザベティアン & BitsOnTheGo.com

Zabetian と BitsOnTheGo.com

Xcodeはファイルが破損していると主張しているため、ファイルを開くことができなかったため、別のテキストエディターを使用する必要がありました。そのアンパサンドを置き換えた後、Xcode でそれを開くことができ、アプリをビルドして実行し、完全な [設定] ペインを表示することができました。

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

于 2012-05-06T23:00:59.607 に答える