上下文: 我的項目包含兩個後端服務器,一個用於開發,一個用於生產。 每次我爲QA構建時,我都需要在TestFlight上放置構建的服務器(這是可以的)。但是在我的Xcode存檔列表中,如果它是prod或dev服務器,我可以輕鬆獲得超過100個存檔,而我必須手動進行存檔。Xcode:生成自動備份存檔
這裏的主要問題是,何時QA需要回滾到特定服務器上的特定版本。
問題: 是否有一種自動方式在建立時對檔案發表評論? 我想放像:
[版本號] - [開發|在線]服務器
感謝
上下文: 我的項目包含兩個後端服務器,一個用於開發,一個用於生產。 每次我爲QA構建時,我都需要在TestFlight上放置構建的服務器(這是可以的)。但是在我的Xcode存檔列表中,如果它是prod或dev服務器,我可以輕鬆獲得超過100個存檔,而我必須手動進行存檔。Xcode:生成自動備份存檔
這裏的主要問題是,何時QA需要回滾到特定服務器上的特定版本。
問題: 是否有一種自動方式在建立時對檔案發表評論? 我想放像:
[版本號] - [開發|在線]服務器
感謝
我們用下面的命令來評論直接添加到檔案build(xcodebuild)之後:
/usr/libexec/PlistBuddy -c "Add :Comment string \"your comment goes here\"" "$ARCHIVE_DIR/Info.plist"
其中$ ARCHIVE_DIR是有問題的存檔的目錄, g .:
ARCHIVE_DIR=`ls -dt1 $HOME/Library/Developer/Xcode/Archives/*/*.xcarchive |head -n1`
我試過諾曼的想法,但無法獲得語法工作。最後,我用:
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"
這可以工作,但是如果您將Archive方案設置爲自動打開Organizer,則只有在重新啓動Xcode時,新評論纔會反映在Organizer的UI中。或者,您可以關閉設置以自動打開管理器。然後,當您手動打開管理器時,UI將反映您插入的評論。 – jonsibley
嗨基於其他答案我不喜歡的東西是:
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定域不是基於搜索(不必要的開銷)。
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更新文件夾的內容。你會看到檔案消失,然後再次出現。
希望它有幫助。
使用持續集成系統,例如[Jenkins](http://jenkins-ci.org/)。 – Till
正如@Till所說,我最終使用了多種方案的Jenkins。 –