通过 xcodebuild 命令更改目标属性

Posted

技术标签:

【中文标题】通过 xcodebuild 命令更改目标属性【英文标题】:Target Properties changes by xcodebuild command 【发布时间】:2013-10-02 06:45:43 【问题描述】:

如何通过 xcodebuild 命令工具操作我的 ios 目标属性?

例如,我有一个带有一个目标的项目,并且在信息选项卡的目标属性中使用 Facebook SDK 密钥

FacebookAppID: 01234567891234

并且使用控制台命令 xcodebuild 我正在使用两个控制台命令编译两个具有开发人员和生产条款的应用程序:

对于开发者:

xcodebuild -project Projectname.xcodeproj clean install OBJROOT=ObjRoot ... CODE_SIGN_IDENTITY=iPhoneDeveloper PROVISIONING_PROFILE="Dev.mobileprovision"

对于分发:

xcodebuild -project Projectname.xcodeproj clean install OBJROOT=ObjRoot ... CODE_SIGN_IDENTITY=iPhoneProduction PROVISIONING_PROFILE="Prod.mobileprovision"

我需要在开发人员中使用一个 FacebookAppID,在生产中使用另一个 FacebookAppID,以及如何更改我的命令行来实现这一点?

谢谢

【问题讨论】:

【参考方案1】:

xcodebuild 的参数最适合用于每次调用时都会更改的值,例如包含内部版本号的目标目录。

对于像 Facebook 应用 ID 这样的基础数据,我建议使用您的构建配置,例如“调试”和“发布”。创建一个名为“FACEBOOK_ID”之类的用户定义的构建设置(在 Xcode 5.0.2 中,编辑器 -> 添加构建设置 -> 添加用户定义的设置),然后在 Info.plist 中,将所需键的值设置为 $脸书_ID。在目标的构建设置中,为您的调试和发布配置定义不同的 FACEBOOK_ID。然后,您的代码现在必须在运行时从 Info.plist 中提取当前值。

如果您真的想将构建设置作为 xcodebuild 的参数覆盖,您可以这样做,只需在命令末尾添加“FACEBOOK_ID=12341234”,但这只有在您完成了我刚才描述的工作后才有效使 FACEBOOK_ID 成为特定于配置的构建设置。我想不出任何合理的理由将此类应用数据保留在构建配置之外。

如果您不熟悉构建配置,我建议您从 WWDC 2012 session 408“Working with Schemes and Projects in Xcode”开始。

【讨论】:

感谢您的回答。但是我已经通过使用两个不同的构建配置文件解决了这个问题,并且在命令中我选择了一个需要的。但是 Debug/Release 的想法也是成功的。为此,我给你一个接受我的问题的回答 =)

以上是关于通过 xcodebuild 命令更改目标属性的主要内容,如果未能解决你的问题,请参考以下文章

带有变音符号的 xcodebuild 目标名称

如何在 Fastlane 中更改构建配置 - 通过 gym、build _app 或 xcodebuild

使用命令 xcodebuild 时如何更改构建路径

特定目标/方案的 xcodebuild 测试

xcodebuild:错误:无法构建工作区。原因:无法使用仅构建设备来运行此目标

xcodebuild 命令无法生成 iPA