diff --git a/.circleci/Dockerfiles/scripts/run-android-docker-instrumentation-tests.sh b/.circleci/Dockerfiles/scripts/run-android-docker-instrumentation-tests.sh
old mode 100644
new mode 100755
diff --git a/.circleci/Dockerfiles/scripts/run-android-docker-unit-tests.sh b/.circleci/Dockerfiles/scripts/run-android-docker-unit-tests.sh
old mode 100644
new mode 100755
diff --git a/Folly/build/fbcode_builder/docker_build_with_ccache.sh b/Folly/build/fbcode_builder/docker_build_with_ccache.sh
old mode 100644
new mode 100755
diff --git a/Folly/build/fbcode_builder/travis_docker_build.sh b/Folly/build/fbcode_builder/travis_docker_build.sh
old mode 100644
new mode 100755
diff --git a/Folly/folly/build/bootstrap-osx-homebrew.sh b/Folly/folly/build/bootstrap-osx-homebrew.sh
old mode 100644
new mode 100755
diff --git a/Folly/folly/build/build_debs_ubuntu_14.04.sh b/Folly/folly/build/build_debs_ubuntu_14.04.sh
old mode 100644
new mode 100755
diff --git a/Folly/folly/build/deps_ubuntu_12.04.sh b/Folly/folly/build/deps_ubuntu_12.04.sh
old mode 100644
new mode 100755
diff --git a/Folly/folly/experimental/symbolizer/test/gnu_debuglink_test.sh b/Folly/folly/experimental/symbolizer/test/gnu_debuglink_test.sh
old mode 100644
new mode 100755
diff --git a/glog/ltmain.sh b/glog/ltmain.sh
old mode 100644
new mode 100755
diff --git a/glog/packages/deb.sh b/glog/packages/deb.sh
old mode 100644
new mode 100755
diff --git a/glog/packages/rpm.sh b/glog/packages/rpm.sh
old mode 100644
new mode 100755
diff --git a/glog/src/demangle_unittest.sh b/glog/src/demangle_unittest.sh
old mode 100644
new mode 100755
diff --git a/glog/src/logging_striplog_test.sh b/glog/src/logging_striplog_test.sh
old mode 100644
new mode 100755
diff --git a/glog/src/signalhandler_unittest.sh b/glog/src/signalhandler_unittest.sh
old mode 100644
new mode 100755
diff --git a/glog/src/windows/preprocess.sh b/glog/src/windows/preprocess.sh
old mode 100644
new mode 100755
diff --git a/package.json b/package.json
index adedcec7c9cc80..fb75d28f86f684 100644
--- a/package.json
+++ b/package.json
@@ -79,7 +79,8 @@
     "test-android-unit": "yarn run docker-build-android && yarn run test-android-run-unit",
     "test-android-e2e": "yarn run docker-build-android && yarn run test-android-run-e2e",
     "build-ios-e2e": "detox build -c ios.sim.release",
-    "test-ios-e2e": "detox test -c ios.sim.release RNTester/e2e"
+    "test-ios-e2e": "detox test -c ios.sim.release RNTester/e2e",
+    "postinstall": "node scripts/postInstall.js"
   },
   "peerDependencies": {
     "react": "16.8.6"
diff --git a/scripts/clone-sdxplatform.sh b/scripts/clone-sdxplatform.sh
old mode 100644
new mode 100755
diff --git a/scripts/fixmacscripts.sh b/scripts/fixmacscripts.sh
new file mode 100755
index 00000000000000..419d957530bacd
--- /dev/null
+++ b/scripts/fixmacscripts.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+# npm publish is currently performed on Windows build agents and loses the executable bit on files.
+# restore the executable bit during npm postinstall
+
+echo "Fixing the executable bit on macOS scripts"
+
+find . -iname \*.sh -exec chmod +x {} \;
+find . -iname \*.command -exec chmod +x {} \;
diff --git a/scripts/generate-rncore.sh b/scripts/generate-rncore.sh
old mode 100644
new mode 100755
diff --git a/scripts/logging.sh b/scripts/logging.sh
old mode 100644
new mode 100755
diff --git a/scripts/node-binary.sh b/scripts/node-binary.sh
old mode 100644
new mode 100755
diff --git a/scripts/postInstall.js b/scripts/postInstall.js
new file mode 100644
index 00000000000000..b039717770dd24
--- /dev/null
+++ b/scripts/postInstall.js
@@ -0,0 +1,6 @@
+const child_process = require('child_process');
+
+const isMacOS = process.platform === 'darwin';
+if (isMacOS) {
+  child_process.execSync('source scripts/fixmacscripts.sh', {stdio: 'inherit'});
+}
diff --git a/scripts/vsto-test-ci.sh b/scripts/vsto-test-ci.sh
old mode 100644
new mode 100755
diff --git a/scripts/vsto-test-cleanup.sh b/scripts/vsto-test-cleanup.sh
old mode 100644
new mode 100755
diff --git a/scripts/vsto-test-setup.sh b/scripts/vsto-test-setup.sh
old mode 100644
new mode 100755