Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why getting differences between using XCode and xcodebuild?

Can anyone explain why I get different results when compiling the same XCode 4.x project using the GUI and xcodebuild command-line?

XCode GUI

  1. Perform a clean
  2. Build "Release" target
  3. Build successfully

xcodebuild

  1. Perform a clean
  2. Run "xcodebuild -configuration Release"
  3. Results in the following errors:

    /Developer/usr/bin/gcc-4.0 -x objective-c -arch i386 -fmessage-length=0 -pipe -std=gnu99 -Wno-trigraphs -fpascal-strings -fasm-blocks -Os -Wreturn-type -Wunused-variable -isysroot /Developer/SDKs/MacOSX10.4u.sdk -fvisibility=hidden -mmacosx-version-min=10.4 -c "/Users/XXX/Extensions/NSFileManager_Extensions.m" -o "/Users/XXX/Developer/Intermediates/YourApp.build/Release/YourApp.build/Objects-normal/ppc/NSFileManager_Extensions.o" /Users/XXX/Extensions/NSFileManager_Extensions.m:15:60: error: ToxicRegularExpressions/ToxicRegularExpressions.h: No such file or directory ** BUILD FAILED **

The following build commands failed: CompileC "/Users/XXX/Developer/Intermediates/YourApp.build/Release/YourApp.build/Objects-normal/ppc/NSFileManager_Extensions.o" /Users/XXX/Extensions/NSFileManager_Extensions.m normal ppc objective-c com.apple.compilers.gcc.4_0

And finally GUI + xcodebuild

  1. Perform a clean in GUI
  2. Build "Release" target
  3. Builds successfully
  4. Run "xcodebuild -configuration Release"
  5. Builds successfully
like image 395
Dwight Kelly Avatar asked Sep 30 '09 14:09

Dwight Kelly


People also ask

What is XcodeBuild?

The XcodeBuild build helper is a wrapper around the command line invocation of Xcode. It will abstract the calls like xcodebuild -project app. xcodeproj -configuration <config> -arch.

How does XcodeBuild work?

In general, Xcode has to do tasks like preprocess source files and compile them by compiler, link source code by linker, copy and process resources like headers, asset catalogues and storyboards, And finally code sign and maybe even do some custom work in a shell script or a make file like building API documentation ...

What is the Xcrun command?

DESCRIPTION. xcrun provides a means to locate or invoke coexistence- and platform- aware developer tools from the command-line, without requiring users to modify makefiles or otherwise take inconvenient measures to support mul- tiple Xcode tool chains.

What is version and build number in Xcode?

Other developers, including Apple, have a Build number comprised of a major version + minor version + number of builds for the release. These are the actual software version numbers, as opposed to the values used for marketing. If you go to Xcode menu > About Xcode, you'll see the Version and Build numbers.


2 Answers

Try passing the SDK on the command line, like so:

xcodebuild -configuration Release -sdk iphonesimulator3.0
like image 67
Michael Fey Avatar answered Oct 18 '22 19:10

Michael Fey


Specify the scheme you want to build with -scheme. Without it xcodebuild may use the "legacy" target driven build system, which is different. You may want to make some of your schemes shared for this, when redistributing projects.

See: Postscriptum of xcodebuild driving me nuts again with a zombie OBJROOT

like image 26
user3093235 Avatar answered Oct 18 '22 17:10

user3093235