程序 Xcode 7 和 Receigen 中出现意外的“@”

Unexpected '@' in program Xcode 7 and Receigen

我昨晚刚更新到 Xcode 7.0,它似乎破坏了 Receigen 的生成代码。

CFStringRef ReceiptValidation_str1 = @obfuscateCF@("");

程序中出现意外的“@”

Receigen 自 2014 年以来就没有更新过,所以这几乎可以肯定是一个 Xcode 7 问题。

我联系了 Receigen 的开发人员,但还没有收到回复(才几个小时)。任何帮助将不胜感激。

参见 "Get Bundle ID from build settings instead of info.plist"。我认为这是同一个问题,我发布了一个解决方法。

在您的 Xcode 目标中,选项卡 "Build Phases",编辑您的 Receigen shell 脚本。替换看起来像这样的声明 EXPANDED_BUNDLE_ID

EXPANDED_BUNDLE_ID=`eval \"echo $BUNDLE_ID\"

只需通过变量PRODUCT_BUNDLE_IDENTIFIER(在Xcode7中介绍)

EXPANDED_BUNDLE_ID=$PRODUCT_BUNDLE_IDENTIFIER

(您也可以删除旧的、现在不需要的 BUNDLE_ID 声明)

您的脚本应如下所示:

# Receigen binary
RECEIGEN="/Applications/Receigen.app/Contents/MacOS/Receigen"

# Extract Info.plist information
INPUT="$INFOPLIST_FILE"
BUNDLE_VERSION=`/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "$INPUT"`

# Expand information if needed
EXPANDED_BUNDLE_ID=$PRODUCT_BUNDLE_IDENTIFIER
EXPANDED_BUNDLE_VERSION=`eval "echo $BUNDLE_VERSION"`

# ...etc...

注:感谢@mcgyver42 的回答和

找到了这个