出乎意料的' @'在程序Xcode 7和Receigen中

时间:2015-09-18 15:44:48

标签: xcode xcode7 receigen

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

CFStringRef ReceiptValidation_str1 = @obfuscateCF@("");

意外' @'在程序

自2014年以来,Receigen尚未更新,因此这几乎肯定是Xcode 7的问题。

我联系了Receigen的开发者,还没有听到回来(它只有几个小时)。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:5)

在Xcode Target,tab" 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的答案和this question

答案 1 :(得分:0)

请参阅“从构建设置中获取Bundle ID而不是info.plist”。我认为这是同一个问题,我发布了一个解决方法。

Xcode Script - Get Bundle ID from build settings instead of info.plist