我昨晚刚刚更新到 Xcode 7.0,它似乎破坏了Receigen生成的代码。
CFStringRef ReceiptValidation_str1 = @obfuscateCF@("");
程序中出现意外的“@”
Receigen 自 2014 年以来一直没有更新,所以这几乎可以肯定是 Xcode 7 的问题。
我联系了 Receigen 的开发人员,但还没有收到回复(只有几个小时)。任何帮助,将不胜感激。
在您的 Xcode Target 中,选择“Build Phases”选项卡,编辑您的 Receigen shell 脚本。替换如下所示的声明EXPANDED_BUNDLE_ID
:
EXPANDED_BUNDLE_ID=`eval \"echo $BUNDLE_ID\"
简单地通过变量PRODUCT_BUNDLE_IDENTIFIER
(在 Xcode 7 中引入)
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 的回答和这个问题
请参阅“从构建设置而不是 info.plist 获取 Bundle ID”。我认为这是同一个问题,我发布了一个解决方法。