Repository navigation
Syntax Error while versioning iOS #52
Description
Activity
Looks similar to: #38 (comment) and: #38 (comment)
@aruldd Is it possible you have manually set up some paths in your Xcode project file?
Found the issue, the problem comes from React Native made in Windows that will have backslashed paths inside pbxproj. It's not a problem from your package at all @stovmascript .
Check strings that are like this:"\"$(SRCROOT)/$(TARGET_NAME)\"", or "$(SRCROOT)\..\node_modules\react-xxxx",and change them to
"$(SRCROOT)/$(TARGET_NAME)", accordingly "$(SRCROOT)/../node_modules/react-xxxx",Reacted by MrHubble, Dirk Cziesla and gghnisan@VinceBT Awesome, I'll capture this message and print out something more meaningful.
@VinceBT I also suspect that it's more of an issue with
react-native linkbecause a newly initialized project doesn't have any$(SRCROOT)strings yet. Which would explain why everything worked for me in: #38 (comment).- added a commit that references this issue
on May 31, 2018 It's just because Windows uses
\instead of/for paths and when paths are written to pbxproj when usingreact-native link, they will contain backslashes, it still works when your compile on a Mac, but it will crash with the pbxproj-dom parser package that you use. You could maybe add a "Common issues" page on your README for future users.Reacted by Martin Šťovíček@aruldd Tell us if it worked for you so @stovmascript can close
- added 2 commits that reference this issue
on Jun 4, 2018 - added a commit that references this issue
on Jun 4, 2018 I'm getting this issue when running on Mac OSX, is that expected? I'm on 3.2.0
Yeah there seems to be some paths in pbxproj that cocoapods installs that has the windows syntax as well. Had to go in and edit them manually, now it works. This does happen on macs as well apparently, might wanna update docs.
Hmm, this seems like a bug with cocoapods, or even some specific packages. I'm wondering if we could find the offending upstream code and report it...
1 remaining item
If it helps, offending line was:
shellScript = "export SENTRY_PROPERTIES=sentry.properties\nexport NODE_BINARY=node\n../node_modules/@sentry/cli/bin/sentry-cli react-native xcode \\\n../node_modules/react-native/scripts/react-native-xcode.sh\n";Had to remove the
\\from\\\nReacted by Tyler Whitman, bhupeshKumar987, Evan Miller, Mason Wolters, WillyRamirez, Samuel Beaulieu, trevorarmstrong-ai, Topi Salonen, Unless.nz, Mark Kravchuk and 1 moreI have a more "funny" case. My error was "SyntaxError: Expected """, "\'", "\"", "\n", or [^\\"] but "\" found.", so I searched for \ in the project.pbxproj and the only place where it was present was
shellScript = "# Name of the resource we're selectively copying\nFILENAME=GoogleService-Info.plist\n\nBUILD_TYPE=$(echo ${CONFIGURATION} | sed -E \"s/\\s*(Release|Debug) \\s*//\")\nORIGINAL_PATH=${PROJECT_DIR}/${TARGET_NAME}/Firebase/${BUILD_TYPE}/${FILENAME}\nDESTINATION_DIR=${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app\n\n# Make sure the prod version of GoogleService-Info.plist exists\necho \"Looking for ${ORIGINAL_PATH}\"\nif [ ! -f $ORIGINAL_PATH ]\nthen\n echo \"No ${FILENAME} found for build type ${BUILD_TYPE}. Please ensure it's in the proper directory.\"\n exit 1\nfi\n\necho \"Will copy ${ORIGINAL_PATH} to final destination: ${DESTINATION_DIR}\"\n\ncp \"${ORIGINAL_PATH}\" \"${DESTINATION_DIR}\"\n";So basically it failed parsing the shell script, which is kind of weird. I removed this script and the error was gone, so it's this indeed.
I will change my script to fix this, but it shouldn't have happened in the first place.If it helps, offending line was:
shellScript = "export SENTRY_PROPERTIES=sentry.properties\nexport NODE_BINARY=node\n../node_modules/@sentry/cli/bin/sentry-cli react-native xcode \\\n../node_modules/react-native/scripts/react-native-xcode.sh\n";Had to remove the
\\from\\\nyour command line appers like this?
shellScript = "export SENTRY_PROPERTIES=sentry.properties\nexport NODE_BINARY=node\n../node_modules/@sentry/cli/bin/sentry-cli react-native xcode \n../node_modules/react-native/scripts/react-native-xcode.sh\n";Reacted by bhupeshKumar987, WillyRamirez and Samuel BeaulieuFacing the same problem after adding a custom build script, have been using the library without any issues for a year, but stuck now. Lots of backslashes in the script to escape quotes and spaces, so not sure how to fix it.
EDIT: I've created an issue in
pbxproj-domto see if they have any ideas on a fixReacted by Bjarke FelboReacted by Gaana Srinivas and Bjarke FelboJust to clarify though -- I'm facing this issue on macOS. Here's the exact error:
[RNV] SyntaxError: Expected ",", "/*", or [ \t\n\r] but "B" found.EDIT: Managed to resolve the issue by checking through my build settings and removing some
\characters as suggestedIn our case it was newest react with @sentry/react-native having offending lines in shell script (copied from official Sentry documentation about workaround for RN >0.69)
Here is the working shell script line in case anyone needs it:/bin/sh -c "$WITH_ENVIRONMENT '$SENTRY_CLI_PATH react-native xcode $REACT_NATIVE_XCODE'"Reacted by Amir Shekari, Aurintas, Sam Dornan, Eric Jain, Calin Tamas, michael-lavacca-rw, 高昇, Manh Vu, ayush gupta and Donato AguirreHere is the final version of working shellScript in Sentry v5 and RN v0.71
shellScript = "set -e\nexport SENTRY_PROPERTIES=sentry.properties\nexport EXTRA_PACKAGER_ARGS=\"--sourcemap-output $DERIVED_FILE_DIR/main.jsbundle.map\"\nWITH_ENVIRONMENT=\"../node_modules/react-native/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"../node_modules/react-native/scripts/react-native-xcode.sh\"\nSENTRY_CLI_PATH=\"../node_modules/@sentry/cli/bin/sentry-cli\"\n/bin/sh -c \"$WITH_ENVIRONMENT $SENTRY_CLI_PATH react-native xcode\n$REACT_NATIVE_XCODE\"\n/bin/sh ../node_modules/@sentry/react-native/scripts/collect-modules.sh\n";
I'm experiencing this issue with Sentry.
I suspect this line is causing the problem, but I don't know how to fix it:
shellScript = "export SENTRY_PROPERTIES=sentry.properties\nexport EXTRA_PACKAGER_ARGS=\"--sourcemap-output $DERIVED_FILE_DIR/main.jsbundle.map\"\nset -e\n\nWITH_ENVIRONMENT=\"../node_modules/react-native/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"../node_modules/react-native/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT \\\"../node_modules/@sentry/cli/bin/sentry-cli react-native xcode $REACT_NATIVE_XCODE\\\"\"\n\n/bin/sh ../node_modules/@sentry/react-native/scripts/collect-modules.sh\n";Any way to solve this?
Reacted by Nima Zareii have the same error on MacOs now. any one fixed this please ?
Reacted by Kevin Iuretigi have the same error on MacOs now. any one fixed this please ?
were you able to fix it?
Reacted by Kevin IuretigSyntaxError: Expected """, "\'", "\"", "\n", or [^\\"] but "\" found.
similar to above it was Sentry shell script. I am on a mac.
shellScript = "export SENTRY_PROPERTIES=sentry.properties\nexport ....."in several places I had to replace
$WITH_ENVIRONMENT \\\with$WITH_ENVIRONMENT \and$REACT_NATIVE_XCODE\\\with$REACT_NATIVE_XCODE\Reacted by Lukas Hirt, sergeylaptev, Mathias-Fernandez-Spherag and Alexey ChapskiFaced the same issue with Mac. Resolved with changing
shellScript = "# This script configures Expo modules and generates the modules provider file.\nbash -l -c \"./Pods/Target\\ Support\\ Files/Pods-tracemoe_react_native/expo-configure-project.sh\"\n";to
shellScript = "# This script configures Expo modules and generates the modules provider file.\nbash -l -c \"./Pods/Target' 'Support' 'Files/Pods-tracemoe_react_native/expo-configure-project.sh\"\n";The key:
\\to' '
Root reason - the file path with space in it.Reacted by Jeff Gu Kang, Sophie Tr, Moisés García, Anshul, Jay Tong and Donato AguirreReacted by mieszko4 and Donato AguirreFaced the same issue with Mac. Resolved with changing
shellScript = "# This script configures Expo modules and generates the modules provider file.\nbash -l -c \"./Pods/Target\\ Support\\ Files/Pods-tracemoe_react_native/expo-configure-project.sh\"\n";to
shellScript = "# This script configures Expo modules and generates the modules provider file.\nbash -l -c \"./Pods/Target' 'Support' 'Files/Pods-tracemoe_react_native/expo-configure-project.sh\"\n";The key:
\\to' 'Root reason - the file path with space in it.This works form me, thanks!

After setting up post version hook, running the command
yarn version --minorproduces this error.Platform: Windows 10