Info.plistファイルを解析したくないxCodeでレンガの壁にぶつかりました。以前にバックアップしたファイルの古い(同一の)バージョンでファイルを数回置き換えましたが、まだ同じエラーが表示されます。
完全なエラーメッセージを次に示します。
couldn't parse contents of '/Users/...Info.plist': The data couldn’t be read because it isn’t in the correct format.
私はこれについて無知です。 xCode 5.0.1、Mavericksを使用しています
ファイルをバックアップで置き換えた後、オーガナイザーでプロジェクトの派生データを削除することが解決策のように見えます。これが後で他の誰かを助けることを願っています。
これは、エラーが発生している行を検出する最良の方法の1つです。
Plistファイルが存在するディレクトリに移動し、端末でこのコマンドを記述します->
plutil filename.plist
この問題の別の原因は、app-Info.plistにURL(実際には単なるスラッシュなど)を入れようとしたことです。
プロジェクトのビルド設定で-traditional
オプション内のInfo.plist Other Preprocessor Flags
フラグを上げるだけで回避できます。
ソース管理ツールを使用したことがあると思います。Xcodeなしで基本的なテキスト編集ツールを使用してこのplistを開き、コマンド+ Fで「<<<<<」または「>>>>>」を見つけることができます。次のようなエラー文字列を見つけます。
<<<<<<< .mine
>>>>>>> .r605
正しい文字列を選択し、他の文字列を削除すると、エラーが解決します!
Git mergeが競合を引き起こしたとき、私は個人的にファイルを台無しにしました。 .plistはXMLファイルであり、Gitの競合が<<<<と>>>>に追加され、差異にタグが付けられます。
Finderで(プロジェクトのフォルダーの1つで).plistファイルを見つけます。テキストエディターで開き、適切なXMLのように見えない行を見つけて削除し、重複するXML行/ノードを必ず削除してください(gitの記録された変更の前後で)。
IOS用にビルドする場合、デフォルトの向きが自動回転に設定されていると、Info.plistが破損する場合があります。 Info.plistファイルは最初のビルドで適切に作成されますが、その後のビルドの結果は...
<key>UIInterfaceOrientation</key>
<string></string>
</string>
...この時点で、Xcodeはプロジェクトのビルドに失敗します。
同じエラーが発生していましたが、URLがあることが問題であることがわかりました(例:http://example.com/something
)をInfo.plistの値として使用し、その前処理をオンにしました(-traditional
国旗)。どうやらXcodeは//
をコメントマーカーとして使用し、残りの行を省略します。
私が見つけた回避策は、次のようにプリプロセッサを採用することです:http:/${}/example.com/something
、これは//
中間に空の文字列サブステーションを配置することにより、Xcodeへのコメントのように見えませんが、前処理後は通常のURLに戻ります。