8

Context : 私のプロジェクトには、開発用と本番用の 2 つのバックエンド サーバーが含まれています。QA 用のビルドを作成するたびに、そのビルドが実行されているサーバーを TestFlight に配置する必要があります (これで問題ありません)。しかし、Xcode のアーカイブ リストでは、100 を超えるアーカイブを簡単に取得でき、それが製品サーバーまたは開発サーバーである場合、手動で配置する必要があります。

ここでの主な問題は、QA が特定のサーバー上の特定のバージョンにロールバックする必要がある場合です。

質問: ビルド時にアーカイブに自動的にコメントを付ける方法はありますか? 私は次のようなものを入れたい:

[ビルド番号] - [Dev|Live] サーバー

ありがとう

4

4 に答える 4

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

こんにちは、他の回答に基づいて、私はそのようなことをしました:

  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

グーグルの後にこの古い投稿を見つけ、オーガナイザーの更新の問題に非常に悩まされ、非常に醜い考えを持っていました. 実際、オーガナイザーは 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 に答える