3

我想更改.xcodeproj的构建设置,而不使用Xcode IDE,但是通过终端命令(将密码标识为准确)。设置Xcode构建设置终端

我已经搜索了所有,但只发现命令来建立/归档项目从终端,我不想。我想要的只是更改设置,以便在Xcode中打开项目时,它将签名标识和设置配置文件设置为我在终端中设置的项目。

Xcodebuild命令只是使用我传递的参数来构建/存档项目,但它并未将它们设置为项目的构建设置中的值。

在终端中运行xcodebuild -target <target-name> -showBuildSettings,我的项目驻留在那里,给了我完整的项目构建设置,但我没有得到任何方法来设置它们。

另外我读here关于使用-setObject,但这也没有帮助我,因为它也使用我给的参数值而不是实际设置它们来构建代码。

当前使用Xcode 6.3和Xcode 7.

任何形式的帮助将不胜感激。

回答

3

所有的Xcode设置实际上存储在<project-name>.xcodeproj/project.pbxproj。 它看起来像

buildSettings = { 
    CODE_SIGN_ENTITLEMENTS = ""; 
    CODE_SIGN_IDENTITY = "iPhone Developer"; 
    "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 

    ... 

    PRODUCT_NAME = "$(TARGET_NAME)"; 
    PROVISIONING_PROFILE = ""; 
    SKIP_INSTALL = YES; 
}; 

代码签名身份CODE_SIGN_IDENTITY键和供应配置文件PROVISIONING_PROFILE控制键控制。

project.pbxproj是可以通过CLI传统文本处理工具进行编辑的文本文件,如sed的

sed -ie 's/CODE_SIGN_IDENTITY = "iPhone Developer"/CODE_SIGN_IDENTITY = ""/g' <project-name>.xcodeproj/project.pbxproj 
sed -ie 's/PROVISIONING_PROFILE = ""/PROVISIONING_PROFILE = "1c28c979-6bef-4917-aa34-92aecd91315c";/g' <project-name>.xcodeproj/project.pbxproj 

您可以获取可用签名身份名单

security find-identity -v -p codesigning 

对于PROVISIONING_PROFILE,这是配置文件的UUID,它可以被获取ED与

grep -aA1 UUID /path/to/mobileprovision 
+1

嘿..谢谢你的答案.. :) 好吧..所以我用了你的步骤和嗖...我需要的是实现(尽管搞清楚什么'sed'命令执行后) 。 但是,有一个catch ..! ** sed **正在用''“'替换''iPhone Developer'',这意味着我需要将该值设置为我知道的东西(在这里,”iPhone Developer“)。与Provisioning Profile类似的情况。 我能不能用我所需要的那些字段覆盖那些字段中写的东西? –

+0

我想你误会了我。该项目附带的密码设置和供应配置文件在我的MacBook上不可用,因此我无法弄清楚要在“sed”命令中放置什么。以上命令仅在“代码签名和配置文件”设置为自动时起作用。在所有其他情况下,例如Profile这样的'15adc2c7-a08b-4541-a549-ea09f7deeeb4',每当我得到一个项目时,它都有一些这样的配置文件,我需要用本地配置文件覆盖。 –

+0

如果您本地没有Codeinging Cert和Provisioning Profile?你如何建立这个项目?你得到它们并没有什么不同。您需要使用'sed'设置的值始终与特定证书和配置文件相同 – Quanlong