我昨晚刚刚更新到Xcode 7.0,似乎已经破解了Receigen生成的代码。
CFStringRef ReceiptValidation_str1 = @obfuscateCF@("");
意外' @'在程序
自2014年以来,Receigen尚未更新,因此这几乎肯定是Xcode 7的问题。
我联系了Receigen的开发者,还没有听到回来(它只有几个小时)。任何帮助将不胜感激。
答案 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