Archive with Xcode's command line build tool (xcodebuild archive)

Steven Fisher picture Steven Fisher · Mar 22, 2011 · Viewed 20.9k times · Source

The command line tool to build Xcode projects, xcodebuild, has a new build action available in Xcode 4: archive.

From man xcodebuild:

       archive     Archive a scheme from the build root (SYMROOT).  This requires specifying
                   a workspace and scheme.

Unfortunately, when I try to use it I get an error:

$ xcodebuild archive -workspace SimpleTestApp.xcworkspace -scheme SimpleTestApp
xcodebuild: error: Failed to build workspace SimpleTestApp with scheme SimpleTestApp.
    Reason: The selected run destination is not valid for this action.

My impression is this doesn't actually work yet. Has anyone got it to work? If so, how?

Answer

Vincent Guerci picture Vincent Guerci · May 13, 2011

For information I'm 99% sure that xcodebuild archive was working in a previous Xcode 4 version, maybe a Beta... And this is really frustrating since -verbose and syslogs doesn't bring much details.

So I would call that... a Bug!

If automating your build is what you are looking for, there is a way to generate IPA archive from command line using xcrun PackageApplication

With xcrun to package and xcodebuild to build, you can almost achieve what xcodebuild archive is supposed to do. I would prefer to use xcodebuild since we can expect this to generate a .xcarchive (.app + .dSYM), more interesting than an IPA.

Not so off-topic, but if anyone knows how to get more logs from xcodebuild and Xcode, I'm really interested!

EDIT: After looking in Apple Forums, I confirm this is an Xcode BUG introduced with GM2... I guess Apple Xcode engineers are working on Xcode 4.1 that I think final version will be released with OSX Lion... In june maybe? With a fix? :(