2012-05-31 38 views
8

上下文: 我的項目包含兩個後端服務器,一個用於開發,一個用於生產。 每次我爲QA構建時,我都需要在TestFlight上放置構建的服務器(這是可以的)。但是在我的Xcode存檔列表中,如果它是prod或dev服務器,我可以輕鬆獲得超過100個存檔,而我必須手動進行存檔。Xcode:生成自動備份存檔

這裏的主要問題是,何時QA需要回滾到特定服務器上的特定版本。

問題: 是否有一種自動方式在建立時對檔案發表評論? 我想放像:

[版本號] - [開發|在線]服務器

感謝

+1

使用持續集成系統,例如[Jenkins](http://jenkins-ci.org/)。 – Till

+0

正如@Till所說,我最終使用了多種方案的Jenkins。 –

回答

1

我們用下面的命令來評論直接添加到檔案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` 
1

我試過諾曼的想法,但無法獲得語法工作。最後,我用:

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" 
+0

這可以工作,但是如果您將Archive方案設置爲自動打開Organizer,則只有在重新啓動Xcode時,新評論纔會反映在Organizer的UI中。或者,您可以關閉設置以自動打開管理器。然後,當您手動打開管理器時,UI將反映您插入的評論。 – jonsibley

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定域不是基於搜索(不必要的開銷)。

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更新文件夾的內容。你會看到檔案消失,然後再次出現。

希望它有幫助。