我复制了一个目标并修改了相应的属性列表文件。添加了一个预处理器宏,可帮助从相同的源文件构建重复的目标。
但是当我尝试进行干净的构建时,XCode 4.2会一直崩溃。有趣的是,它在初始构建时工作正常。但是当我清理原始目标并尝试重建重复目标时,XCode崩溃了。
堆栈追踪 -
ASSERTION FAILURE in /SourceCache/IDEKit/IDEKit-955/Framework/Classes/Editor/IDEEditorDocument.m:635
Details: (lastKnownModificationDate) should not be nil.
Object: <IDEQuickLookDocument: 0x4020b7fc0>
Method: -_respondToFileChangeOnDiskWithFilePath:
Thread: <NSThread: 0x40010a260>{name = (null), num = 1}
Hints: None
Backtrace:
0 0x0000000107035466 -[IDEAssertionHandler handleFailureInMethod:object:fileName:lineNumber:messageFormat:arguments:] (in IDEKit)
1 0x00000001066a8794 _DVTAssertionFailureHandler (in DVTFoundation)
2 0x0000000106fb66c7 -[IDEEditorDocument _respondToFileChangeOnDiskWithFilePath:] (in IDEKit)
3 0x00007fff8ca4ca82 _dispatch_call_block_and_release (in libdispatch.dylib)
4 0x00007fff8ca4e8f2 _dispatch_main_queue_callback_4CF (in libdispatch.dylib)
5 0x00007fff8c2fee7c __CFRunLoopRun (in CoreFoundation)
6 0x00007fff8c2fe486 CFRunLoopRunSpecific (in CoreFoundation)
7 0x00007fff8f07e2bf RunCurrentEventLoopInMode (in HIToolbox)
8 0x00007fff8f08556d ReceiveNextEventCommon (in HIToolbox)
9 0x00007fff8f0853fa BlockUntilNextEventMatchingListInMode (in HIToolbox)
10 0x00007fff869e2779 _DPSNextEvent (in AppKit)
11 0x00007fff869e207d -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] (in AppKit)
12 0x00007fff869de9b9 -[NSApplication run] (in AppKit)
13 0x00007fff86c5aeac NSApplicationMain (in AppKit)
14 0x0000000106637eec (in Xcode)
以前有人遇到过这个问题吗?感谢。
答案 0 :(得分:1)
我找到了答案。项目文件来自Xcode 4.1,但我使用的是4.2版来构建它。当我使用4.1版本来构建项目时,一切正常。有趣的是,当我使用升级版本打开项目文件时没有警告。
复制目标时需要注意的几点 -
也可以更改目标Build设置中的Product Name。只是直接修改目标文件名也不会在Build设置中改变。
如果打算为新目标使用不同的GUI,请在相应的 .plist 文件中使用相同的名称。
新的GUI文件需要包含在捆绑包中。
编译器标志的预处理器宏必须仅用于新目标。