2

次のような Post-actions の下の XCode スキームで実行されている単純なスクリプトがあります。

cp -fr ${BUILT_PRODUCTS_DIR}/MyApp.app /tmp/MyApp.app

奇妙なことに、このコマンド ラインからコマンド ライン ビルドを実行すると、次のようになります。

/usr/bin/xcodebuild -workspace MyWorkspace -scheme MyScheme -configuration Release clean build

${BUILT_PRODUCTS_DIR} 変数がリリース ディレクトリではなくデバッグ ディレクトリに変換され、次のエラーが発生します。

cp: /Users/me/Library/Developer/Xcode/DerivedData/MyProject-afslklkwadvqqggjrlcuycyeyxfv/Build/Products/Debug/MyApp.app: No such file or directory

さらに奇妙なのは、環境変数のリストで正しいリリース場所を指していることです。

setenv BUILT_PRODUCTS_DIR /Users/me/Library/Developer/Xcode/DerivedData/MyProject-afslklkwadvqqggjrlcuycyeyxfv/Build/Products/Release

これは XCode のバグのようです。私が考えられる唯一の回避策は、'Release' ディレクトリをハードコーディングすることですが、これは非常に悪い考えです。

誰が何が起こっているのか知っていますか?

アップデート:

回避策を見つけました。スキームの実行ビルド構成を「リリース」に変更すると、環境変数がリリース場所を指すように修正されます。

ただし、なぜ BUILT_PRODUCTS_DIR を実行構成に関連付ける必要があるのか​​ わからないため、これを修正する他の方法を受け入れます。

4

1 に答える 1

1

私はまったく同じ問題を抱えていました。私は完全にクリーンアップし、DerivedDataフォルダーを削除し、Xcodeを再起動しました-そしてそれは消えました...二度と戻らない。


編集:別のアイデア

デバッグスキームを削除(または名前変更)するのはどうですか?何らかの理由でデバッグを探している場合、それを見つけることができません。問題を解決できない可能性がありますが、原因を指摘することはできます。

于 2012-05-30T14:58:18.867 に答える