8

上下文: 我的项目包含两台后端服务器,一台用于开发,一台用于生产。每次我为 QA 构建构建时,我都需要将构建所在的服务器放在 TestFlight 上(这没关系)。但是在我的 Xcode 存档列表中,我很容易获得 100 多个存档,如果它是 prod 或 dev 服务器,我必须手动放置。

这里的主要问题是当 QA 需要回滚到特定服务器上的特定版本时。

问题: 有没有一种自动的方法可以在构建时对存档发表评论?我想放一些类似的东西:

[Build Number] - [Dev|Live] 服务器

谢谢

4

4 回答 4

1

我尝试了 Norman 的想法,但无法让语法起作用。最后我使用了:

ARCHIVE_DIR=$(ls -dt1 $HOME/Library/Developer/Xcode/Archives/*/*.xcarchive/Info.plist |head -n1)
/usr/libexec/PlistBuddy -c "Add :Comment string \"your comment goes here\"" "$ARCHIVE_DIR"
于 2013-07-11T09:06:42.263 回答
1

嗨,根据其他答案,我做了类似的事情:

  1. 单击项目图标选择“编辑方案...”
  2. 选择“存档/后操作”
  3. 按“+”“新建运行脚本动作”
  4. 将“提供构建设置从”更改为所需的项目
  5. 选择外壳
  6. 粘贴此脚本(假设使用 git):
cd "$PROJECT_FILE_PATH"
BRANCH=$(basename `git describe --all`)
COMMIT_HASH=$(git rev-parse HEAD | awk '{print substr($0,0,7)}')
ARCHIVE_PATH=$(dirname "$ARCHIVE_PRODUCTS_PATH")
ARCHIVE_NAME=${ARCHIVE_PATH}/Info.plist
DEST_DIR="<desired destination path>"

/usr/libexec/PlistBuddy -c "Add :Comment string \"${BRANCH}_${COMMIT_HASH}\""  "$ARCHIVE_NAME"

if [ -d "$DEST_DIR" ]; then
    PACKAGE_NAME=$DEST_DIR/${BRANCH}_${COMMIT_HASH}_${PRODUCT_NAME}

    xcodebuild -sdk $SDKROOT -archivePath "$ARCHIVE_PATH" -exportPath "$PACKAGE_NAME" -exportFormat ipa -exportArchive -exportProvisioningProfile "your provisioning profile name"
fi

其他解决方案的优点是存档是基于 XCode 变量而不是基于搜索的本地化(不必要的开销)。

于 2014-02-25T14:03:05.880 回答
1

我们使用以下命令在构建之后直接向存档添加注释(xcodebuild):

/usr/libexec/PlistBuddy -c "Add :Comment string \"your comment goes here\"" "$ARCHIVE_DIR/Info.plist"

$ARCHIVE_DIR 是相关档案的目录,例如:

ARCHIVE_DIR=`ls -dt1 $HOME/Library/Developer/Xcode/Archives/*/*.xcarchive |head -n1`
于 2013-03-21T11:01:16.800 回答
1

google了下找到这个老帖子,被主办方刷新问题搞的很恼火,刚刚有了一个很丑的想法。事实上,管理器会在 FS 更新时自动刷新。

所以我刚刚尝试在更新其 plist 后移动存档,然后将其移回其初始位置。像这样的东西:

ARCHIVE_PATH=$(dirname "$ARCHIVE_PRODUCTS_PATH")
ARCHIVE_PLIST=${ARCHIVE_PATH}/Info.plist

/usr/libexec/PlistBuddy -c "Add :Comment string \"your comment goes here\"" "$ARCHIVE_PLIST"

mv "$ARCHIVE_PATH" "$ARCHIVE_PATH"_TMP
sleep 1
mv "$ARCHIVE_PATH"_TMP "$ARCHIVE_PATH"

睡眠对于让 OS X 刷新文件夹内容是必要的。您将看到存档消失,然后再次出现。

希望能帮助到你。

于 2014-10-22T12:50:14.347 回答