Apple Receipt CheckにはReceigenを使用しています。 私は私のプロジェクトのために適切なファイルを生成し、私のビルドプロセスでスクリプトを統合した:Xcode Script - info.plistの代わりにビルド設定からバンドルIDを取得
# Receigen binary
RECEIGEN="/Applications/Receigen.app/Contents/MacOS/Receigen"
# Extract Info.plist information
INPUT="$INFOPLIST_FILE"
BUNDLE_ID=`/usr/libexec/PlistBuddy -c "Print CFBundleIdentifier" "$INPUT"`
BUNDLE_VERSION=`/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "$INPUT"`
# Expand information if needed
EXPANDED_BUNDLE_ID=`eval "echo $BUNDLE_ID"`
EXPANDED_BUNDLE_VERSION=`eval "echo $BUNDLE_VERSION"`
# Make sure the destination directory exists
mkdir -p "$DERIVED_FILES_DIR"
HEADER="$DERIVED_FILES_DIR/receiptCheck.h"
# Check if the generation is needed
if [ -e "$HEADER" ]; then
SKIP=`grep -q "$EXPANDED_BUNDLE_ID" "$HEADER" && grep -q "$EXPANDED_BUNDLE_VERSION" "$HEADER" && echo "YES"`
fi
# Generate the header file if needed
if [ "x$SKIP" = "x" ]; then
"$RECEIGEN" --identifier "$EXPANDED_BUNDLE_ID" --version "$EXPANDED_BUNDLE_VERSION" --failure 'exitwith173' --success 'runapplication' --os osx > "$HEADER"
fi
Xcodeの7の問題は、この行を次のとおりです。
BUNDLE_ID=`/usr/libexec/PlistBuddy -c "Print CFBundleIdentifier" "$INPUT"`
BundleIDので新しいXcodeの上Info.plistの代わりにビルド設定になっていますビルド設定のキーは$(PRODUCT_BUNDLE_IDENTIFIER)
です。スクリプトのビルド設定からバンドルIDを抽出する方法はありますか?
は私もこれを見ているエコー - あなたが解決策を見つけましたか? EXPANDED_BUNDLE_ID = 'eval" echo $ BUNDLE_ID "が失敗していると思います。 – Scotty
まだReceigenのサポートからの回答がありません。しかし、私はそれがPlistbuddyツールとinfo.plistからBundleIDを抽出している他の行を信じています。ビルド設定からBundleIDを抽出する方法が必要です。あなたが方法を見つけたら教えてください。 –