使用Xcode的命令行构建工具(xcodebuild archive)创建存档

24

Xcode 4中的构建Xcode项目的命令行工具xcodebuild,有一个新的构建操作可用:archive

来自man xcodebuild

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

不幸的是,当我尝试使用它时,出现了一个错误:

$ 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.
我的印象是这实际上还没有起作用。有人让它工作了吗?如果有,怎么做的?

我的印象是这实际上还没有起作用。有人让它工作了吗?如果有,怎么做的?


有人知道如何启动xcodebuild存档吗? - Taras Kalapun
是的,我正在对工作区而不是项目进行调用。 - Steven Fisher
你能否在Xcode中成功构建? - ljkyser
是的,它在IDE中很好用。但我想自动化我的构建过程。 - Steven Fisher
确保方案名称完全相同。我的方案在Xcode中被称为“MyProject Ent”,而从命令行调用时我使用的是“MyProjectEnt”,这是不正确的。请在“管理方案”中进行编辑。 - RPM
如果你也加上引号,它可能会起作用:-scheme "MyProject Ent" - Steven Fisher
3个回答

11

关于信息,我99%确定xcodebuild archive在以前的Xcode 4版本中可用,也许是一个Beta版本......这真的很令人沮丧,因为-verbose和系统日志没有带来太多详细信息。

所以我会称之为......一个Bug!

如果自动构建是您要寻找的内容,有一种方法可以使用xcrun PackageApplication从命令行生成IPA归档文件(generate IPA archive from command line)

使用xcrun打包和xcodebuild构建,您几乎可以实现xcodebuild archive应该做的事情。 我更喜欢使用xcodebuild,因为我们可以期望它生成一个.xcarchive.app+.dSYM),比IPA更有趣。

不是很离题,但如果有人知道如何从xcodebuild和Xcode获取更多日志,我真的很感兴趣!

编辑: 在Apple论坛上查看后,我确认这是GM2引入的Xcode BUG......我猜想苹果Xcode工程师正在开发Xcode 4.1,我认为最终版本将随着OSX Lion一起发布......也许在六月?有一个修复?:(


那是我的论坛帖子。 :) 看起来目前我想要的不可能实现。 - Steven Fisher
哈哈,我应该检查一下名称!这也困扰着我,我喜欢档案概念,以及它为AppStore提交带来的简化,但是我也很想在测试阶段自动化这个过程!>_< - Vincent Guerci
1
似乎在4.3.2版本中又出现了问题:不支持的构建操作'archive' :( - keegan3d
我很久以前就放弃了使用这个想法...现在我使用Xcode IDE来完成这个任务... xcodebuild仍然将archive作为有效的buildaction提及...听起来像是一个bug...又来了。 - Vincent Guerci

8
这对我来说似乎有效:
xcodebuild -project TestApp.xcodeproj  -scheme TestApp -configuration "Ad Hoc" archive

0

这个在GUI上能用吗? 项目 -> 为存档构建 然后你可以在组织者(存档选项卡)中找到存档 在GUI中对我有效


是的,它在 GUI 中工作得很好。xcodebuild 是命令行组件的名称,用于执行此操作。我会在问题中澄清这一点,谢谢。 - Steven Fisher

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接