Ios Xcode:如何使xcodebuild生成包含子项目的项目

Ios Xcode:如何使xcodebuild生成包含子项目的项目,ios,xcode,xcodebuild,Ios,Xcode,Xcodebuild,我有一个Xcode项目,它包含几个子项目(编译为lib文件的框架项目),作为主项目的一部分。该项目在Xcode中正确编译/构建(正确构建从hyarchial树底部到主应用程序项目的子项目) 我现在正试图为持续集成设置项目,当我尝试使用xcodebuild从命令行进行构建时。。。生成失败,因为找不到应在主项目之前生成的.a文件 我可以从cmd行独立构建每个lib文件,但整个合并项目失败。即使我在目标方案中正确管理了依赖关系,并且在使用xcodebuild时指定了目标或方案,它仍然不会生成子项目 有

我有一个Xcode项目,它包含几个子项目(编译为lib文件的框架项目),作为主项目的一部分。该项目在Xcode中正确编译/构建(正确构建从hyarchial树底部到主应用程序项目的子项目)

我现在正试图为持续集成设置项目,当我尝试使用xcodebuild从命令行进行构建时。。。生成失败,因为找不到应在主项目之前生成的.a文件

我可以从cmd行独立构建每个lib文件,但整个合并项目失败。即使我在目标方案中正确管理了依赖关系,并且在使用xcodebuild时指定了目标或方案,它仍然不会生成子项目

有没有办法让xcodebuild像在XcodeIDE中那样先构建子项目,然后再构建主项目?如果没有,如果我将整个项目转换为一个工作区,这会起作用吗


如有任何帮助或建议,将不胜感激。我在Mavericks上运行Xcode 5.1.1

您需要使用一个工作区来构建多个项目。此外,由于您要迁移到CI服务器,请确保共享您的方案。

解决方案很简单。。。使用“-scheme”标志而不是“-target”可以正确构建项目(所有子项目/框架,然后是目标应用程序)

失败:

xcodebuild -project MyProject.xcodeproj -target MyProject -sdk "iphoneos" -configuration “Build” archive OBJROOT=../../build_iOS/Obj.root SYMROOT=../../build_iOS/Sym.root 
按预期建造:

xcodebuild -project MyProject.xcodeproj -scheme MyProject -sdk "iphoneos" -configuration “Build” archive OBJROOT=../../build_iOS/Obj.root SYMROOT=../../build_iOS/Sym.root 

无需将项目转换为工作区。

有时
版本
调试
生成配置具有不同的设置。您可以尝试使用
-configuration Debug
xcodebuild选项。这应该与Xcode 5.1在按下运行按钮时的构建方式相同。另外,请查看右侧边栏中的“相关”问题。我还发现,使用项目、方案等的完整文件路径会产生很大的不同。通常Xcodebuild会抱怨说,即使您的终端正在查看该文件,它也找不到该文件。。。完整路径解决了这个问题。