2012-05-11 2 views
3

私は、iOSアプリケーションのバージョンコントロールで2つのブランチが複雑にマージされています。 project.pbxprojで競合する行を特定して選択した後、Xcodeはファイルをロードしません。 plutilを通してそれを実行すると、このことを示していますマージ後のXcodeのproject.pbxprojでエラーを見つける

CFPropertyListCreateFromXMLData(): Old-style plist parser: missing semicolon in dictionary.

私は戻って、私はフォーマットを導入するよどこ私は見ることができないが、マージ(慎重に)数回、毎回、同じ結果を得る試みられてきました問題。

私は私が作っている間違いを見つけることができるように、私はエラーが中にある少なくともラインまたはオブジェクトを見つけるために使用できるツールはありますか?

+0

マージを処理するためにXcode 4のSCM統合(プロジェクトファイルのSCM管理をよりインテリジェントに処理する)を使用していましたか?もしそうでなければ、それは一撃の価値がある。また、どのようなSCMシステムを使用していますか?これらの2つの情報は、あなたの正確な質問ではなく、あなたの問題に対する答えにつながる可能性があります。 :-) –

+0

@JoshuaNozzi私はgitを使っていますが、XcodeのSCMツールではありません。 –

+0

XcodeのGitで "Pull"を実行すると、マージが始まります:http://developer.apple.com/library/mac/#レシピ/ xcode_help-repositories_organizer/PullingUpdates fromRRemoteRepository/PullingUpdates fromRRemoteRepository.html –

答えて

0

私はあなたがすでにこれを考慮していると確信していますが、私が見る唯一の選択肢は、クイックユーティリティを書くことです。

CFPropertyListIsValid()を試してみて、何か役に立つものを吐くことを願ってください。ヘッダーの内容は次のとおりです。

この機能によって、ログ機能がさらに強化される可能性がありますか?私はアップルが「役に立つ」とか「何か」を意味するのか分からない(おそらく、「いいえ、それは無効だ」と返すとfalse)、それは私の次の試みだろう。

さらに、CFPropertyListCreateWithStream()は、一度に少しずつ読むと役立ちます。 NULLを返すまで、エラーの位置をゼロにするには、それを部分的に供給することによってそれを使用することができます。 NULLに遭遇したときにサイズを小さくすると、あなたは消化不良のポイントに近づくでしょう。

3

私は次のテスト作成:

#import <Foundation/Foundation.h> 
#import <err.h> 

int main(int argc, const char * argv[]) 
{ 

    @autoreleasepool { 

     NSString *path = [[NSFileManager defaultManager] stringWithFileSystemRepresentation:argv[1] length:strlen(argv[1])]; 
     NSData *data = [NSData dataWithContentsOfFile:path]; 

     if (!data) 
      errx(EXIT_FAILURE, "open failed: %s\n", argv[1]); 

     NSString *errorString; 
     id plist = [NSPropertyListSerialization propertyListFromData:data 
                mutabilityOption:NSPropertyListImmutable 
                   format:NULL 
                errorDescription:&errorString]; 


     if (!plist) 
      errx(EXIT_FAILURE, "%s\n", [errorString UTF8String]); 

     printf("plist successfully read\n"); 
    } 
    return 0; 
} 

を、修正project.pbxprojでそれを実行しました:

// !$*UTF8*$! 
{ 
     archiveVersion = 1; 
     classes = { 
       x = 1 
     }; 
... 

と、次のエラーました:

2012-05-11 20を:51:14.381 plist-test [41890:303] CFPropertyListCreateFromXMLData():古いスタイルのplistパーサ:行内の辞書のセミコロンが抜けています。6.解析が中止されます。 _CFPropertyListMissingSemicolonをブレークしてデバッグします。

+0

それは素晴らしいように:)。私はXcodeの問題を再現し、何が起こるかを見ます。 –

+0

残念ながら、この問題は見つかりません。 "2012-05-12 11:25:31.389無題2 [1412:707] CFPropertyListCreateFromXMLData():旧式のplistパーサー:辞書のセミコロンがありません 無題2:1行目の予期しない文字"まだ、便利なトリックです自分の袖を持っていること:) –

+0

ライオンはライン番号を報告しません。あなたは私にファイルを送ることができますか? –

関連する問題