代码之家  ›  专栏  ›  技术社区  ›  drekka

xcodebuild是否在成功生成后引发断言失败?

  •  0
  • drekka  · 技术社区  · 14 年前

    我在使用xcodebuild从命令行构建之后得到以下信息,你认为可能有什么问题?

    ** BUILD SUCCEEDED **
    
    2010-06-06 20:20:12.916 xcodebuild[8267:80b] [MT] ASSERTION FAILURE in    
    /SourceCache/DevToolsBase/DevToolsBase-1648/pbxcore/Target.subproj/PBXTarget.m:597
    Details:  Assertion failed: (nil == _buildContext) || (nil == [_buildContext target])
    Object:   <PBXLegacyTarget:0x104b97370>
    Method:   -dealloc
    Thread:   <NSThread: 0x100b141a0>{name = (null), num = 1}
    Backtrace:
      0  0x000000010035feaf -[XCAssertionHandler handleFailureInMethod:object:fileName:lineNumber:messageFormat:arguments:] (in DevToolsCore)
      1  0x000000010035fc1a _XCAssertionFailureHandler (in DevToolsCore)
      2  0x00000001002790d1 -[PBXTarget dealloc] (in DevToolsCore)
      3  0x00000001002911e8 -[PBXLegacyTarget dealloc] (in DevToolsCore)
      4  0x00000001002c5b16 -[PBXTargetBookmark dealloc] (in DevToolsCore)
      5  0x00007fff8224ff71 __CFBasicHashStandardCallback (in CoreFoundation)
      6  0x00007fff82250931 __CFBasicHashDrain (in CoreFoundation)
      7  0x00007fff822396b3 _CFRelease (in CoreFoundation)
      8  0x0000000100254171 -[PBXProject dealloc] (in DevToolsCore)
      9  0x00007fff82262d56 _CFAutoreleasePoolPop (in CoreFoundation)
     10  0x00007fff841b530c -[NSAutoreleasePool drain] (in Foundation)
     11  0x000000010000c60d
     12  0x00000001000014f4
    ** INTERNAL ERROR: Uncaught Exception **
    Exception: ASSERTION FAILURE in /SourceCache/DevToolsBase/DevToolsBase-1648/pbxcore/Target.subproj/PBXTarget.m:597
    Details:  Assertion failed: (nil == _buildContext) || (nil == [_buildContext target])
    Object:   <PBXLegacyTarget:0x104b97370>
    Method:   -dealloc
    Thread:   <NSThread: 0x100b141a0>{name = (null), num = 1}
    Backtrace:
      0  0x000000010035feaf -[XCAssertionHandler handleFailureInMethod:object:fileName:lineNumber:messageFormat:arguments:] (in DevToolsCore)
      1  0x000000010035fc1a _XCAssertionFailureHandler (in DevToolsCore)
      2  0x00000001002790d1 -[PBXTarget dealloc] (in DevToolsCore)
      3  0x00000001002911e8 -[PBXLegacyTarget dealloc] (in DevToolsCore)
      4  0x00000001002c5b16 -[PBXTargetBookmark dealloc] (in DevToolsCore)
      5  0x00007fff8224ff71 __CFBasicHashStandardCallback (in CoreFoundation)
      6  0x00007fff82250931 __CFBasicHashDrain (in CoreFoundation)
      7  0x00007fff822396b3 _CFRelease (in CoreFoundation)
      8  0x0000000100254171 -[PBXProject dealloc] (in DevToolsCore)
      9  0x00007fff82262d56 _CFAutoreleasePoolPop (in CoreFoundation)
     10  0x00007fff841b530c -[NSAutoreleasePool drain] (in Foundation)
     11  0x000000010000c60d
     12  0x00000001000014f4
    
    Stack:
      0  0x00007fff822ded06 __exceptionPreprocess (in CoreFoundation)
      1  0x00007fff832470f3 objc_exception_throw (in libobjc.A.dylib)
      2  0x00007fff823369b9 -[NSException raise] (in CoreFoundation)
      3  0x000000010035ff6a -[XCAssertionHandler handleFailureInMethod:object:fileName:lineNumber:messageFormat:arguments:] (in DevToolsCore)
      4  0x000000010035fc1a _XCAssertionFailureHandler (in DevToolsCore)
      5  0x00000001002790d1 -[PBXTarget dealloc] (in DevToolsCore)
      6  0x00000001002911e8 -[PBXLegacyTarget dealloc] (in DevToolsCore)
      7  0x00000001002c5b16 -[PBXTargetBookmark dealloc] (in DevToolsCore)
      8  0x00007fff8224ff71 __CFBasicHashStandardCallback (in CoreFoundation)
      9  0x00007fff82250931 __CFBasicHashDrain (in CoreFoundation)
     10  0x00007fff822396b3 _CFRelease (in CoreFoundation)
     11  0x0000000100254171 -[PBXProject dealloc] (in DevToolsCore)
     12  0x00007fff82262d56 _CFAutoreleasePoolPop (in CoreFoundation)
     13  0x00007fff841b530c -[NSAutoreleasePool drain] (in Foundation)
     14  0x000000010000c60d
     15  0x00000001000014f4
    
    Abort trap
    
    3 回复  |  直到 12 年前
        1
  •  3
  •   Steph    14 年前

    我有完全相同的症状…没有线索。它在我的项目中使用得很好。我彻底改变了我的构建设置,现在它做到了????

    即使构建设置错误,xcode也不应该崩溃。

    对于我来说,它仍然在末尾生成有效的二进制文件。在关闭项目和解除分配某些内容时,听起来像xcode崩溃。

    但是,我似乎找到了一种方法,通过删除Xcode项目包中的所有.pbxuser和.perspectivev3文件来消除错误。

    如果您和我一样,并且有大量Xcode项目,那么您可能希望在代码基的根目录下运行以下命令:

    find . -type f -name "*.pbxuser" -exec rm -f {} \;
    find . -type f -name "*.perspectivev3" -exec rm -f {} \;
    
        2
  •  0
  •   djdrzzy    14 年前

    我还解决了启动Xcode应用程序时无法打开Xcode项目的问题。我安装了一个旧版本的Xcode和一个旧版本的iOS SDK。

        3
  •  -1
  •   Community CDub    7 年前

    请小心使用Steph解决方案,因为它会造成严重破坏。这是一个类似的问题和答案: xcode Assertion failed

    如果人们通常在寻找一个断言失败的故障排除。