3

I just updated to Xcode 7.0 last night and it seems to have broken Receigen's generated code.

CFStringRef ReceiptValidation_str1 = @obfuscateCF@("");

Unexpected '@' in program

Receigen hasn't been updated since 2014, so this is almost certainly an Xcode 7 issue.

I reached out to the developer of Receigen and haven't heard back yet (it has only been a few hours). Any help would be appreciated.

Andrew
  • 2,690
  • 23
  • 27

2 Answers2

5

In your Xcode Target, tab "Build Phases", edit your Receigen shell script. Replace the declaration EXPANDED_BUNDLE_ID that looked like:

EXPANDED_BUNDLE_ID=`eval \"echo $BUNDLE_ID\"

simply by the variable PRODUCT_BUNDLE_IDENTIFIER (introduced in Xcode 7)

EXPANDED_BUNDLE_ID=$PRODUCT_BUNDLE_IDENTIFIER

(you can also delete the old, now needless, declaration of BUNDLE_ID)

Your script should look like this:

# 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...

Note: found this thanks to @mcgyver42's answer and this question

Community
  • 1
  • 1
Micha Mazaheri
  • 3,481
  • 1
  • 21
  • 26
0

See "Get Bundle ID from build settings instead of info.plist". I think it's the same issue, and I posted a work-around.

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

Community
  • 1
  • 1
mcgyver42
  • 56
  • 6
  • I fixed it by hardcoding the Bundle ID into the info.plist file. After updating to Xcode 7 it replaced the info.plist value with a dynamic placeholder. – Andrew Sep 22 '15 at 15:59
  • I am having the exact problem. My build is failing with on the line: CFStringRef InAppValidation_str1 = @obfuscateCF@(""); But the fix here is not working for me. Anyone have any more tips? – Ty Jacobs Oct 09 '15 at 00:35