title: Invariant Violation: Native Module cannot be Null. Error only showing up on iOS
body: <p><strong>Background</strong>
  I've been developing a React Native app managed by Expo for almost a year now, but was unable to test it on iOS given I didn't have neither a Mac nor an iPhone at my disposal back then.
  I managed to buy an iPhone 8 and today I tried running the app on it to no result.</p>
  <p><strong>Problem</strong>
  I get an Invariant violation: Native module cannot be null when trying to run the app.
  The error stack reads as follows in VS Code:</p>
  <pre><code>Invariant Violation: Native module cannot be null.
  - node_modules\react-native\Libraries\LogBox\LogBox.js:148:8 in registerError
  - node_modules\react-native\Libraries\LogBox\LogBox.js:59:8 in errorImpl
  - node_modules\react-native\Libraries\LogBox\LogBox.js:33:4 in console.error
  - node_modules\expo\build\environment\react-native-logs.fx.js:27:4 in error
  - node_modules\react-native\Libraries\Core\ExceptionsManager.js:104:6 in reportException
  - node_modules\react-native\Libraries\Core\ExceptionsManager.js:171:19 in handleException
  - node_modules\react-native\Libraries\Core\setUpErrorHandling.js:24:6 in handleError
  - node_modules\expo-error-recovery\build\ErrorRecovery.fx.js:9:32 in ErrorUtils.setGlobalHandler$argument_0
  - node_modules\regenerator-runtime\runtime.js:63:36 in tryCatch
  - node_modules\regenerator-runtime\runtime.js:293:29 in invoke
  - node_modules\regenerator-runtime\runtime.js:63:36 in tryCatch
  - node_modules\regenerator-runtime\runtime.js:154:27 in invoke
  - node_modules\regenerator-runtime\runtime.js:164:18 in PromiseImpl.resolve.then$argument_0
  - node_modules\react-native\node_modules\promise\setimmediate\core.js:37:13 in tryCallOne
  - node_modules\react-native\node_modules\promise\setimmediate\core.js:123:24 in setImmediate$argument_0
  - node_modules\react-native\Libraries\Core\Timers\JSTimers.js:130:14 in _callTimer
  - node_modules\react-native\Libraries\Core\Timers\JSTimers.js:181:14 in _callImmediatesPass
  - node_modules\react-native\Libraries\Core\Timers\JSTimers.js:441:30 in callImmediates
  - node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:387:6 in __callImmediates
  - node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:135:6 in __guard$argument_0
  - node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:364:10 in __guard
  - node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:134:4 in flushedQueue
  * [native code]:null in flushedQueue
  * [native code]:null in invokeCallbackAndReturnFlushedQueue
  </code></pre>
  <p>And these screenshots show what I get on my phone:
  <a href="https://i.stack.imgur.com/8BDSc.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/8BDSc.jpg" alt="First one" /></a></p>
  <p><a href="https://i.stack.imgur.com/pyMzb.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/pyMzb.jpg" alt="Second" /></a></p>
  <p><a href="https://i.stack.imgur.com/JFL0T.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/JFL0T.jpg" alt="Third" /></a></p>
  <p>If I try and follow the links to the screens I've coded, not the random node_modules dependencies I land at these snippets of code:</p>
  <ol>
  <li><p>Filters</p>
  <pre><code>                &lt;View style={styles.check}&gt;
                       &lt;Text style={styles.propName}&gt;Happy hour&lt;/Text&gt;
                   &lt;CheckBox
                       value={selectedExtra ? true : extra3}
                       onValueChange={() =&gt; setExtra3(!extra3)}
                       tintColors={tintColors}
                       /&gt;
                   &lt;/View&gt;
  </code></pre>
  </li>
  <li><p>Profile Screen</p>
  </li>
  </ol>
  <pre><code>        &lt;TouchableOpacity style={styles.listItem} onPress={() =&gt; navigation.navigate('yourPurchases')}&gt;
              &lt;Text style={styles.listText}&gt;Your orders&lt;/Text&gt;
              &lt;View style={styles.greyArrow}&gt;
                &lt;GreyArrow /&gt;
              &lt;/View&gt;
            &lt;/TouchableOpacity&gt;
  
  </code></pre>
  <p>(Grey Arrow and Stylesheet imports are just fine. Navigation and everything else works perfectly on Android).</p>
  <p><strong>What I've tried</strong></p>
  <p>The application runs perfectly on Android, running into 0 issues. I've tried <code>npx react-native link</code>, uninstalling and reinstalling all dependencies, building and running first on Android and then on iOS.
  As this is an expo managed app, as far as I know I can't use the &quot;<code>cd /ios --&gt; pod install</code>&quot; method.</p>
  <p><strong>Question</strong></p>
  <p>How can I get the app to run on iOS and what is generating the crashes?</p>
  <p>Thanks a whole lot in advance!</p>