2016-03-28 78 views
0

我有一个项目使用可可豆荚通过shell脚本为CocoaPods项目设置PRODUCT_NAME

我不能设置PRODUCT_NAMExcodebuild联编它总是导致编译时错误。

/usr/bin/xcodebuild -scheme $Scheme -workspace $WorkSpaceOfProject -configuration Debug clean build CONFIGURATION_BUILD_DIR=$PathToApp "CODE_SIGN_IDENTITY=$CodeSigningIdentity" "PRODUCT_BUNDLE_IDENTIFIER=$BundleIdentifier" "PROVISIONING_PROFILE=$ProvisioningProfileIdentity" "PRODUCT_NAME =$Appname"

未知:0:错误:底层的Objective-C模块 'APPNAME' 未找到

如果我从上面的脚本删除PRODUCT_NAME,则编译成功,但不幸的是我不得不通过脚本设置应用程序名称

我试图设置-xcconfig有人建议,它也没有解决。

所以如何改变应用程序的名称虽然剧本,但在同一时间编译可可豆荚应用

如果我使用的项目文件,而不是工作空间其执行没有任何problem.Here是脚本

编译

/usr/bin/xcodebuild -target $Target -project $ProjectFilePathAbsolute -configuration Debug clean build CONFIGURATION_BUILD_DIR=$PathToApp "CODE_SIGN_IDENTITY=$CodeSigningIdentity" "PRODUCT_NAME =$Appname" "PRODUCT_BUNDLE_IDENTIFIER=$BundleIdentifier" "PROVISIONING_PROFILE=$ProvisioningProfileIdentity"

但我必须编译工作区bcuz我正在使用cocoapods。

任何建议,非常欢迎。

+0

脚本如何设置变量* APPNAME *?请注意,詹金斯变量是区分大小写的。另外,在执行它之前尝试回显整个调用,以查看xcodebuild实际获得的内容。 –

+0

也尝试使用'$ {}'语法。 –

+0

否否..问题不在于分配变量的值....实际值分配...我更新了我的问题..Plz检查出来 –

回答

0

我用PlistBuddy解决了上述问题,并在xcodebuild联编命令我没有使用PRODUCT_NAME

下面是我用

/usr/libexec/PlistBuddy -c "Set :CFBundleName test" info.plist

/usr/libexec/PlistBuddy -c "Set :CFBundleDisplayName test" info.plist

/usr/bin/xcodebuild -scheme $Scheme -workspace $WorkSpaceOfProject -configuration Debug clean build CONFIGURATION_BUILD_DIR=$PathToApp "CODE_SIGN_IDENTITY=$CodeSigningIdentity" "PRODUCT_BUNDLE_IDENTIFIER=$BundleIdentifier" "PROVISIONING_PROFILE=$ProvisioningProfileIdentity" "PRODUCT_NAME =$Appname"