mirror of
https://github.com/status-im/react-native.git
synced 2025-01-10 09:35:48 +00:00
7d1981ef82
Summary: After execution of `scripts/ios-install-third-party.sh` a symlink is created : `<YOUR-APP-PATH>/node_modules/react-native/third-party/glog-0.3.4/test-driver` that is pointing to `test-driver -> /usr/share/automake-1.14/test-driver` This can be executed indirectly by `react-native run-ios`. This breaks the bundle process if the system don't contain a given file under the link and having this strict dependency on the system setup is not a good practice. Once the `test-driver` symlink is created android app release is failing, for : `./gradlew assembleRelease` the `:app:bundleReleaseJsAndAssets` returns : ``` FAILURE: Build failed with an exception. * What went wrong: Could not list contents of '<YOUR-APP-PATH>/node_modules/react-native/third-party/glog-0.3.4/test-driver'. Couldn't follow symbolic link. ``` Related issues: https://github.com/facebook/react-native/issues/14417 https://github.com/facebook/react-native/issues/14464 https://github.com/facebook/react-native/issues/14548 1. Create new project with `react-native init <YOUR-APP>` 2. cd `<YOUR-APP>/` 3. Run app on iOS `react-native run-ios` so `scripts/ios-install-third-party.sh` is executed. 4. cd `android/` 5. Run android app release `./gradlew assembleRelease` (it will work properly after this fix and fail if the `test-driver` symlink exists) IMHO we should resolve the issue with this quick fix and apply the proper fix later after the new version of `google/glog` will be released. The proper cleanup of files generated by autotools was already applied : https://github.com/google/glog/pull/188 Please let me know if I should provide more details : javache, mhorowitz, hramos Closes https://github.com/facebook/react-native/pull/14638 Differential Revision: D5292362 Pulled By: javache fbshipit-source-id: 81ff2273420ea078d624a76e781a5b67b96e6a4e
42 lines
933 B
Bash
Executable File
42 lines
933 B
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
PLATFORM_NAME="${PLATFORM_NAME:-iphoneos}"
|
|
CURRENT_ARCH="${CURRENT_ARCH:-armv7}"
|
|
|
|
export CC="$(xcrun -find -sdk $PLATFORM_NAME cc) -arch $CURRENT_ARCH -isysroot $(xcrun -sdk $PLATFORM_NAME --show-sdk-path)"
|
|
export CXX="$CC"
|
|
|
|
# Remove automake symlink if it exists
|
|
if [ -h "test-driver" ]; then
|
|
rm test-driver
|
|
fi
|
|
|
|
./configure --host arm-apple-darwin
|
|
|
|
# Fix build for tvOS
|
|
cat << EOF >> src/config.h
|
|
|
|
/* Add in so we have Apple Target Conditionals */
|
|
#ifdef __APPLE__
|
|
#include <TargetConditionals.h>
|
|
#include <Availability.h>
|
|
#endif
|
|
|
|
/* Special configuration for AppleTVOS */
|
|
#if TARGET_OS_TV
|
|
#undef HAVE_SYSCALL_H
|
|
#undef HAVE_SYS_SYSCALL_H
|
|
#undef OS_MACOSX
|
|
#endif
|
|
|
|
/* Special configuration for ucontext */
|
|
#undef HAVE_UCONTEXT_H
|
|
#undef PC_FROM_UCONTEXT
|
|
#if defined(__x86_64__)
|
|
#define PC_FROM_UCONTEXT uc_mcontext->__ss.__rip
|
|
#elif defined(__i386__)
|
|
#define PC_FROM_UCONTEXT uc_mcontext->__ss.__eip
|
|
#endif
|
|
EOF
|