Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Quote --sourcemap-output argument during ios build (#31587)
Summary: Scheme names may contain whitespace characters is used as path of the path for various files during build time. This means any path that includes the scheme name in it needs to be surrounded by quotes. You can see the generated command below for a project with a scheme called `Some Scheme`: node ./node_modules/react-native/cli.js bundle \ --entry-file index.js \ --platform ios \ --dev false \ --reset-cache \ --bundle-output './ios/derivedDataBuild/Build/Intermediates.noindex/ArchiveIntermediates/Some Scheme/BuildProductsPath/Release-iphoneos/Some Scheme.app/main.jsbundle' \ --assets-dest './ios/derivedDataBuild/Build/Intermediates.noindex/ArchiveIntermediates/Some Scheme/BuildProductsPath/Release-iphoneos/Some Scheme.app' \ --sourcemap-output ./ios/derivedDataBuild/Build/Intermediates.noindex/ArchiveIntermediates/Some Scheme/BuildProductsPath/Release-iphoneos/Some Scheme.app/main.jsbundle.map `--bundle-output` and `--assets-dest` are properly quoted, but `--sourcemap-output` is not. This changes `$EXTRA_ARGS` to an array of strings so that we can propertly quote `$PACKAGER_SOURCEMAP_FILE` when passing it to the `--sourcemap-output` argument. When running the bundle command, this array is unwrapped and all its elements passed as individual arguments. It also applies the same unwrapping to `$EXTRA_PACKAGER_ARGS` so that users can also pass an array of options when arguments containing spaces are needed. It's important to note that these changes ARE backwards compatible: if `$EXTRA_PACKAGER_ARGS` is defined as a simple string, instead of an array of strings, the command won't break, as it will still expand correctly. ## Changelog <!-- Help reviewers and the release process by writing your own changelog entry. For an example, see: https://github.com/facebook/react-native/wiki/Changelog --> [iOS] [Fixed] - Source map path for schemes containing whitespaces Pull Request resolved: #31587 Test Plan: With the new change, the generated command becomes: node ./node_modules/react-native/cli.js bundle \ --entry-file index.js \ --platform ios \ --dev false \ --reset-cache \ --bundle-output './ios/derivedDataBuild/Build/Intermediates.noindex/ArchiveIntermediates/Some Scheme/BuildProductsPath/Release-iphoneos/Some Scheme.app/main.jsbundle' \ --assets-dest './ios/derivedDataBuild/Build/Intermediates.noindex/ArchiveIntermediates/Some Scheme/BuildProductsPath/Release-iphoneos/Some Scheme.app' \ --sourcemap-output './ios/derivedDataBuild/Build/Intermediates.noindex/ArchiveIntermediates/Some Scheme/BuildProductsPath/Release-iphoneos/Some Scheme.app/main.jsbundle.map' Reviewed By: yungsters Differential Revision: D30911631 Pulled By: charlesbdudley fbshipit-source-id: 0c2d98746b365285fe693bcc867a24d3fc649f50
- Loading branch information