7

编译项目时,当系统用户名匹配时,此脚本应将 Xcode 项目的 Build Version 加一。请记住,这些只是 Target->Build Phases->Run Script in Xcode 中脚本(不是 Applescript、Python 或 Perl)中的 Unix 命令。

我已经在终端中完成了“echo $USER”。这可以很好地打印登录用户的用户名,它与我在第二个代码块的条件语句中放置的字符串相同。

第一个代码块有效。第二个,它添加了条件语句,没有。

#!/bin/bash
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"


#!/bin/bash
username=$USER
if [ username == "erik" ]; then
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"
fi

语法问题:
解析 $USER(区分大小写)
if 语句中右括号后的分号
Then 语句与 if 语句在同一行

4

1 回答 1

4

您可以在 Log Navigator 中看到脚本日志,使用您的脚本我遇到了以下问题:

在此处输入图像描述

我相信默认比较是区分大小写的,为了使其不敏感,您可以在比较之前将用户名更改为大写/小写:

if [ `echo $USER | tr [:lower:] [:upper:]` = "USERNAME" ]; then
echo "Got user check"
fi

如您所见,我将 $USER 移至条件以避免额外的 var 使用和脚本失败。

block 处的分号if-then是正常的,请查看手册页。then如果这样更方便您阅读,单词可能会移至新行。

于 2012-10-17T07:45:22.177 回答