As Xcode got a new major release (from Xcode 9 to Xcode 10) since my last time working on the project I figured I’d trigger a new build on Bitrise, then see which errors would came at me, and continue from thereon. What I didn’t know however is that it would eventually take me 3 days, 17 failed builds, lots of Google Fu, and some guesswork to get everything working again. Here’s an overview of the biggest hurdles that I had to take, along with their solutions. I hope they might help you too.
There’s always a green light at the end of the build-pipeline tunnel …
My initial plan was to first get the current version of the app – still running React Native 0.53.3 – to build again in Xcode 10, and only then upgrade the React Native version to the latest one (0.57.4 at the time of writing). During the course of my journey I eventually flipped that around, as React Native 0.57.x already contained some fixes that I was in need of.
Problem #1: iOS: React Native project won’t build on Xcode 10
Of course my first Bitrise trigger using Xcode 10 would fail (but one can always try, right?). What I didn’t expect is that quite a lot of things were going wrong (REF):
- Xcode Signing Issues
- Failures indicating that
libfishook.acould not be linked
- Third party things such as
glogthat were not installed
As I stumbled from one build error into the other (locally, of course) and tried fixing these one by one, I eventually found that the most easy solution would be to upgrade to the latest RN version (0.57.4 at the time of writing) as it already contained most of the fixes.
Solution #1 (part1): Upgrading to the latest RN version
To upgrade to the latest RN version I used
react-native-git-upgrade. I didn’t immediately jump from RN 0.53 to RN 0.57 though, but gradually went through all intermediate releases.
# install react-native-git-upgrade yarn global add react-native-git-upgrade # Go to project folder cd ~/repos/evpoint/mobileapp/ # Upgrade to RN 0.54.4 react-native-git-upgrade 0.54.4 # Upgrade to RN 0.55.4 react-native-git-upgrade 0.55.4 # Upgrade to RN 0.56.1 react-native-git-upgrade 0.56.1 # Upgrade to RN 0.57.4 react-native-git-upgrade 0.57.4
react-native-git-upgrade to upgrade RN versions works like a charm, but it might will require you to resolve a few merge conflicts …
Once I performed all upgrades I tried building my app locally and … yes, great succes!