How to create a comparison video like this:
comparison-nometrics.mp4
You can create videos using one of the following methods
{"lastUpload":"2020-07-10T16:01:40.846Z","extensionVersion":"v3.4.3"} |
The current project.pbxproj
used by the iOS project is damaged in some way. While XCode can open the file and read its contents correctly, attempting to save it results in a crash. This files that crash, making the file editable again.
Well, pbxproj files are finicky. They are a constant source of pain when fixing merge conflicts, something that happens frequently in our project because of React Native updates.
While I can't say what caused the error with a lot of confidence, here's how it was diagnosed and fixed, for future reference when needed.
Diagnosis
XCode crashes create crash logs that go into ~/Library/Logs/DiagnosticReports/
. In there, we could get a crash report that looked like this:
function getCoordinatesCenter(coordinates) { | |
let xcos = 0.0; | |
let ycos = 0.0; | |
let zsin = 0.0; | |
coordinates.forEach(coord => { | |
const lat = (coord.latitude * Math.PI) / 180; | |
const lng = (coord.longitude * Math.PI) / 180; | |
const acos = Math.cos(lat) * Math.cos(lng); |
import * as React from "react"; | |
import { NativeModules } from "react-native" | |
export default class App extends React.Component { | |
componentDidMount() { | |
if (IS_IOS) { | |
NativeModules.AccessibilityManager.setAccessibilityContentSizeMultipliers({ | |
extraSmall: 0.823, | |
small: 0.882, |
const globalFetch = global.fetch; | |
global.fetch = (url: string, params: Object): Promise<*> => { | |
return new Promise((resolve: any => void, reject: string => void) => { | |
StatusBar.setNetworkActivityIndicatorVisible(true); | |
globalFetch(url, params) | |
.then(resolve) | |
.then(reject) | |
.finaly(() => { |
import { Slider, NativeModules } from 'react-native'; | |
<Slider | |
maximumValue={ 2 } | |
minimumValue={ 1 } | |
onValueChange={ (value) => { | |
NativeModules.AccessibilityManager.setAccessibilityContentSizeMultipliers({ | |
extraSmall: value, | |
small: value, | |
medium: value, |
// @flow | |
import React from 'react'; | |
import { Linking, Text } from 'react-native'; | |
import { parsePhoneNumber, type TextChild } from 'utils/strings'; | |
type Props = { | |
linkStyle: PassedStyle, | |
text: string, |
// @flow | |
import React from 'react'; | |
import { TouchableOpacity } from 'react-native'; | |
import debounce from 'lodash.debounce'; | |
const TouchableDebounce = ({ | |
children, | |
onPress, | |
...props |