[NEW] Passcode and biometric unlock (#2059)
* Update expo libs * Configure expo-local-authentication * ScreenLockedView * Authenticate server change * Auth on app resume * localAuthentication util * Add servers.lastLocalAuthenticatedSession column * Save last session date on background * Use our own version of app state redux * Fix libs * Remove inactive * ScreenLockConfigView * Apply on saved data * Auto lock option label * Starting passcode * Basic passcode flow working * Change passcode * Check if biometry is enrolled * Use fork * Migration * Patch expo-local-authentication * Use async storage * Styling * Timer * Refactor * Lock orientation portrait when not on tablet * share extension * Deep linking * Share extension * Refactoring passcode * use state * Stash * Refactor * Change passcode * Animate dots on error * Matching passcodes * Shake * Remove lib * Delete button * Fade animation on modal * Refactoring * ItemInfo * I18n * I18n * Remove unnecessary prop * Save biometry column * Raise time to lock to 30 seconds * Vibrate on wrong confirmation passcode * Reset attempts and save last authentication on local passcode confirmation * Remove inline style * Save last auth * Fix header blink * Change function name * Fix android modal * Fix vibration permission * PasscodeEnter calls biometry * Passcode on the state * Biometry button on PasscodeEnter * Show whole passcode * Secure passcode * Save passcode with promise to prevent empty passcodes and immediately lock * Patch expo-local-authentication * I18n * Fix biometry being called every time * Blur screen on app inactive * Revert "Blur screen on app inactive" This reverts commit a4ce812934adcf6cf87eb1a92aec9283e2f26753. * Remove immediately because of how Activities work on Android * Pods * New layout * stash * Layout refactored * Fix icons * Force set passcode from server * Lint * Improve permission message * Forced passcode subtitle * Disable based on admin's choice * Require local authentication on login success * Refactor * Update tests * Update react-native-device-info to fix notch * Lint * Fix modal * Fix icons * Fix min auto lock time * Review * keep enabled on mobile * fix forced by admin when enable unlock with passcode * use DEFAULT_AUTO_LOCK when manual enable screenLock * fix check has passcode * request biometry on first password * reset auto time lock when disabled on server Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
This commit is contained in:
parent
ce51982bb0
commit
61afa86c0e
|
@ -87,6 +87,7 @@ module.exports = {
|
||||||
"no-regex-spaces": 2,
|
"no-regex-spaces": 2,
|
||||||
"no-undef": 2,
|
"no-undef": 2,
|
||||||
"no-unreachable": 2,
|
"no-unreachable": 2,
|
||||||
|
"no-unused-expressions": 0,
|
||||||
"no-unused-vars": [2, {
|
"no-unused-vars": [2, {
|
||||||
"vars": "all",
|
"vars": "all",
|
||||||
"args": "after-used"
|
"args": "after-used"
|
||||||
|
|
Binary file not shown.
|
@ -12,6 +12,7 @@ public class BasePackageList {
|
||||||
new expo.modules.filesystem.FileSystemPackage(),
|
new expo.modules.filesystem.FileSystemPackage(),
|
||||||
new expo.modules.haptics.HapticsPackage(),
|
new expo.modules.haptics.HapticsPackage(),
|
||||||
new expo.modules.imageloader.ImageLoaderPackage(),
|
new expo.modules.imageloader.ImageLoaderPackage(),
|
||||||
|
new expo.modules.localauthentication.LocalAuthenticationPackage(),
|
||||||
new expo.modules.keepawake.KeepAwakePackage(),
|
new expo.modules.keepawake.KeepAwakePackage(),
|
||||||
new expo.modules.permissions.PermissionsPackage(),
|
new expo.modules.permissions.PermissionsPackage(),
|
||||||
new expo.modules.webbrowser.WebBrowserPackage()
|
new expo.modules.webbrowser.WebBrowserPackage()
|
||||||
|
|
|
@ -64,3 +64,4 @@ export const INVITE_LINKS = createRequestTypes('INVITE_LINKS', [
|
||||||
...defaultTypes
|
...defaultTypes
|
||||||
]);
|
]);
|
||||||
export const SETTINGS = createRequestTypes('SETTINGS', ['CLEAR', 'ADD']);
|
export const SETTINGS = createRequestTypes('SETTINGS', ['CLEAR', 'ADD']);
|
||||||
|
export const APP_STATE = createRequestTypes('APP_STATE', ['FOREGROUND', 'BACKGROUND']);
|
||||||
|
|
|
@ -46,7 +46,14 @@ export const themes = {
|
||||||
messageboxBackground: '#ffffff',
|
messageboxBackground: '#ffffff',
|
||||||
searchboxBackground: '#E6E6E7',
|
searchboxBackground: '#E6E6E7',
|
||||||
buttonBackground: '#414852',
|
buttonBackground: '#414852',
|
||||||
buttonText: '#ffffff'
|
buttonText: '#ffffff',
|
||||||
|
passcodeBackground: '#EEEFF1',
|
||||||
|
passcodeButtonActive: '#E4E7EA',
|
||||||
|
passcodeLockIcon: '#6C727A',
|
||||||
|
passcodePrimary: '#2F343D',
|
||||||
|
passcodeSecondary: '#6C727A',
|
||||||
|
passcodeDotEmpty: '#CBCED1',
|
||||||
|
passcodeDotFull: '#6C727A'
|
||||||
},
|
},
|
||||||
dark: {
|
dark: {
|
||||||
backgroundColor: '#030b1b',
|
backgroundColor: '#030b1b',
|
||||||
|
@ -81,7 +88,14 @@ export const themes = {
|
||||||
messageboxBackground: '#0b182c',
|
messageboxBackground: '#0b182c',
|
||||||
searchboxBackground: '#192d4d',
|
searchboxBackground: '#192d4d',
|
||||||
buttonBackground: '#414852',
|
buttonBackground: '#414852',
|
||||||
buttonText: '#ffffff'
|
buttonText: '#ffffff',
|
||||||
|
passcodeBackground: '#030C1B',
|
||||||
|
passcodeButtonActive: '#0B182C',
|
||||||
|
passcodeLockIcon: '#6C727A',
|
||||||
|
passcodePrimary: '#FFFFFF',
|
||||||
|
passcodeSecondary: '#CBCED1',
|
||||||
|
passcodeDotEmpty: '#CBCED1',
|
||||||
|
passcodeDotFull: '#6C727A'
|
||||||
},
|
},
|
||||||
black: {
|
black: {
|
||||||
backgroundColor: '#000000',
|
backgroundColor: '#000000',
|
||||||
|
@ -116,6 +130,13 @@ export const themes = {
|
||||||
messageboxBackground: '#0d0d0d',
|
messageboxBackground: '#0d0d0d',
|
||||||
searchboxBackground: '#1f1f1f',
|
searchboxBackground: '#1f1f1f',
|
||||||
buttonBackground: '#414852',
|
buttonBackground: '#414852',
|
||||||
buttonText: '#ffffff'
|
buttonText: '#ffffff',
|
||||||
|
passcodeBackground: '#000000',
|
||||||
|
passcodeButtonActive: '#0E0D0D',
|
||||||
|
passcodeLockIcon: '#6C727A',
|
||||||
|
passcodePrimary: '#FFFFFF',
|
||||||
|
passcodeSecondary: '#CBCED1',
|
||||||
|
passcodeDotEmpty: '#CBCED1',
|
||||||
|
passcodeDotFull: '#6C727A'
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
import I18n from '../i18n';
|
||||||
|
|
||||||
|
export const PASSCODE_KEY = 'kPasscode';
|
||||||
|
export const LOCKED_OUT_TIMER_KEY = 'kLockedOutTimer';
|
||||||
|
export const ATTEMPTS_KEY = 'kAttempts';
|
||||||
|
|
||||||
|
export const LOCAL_AUTHENTICATE_EMITTER = 'LOCAL_AUTHENTICATE';
|
||||||
|
export const CHANGE_PASSCODE_EMITTER = 'CHANGE_PASSCODE';
|
||||||
|
|
||||||
|
export const PASSCODE_LENGTH = 6;
|
||||||
|
export const MAX_ATTEMPTS = 6;
|
||||||
|
export const TIME_TO_LOCK = 30000;
|
||||||
|
|
||||||
|
export const DEFAULT_AUTO_LOCK = 1800;
|
||||||
|
|
||||||
|
export const DEFAULT_AUTO_LOCK_OPTIONS = [
|
||||||
|
{
|
||||||
|
title: I18n.t('Local_authentication_auto_lock_60'),
|
||||||
|
value: 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: I18n.t('Local_authentication_auto_lock_300'),
|
||||||
|
value: 300
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: I18n.t('Local_authentication_auto_lock_900'),
|
||||||
|
value: 900
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: I18n.t('Local_authentication_auto_lock_1800'),
|
||||||
|
value: 1800
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: I18n.t('Local_authentication_auto_lock_3600'),
|
||||||
|
value: 3600
|
||||||
|
}
|
||||||
|
];
|
|
@ -160,5 +160,11 @@ export default {
|
||||||
},
|
},
|
||||||
CAS_login_url: {
|
CAS_login_url: {
|
||||||
type: 'valueAsString'
|
type: 'valueAsString'
|
||||||
|
},
|
||||||
|
Force_Screen_Lock: {
|
||||||
|
type: 'valueAsBoolean'
|
||||||
|
},
|
||||||
|
Force_Screen_Lock_After: {
|
||||||
|
type: 'valueAsNumber'
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
import React from 'react';
|
||||||
|
import { View, Text, StyleSheet } from 'react-native';
|
||||||
|
import PropTypes from 'prop-types';
|
||||||
|
|
||||||
|
import sharedStyles from '../views/Styles';
|
||||||
|
import { themes } from '../constants/colors';
|
||||||
|
|
||||||
|
const styles = StyleSheet.create({
|
||||||
|
infoContainer: {
|
||||||
|
padding: 15
|
||||||
|
},
|
||||||
|
infoText: {
|
||||||
|
fontSize: 14,
|
||||||
|
...sharedStyles.textRegular
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const ItemInfo = React.memo(({ info, theme }) => (
|
||||||
|
<View style={[styles.infoContainer, { backgroundColor: themes[theme].auxiliaryBackground }]}>
|
||||||
|
<Text style={[styles.infoText, { color: themes[theme].infoText }]}>{info}</Text>
|
||||||
|
</View>
|
||||||
|
));
|
||||||
|
|
||||||
|
ItemInfo.propTypes = {
|
||||||
|
info: PropTypes.string,
|
||||||
|
theme: PropTypes.string
|
||||||
|
};
|
||||||
|
|
||||||
|
export default ItemInfo;
|
|
@ -8,7 +8,7 @@ const SendButton = React.memo(({ theme, onPress }) => (
|
||||||
onPress={onPress}
|
onPress={onPress}
|
||||||
testID='messagebox-send-message'
|
testID='messagebox-send-message'
|
||||||
accessibilityLabel='Send_message'
|
accessibilityLabel='Send_message'
|
||||||
icon='send1'
|
icon='Send-active'
|
||||||
theme={theme}
|
theme={theme}
|
||||||
/>
|
/>
|
||||||
));
|
));
|
||||||
|
|
|
@ -0,0 +1,47 @@
|
||||||
|
import React from 'react';
|
||||||
|
import { Text } from 'react-native';
|
||||||
|
import PropTypes from 'prop-types';
|
||||||
|
|
||||||
|
import styles from './styles';
|
||||||
|
import { themes } from '../../../constants/colors';
|
||||||
|
import Touch from '../../../utils/touch';
|
||||||
|
import { CustomIcon } from '../../../lib/Icons';
|
||||||
|
|
||||||
|
const Button = React.memo(({
|
||||||
|
text, disabled, theme, onPress, icon
|
||||||
|
}) => {
|
||||||
|
const press = () => onPress && onPress(text);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Touch
|
||||||
|
style={[styles.buttonView, { backgroundColor: 'transparent' }]}
|
||||||
|
underlayColor={themes[theme].passcodeButtonActive}
|
||||||
|
rippleColor={themes[theme].passcodeButtonActive}
|
||||||
|
enabled={!disabled}
|
||||||
|
theme={theme}
|
||||||
|
onPress={press}
|
||||||
|
>
|
||||||
|
{
|
||||||
|
icon
|
||||||
|
? (
|
||||||
|
<CustomIcon name={icon} size={36} color={themes[theme].passcodePrimary} />
|
||||||
|
)
|
||||||
|
: (
|
||||||
|
<Text style={[styles.buttonText, { color: themes[theme].passcodePrimary }]}>
|
||||||
|
{text}
|
||||||
|
</Text>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
</Touch>
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
Button.propTypes = {
|
||||||
|
text: PropTypes.string,
|
||||||
|
icon: PropTypes.string,
|
||||||
|
theme: PropTypes.string,
|
||||||
|
disabled: PropTypes.bool,
|
||||||
|
onPress: PropTypes.func
|
||||||
|
};
|
||||||
|
|
||||||
|
export default Button;
|
|
@ -0,0 +1,51 @@
|
||||||
|
import React from 'react';
|
||||||
|
import { View } from 'react-native';
|
||||||
|
import _ from 'lodash';
|
||||||
|
import PropTypes from 'prop-types';
|
||||||
|
|
||||||
|
import styles from './styles';
|
||||||
|
import { themes } from '../../../constants/colors';
|
||||||
|
|
||||||
|
const SIZE_EMPTY = 12;
|
||||||
|
const SIZE_FULL = 16;
|
||||||
|
|
||||||
|
const Dots = React.memo(({ passcode, theme, length }) => (
|
||||||
|
<View style={styles.dotsContainer}>
|
||||||
|
{_.range(length).map((val) => {
|
||||||
|
const lengthSup = (passcode.length >= val + 1);
|
||||||
|
const height = lengthSup ? SIZE_FULL : SIZE_EMPTY;
|
||||||
|
const width = lengthSup ? SIZE_FULL : SIZE_EMPTY;
|
||||||
|
let backgroundColor = '';
|
||||||
|
if (lengthSup && passcode.length > 0) {
|
||||||
|
backgroundColor = themes[theme].passcodeDotFull;
|
||||||
|
} else {
|
||||||
|
backgroundColor = themes[theme].passcodeDotEmpty;
|
||||||
|
}
|
||||||
|
const borderRadius = lengthSup ? SIZE_FULL / 2 : SIZE_EMPTY / 2;
|
||||||
|
const marginRight = lengthSup ? 10 - (SIZE_FULL - SIZE_EMPTY) / 2 : 10;
|
||||||
|
const marginLeft = lengthSup ? 10 - (SIZE_FULL - SIZE_EMPTY) / 2 : 10;
|
||||||
|
return (
|
||||||
|
<View style={styles.dotsView}>
|
||||||
|
<View
|
||||||
|
style={{
|
||||||
|
height,
|
||||||
|
width,
|
||||||
|
borderRadius,
|
||||||
|
backgroundColor,
|
||||||
|
marginRight,
|
||||||
|
marginLeft
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</View>
|
||||||
|
);
|
||||||
|
})}
|
||||||
|
</View>
|
||||||
|
));
|
||||||
|
|
||||||
|
Dots.propTypes = {
|
||||||
|
passcode: PropTypes.string,
|
||||||
|
theme: PropTypes.string,
|
||||||
|
length: PropTypes.string
|
||||||
|
};
|
||||||
|
|
||||||
|
export default Dots;
|
|
@ -0,0 +1,22 @@
|
||||||
|
import React from 'react';
|
||||||
|
import { View } from 'react-native';
|
||||||
|
import { Row } from 'react-native-easy-grid';
|
||||||
|
import PropTypes from 'prop-types';
|
||||||
|
|
||||||
|
import styles from './styles';
|
||||||
|
import { themes } from '../../../constants/colors';
|
||||||
|
import { CustomIcon } from '../../../lib/Icons';
|
||||||
|
|
||||||
|
const LockIcon = React.memo(({ theme }) => (
|
||||||
|
<Row style={styles.row}>
|
||||||
|
<View style={styles.iconView}>
|
||||||
|
<CustomIcon name='lock' size={40} color={themes[theme].passcodeLockIcon} />
|
||||||
|
</View>
|
||||||
|
</Row>
|
||||||
|
));
|
||||||
|
|
||||||
|
LockIcon.propTypes = {
|
||||||
|
theme: PropTypes.string
|
||||||
|
};
|
||||||
|
|
||||||
|
export default LockIcon;
|
|
@ -0,0 +1,74 @@
|
||||||
|
import React, { useEffect, useState } from 'react';
|
||||||
|
import PropTypes from 'prop-types';
|
||||||
|
import { Grid } from 'react-native-easy-grid';
|
||||||
|
|
||||||
|
import { themes } from '../../../constants/colors';
|
||||||
|
import { resetAttempts } from '../../../utils/localAuthentication';
|
||||||
|
import { TYPE } from '../constants';
|
||||||
|
import { getLockedUntil, getDiff } from '../utils';
|
||||||
|
import I18n from '../../../i18n';
|
||||||
|
import styles from './styles';
|
||||||
|
import Title from './Title';
|
||||||
|
import Subtitle from './Subtitle';
|
||||||
|
import LockIcon from './LockIcon';
|
||||||
|
|
||||||
|
const Timer = React.memo(({ time, theme, setStatus }) => {
|
||||||
|
const calcTimeLeft = () => {
|
||||||
|
const diff = getDiff(time);
|
||||||
|
if (diff > 0) {
|
||||||
|
return Math.floor((diff / 1000) % 60);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const [timeLeft, setTimeLeft] = useState(calcTimeLeft());
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
setTimeout(() => {
|
||||||
|
setTimeLeft(calcTimeLeft());
|
||||||
|
if (timeLeft <= 1) {
|
||||||
|
resetAttempts();
|
||||||
|
setStatus(TYPE.ENTER);
|
||||||
|
}
|
||||||
|
}, 1000);
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!timeLeft) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return <Subtitle text={I18n.t('Passcode_app_locked_subtitle', { timeLeft })} theme={theme} />;
|
||||||
|
});
|
||||||
|
|
||||||
|
const Locked = React.memo(({ theme, setStatus }) => {
|
||||||
|
const [lockedUntil, setLockedUntil] = useState(null);
|
||||||
|
|
||||||
|
const readItemFromStorage = async() => {
|
||||||
|
const l = await getLockedUntil();
|
||||||
|
setLockedUntil(l);
|
||||||
|
};
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
readItemFromStorage();
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Grid style={[styles.grid, { backgroundColor: themes[theme].passcodeBackground }]} r>
|
||||||
|
<LockIcon theme={theme} />
|
||||||
|
<Title text={I18n.t('Passcode_app_locked_title')} theme={theme} />
|
||||||
|
<Timer theme={theme} time={lockedUntil} setStatus={setStatus} />
|
||||||
|
</Grid>
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
Locked.propTypes = {
|
||||||
|
theme: PropTypes.string,
|
||||||
|
setStatus: PropTypes.func
|
||||||
|
};
|
||||||
|
|
||||||
|
Timer.propTypes = {
|
||||||
|
time: PropTypes.string,
|
||||||
|
theme: PropTypes.string,
|
||||||
|
setStatus: PropTypes.func
|
||||||
|
};
|
||||||
|
|
||||||
|
export default Locked;
|
|
@ -0,0 +1,22 @@
|
||||||
|
import React from 'react';
|
||||||
|
import { View, Text } from 'react-native';
|
||||||
|
import { Row } from 'react-native-easy-grid';
|
||||||
|
import PropTypes from 'prop-types';
|
||||||
|
|
||||||
|
import styles from './styles';
|
||||||
|
import { themes } from '../../../constants/colors';
|
||||||
|
|
||||||
|
const Subtitle = React.memo(({ text, theme }) => (
|
||||||
|
<Row style={styles.row}>
|
||||||
|
<View style={styles.subtitleView}>
|
||||||
|
<Text style={[styles.textSubtitle, { color: themes[theme].passcodeSecondary }]}>{text}</Text>
|
||||||
|
</View>
|
||||||
|
</Row>
|
||||||
|
));
|
||||||
|
|
||||||
|
Subtitle.propTypes = {
|
||||||
|
text: PropTypes.string,
|
||||||
|
theme: PropTypes.string
|
||||||
|
};
|
||||||
|
|
||||||
|
export default Subtitle;
|
|
@ -0,0 +1,22 @@
|
||||||
|
import React from 'react';
|
||||||
|
import { View, Text } from 'react-native';
|
||||||
|
import { Row } from 'react-native-easy-grid';
|
||||||
|
import PropTypes from 'prop-types';
|
||||||
|
|
||||||
|
import styles from './styles';
|
||||||
|
import { themes } from '../../../constants/colors';
|
||||||
|
|
||||||
|
const Title = React.memo(({ text, theme }) => (
|
||||||
|
<Row style={styles.row}>
|
||||||
|
<View style={styles.titleView}>
|
||||||
|
<Text style={[styles.textTitle, { color: themes[theme].passcodePrimary }]}>{text}</Text>
|
||||||
|
</View>
|
||||||
|
</Row>
|
||||||
|
));
|
||||||
|
|
||||||
|
Title.propTypes = {
|
||||||
|
text: PropTypes.string,
|
||||||
|
theme: PropTypes.string
|
||||||
|
};
|
||||||
|
|
||||||
|
export default Title;
|
|
@ -0,0 +1,139 @@
|
||||||
|
import React, {
|
||||||
|
useState, forwardRef, useImperativeHandle, useRef
|
||||||
|
} from 'react';
|
||||||
|
import { Col, Row, Grid } from 'react-native-easy-grid';
|
||||||
|
import _ from 'lodash';
|
||||||
|
import PropTypes from 'prop-types';
|
||||||
|
import * as Animatable from 'react-native-animatable';
|
||||||
|
import * as Haptics from 'expo-haptics';
|
||||||
|
|
||||||
|
import styles from './styles';
|
||||||
|
import Button from './Button';
|
||||||
|
import Dots from './Dots';
|
||||||
|
import { TYPE } from '../constants';
|
||||||
|
import { themes } from '../../../constants/colors';
|
||||||
|
import { PASSCODE_LENGTH } from '../../../constants/localAuthentication';
|
||||||
|
import LockIcon from './LockIcon';
|
||||||
|
import Title from './Title';
|
||||||
|
import Subtitle from './Subtitle';
|
||||||
|
|
||||||
|
const Base = forwardRef(({
|
||||||
|
theme, type, onEndProcess, previousPasscode, title, subtitle, onError, showBiometry, onBiometryPress
|
||||||
|
}, ref) => {
|
||||||
|
const rootRef = useRef();
|
||||||
|
const dotsRef = useRef();
|
||||||
|
const [passcode, setPasscode] = useState('');
|
||||||
|
|
||||||
|
const clearPasscode = () => setPasscode('');
|
||||||
|
|
||||||
|
const wrongPasscode = () => {
|
||||||
|
clearPasscode();
|
||||||
|
dotsRef?.current?.shake(500);
|
||||||
|
Haptics.notificationAsync(Haptics.NotificationFeedbackType.Error);
|
||||||
|
};
|
||||||
|
|
||||||
|
const animate = (animation, duration = 500) => {
|
||||||
|
rootRef?.current?.[animation](duration);
|
||||||
|
};
|
||||||
|
|
||||||
|
const onPressNumber = text => setPasscode((p) => {
|
||||||
|
const currentPasscode = p + text;
|
||||||
|
if (currentPasscode?.length === PASSCODE_LENGTH) {
|
||||||
|
switch (type) {
|
||||||
|
case TYPE.CHOOSE:
|
||||||
|
onEndProcess(currentPasscode);
|
||||||
|
break;
|
||||||
|
case TYPE.CONFIRM:
|
||||||
|
if (currentPasscode !== previousPasscode) {
|
||||||
|
onError();
|
||||||
|
} else {
|
||||||
|
onEndProcess(currentPasscode);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case TYPE.ENTER:
|
||||||
|
onEndProcess(currentPasscode);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return currentPasscode;
|
||||||
|
});
|
||||||
|
|
||||||
|
const onPressDelete = () => setPasscode((p) => {
|
||||||
|
if (p?.length > 0) {
|
||||||
|
const newPasscode = p.slice(0, -1);
|
||||||
|
return newPasscode;
|
||||||
|
}
|
||||||
|
return '';
|
||||||
|
});
|
||||||
|
|
||||||
|
useImperativeHandle(ref, () => ({
|
||||||
|
wrongPasscode, animate, clearPasscode
|
||||||
|
}));
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Animatable.View ref={rootRef} style={styles.container}>
|
||||||
|
<Grid style={[styles.grid, { backgroundColor: themes[theme].passcodeBackground }]}>
|
||||||
|
<LockIcon theme={theme} />
|
||||||
|
<Title text={title} theme={theme} />
|
||||||
|
<Subtitle text={subtitle} theme={theme} />
|
||||||
|
<Row style={styles.row}>
|
||||||
|
<Animatable.View ref={dotsRef}>
|
||||||
|
<Dots passcode={passcode} theme={theme} length={PASSCODE_LENGTH} />
|
||||||
|
</Animatable.View>
|
||||||
|
</Row>
|
||||||
|
<Row style={[styles.row, styles.buttonRow]}>
|
||||||
|
{_.range(1, 4).map(i => (
|
||||||
|
<Col key={i} style={styles.colButton}>
|
||||||
|
<Button text={i} theme={theme} onPress={onPressNumber} />
|
||||||
|
</Col>
|
||||||
|
))}
|
||||||
|
</Row>
|
||||||
|
<Row style={[styles.row, styles.buttonRow]}>
|
||||||
|
{_.range(4, 7).map(i => (
|
||||||
|
<Col key={i} style={styles.colButton}>
|
||||||
|
<Button text={i} theme={theme} onPress={onPressNumber} />
|
||||||
|
</Col>
|
||||||
|
))}
|
||||||
|
</Row>
|
||||||
|
<Row style={[styles.row, styles.buttonRow]}>
|
||||||
|
{_.range(7, 10).map(i => (
|
||||||
|
<Col key={i} style={styles.colButton}>
|
||||||
|
<Button text={i} theme={theme} onPress={onPressNumber} />
|
||||||
|
</Col>
|
||||||
|
))}
|
||||||
|
</Row>
|
||||||
|
<Row style={[styles.row, styles.buttonRow]}>
|
||||||
|
{showBiometry
|
||||||
|
? (
|
||||||
|
<Col style={styles.colButton}>
|
||||||
|
<Button icon='fingerprint' theme={theme} onPress={onBiometryPress} />
|
||||||
|
</Col>
|
||||||
|
)
|
||||||
|
: <Col style={styles.colButton} />}
|
||||||
|
<Col style={styles.colButton}>
|
||||||
|
<Button text='0' theme={theme} onPress={onPressNumber} />
|
||||||
|
</Col>
|
||||||
|
<Col style={styles.colButton}>
|
||||||
|
<Button icon='backspace' theme={theme} onPress={onPressDelete} />
|
||||||
|
</Col>
|
||||||
|
</Row>
|
||||||
|
</Grid>
|
||||||
|
</Animatable.View>
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
Base.propTypes = {
|
||||||
|
theme: PropTypes.string,
|
||||||
|
type: PropTypes.string,
|
||||||
|
previousPasscode: PropTypes.string,
|
||||||
|
title: PropTypes.string,
|
||||||
|
subtitle: PropTypes.string,
|
||||||
|
showBiometry: PropTypes.string,
|
||||||
|
onEndProcess: PropTypes.func,
|
||||||
|
onError: PropTypes.func,
|
||||||
|
onBiometryPress: PropTypes.func
|
||||||
|
};
|
||||||
|
|
||||||
|
export default Base;
|
|
@ -0,0 +1,70 @@
|
||||||
|
import { StyleSheet } from 'react-native';
|
||||||
|
|
||||||
|
import sharedStyles from '../../../views/Styles';
|
||||||
|
|
||||||
|
export default StyleSheet.create({
|
||||||
|
container: {
|
||||||
|
flex: 1
|
||||||
|
},
|
||||||
|
titleView: {
|
||||||
|
justifyContent: 'center'
|
||||||
|
},
|
||||||
|
subtitleView: {
|
||||||
|
justifyContent: 'center',
|
||||||
|
height: 32
|
||||||
|
},
|
||||||
|
row: {
|
||||||
|
flex: 0,
|
||||||
|
alignItems: 'center',
|
||||||
|
justifyContent: 'center'
|
||||||
|
},
|
||||||
|
buttonRow: {
|
||||||
|
height: 102
|
||||||
|
},
|
||||||
|
colButton: {
|
||||||
|
flex: 0,
|
||||||
|
marginLeft: 12,
|
||||||
|
marginRight: 12,
|
||||||
|
alignItems: 'center',
|
||||||
|
width: 78,
|
||||||
|
height: 78
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
fontSize: 28,
|
||||||
|
...sharedStyles.textRegular
|
||||||
|
},
|
||||||
|
buttonView: {
|
||||||
|
alignItems: 'center',
|
||||||
|
justifyContent: 'center',
|
||||||
|
width: 78,
|
||||||
|
height: 78,
|
||||||
|
borderRadius: 4
|
||||||
|
},
|
||||||
|
textTitle: {
|
||||||
|
fontSize: 22,
|
||||||
|
...sharedStyles.textRegular
|
||||||
|
},
|
||||||
|
textSubtitle: {
|
||||||
|
fontSize: 16,
|
||||||
|
...sharedStyles.textMedium
|
||||||
|
},
|
||||||
|
dotsContainer: {
|
||||||
|
flexDirection: 'row',
|
||||||
|
justifyContent: 'center',
|
||||||
|
alignItems: 'center',
|
||||||
|
marginTop: 24,
|
||||||
|
marginBottom: 40
|
||||||
|
},
|
||||||
|
dotsView: {
|
||||||
|
justifyContent: 'center',
|
||||||
|
alignItems: 'center',
|
||||||
|
height: 16
|
||||||
|
},
|
||||||
|
grid: {
|
||||||
|
justifyContent: 'center',
|
||||||
|
flexDirection: 'column'
|
||||||
|
},
|
||||||
|
iconView: {
|
||||||
|
marginVertical: 16
|
||||||
|
}
|
||||||
|
});
|
|
@ -0,0 +1,69 @@
|
||||||
|
import React, { useState, useRef } from 'react';
|
||||||
|
import PropTypes from 'prop-types';
|
||||||
|
import * as Haptics from 'expo-haptics';
|
||||||
|
import { gestureHandlerRootHOC } from 'react-native-gesture-handler';
|
||||||
|
|
||||||
|
import Base from './Base';
|
||||||
|
import { TYPE } from './constants';
|
||||||
|
import I18n from '../../i18n';
|
||||||
|
|
||||||
|
const PasscodeChoose = ({ theme, finishProcess, force = false }) => {
|
||||||
|
const chooseRef = useRef(null);
|
||||||
|
const confirmRef = useRef(null);
|
||||||
|
const [subtitle, setSubtitle] = useState(null);
|
||||||
|
const [status, setStatus] = useState(TYPE.CHOOSE);
|
||||||
|
const [previousPasscode, setPreviouPasscode] = useState(null);
|
||||||
|
|
||||||
|
const firstStep = (p) => {
|
||||||
|
setTimeout(() => {
|
||||||
|
setStatus(TYPE.CONFIRM);
|
||||||
|
setPreviouPasscode(p);
|
||||||
|
confirmRef?.current?.clearPasscode();
|
||||||
|
}, 200);
|
||||||
|
};
|
||||||
|
|
||||||
|
const changePasscode = p => finishProcess && finishProcess(p);
|
||||||
|
|
||||||
|
const onError = () => {
|
||||||
|
setTimeout(() => {
|
||||||
|
setStatus(TYPE.CHOOSE);
|
||||||
|
setSubtitle(I18n.t('Passcode_choose_error'));
|
||||||
|
chooseRef?.current?.animate('shake');
|
||||||
|
chooseRef?.current?.clearPasscode();
|
||||||
|
Haptics.notificationAsync(Haptics.NotificationFeedbackType.Error);
|
||||||
|
}, 200);
|
||||||
|
};
|
||||||
|
|
||||||
|
if (status === TYPE.CONFIRM) {
|
||||||
|
return (
|
||||||
|
<Base
|
||||||
|
ref={confirmRef}
|
||||||
|
theme={theme}
|
||||||
|
type={TYPE.CONFIRM}
|
||||||
|
onEndProcess={changePasscode}
|
||||||
|
previousPasscode={previousPasscode}
|
||||||
|
title={I18n.t('Passcode_choose_confirm_title')}
|
||||||
|
onError={onError}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Base
|
||||||
|
ref={chooseRef}
|
||||||
|
theme={theme}
|
||||||
|
type={TYPE.CHOOSE}
|
||||||
|
onEndProcess={firstStep}
|
||||||
|
title={I18n.t('Passcode_choose_title')}
|
||||||
|
subtitle={subtitle || (force ? I18n.t('Passcode_choose_force_set') : null)}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
PasscodeChoose.propTypes = {
|
||||||
|
theme: PropTypes.string,
|
||||||
|
force: PropTypes.bool,
|
||||||
|
finishProcess: PropTypes.func
|
||||||
|
};
|
||||||
|
|
||||||
|
export default gestureHandlerRootHOC(PasscodeChoose);
|
|
@ -0,0 +1,106 @@
|
||||||
|
import React, { useEffect, useRef, useState } from 'react';
|
||||||
|
import { useAsyncStorage } from '@react-native-community/async-storage';
|
||||||
|
import RNUserDefaults from 'rn-user-defaults';
|
||||||
|
import PropTypes from 'prop-types';
|
||||||
|
import { gestureHandlerRootHOC } from 'react-native-gesture-handler';
|
||||||
|
import * as Haptics from 'expo-haptics';
|
||||||
|
import { sha256 } from 'js-sha256';
|
||||||
|
|
||||||
|
import Base from './Base';
|
||||||
|
import Locked from './Base/Locked';
|
||||||
|
import { TYPE } from './constants';
|
||||||
|
import {
|
||||||
|
ATTEMPTS_KEY, LOCKED_OUT_TIMER_KEY, PASSCODE_KEY, MAX_ATTEMPTS
|
||||||
|
} from '../../constants/localAuthentication';
|
||||||
|
import { resetAttempts, biometryAuth } from '../../utils/localAuthentication';
|
||||||
|
import { getLockedUntil, getDiff } from './utils';
|
||||||
|
import I18n from '../../i18n';
|
||||||
|
|
||||||
|
const PasscodeEnter = ({ theme, hasBiometry, finishProcess }) => {
|
||||||
|
const ref = useRef(null);
|
||||||
|
let attempts = 0;
|
||||||
|
let lockedUntil = false;
|
||||||
|
const [passcode, setPasscode] = useState(null);
|
||||||
|
const [status, setStatus] = useState(null);
|
||||||
|
const { getItem: getAttempts, setItem: setAttempts } = useAsyncStorage(ATTEMPTS_KEY);
|
||||||
|
const { setItem: setLockedUntil } = useAsyncStorage(LOCKED_OUT_TIMER_KEY);
|
||||||
|
|
||||||
|
const fetchPasscode = async() => {
|
||||||
|
const p = await RNUserDefaults.get(PASSCODE_KEY);
|
||||||
|
setPasscode(p);
|
||||||
|
};
|
||||||
|
|
||||||
|
const biometry = async() => {
|
||||||
|
if (hasBiometry && status === TYPE.ENTER) {
|
||||||
|
const result = await biometryAuth();
|
||||||
|
if (result?.success) {
|
||||||
|
finishProcess();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const readStorage = async() => {
|
||||||
|
lockedUntil = await getLockedUntil();
|
||||||
|
if (lockedUntil) {
|
||||||
|
const diff = getDiff(lockedUntil);
|
||||||
|
if (diff <= 1) {
|
||||||
|
await resetAttempts();
|
||||||
|
setStatus(TYPE.ENTER);
|
||||||
|
} else {
|
||||||
|
attempts = await getAttempts();
|
||||||
|
setStatus(TYPE.LOCKED);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
setStatus(TYPE.ENTER);
|
||||||
|
}
|
||||||
|
await fetchPasscode();
|
||||||
|
biometry();
|
||||||
|
};
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
readStorage();
|
||||||
|
}, [status]);
|
||||||
|
|
||||||
|
const onEndProcess = (p) => {
|
||||||
|
setTimeout(() => {
|
||||||
|
if (sha256(p) === passcode) {
|
||||||
|
finishProcess();
|
||||||
|
} else {
|
||||||
|
attempts += 1;
|
||||||
|
if (attempts >= MAX_ATTEMPTS) {
|
||||||
|
setStatus(TYPE.LOCKED);
|
||||||
|
setLockedUntil(new Date().toISOString());
|
||||||
|
Haptics.notificationAsync(Haptics.NotificationFeedbackType.Error);
|
||||||
|
} else {
|
||||||
|
ref.current.wrongPasscode();
|
||||||
|
setAttempts(attempts?.toString());
|
||||||
|
Haptics.notificationAsync(Haptics.NotificationFeedbackType.Warning);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, 200);
|
||||||
|
};
|
||||||
|
|
||||||
|
if (status === TYPE.LOCKED) {
|
||||||
|
return <Locked theme={theme} setStatus={setStatus} />;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Base
|
||||||
|
ref={ref}
|
||||||
|
theme={theme}
|
||||||
|
type={TYPE.ENTER}
|
||||||
|
title={I18n.t('Passcode_enter_title')}
|
||||||
|
showBiometry={hasBiometry}
|
||||||
|
onEndProcess={onEndProcess}
|
||||||
|
onBiometryPress={biometry}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
PasscodeEnter.propTypes = {
|
||||||
|
theme: PropTypes.string,
|
||||||
|
hasBiometry: PropTypes.string,
|
||||||
|
finishProcess: PropTypes.func
|
||||||
|
};
|
||||||
|
|
||||||
|
export default gestureHandlerRootHOC(PasscodeEnter);
|
|
@ -0,0 +1,6 @@
|
||||||
|
export const TYPE = {
|
||||||
|
CHOOSE: 'choose',
|
||||||
|
CONFIRM: 'confirm',
|
||||||
|
ENTER: 'enter',
|
||||||
|
LOCKED: 'locked'
|
||||||
|
};
|
|
@ -0,0 +1,4 @@
|
||||||
|
import PasscodeEnter from './PasscodeEnter';
|
||||||
|
import PasscodeChoose from './PasscodeChoose';
|
||||||
|
|
||||||
|
export { PasscodeEnter, PasscodeChoose };
|
|
@ -0,0 +1,14 @@
|
||||||
|
import AsyncStorage from '@react-native-community/async-storage';
|
||||||
|
import moment from 'moment';
|
||||||
|
|
||||||
|
import { LOCKED_OUT_TIMER_KEY, TIME_TO_LOCK } from '../../constants/localAuthentication';
|
||||||
|
|
||||||
|
export const getLockedUntil = async() => {
|
||||||
|
const t = await AsyncStorage.getItem(LOCKED_OUT_TIMER_KEY);
|
||||||
|
if (t) {
|
||||||
|
return moment(t).add(TIME_TO_LOCK);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const getDiff = t => new Date(t) - new Date();
|
|
@ -36,7 +36,7 @@ const RoomTypeIcon = React.memo(({
|
||||||
}
|
}
|
||||||
return <CustomIcon name='at' size={13} style={[styles.style, styles.discussion, { color }]} />;
|
return <CustomIcon name='at' size={13} style={[styles.style, styles.discussion, { color }]} />;
|
||||||
} if (type === 'l') {
|
} if (type === 'l') {
|
||||||
return <CustomIcon name='livechat' size={13} style={[styles.style, styles.discussion, { color }]} />;
|
return <CustomIcon name='omnichannel' size={13} style={[styles.style, styles.discussion, { color }]} />;
|
||||||
}
|
}
|
||||||
return <Image source={{ uri: 'lock' }} style={[styles.style, style, { width: size, height: size, tintColor: color }]} />;
|
return <Image source={{ uri: 'lock' }} style={[styles.style, style, { width: size, height: size, tintColor: color }]} />;
|
||||||
});
|
});
|
||||||
|
|
|
@ -562,5 +562,28 @@ export default {
|
||||||
This_will_clear_all_your_offline_data: 'This will clear all your offline data.',
|
This_will_clear_all_your_offline_data: 'This will clear all your offline data.',
|
||||||
This_will_remove_all_data_from_this_server: 'This will remove all data from this server.',
|
This_will_remove_all_data_from_this_server: 'This will remove all data from this server.',
|
||||||
Mark_unread: 'Mark Unread',
|
Mark_unread: 'Mark Unread',
|
||||||
Wait_activation_warning: 'Before you can login, your account must be manually activated by an administrator.'
|
Wait_activation_warning: 'Before you can login, your account must be manually activated by an administrator.',
|
||||||
|
Screen_lock: 'Screen lock',
|
||||||
|
Local_authentication_biometry_title: 'Authenticate',
|
||||||
|
Local_authentication_biometry_fallback: 'Use passcode',
|
||||||
|
Local_authentication_unlock_option: 'Unlock with Passcode',
|
||||||
|
Local_authentication_change_passcode: 'Change Passcode',
|
||||||
|
Local_authentication_info: 'Note: if you forget the Passcode, you\'ll need to delete and reinstall the app.',
|
||||||
|
Local_authentication_facial_recognition: 'facial recognition',
|
||||||
|
Local_authentication_fingerprint: 'fingerprint',
|
||||||
|
Local_authentication_unlock_with_label: 'Unlock with {{label}}',
|
||||||
|
Local_authentication_auto_lock_60: 'After 1 minute',
|
||||||
|
Local_authentication_auto_lock_300: 'After 5 minutes',
|
||||||
|
Local_authentication_auto_lock_900: 'After 15 minutes',
|
||||||
|
Local_authentication_auto_lock_1800: 'After 30 minutes',
|
||||||
|
Local_authentication_auto_lock_3600: 'After 1 hour',
|
||||||
|
Passcode_enter_title: 'Enter your passcode',
|
||||||
|
Passcode_choose_title: 'Choose your new passcode',
|
||||||
|
Passcode_choose_confirm_title: 'Confirm your new passcode',
|
||||||
|
Passcode_choose_error: 'Passcodes don\'t match. Try again.',
|
||||||
|
Passcode_choose_force_set: 'Passcode required by admin',
|
||||||
|
Passcode_app_locked_title: 'App locked',
|
||||||
|
Passcode_app_locked_subtitle: 'Try again in {{timeLeft}} seconds',
|
||||||
|
After_seconds_set_by_admin: 'After {{seconds}} seconds (set by admin)',
|
||||||
|
Dont_activate: 'Don\'t activate now'
|
||||||
};
|
};
|
||||||
|
|
|
@ -501,5 +501,28 @@ export default {
|
||||||
This_will_clear_all_your_offline_data: 'Isto limpará todos os seus dados offline.',
|
This_will_clear_all_your_offline_data: 'Isto limpará todos os seus dados offline.',
|
||||||
This_will_remove_all_data_from_this_server: 'Isto removerá todos os dados desse servidor.',
|
This_will_remove_all_data_from_this_server: 'Isto removerá todos os dados desse servidor.',
|
||||||
Mark_unread: 'Marcar como não Lida',
|
Mark_unread: 'Marcar como não Lida',
|
||||||
Wait_activation_warning: 'Antes que você possa fazer o login, sua conta deve ser manualmente ativada por um administrador.'
|
Wait_activation_warning: 'Antes que você possa fazer o login, sua conta deve ser manualmente ativada por um administrador.',
|
||||||
|
Screen_lock: 'Bloqueio de Tela',
|
||||||
|
Local_authentication_biometry_title: 'Autenticar',
|
||||||
|
Local_authentication_biometry_fallback: 'Usar senha',
|
||||||
|
Local_authentication_unlock_option: 'Desbloquear com senha',
|
||||||
|
Local_authentication_change_passcode: 'Alterar senha',
|
||||||
|
Local_authentication_info: 'Nota: se você esquecer sua senha, terá de apagar e reinstalar o app.',
|
||||||
|
Local_authentication_facial_recognition: 'reconhecimento facial',
|
||||||
|
Local_authentication_fingerprint: 'impressão digital',
|
||||||
|
Local_authentication_unlock_with_label: 'Desbloquear com {{label}}',
|
||||||
|
Local_authentication_auto_lock_60: 'Após 1 minuto',
|
||||||
|
Local_authentication_auto_lock_300: 'Após 5 minutos',
|
||||||
|
Local_authentication_auto_lock_900: 'Após 15 minutos',
|
||||||
|
Local_authentication_auto_lock_1800: 'Após 30 minutos',
|
||||||
|
Local_authentication_auto_lock_3600: 'Após 1 hora',
|
||||||
|
Passcode_enter_title: 'Digite sua senha',
|
||||||
|
Passcode_choose_title: 'Insira sua nova senha',
|
||||||
|
Passcode_choose_confirm_title: 'Confirme sua nova senha',
|
||||||
|
Passcode_choose_error: 'As senhas não coincidem. Tente novamente.',
|
||||||
|
Passcode_choose_force_set: 'Senha foi exigida pelo admin',
|
||||||
|
Passcode_app_locked_title: 'Aplicativo bloqueado',
|
||||||
|
Passcode_app_locked_subtitle: 'Tente novamente em {{timeLeft}} segundos',
|
||||||
|
After_seconds_set_by_admin: 'Após {{seconds}} segundos (Configurado pelo adm)',
|
||||||
|
Dont_activate: 'Não ativar agora'
|
||||||
};
|
};
|
||||||
|
|
|
@ -46,6 +46,8 @@ import TwoFactor from './containers/TwoFactor';
|
||||||
|
|
||||||
import RoomsListView from './views/RoomsListView';
|
import RoomsListView from './views/RoomsListView';
|
||||||
import RoomView from './views/RoomView';
|
import RoomView from './views/RoomView';
|
||||||
|
import ScreenLockedView from './views/ScreenLockedView';
|
||||||
|
import ChangePasscodeView from './views/ChangePasscodeView';
|
||||||
|
|
||||||
if (isIOS) {
|
if (isIOS) {
|
||||||
const RNScreens = require('react-native-screens');
|
const RNScreens = require('react-native-screens');
|
||||||
|
@ -224,6 +226,9 @@ const SettingsStack = createStackNavigator({
|
||||||
},
|
},
|
||||||
DefaultBrowserView: {
|
DefaultBrowserView: {
|
||||||
getScreen: () => require('./views/DefaultBrowserView').default
|
getScreen: () => require('./views/DefaultBrowserView').default
|
||||||
|
},
|
||||||
|
ScreenLockConfigView: {
|
||||||
|
getScreen: () => require('./views/ScreenLockConfigView').default
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
defaultNavigationOptions: defaultHeader,
|
defaultNavigationOptions: defaultHeader,
|
||||||
|
@ -729,6 +734,8 @@ export default class Root extends React.Component {
|
||||||
>
|
>
|
||||||
{content}
|
{content}
|
||||||
<TwoFactor />
|
<TwoFactor />
|
||||||
|
<ScreenLockedView />
|
||||||
|
<ChangePasscodeView />
|
||||||
</ThemeContext.Provider>
|
</ThemeContext.Provider>
|
||||||
</Provider>
|
</Provider>
|
||||||
</AppearanceProvider>
|
</AppearanceProvider>
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
// https://github.com/bamlab/redux-enhancer-react-native-appstate
|
||||||
|
import { AppState } from 'react-native';
|
||||||
|
|
||||||
|
import { APP_STATE } from '../actions/actionsTypes';
|
||||||
|
|
||||||
|
export default () => createStore => (...args) => {
|
||||||
|
const store = createStore(...args);
|
||||||
|
|
||||||
|
let currentState = '';
|
||||||
|
|
||||||
|
const handleAppStateChange = (nextAppState) => {
|
||||||
|
if (nextAppState !== 'inactive') {
|
||||||
|
if (currentState !== nextAppState) {
|
||||||
|
let type;
|
||||||
|
if (nextAppState === 'active') {
|
||||||
|
type = APP_STATE.FOREGROUND;
|
||||||
|
} else if (nextAppState === 'background') {
|
||||||
|
type = APP_STATE.BACKGROUND;
|
||||||
|
}
|
||||||
|
if (type) {
|
||||||
|
store.dispatch({
|
||||||
|
type
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
currentState = nextAppState;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
AppState.addEventListener('change', handleAppStateChange);
|
||||||
|
|
||||||
|
// setTimeout to allow redux-saga to catch the initial state fired by redux-enhancer-react-native-appstate library
|
||||||
|
setTimeout(() => handleAppStateChange(AppState.currentState));
|
||||||
|
return store;
|
||||||
|
};
|
|
@ -1,9 +1,9 @@
|
||||||
import { createStore, applyMiddleware, compose } from 'redux';
|
import { createStore, applyMiddleware, compose } from 'redux';
|
||||||
import createSagaMiddleware from 'redux-saga';
|
import createSagaMiddleware from 'redux-saga';
|
||||||
import applyAppStateListener from 'redux-enhancer-react-native-appstate';
|
|
||||||
|
|
||||||
import reducers from '../reducers';
|
import reducers from '../reducers';
|
||||||
import sagas from '../sagas';
|
import sagas from '../sagas';
|
||||||
|
import applyAppStateMiddleware from './appStateMiddleware';
|
||||||
|
|
||||||
let sagaMiddleware;
|
let sagaMiddleware;
|
||||||
let enhancers;
|
let enhancers;
|
||||||
|
@ -16,7 +16,7 @@ if (__DEV__) {
|
||||||
});
|
});
|
||||||
|
|
||||||
enhancers = compose(
|
enhancers = compose(
|
||||||
applyAppStateListener(),
|
applyAppStateMiddleware(),
|
||||||
applyMiddleware(reduxImmutableStateInvariant),
|
applyMiddleware(reduxImmutableStateInvariant),
|
||||||
applyMiddleware(sagaMiddleware),
|
applyMiddleware(sagaMiddleware),
|
||||||
Reactotron.createEnhancer()
|
Reactotron.createEnhancer()
|
||||||
|
@ -24,7 +24,7 @@ if (__DEV__) {
|
||||||
} else {
|
} else {
|
||||||
sagaMiddleware = createSagaMiddleware();
|
sagaMiddleware = createSagaMiddleware();
|
||||||
enhancers = compose(
|
enhancers = compose(
|
||||||
applyAppStateListener(),
|
applyAppStateMiddleware(),
|
||||||
applyMiddleware(sagaMiddleware)
|
applyMiddleware(sagaMiddleware)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,4 +17,12 @@ export default class Server extends Model {
|
||||||
@date('rooms_updated_at') roomsUpdatedAt;
|
@date('rooms_updated_at') roomsUpdatedAt;
|
||||||
|
|
||||||
@field('version') version;
|
@field('version') version;
|
||||||
|
|
||||||
|
@date('last_local_authenticated_session') lastLocalAuthenticatedSession;
|
||||||
|
|
||||||
|
@field('auto_lock') autoLock;
|
||||||
|
|
||||||
|
@field('auto_lock_time') autoLockTime;
|
||||||
|
|
||||||
|
@field('biometry') biometry;
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,20 @@ export default schemaMigrations({
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
toVersion: 4,
|
||||||
|
steps: [
|
||||||
|
addColumns({
|
||||||
|
table: 'servers',
|
||||||
|
columns: [
|
||||||
|
{ name: 'last_local_authenticated_session', type: 'number', isOptional: true },
|
||||||
|
{ name: 'auto_lock', type: 'boolean', isOptional: true },
|
||||||
|
{ name: 'auto_lock_time', type: 'number', isOptional: true },
|
||||||
|
{ name: 'biometry', type: 'boolean', isOptional: true }
|
||||||
|
]
|
||||||
|
})
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import { appSchema, tableSchema } from '@nozbe/watermelondb';
|
import { appSchema, tableSchema } from '@nozbe/watermelondb';
|
||||||
|
|
||||||
export default appSchema({
|
export default appSchema({
|
||||||
version: 3,
|
version: 4,
|
||||||
tables: [
|
tables: [
|
||||||
tableSchema({
|
tableSchema({
|
||||||
name: 'users',
|
name: 'users',
|
||||||
|
@ -24,7 +24,11 @@ export default appSchema({
|
||||||
{ name: 'file_upload_media_type_white_list', type: 'string', isOptional: true },
|
{ name: 'file_upload_media_type_white_list', type: 'string', isOptional: true },
|
||||||
{ name: 'file_upload_max_file_size', type: 'number', isOptional: true },
|
{ name: 'file_upload_max_file_size', type: 'number', isOptional: true },
|
||||||
{ name: 'rooms_updated_at', type: 'number', isOptional: true },
|
{ name: 'rooms_updated_at', type: 'number', isOptional: true },
|
||||||
{ name: 'version', type: 'string', isOptional: true }
|
{ name: 'version', type: 'string', isOptional: true },
|
||||||
|
{ name: 'last_local_authenticated_session', type: 'number', isOptional: true },
|
||||||
|
{ name: 'auto_lock', type: 'boolean', isOptional: true },
|
||||||
|
{ name: 'auto_lock_time', type: 'number', isOptional: true },
|
||||||
|
{ name: 'biometry', type: 'boolean', isOptional: true }
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
]
|
]
|
||||||
|
|
|
@ -10,8 +10,9 @@ import log from '../../utils/log';
|
||||||
import database from '../database';
|
import database from '../database';
|
||||||
import protectedFunction from './helpers/protectedFunction';
|
import protectedFunction from './helpers/protectedFunction';
|
||||||
import fetch from '../../utils/fetch';
|
import fetch from '../../utils/fetch';
|
||||||
|
import { DEFAULT_AUTO_LOCK, DEFAULT_AUTO_LOCK_OPTIONS } from '../../constants/localAuthentication';
|
||||||
|
|
||||||
const serverInfoKeys = ['Site_Name', 'UI_Use_Real_Name', 'FileUpload_MediaTypeWhiteList', 'FileUpload_MaxFileSize'];
|
const serverInfoKeys = ['Site_Name', 'UI_Use_Real_Name', 'FileUpload_MediaTypeWhiteList', 'FileUpload_MaxFileSize', 'Force_Screen_Lock', 'Force_Screen_Lock_After'];
|
||||||
|
|
||||||
// these settings are used only on onboarding process
|
// these settings are used only on onboarding process
|
||||||
const loginSettings = [
|
const loginSettings = [
|
||||||
|
@ -32,6 +33,8 @@ const loginSettings = [
|
||||||
const serverInfoUpdate = async(serverInfo, iconSetting) => {
|
const serverInfoUpdate = async(serverInfo, iconSetting) => {
|
||||||
const serversDB = database.servers;
|
const serversDB = database.servers;
|
||||||
const serverId = reduxStore.getState().server.server;
|
const serverId = reduxStore.getState().server.server;
|
||||||
|
const serversCollection = serversDB.collections.get('servers');
|
||||||
|
const server = await serversCollection.find(serverId);
|
||||||
|
|
||||||
let info = serverInfo.reduce((allSettings, setting) => {
|
let info = serverInfo.reduce((allSettings, setting) => {
|
||||||
if (setting._id === 'Site_Name') {
|
if (setting._id === 'Site_Name') {
|
||||||
|
@ -46,6 +49,34 @@ const serverInfoUpdate = async(serverInfo, iconSetting) => {
|
||||||
if (setting._id === 'FileUpload_MaxFileSize') {
|
if (setting._id === 'FileUpload_MaxFileSize') {
|
||||||
return { ...allSettings, FileUpload_MaxFileSize: setting.valueAsNumber };
|
return { ...allSettings, FileUpload_MaxFileSize: setting.valueAsNumber };
|
||||||
}
|
}
|
||||||
|
if (setting._id === 'Force_Screen_Lock') {
|
||||||
|
// if this was disabled on server side we must keep this enabled on app
|
||||||
|
const autoLock = server.autoLock || setting.valueAsBoolean;
|
||||||
|
return { ...allSettings, autoLock };
|
||||||
|
}
|
||||||
|
if (setting._id === 'Force_Screen_Lock_After') {
|
||||||
|
// Force_Screen_Lock from server
|
||||||
|
const forceScreenLock = serverInfo.find(item => item._id === 'Force_Screen_Lock')?.valueAsBoolean;
|
||||||
|
|
||||||
|
// if Force_Screen_Lock is disabled on server and Screen Lock is enabled on app
|
||||||
|
if (!forceScreenLock && server.autoLock) {
|
||||||
|
// if the current autoLockTime is one of our default options, we'll keep this value
|
||||||
|
if (DEFAULT_AUTO_LOCK_OPTIONS.find(option => option.value === server.autoLockTime)) {
|
||||||
|
return { ...allSettings, autoLockTime: server.autoLockTime };
|
||||||
|
}
|
||||||
|
// if the current autoLockTime is a value that isn't in our default options, we'll reset
|
||||||
|
return { ...allSettings, autoLockTime: DEFAULT_AUTO_LOCK };
|
||||||
|
}
|
||||||
|
|
||||||
|
// if Force_Screen_Lock_After === 0 and autoLockTime is null, set app's default value
|
||||||
|
if (setting.valueAsNumber === 0 && !server.autoLockTime) {
|
||||||
|
return { ...allSettings, autoLockTime: DEFAULT_AUTO_LOCK };
|
||||||
|
}
|
||||||
|
// if Force_Screen_Lock_After > 0, use it
|
||||||
|
if (setting.valueAsNumber > 0) {
|
||||||
|
return { ...allSettings, autoLockTime: setting.valueAsNumber };
|
||||||
|
}
|
||||||
|
}
|
||||||
return allSettings;
|
return allSettings;
|
||||||
}, {});
|
}, {});
|
||||||
|
|
||||||
|
@ -56,9 +87,6 @@ const serverInfoUpdate = async(serverInfo, iconSetting) => {
|
||||||
|
|
||||||
await serversDB.action(async() => {
|
await serversDB.action(async() => {
|
||||||
try {
|
try {
|
||||||
const serversCollection = serversDB.collections.get('servers');
|
|
||||||
const server = await serversCollection.find(serverId);
|
|
||||||
|
|
||||||
await server.update((record) => {
|
await server.update((record) => {
|
||||||
Object.assign(record, info);
|
Object.assign(record, info);
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
import { AsyncStorage, InteractionManager } from 'react-native';
|
import { InteractionManager } from 'react-native';
|
||||||
import semver from 'semver';
|
import semver from 'semver';
|
||||||
import { Rocketchat as RocketchatClient } from '@rocket.chat/sdk';
|
import { Rocketchat as RocketchatClient } from '@rocket.chat/sdk';
|
||||||
import RNUserDefaults from 'rn-user-defaults';
|
import RNUserDefaults from 'rn-user-defaults';
|
||||||
import { Q } from '@nozbe/watermelondb';
|
import { Q } from '@nozbe/watermelondb';
|
||||||
|
import AsyncStorage from '@react-native-community/async-storage';
|
||||||
|
|
||||||
import reduxStore from './createStore';
|
import reduxStore from './createStore';
|
||||||
import defaultSettings from '../constants/settings';
|
import defaultSettings from '../constants/settings';
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,36 +1,26 @@
|
||||||
import { FOREGROUND, BACKGROUND, INACTIVE } from 'redux-enhancer-react-native-appstate';
|
import { APP, APP_STATE } from '../actions/actionsTypes';
|
||||||
import { APP } from '../actions/actionsTypes';
|
|
||||||
|
|
||||||
const initialState = {
|
const initialState = {
|
||||||
root: null,
|
root: null,
|
||||||
ready: false,
|
ready: false,
|
||||||
inactive: false,
|
foreground: true,
|
||||||
background: false
|
background: false
|
||||||
};
|
};
|
||||||
|
|
||||||
export default function app(state = initialState, action) {
|
export default function app(state = initialState, action) {
|
||||||
switch (action.type) {
|
switch (action.type) {
|
||||||
case FOREGROUND:
|
case APP_STATE.FOREGROUND:
|
||||||
return {
|
return {
|
||||||
...state,
|
...state,
|
||||||
inactive: false,
|
|
||||||
foreground: true,
|
foreground: true,
|
||||||
background: false
|
background: false
|
||||||
};
|
};
|
||||||
case BACKGROUND:
|
case APP_STATE.BACKGROUND:
|
||||||
return {
|
return {
|
||||||
...state,
|
...state,
|
||||||
inactive: false,
|
|
||||||
foreground: false,
|
foreground: false,
|
||||||
background: true
|
background: true
|
||||||
};
|
};
|
||||||
case INACTIVE:
|
|
||||||
return {
|
|
||||||
...state,
|
|
||||||
inactive: true,
|
|
||||||
foreground: false,
|
|
||||||
background: false
|
|
||||||
};
|
|
||||||
case APP.START:
|
case APP.START:
|
||||||
return {
|
return {
|
||||||
...state,
|
...state,
|
||||||
|
|
|
@ -11,6 +11,7 @@ import database from '../lib/database';
|
||||||
import RocketChat from '../lib/rocketchat';
|
import RocketChat from '../lib/rocketchat';
|
||||||
import EventEmitter from '../utils/events';
|
import EventEmitter from '../utils/events';
|
||||||
import { appStart } from '../actions';
|
import { appStart } from '../actions';
|
||||||
|
import { localAuthenticate } from '../utils/localAuthentication';
|
||||||
|
|
||||||
const roomTypes = {
|
const roomTypes = {
|
||||||
channel: 'c', direct: 'd', group: 'p', channels: 'l'
|
channel: 'c', direct: 'd', group: 'p', channels: 'l'
|
||||||
|
@ -72,6 +73,7 @@ const handleOpen = function* handleOpen({ params }) {
|
||||||
if (server === host && user) {
|
if (server === host && user) {
|
||||||
const connected = yield select(state => state.server.connected);
|
const connected = yield select(state => state.server.connected);
|
||||||
if (!connected) {
|
if (!connected) {
|
||||||
|
yield localAuthenticate(host);
|
||||||
yield put(selectServerRequest(host));
|
yield put(selectServerRequest(host));
|
||||||
yield take(types.SERVER.SELECT_SUCCESS);
|
yield take(types.SERVER.SELECT_SUCCESS);
|
||||||
}
|
}
|
||||||
|
@ -83,6 +85,7 @@ const handleOpen = function* handleOpen({ params }) {
|
||||||
try {
|
try {
|
||||||
const servers = yield serversCollection.find(host);
|
const servers = yield serversCollection.find(host);
|
||||||
if (servers && user) {
|
if (servers && user) {
|
||||||
|
yield localAuthenticate(host);
|
||||||
yield put(selectServerRequest(host));
|
yield put(selectServerRequest(host));
|
||||||
yield take(types.LOGIN.SUCCESS);
|
yield take(types.LOGIN.SUCCESS);
|
||||||
yield navigate({ params });
|
yield navigate({ params });
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
import { AsyncStorage } from 'react-native';
|
|
||||||
import { put, takeLatest, all } from 'redux-saga/effects';
|
import { put, takeLatest, all } from 'redux-saga/effects';
|
||||||
import RNUserDefaults from 'rn-user-defaults';
|
import RNUserDefaults from 'rn-user-defaults';
|
||||||
import { sanitizedRaw } from '@nozbe/watermelondb/RawRecord';
|
import { sanitizedRaw } from '@nozbe/watermelondb/RawRecord';
|
||||||
import RNBootSplash from 'react-native-bootsplash';
|
import RNBootSplash from 'react-native-bootsplash';
|
||||||
|
import AsyncStorage from '@react-native-community/async-storage';
|
||||||
|
|
||||||
import * as actions from '../actions';
|
import * as actions from '../actions';
|
||||||
import { selectServerRequest } from '../actions/server';
|
import { selectServerRequest } from '../actions/server';
|
||||||
|
@ -18,6 +18,7 @@ import {
|
||||||
import { isIOS } from '../utils/deviceInfo';
|
import { isIOS } from '../utils/deviceInfo';
|
||||||
import database from '../lib/database';
|
import database from '../lib/database';
|
||||||
import protectedFunction from '../lib/methods/helpers/protectedFunction';
|
import protectedFunction from '../lib/methods/helpers/protectedFunction';
|
||||||
|
import { localAuthenticate } from '../utils/localAuthentication';
|
||||||
|
|
||||||
export const initLocalSettings = function* initLocalSettings() {
|
export const initLocalSettings = function* initLocalSettings() {
|
||||||
const sortPreferences = yield RocketChat.getSortPreferences();
|
const sortPreferences = yield RocketChat.getSortPreferences();
|
||||||
|
@ -99,6 +100,8 @@ const restore = function* restore() {
|
||||||
} else {
|
} else {
|
||||||
const serversDB = database.servers;
|
const serversDB = database.servers;
|
||||||
const serverCollections = serversDB.collections.get('servers');
|
const serverCollections = serversDB.collections.get('servers');
|
||||||
|
|
||||||
|
yield localAuthenticate(server);
|
||||||
const serverObj = yield serverCollections.find(server);
|
const serverObj = yield serverCollections.find(server);
|
||||||
yield put(selectServerRequest(server, serverObj && serverObj.version));
|
yield put(selectServerRequest(server, serverObj && serverObj.version));
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,7 @@ import database from '../lib/database';
|
||||||
import EventEmitter from '../utils/events';
|
import EventEmitter from '../utils/events';
|
||||||
import { inviteLinksRequest } from '../actions/inviteLinks';
|
import { inviteLinksRequest } from '../actions/inviteLinks';
|
||||||
import { showErrorAlert } from '../utils/info';
|
import { showErrorAlert } from '../utils/info';
|
||||||
|
import { localAuthenticate } from '../utils/localAuthentication';
|
||||||
import { setActiveUsers } from '../actions/activeUsers';
|
import { setActiveUsers } from '../actions/activeUsers';
|
||||||
|
|
||||||
const getServer = state => state.server.server;
|
const getServer = state => state.server.server;
|
||||||
|
@ -41,6 +42,8 @@ const handleLoginRequest = function* handleLoginRequest({ credentials, logoutOnE
|
||||||
yield put(setUser(result));
|
yield put(setUser(result));
|
||||||
yield put(appStart('setUsername'));
|
yield put(appStart('setUsername'));
|
||||||
} else {
|
} else {
|
||||||
|
const server = yield select(getServer);
|
||||||
|
yield localAuthenticate(server);
|
||||||
yield put(loginSuccess(result));
|
yield put(loginSuccess(result));
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
import {
|
import {
|
||||||
put, select, race, take, fork, cancel, delay
|
put, select, race, take, fork, cancel, delay
|
||||||
} from 'redux-saga/effects';
|
} from 'redux-saga/effects';
|
||||||
import { BACKGROUND, INACTIVE } from 'redux-enhancer-react-native-appstate';
|
|
||||||
import { Q } from '@nozbe/watermelondb';
|
import { Q } from '@nozbe/watermelondb';
|
||||||
|
|
||||||
import { sanitizedRaw } from '@nozbe/watermelondb/RawRecord';
|
import { sanitizedRaw } from '@nozbe/watermelondb/RawRecord';
|
||||||
|
|
||||||
import * as types from '../actions/actionsTypes';
|
import * as types from '../actions/actionsTypes';
|
||||||
import { roomsSuccess, roomsFailure, roomsRefresh } from '../actions/rooms';
|
import { roomsSuccess, roomsFailure, roomsRefresh } from '../actions/rooms';
|
||||||
import database from '../lib/database';
|
import database from '../lib/database';
|
||||||
|
@ -114,8 +113,7 @@ const root = function* root() {
|
||||||
roomsSuccess: take(types.ROOMS.SUCCESS),
|
roomsSuccess: take(types.ROOMS.SUCCESS),
|
||||||
roomsFailure: take(types.ROOMS.FAILURE),
|
roomsFailure: take(types.ROOMS.FAILURE),
|
||||||
serverReq: take(types.SERVER.SELECT_REQUEST),
|
serverReq: take(types.SERVER.SELECT_REQUEST),
|
||||||
background: take(BACKGROUND),
|
background: take(types.APP_STATE.BACKGROUND),
|
||||||
inactive: take(INACTIVE),
|
|
||||||
logout: take(types.LOGOUT),
|
logout: take(types.LOGOUT),
|
||||||
timeout: delay(30000)
|
timeout: delay(30000)
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
import { takeLatest, select } from 'redux-saga/effects';
|
import { takeLatest, select } from 'redux-saga/effects';
|
||||||
import { FOREGROUND, BACKGROUND } from 'redux-enhancer-react-native-appstate';
|
|
||||||
|
|
||||||
import RocketChat from '../lib/rocketchat';
|
import RocketChat from '../lib/rocketchat';
|
||||||
import { setBadgeCount } from '../notifications/push';
|
import { setBadgeCount } from '../notifications/push';
|
||||||
import log from '../utils/log';
|
import log from '../utils/log';
|
||||||
|
import { localAuthenticate, saveLastLocalAuthenticationSession } from '../utils/localAuthentication';
|
||||||
|
import { APP_STATE } from '../actions/actionsTypes';
|
||||||
|
|
||||||
const appHasComeBackToForeground = function* appHasComeBackToForeground() {
|
const appHasComeBackToForeground = function* appHasComeBackToForeground() {
|
||||||
const appRoot = yield select(state => state.app.root);
|
const appRoot = yield select(state => state.app.root);
|
||||||
|
@ -15,6 +16,8 @@ const appHasComeBackToForeground = function* appHasComeBackToForeground() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
|
const server = yield select(state => state.server.server);
|
||||||
|
yield localAuthenticate(server);
|
||||||
setBadgeCount();
|
setBadgeCount();
|
||||||
return yield RocketChat.setUserPresenceOnline();
|
return yield RocketChat.setUserPresenceOnline();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
@ -32,25 +35,18 @@ const appHasComeBackToBackground = function* appHasComeBackToBackground() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
return yield RocketChat.setUserPresenceAway();
|
const server = yield select(state => state.server.server);
|
||||||
|
yield saveLastLocalAuthenticationSession(server);
|
||||||
|
|
||||||
|
yield RocketChat.setUserPresenceAway();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
log(e);
|
log(e);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const root = function* root() {
|
const root = function* root() {
|
||||||
yield takeLatest(
|
yield takeLatest(APP_STATE.FOREGROUND, appHasComeBackToForeground);
|
||||||
FOREGROUND,
|
yield takeLatest(APP_STATE.BACKGROUND, appHasComeBackToBackground);
|
||||||
appHasComeBackToForeground
|
|
||||||
);
|
|
||||||
yield takeLatest(
|
|
||||||
BACKGROUND,
|
|
||||||
appHasComeBackToBackground
|
|
||||||
);
|
|
||||||
// yield takeLatest(
|
|
||||||
// INACTIVE,
|
|
||||||
// appHasComeBackToBackground
|
|
||||||
// );
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export default root;
|
export default root;
|
||||||
|
|
|
@ -19,6 +19,8 @@ import { hasNotch, supportSystemTheme } from './utils/deviceInfo';
|
||||||
import { defaultHeader, onNavigationStateChange, cardStyle } from './utils/navigation';
|
import { defaultHeader, onNavigationStateChange, cardStyle } from './utils/navigation';
|
||||||
import RocketChat, { THEME_PREFERENCES_KEY } from './lib/rocketchat';
|
import RocketChat, { THEME_PREFERENCES_KEY } from './lib/rocketchat';
|
||||||
import { ThemeContext } from './theme';
|
import { ThemeContext } from './theme';
|
||||||
|
import { localAuthenticate } from './utils/localAuthentication';
|
||||||
|
import ScreenLockedView from './views/ScreenLockedView';
|
||||||
|
|
||||||
const InsideNavigator = createStackNavigator({
|
const InsideNavigator = createStackNavigator({
|
||||||
ShareListView: {
|
ShareListView: {
|
||||||
|
@ -82,6 +84,7 @@ class Root extends React.Component {
|
||||||
const token = await RNUserDefaults.get(RocketChat.TOKEN_KEY);
|
const token = await RNUserDefaults.get(RocketChat.TOKEN_KEY);
|
||||||
|
|
||||||
if (currentServer && token) {
|
if (currentServer && token) {
|
||||||
|
await localAuthenticate(currentServer);
|
||||||
await Navigation.navigate('InsideStack');
|
await Navigation.navigate('InsideStack');
|
||||||
await RocketChat.shareExtensionInit(currentServer);
|
await RocketChat.shareExtensionInit(currentServer);
|
||||||
} else {
|
} else {
|
||||||
|
@ -120,6 +123,7 @@ class Root extends React.Component {
|
||||||
onNavigationStateChange={onNavigationStateChange}
|
onNavigationStateChange={onNavigationStateChange}
|
||||||
screenProps={{ theme }}
|
screenProps={{ theme }}
|
||||||
/>
|
/>
|
||||||
|
<ScreenLockedView />
|
||||||
</ThemeContext.Provider>
|
</ThemeContext.Provider>
|
||||||
</Provider>
|
</Provider>
|
||||||
</View>
|
</View>
|
||||||
|
|
|
@ -0,0 +1,154 @@
|
||||||
|
import * as LocalAuthentication from 'expo-local-authentication';
|
||||||
|
import moment from 'moment';
|
||||||
|
import RNBootSplash from 'react-native-bootsplash';
|
||||||
|
import AsyncStorage from '@react-native-community/async-storage';
|
||||||
|
import RNUserDefaults from 'rn-user-defaults';
|
||||||
|
import { sha256 } from 'js-sha256';
|
||||||
|
|
||||||
|
import database from '../lib/database';
|
||||||
|
import { isIOS } from './deviceInfo';
|
||||||
|
import EventEmitter from './events';
|
||||||
|
import {
|
||||||
|
LOCAL_AUTHENTICATE_EMITTER, LOCKED_OUT_TIMER_KEY, ATTEMPTS_KEY, PASSCODE_KEY, CHANGE_PASSCODE_EMITTER
|
||||||
|
} from '../constants/localAuthentication';
|
||||||
|
import I18n from '../i18n';
|
||||||
|
|
||||||
|
export const saveLastLocalAuthenticationSession = async(server, serverRecord) => {
|
||||||
|
const serversDB = database.servers;
|
||||||
|
const serversCollection = serversDB.collections.get('servers');
|
||||||
|
await serversDB.action(async() => {
|
||||||
|
try {
|
||||||
|
if (!serverRecord) {
|
||||||
|
serverRecord = await serversCollection.find(server);
|
||||||
|
}
|
||||||
|
await serverRecord.update((record) => {
|
||||||
|
record.lastLocalAuthenticatedSession = new Date();
|
||||||
|
});
|
||||||
|
} catch (e) {
|
||||||
|
// Do nothing
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
export const resetAttempts = () => AsyncStorage.multiRemove([LOCKED_OUT_TIMER_KEY, ATTEMPTS_KEY]);
|
||||||
|
|
||||||
|
const openModal = hasBiometry => new Promise((resolve) => {
|
||||||
|
EventEmitter.emit(LOCAL_AUTHENTICATE_EMITTER, {
|
||||||
|
submit: () => resolve(),
|
||||||
|
hasBiometry
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
const openChangePasscodeModal = ({ force }) => new Promise((resolve, reject) => {
|
||||||
|
EventEmitter.emit(CHANGE_PASSCODE_EMITTER, {
|
||||||
|
submit: passcode => resolve(passcode),
|
||||||
|
cancel: () => reject(),
|
||||||
|
force
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
export const changePasscode = async({ force = false }) => {
|
||||||
|
const passcode = await openChangePasscodeModal({ force });
|
||||||
|
await RNUserDefaults.set(PASSCODE_KEY, sha256(passcode));
|
||||||
|
};
|
||||||
|
|
||||||
|
export const biometryAuth = force => LocalAuthentication.authenticateAsync({
|
||||||
|
disableDeviceFallback: true,
|
||||||
|
cancelLabel: force ? I18n.t('Dont_activate') : I18n.t('Local_authentication_biometry_fallback'),
|
||||||
|
promptMessage: I18n.t('Local_authentication_biometry_title')
|
||||||
|
});
|
||||||
|
|
||||||
|
/*
|
||||||
|
* It'll help us to get the permission to use FaceID
|
||||||
|
* and enable/disable the biometry when user put their first passcode
|
||||||
|
*/
|
||||||
|
const checkBiometry = async(serverRecord) => {
|
||||||
|
const serversDB = database.servers;
|
||||||
|
|
||||||
|
const result = await biometryAuth(true);
|
||||||
|
await serversDB.action(async() => {
|
||||||
|
try {
|
||||||
|
await serverRecord.update((record) => {
|
||||||
|
record.biometry = !!result?.success;
|
||||||
|
});
|
||||||
|
} catch {
|
||||||
|
// Do nothing
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
export const checkHasPasscode = async({ force = true, serverRecord }) => {
|
||||||
|
const storedPasscode = await RNUserDefaults.get(PASSCODE_KEY);
|
||||||
|
if (!storedPasscode) {
|
||||||
|
await changePasscode({ force });
|
||||||
|
await checkBiometry(serverRecord);
|
||||||
|
return Promise.resolve({ newPasscode: true });
|
||||||
|
}
|
||||||
|
return Promise.resolve();
|
||||||
|
};
|
||||||
|
|
||||||
|
export const localAuthenticate = async(server) => {
|
||||||
|
const serversDB = database.servers;
|
||||||
|
const serversCollection = serversDB.collections.get('servers');
|
||||||
|
|
||||||
|
let serverRecord;
|
||||||
|
try {
|
||||||
|
serverRecord = await serversCollection.find(server);
|
||||||
|
} catch (error) {
|
||||||
|
return Promise.reject();
|
||||||
|
}
|
||||||
|
|
||||||
|
// if screen lock is enabled
|
||||||
|
if (serverRecord?.autoLock) {
|
||||||
|
// Make sure splash screen has been hidden
|
||||||
|
RNBootSplash.hide();
|
||||||
|
|
||||||
|
// Check if the app has passcode
|
||||||
|
const result = await checkHasPasscode({ serverRecord });
|
||||||
|
|
||||||
|
// `checkHasPasscode` results newPasscode = true if a passcode has been set
|
||||||
|
if (!result?.newPasscode) {
|
||||||
|
// diff to last authenticated session
|
||||||
|
const diffToLastSession = moment().diff(serverRecord?.lastLocalAuthenticatedSession, 'seconds');
|
||||||
|
|
||||||
|
// if last authenticated session is older than configured auto lock time, authentication is required
|
||||||
|
if (diffToLastSession >= serverRecord?.autoLockTime) {
|
||||||
|
let hasBiometry = false;
|
||||||
|
|
||||||
|
// if biometry is enabled on the app
|
||||||
|
if (serverRecord.biometry) {
|
||||||
|
const isEnrolled = await LocalAuthentication.isEnrolledAsync();
|
||||||
|
hasBiometry = isEnrolled;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Authenticate
|
||||||
|
await openModal(hasBiometry);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
await resetAttempts();
|
||||||
|
await saveLastLocalAuthenticationSession(server, serverRecord);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
export const supportedBiometryLabel = async() => {
|
||||||
|
try {
|
||||||
|
const enrolled = await LocalAuthentication.isEnrolledAsync();
|
||||||
|
|
||||||
|
if (!enrolled) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
const supported = await LocalAuthentication.supportedAuthenticationTypesAsync();
|
||||||
|
|
||||||
|
if (supported.includes(LocalAuthentication.AuthenticationType.FACIAL_RECOGNITION)) {
|
||||||
|
return isIOS ? 'FaceID' : I18n.t('Local_authentication_facial_recognition');
|
||||||
|
}
|
||||||
|
if (supported.includes(LocalAuthentication.AuthenticationType.FINGERPRINT)) {
|
||||||
|
return isIOS ? 'TouchID' : I18n.t('Local_authentication_fingerprint');
|
||||||
|
}
|
||||||
|
} catch {
|
||||||
|
// Do nothing
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
};
|
|
@ -1,4 +1,5 @@
|
||||||
import { Alert, Linking, AsyncStorage } from 'react-native';
|
import { Alert, Linking } from 'react-native';
|
||||||
|
import AsyncStorage from '@react-native-community/async-storage';
|
||||||
|
|
||||||
import { isIOS } from './deviceInfo';
|
import { isIOS } from './deviceInfo';
|
||||||
import I18n from '../i18n';
|
import I18n from '../i18n';
|
||||||
|
|
|
@ -0,0 +1,98 @@
|
||||||
|
import React, { useEffect, useState } from 'react';
|
||||||
|
import { StyleSheet } from 'react-native';
|
||||||
|
import PropTypes from 'prop-types';
|
||||||
|
import Orientation from 'react-native-orientation-locker';
|
||||||
|
import useDeepCompareEffect from 'use-deep-compare-effect';
|
||||||
|
import _ from 'lodash';
|
||||||
|
import Modal from 'react-native-modal';
|
||||||
|
import Touchable from 'react-native-platform-touchable';
|
||||||
|
|
||||||
|
import { withTheme } from '../theme';
|
||||||
|
import { isTablet, hasNotch } from '../utils/deviceInfo';
|
||||||
|
import { TYPE } from '../containers/Passcode/constants';
|
||||||
|
import { PasscodeChoose } from '../containers/Passcode';
|
||||||
|
import EventEmitter from '../utils/events';
|
||||||
|
import { CustomIcon } from '../lib/Icons';
|
||||||
|
import { CHANGE_PASSCODE_EMITTER } from '../constants/localAuthentication';
|
||||||
|
import { themes } from '../constants/colors';
|
||||||
|
|
||||||
|
const styles = StyleSheet.create({
|
||||||
|
modal: {
|
||||||
|
margin: 0
|
||||||
|
},
|
||||||
|
close: {
|
||||||
|
position: 'absolute',
|
||||||
|
top: hasNotch ? 50 : 30,
|
||||||
|
left: 15
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const ChangePasscodeView = React.memo(({ theme }) => {
|
||||||
|
const [visible, setVisible] = useState(false);
|
||||||
|
const [data, setData] = useState({});
|
||||||
|
|
||||||
|
useDeepCompareEffect(() => {
|
||||||
|
if (!_.isEmpty(data)) {
|
||||||
|
setVisible(true);
|
||||||
|
} else {
|
||||||
|
setVisible(false);
|
||||||
|
}
|
||||||
|
}, [data]);
|
||||||
|
|
||||||
|
const showChangePasscode = (args) => {
|
||||||
|
setData(args);
|
||||||
|
};
|
||||||
|
|
||||||
|
const onSubmit = (passcode) => {
|
||||||
|
const { submit } = data;
|
||||||
|
if (submit) {
|
||||||
|
submit(passcode);
|
||||||
|
}
|
||||||
|
setData({});
|
||||||
|
};
|
||||||
|
|
||||||
|
const onCancel = () => {
|
||||||
|
const { cancel } = data;
|
||||||
|
if (cancel) {
|
||||||
|
cancel();
|
||||||
|
}
|
||||||
|
setData({});
|
||||||
|
};
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (!isTablet) {
|
||||||
|
Orientation.lockToPortrait();
|
||||||
|
}
|
||||||
|
EventEmitter.addEventListener(CHANGE_PASSCODE_EMITTER, showChangePasscode);
|
||||||
|
return (() => {
|
||||||
|
if (!isTablet) {
|
||||||
|
Orientation.unlockAllOrientations();
|
||||||
|
}
|
||||||
|
EventEmitter.removeListener(CHANGE_PASSCODE_EMITTER);
|
||||||
|
});
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Modal
|
||||||
|
useNativeDriver
|
||||||
|
isVisible={visible}
|
||||||
|
hideModalContentWhileAnimating
|
||||||
|
style={styles.modal}
|
||||||
|
>
|
||||||
|
<PasscodeChoose theme={theme} type={TYPE.choose} finishProcess={onSubmit} force={data?.force} />
|
||||||
|
{!data?.force
|
||||||
|
? (
|
||||||
|
<Touchable onPress={onCancel} style={styles.close}>
|
||||||
|
<CustomIcon name='cross' color={themes[theme].passcodePrimary} size={30} />
|
||||||
|
</Touchable>
|
||||||
|
)
|
||||||
|
: null}
|
||||||
|
</Modal>
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
ChangePasscodeView.propTypes = {
|
||||||
|
theme: PropTypes.string
|
||||||
|
};
|
||||||
|
|
||||||
|
export default withTheme(ChangePasscodeView);
|
|
@ -206,7 +206,7 @@ class RoomActionsView extends React.Component {
|
||||||
|
|
||||||
const jitsiActions = jitsiEnabled ? [
|
const jitsiActions = jitsiEnabled ? [
|
||||||
{
|
{
|
||||||
icon: 'livechat',
|
icon: 'omnichannel',
|
||||||
name: I18n.t('Voice_call'),
|
name: I18n.t('Voice_call'),
|
||||||
event: () => RocketChat.callJitsi(rid, true),
|
event: () => RocketChat.callJitsi(rid, true),
|
||||||
testID: 'room-actions-voice'
|
testID: 'room-actions-voice'
|
||||||
|
|
|
@ -29,7 +29,7 @@ const Sort = React.memo(({
|
||||||
]}
|
]}
|
||||||
>
|
>
|
||||||
<Text style={[styles.sortToggleText, { color: themes[theme].auxiliaryText }]}>{I18n.t('Sorting_by', { key: I18n.t(sortBy === 'alphabetical' ? 'name' : 'activity') })}</Text>
|
<Text style={[styles.sortToggleText, { color: themes[theme].auxiliaryText }]}>{I18n.t('Sorting_by', { key: I18n.t(sortBy === 'alphabetical' ? 'name' : 'activity') })}</Text>
|
||||||
<CustomIcon style={[styles.sortIcon, { color: themes[theme].auxiliaryText }]} size={22} name='sort1' />
|
<CustomIcon style={[styles.sortIcon, { color: themes[theme].auxiliaryText }]} size={22} name='sort' />
|
||||||
</View>
|
</View>
|
||||||
</Touch>
|
</Touch>
|
||||||
);
|
);
|
||||||
|
|
|
@ -22,8 +22,9 @@ import { withTheme } from '../../theme';
|
||||||
import { KEY_COMMAND, handleCommandSelectServer } from '../../commands';
|
import { KEY_COMMAND, handleCommandSelectServer } from '../../commands';
|
||||||
import { isTablet } from '../../utils/deviceInfo';
|
import { isTablet } from '../../utils/deviceInfo';
|
||||||
import { withSplit } from '../../split';
|
import { withSplit } from '../../split';
|
||||||
import LongPress from '../../utils/longPress';
|
import { localAuthenticate } from '../../utils/localAuthentication';
|
||||||
import { showConfirmationAlert } from '../../utils/info';
|
import { showConfirmationAlert } from '../../utils/info';
|
||||||
|
import LongPress from '../../utils/longPress';
|
||||||
|
|
||||||
const ROW_HEIGHT = 68;
|
const ROW_HEIGHT = 68;
|
||||||
const ANIMATION_DURATION = 200;
|
const ANIMATION_DURATION = 200;
|
||||||
|
@ -148,6 +149,7 @@ class ServerDropdown extends Component {
|
||||||
}, ANIMATION_DURATION);
|
}, ANIMATION_DURATION);
|
||||||
}, ANIMATION_DURATION);
|
}, ANIMATION_DURATION);
|
||||||
} else {
|
} else {
|
||||||
|
await localAuthenticate(server);
|
||||||
selectServerRequest(server);
|
selectServerRequest(server);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -138,7 +138,7 @@ class Sort extends PureComponent {
|
||||||
<View style={[styles.dropdownContainerHeader, { borderColor: themes[theme].separatorColor }]}>
|
<View style={[styles.dropdownContainerHeader, { borderColor: themes[theme].separatorColor }]}>
|
||||||
<View style={styles.sortItemContainer}>
|
<View style={styles.sortItemContainer}>
|
||||||
<Text style={[styles.sortToggleText, { color: themes[theme].auxiliaryText }]}>{I18n.t('Sorting_by', { key: I18n.t(sortBy === 'alphabetical' ? 'name' : 'activity') })}</Text>
|
<Text style={[styles.sortToggleText, { color: themes[theme].auxiliaryText }]}>{I18n.t('Sorting_by', { key: I18n.t(sortBy === 'alphabetical' ? 'name' : 'activity') })}</Text>
|
||||||
<CustomIcon style={[styles.sortIcon, { color: themes[theme].auxiliaryText }]} size={22} name='sort1' />
|
<CustomIcon style={[styles.sortIcon, { color: themes[theme].auxiliaryText }]} size={22} name='sort' />
|
||||||
</View>
|
</View>
|
||||||
</View>
|
</View>
|
||||||
</Touch>
|
</Touch>
|
||||||
|
@ -161,7 +161,7 @@ class Sort extends PureComponent {
|
||||||
<View style={[styles.sortSeparator, { backgroundColor: themes[theme].separatorColor }]} />
|
<View style={[styles.sortSeparator, { backgroundColor: themes[theme].separatorColor }]} />
|
||||||
<SortItemButton onPress={this.toggleGroupByType} theme={theme}>
|
<SortItemButton onPress={this.toggleGroupByType} theme={theme}>
|
||||||
<SortItemContent
|
<SortItemContent
|
||||||
icon='sort1'
|
icon='sort-amount-down'
|
||||||
label='Group_by_type'
|
label='Group_by_type'
|
||||||
checked={groupByType}
|
checked={groupByType}
|
||||||
theme={theme}
|
theme={theme}
|
||||||
|
|
|
@ -208,7 +208,6 @@ class RoomsListView extends React.Component {
|
||||||
EventEmitter.addEventListener(KEY_COMMAND, this.handleCommands);
|
EventEmitter.addEventListener(KEY_COMMAND, this.handleCommands);
|
||||||
}
|
}
|
||||||
Dimensions.addEventListener('change', this.onDimensionsChange);
|
Dimensions.addEventListener('change', this.onDimensionsChange);
|
||||||
Orientation.unlockAllOrientations();
|
|
||||||
this.willFocusListener = navigation.addListener('willFocus', () => {
|
this.willFocusListener = navigation.addListener('willFocus', () => {
|
||||||
// Check if there were changes while not focused (it's set on sCU)
|
// Check if there were changes while not focused (it's set on sCU)
|
||||||
if (this.shouldUpdate) {
|
if (this.shouldUpdate) {
|
||||||
|
@ -217,6 +216,7 @@ class RoomsListView extends React.Component {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
this.didFocusListener = navigation.addListener('didFocus', () => {
|
this.didFocusListener = navigation.addListener('didFocus', () => {
|
||||||
|
Orientation.unlockAllOrientations();
|
||||||
this.animated = true;
|
this.animated = true;
|
||||||
// Check if there were changes while not focused (it's set on sCU)
|
// Check if there were changes while not focused (it's set on sCU)
|
||||||
if (this.shouldUpdate) {
|
if (this.shouldUpdate) {
|
||||||
|
|
|
@ -0,0 +1,268 @@
|
||||||
|
import React from 'react';
|
||||||
|
import PropTypes from 'prop-types';
|
||||||
|
import { StyleSheet, Switch, ScrollView } from 'react-native';
|
||||||
|
import { SafeAreaView } from 'react-navigation';
|
||||||
|
import { connect } from 'react-redux';
|
||||||
|
|
||||||
|
import I18n from '../i18n';
|
||||||
|
import { themedHeader } from '../utils/navigation';
|
||||||
|
import { withTheme } from '../theme';
|
||||||
|
import { themes, SWITCH_TRACK_COLOR } from '../constants/colors';
|
||||||
|
import sharedStyles from './Styles';
|
||||||
|
import StatusBar from '../containers/StatusBar';
|
||||||
|
import Separator from '../containers/Separator';
|
||||||
|
import ListItem from '../containers/ListItem';
|
||||||
|
import ItemInfo from '../containers/ItemInfo';
|
||||||
|
import { CustomIcon } from '../lib/Icons';
|
||||||
|
import database from '../lib/database';
|
||||||
|
import { supportedBiometryLabel, changePasscode, checkHasPasscode } from '../utils/localAuthentication';
|
||||||
|
import { DisclosureImage } from '../containers/DisclosureIndicator';
|
||||||
|
import { DEFAULT_AUTO_LOCK_OPTIONS, DEFAULT_AUTO_LOCK } from '../constants/localAuthentication';
|
||||||
|
|
||||||
|
const styles = StyleSheet.create({
|
||||||
|
listPadding: {
|
||||||
|
paddingVertical: 36
|
||||||
|
},
|
||||||
|
emptySpace: {
|
||||||
|
marginTop: 36
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const DEFAULT_BIOMETRY = true;
|
||||||
|
|
||||||
|
class ScreenLockConfigView extends React.Component {
|
||||||
|
static navigationOptions = ({ screenProps }) => ({
|
||||||
|
title: I18n.t('Screen_lock'),
|
||||||
|
...themedHeader(screenProps.theme)
|
||||||
|
})
|
||||||
|
|
||||||
|
static propTypes = {
|
||||||
|
theme: PropTypes.string,
|
||||||
|
server: PropTypes.string,
|
||||||
|
Force_Screen_Lock: PropTypes.string,
|
||||||
|
Force_Screen_Lock_After: PropTypes.string
|
||||||
|
}
|
||||||
|
|
||||||
|
constructor(props) {
|
||||||
|
super(props);
|
||||||
|
this.state = {
|
||||||
|
autoLock: false,
|
||||||
|
autoLockTime: null,
|
||||||
|
biometry: true,
|
||||||
|
biometryLabel: null
|
||||||
|
};
|
||||||
|
this.init();
|
||||||
|
}
|
||||||
|
|
||||||
|
init = async() => {
|
||||||
|
const { server } = this.props;
|
||||||
|
const serversDB = database.servers;
|
||||||
|
const serversCollection = serversDB.collections.get('servers');
|
||||||
|
try {
|
||||||
|
this.serverRecord = await serversCollection.find(server);
|
||||||
|
this.setState({
|
||||||
|
autoLock: this.serverRecord?.autoLock,
|
||||||
|
autoLockTime: this.serverRecord?.autoLockTime === null ? DEFAULT_AUTO_LOCK : this.serverRecord?.autoLockTime,
|
||||||
|
biometry: this.serverRecord.biometry === null ? DEFAULT_BIOMETRY : this.serverRecord.biometry
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
// Do nothing
|
||||||
|
}
|
||||||
|
|
||||||
|
const biometryLabel = await supportedBiometryLabel();
|
||||||
|
this.setState({ biometryLabel });
|
||||||
|
}
|
||||||
|
|
||||||
|
save = async() => {
|
||||||
|
const { autoLock, autoLockTime, biometry } = this.state;
|
||||||
|
const serversDB = database.servers;
|
||||||
|
await serversDB.action(async() => {
|
||||||
|
await this.serverRecord?.update((record) => {
|
||||||
|
record.autoLock = autoLock;
|
||||||
|
record.autoLockTime = autoLockTime === null ? DEFAULT_AUTO_LOCK : autoLockTime;
|
||||||
|
record.biometry = biometry === null ? DEFAULT_BIOMETRY : biometry;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
changePasscode = async({ force }) => {
|
||||||
|
await changePasscode({ force });
|
||||||
|
}
|
||||||
|
|
||||||
|
toggleAutoLock = () => {
|
||||||
|
this.setState(({ autoLock }) => ({ autoLock: !autoLock, autoLockTime: DEFAULT_AUTO_LOCK }), async() => {
|
||||||
|
const { autoLock } = this.state;
|
||||||
|
if (autoLock) {
|
||||||
|
try {
|
||||||
|
await checkHasPasscode({ force: false, serverRecord: this.serverRecord });
|
||||||
|
} catch {
|
||||||
|
this.toggleAutoLock();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.save();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
toggleBiometry = () => {
|
||||||
|
this.setState(({ biometry }) => ({ biometry: !biometry }), () => this.save());
|
||||||
|
}
|
||||||
|
|
||||||
|
isSelected = (value) => {
|
||||||
|
const { autoLockTime } = this.state;
|
||||||
|
return autoLockTime === value;
|
||||||
|
}
|
||||||
|
|
||||||
|
changeAutoLockTime = (autoLockTime) => {
|
||||||
|
this.setState({ autoLockTime }, () => this.save());
|
||||||
|
}
|
||||||
|
|
||||||
|
renderSeparator = () => {
|
||||||
|
const { theme } = this.props;
|
||||||
|
return <Separator theme={theme} />;
|
||||||
|
}
|
||||||
|
|
||||||
|
renderIcon = () => {
|
||||||
|
const { theme } = this.props;
|
||||||
|
return <CustomIcon name='check' size={20} color={themes[theme].tintColor} />;
|
||||||
|
}
|
||||||
|
|
||||||
|
renderItem = ({ item }) => {
|
||||||
|
const { theme } = this.props;
|
||||||
|
const { title, value, disabled } = item;
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<ListItem
|
||||||
|
title={title}
|
||||||
|
onPress={() => this.changeAutoLockTime(value)}
|
||||||
|
right={this.isSelected(value) ? this.renderIcon : null}
|
||||||
|
theme={theme}
|
||||||
|
disabled={disabled}
|
||||||
|
/>
|
||||||
|
<Separator theme={theme} />
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
renderAutoLockSwitch = () => {
|
||||||
|
const { autoLock } = this.state;
|
||||||
|
const { Force_Screen_Lock } = this.props;
|
||||||
|
return (
|
||||||
|
<Switch
|
||||||
|
value={autoLock}
|
||||||
|
trackColor={SWITCH_TRACK_COLOR}
|
||||||
|
onValueChange={this.toggleAutoLock}
|
||||||
|
disabled={Force_Screen_Lock}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
renderBiometrySwitch = () => {
|
||||||
|
const { biometry } = this.state;
|
||||||
|
return (
|
||||||
|
<Switch
|
||||||
|
value={biometry}
|
||||||
|
trackColor={SWITCH_TRACK_COLOR}
|
||||||
|
onValueChange={this.toggleBiometry}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
renderAutoLockItems = () => {
|
||||||
|
const { autoLock } = this.state;
|
||||||
|
const { theme, Force_Screen_Lock_After, Force_Screen_Lock } = this.props;
|
||||||
|
if (!autoLock) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
let items = DEFAULT_AUTO_LOCK_OPTIONS;
|
||||||
|
if (Force_Screen_Lock && Force_Screen_Lock_After > 0) {
|
||||||
|
items = [{
|
||||||
|
title: I18n.t('After_seconds_set_by_admin', { seconds: Force_Screen_Lock_After }),
|
||||||
|
value: Force_Screen_Lock_After,
|
||||||
|
disabled: true
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<Separator style={styles.emptySpace} theme={theme} />
|
||||||
|
{items.map(item => this.renderItem({ item }))}
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
renderDisclosure = () => {
|
||||||
|
const { theme } = this.props;
|
||||||
|
return <DisclosureImage theme={theme} />;
|
||||||
|
}
|
||||||
|
|
||||||
|
renderBiometry = () => {
|
||||||
|
const { autoLock, biometryLabel } = this.state;
|
||||||
|
const { theme } = this.props;
|
||||||
|
if (!autoLock || !biometryLabel) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<Separator theme={theme} />
|
||||||
|
<ListItem
|
||||||
|
title={I18n.t('Local_authentication_unlock_with_label', { label: biometryLabel })}
|
||||||
|
right={() => this.renderBiometrySwitch()}
|
||||||
|
theme={theme}
|
||||||
|
/>
|
||||||
|
<Separator theme={theme} />
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
render() {
|
||||||
|
const { autoLock } = this.state;
|
||||||
|
const { theme } = this.props;
|
||||||
|
return (
|
||||||
|
<SafeAreaView
|
||||||
|
style={[sharedStyles.container, { backgroundColor: themes[theme].auxiliaryBackground }]}
|
||||||
|
forceInset={{ vertical: 'never' }}
|
||||||
|
>
|
||||||
|
<StatusBar theme={theme} />
|
||||||
|
<ScrollView
|
||||||
|
keyExtractor={item => item.value}
|
||||||
|
contentContainerStyle={styles.listPadding}
|
||||||
|
>
|
||||||
|
<Separator theme={theme} />
|
||||||
|
<ListItem
|
||||||
|
title={I18n.t('Local_authentication_unlock_option')}
|
||||||
|
right={() => this.renderAutoLockSwitch()}
|
||||||
|
theme={theme}
|
||||||
|
/>
|
||||||
|
{autoLock
|
||||||
|
? (
|
||||||
|
<>
|
||||||
|
<Separator theme={theme} />
|
||||||
|
<ListItem
|
||||||
|
title={I18n.t('Local_authentication_change_passcode')}
|
||||||
|
theme={theme}
|
||||||
|
right={this.renderDisclosure}
|
||||||
|
onPress={this.changePasscode}
|
||||||
|
/>
|
||||||
|
</>
|
||||||
|
)
|
||||||
|
: null
|
||||||
|
}
|
||||||
|
<Separator theme={theme} />
|
||||||
|
<ItemInfo
|
||||||
|
info={I18n.t('Local_authentication_info')}
|
||||||
|
theme={theme}
|
||||||
|
/>
|
||||||
|
{this.renderBiometry()}
|
||||||
|
{this.renderAutoLockItems()}
|
||||||
|
</ScrollView>
|
||||||
|
</SafeAreaView>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const mapStateToProps = state => ({
|
||||||
|
server: state.server.server,
|
||||||
|
Force_Screen_Lock: state.settings.Force_Screen_Lock,
|
||||||
|
Force_Screen_Lock_After: state.settings.Force_Screen_Lock_After
|
||||||
|
});
|
||||||
|
|
||||||
|
export default connect(mapStateToProps)(withTheme(ScreenLockConfigView));
|
|
@ -0,0 +1,69 @@
|
||||||
|
import React, { useEffect, useState } from 'react';
|
||||||
|
import PropTypes from 'prop-types';
|
||||||
|
import Modal from 'react-native-modal';
|
||||||
|
import useDeepCompareEffect from 'use-deep-compare-effect';
|
||||||
|
import _ from 'lodash';
|
||||||
|
import Orientation from 'react-native-orientation-locker';
|
||||||
|
|
||||||
|
import { withTheme } from '../theme';
|
||||||
|
import EventEmitter from '../utils/events';
|
||||||
|
import { LOCAL_AUTHENTICATE_EMITTER } from '../constants/localAuthentication';
|
||||||
|
import { isTablet } from '../utils/deviceInfo';
|
||||||
|
import { PasscodeEnter } from '../containers/Passcode';
|
||||||
|
|
||||||
|
const ScreenLockedView = ({ theme }) => {
|
||||||
|
const [visible, setVisible] = useState(false);
|
||||||
|
const [data, setData] = useState({});
|
||||||
|
|
||||||
|
useDeepCompareEffect(() => {
|
||||||
|
if (!_.isEmpty(data)) {
|
||||||
|
setVisible(true);
|
||||||
|
} else {
|
||||||
|
setVisible(false);
|
||||||
|
}
|
||||||
|
}, [data]);
|
||||||
|
|
||||||
|
const showScreenLock = (args) => {
|
||||||
|
setData(args);
|
||||||
|
};
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (!isTablet) {
|
||||||
|
Orientation.lockToPortrait();
|
||||||
|
}
|
||||||
|
EventEmitter.addEventListener(LOCAL_AUTHENTICATE_EMITTER, showScreenLock);
|
||||||
|
return (() => {
|
||||||
|
if (!isTablet) {
|
||||||
|
Orientation.unlockAllOrientations();
|
||||||
|
}
|
||||||
|
EventEmitter.removeListener(LOCAL_AUTHENTICATE_EMITTER);
|
||||||
|
});
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
const onSubmit = () => {
|
||||||
|
const { submit } = data;
|
||||||
|
if (submit) {
|
||||||
|
submit();
|
||||||
|
}
|
||||||
|
setData({});
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Modal
|
||||||
|
useNativeDriver
|
||||||
|
isVisible={visible}
|
||||||
|
hideModalContentWhileAnimating
|
||||||
|
style={{ margin: 0 }}
|
||||||
|
animationIn='fadeIn'
|
||||||
|
animationOut='fadeOut'
|
||||||
|
>
|
||||||
|
<PasscodeEnter theme={theme} hasBiometry={data?.hasBiometry} finishProcess={onSubmit} />
|
||||||
|
</Modal>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
ScreenLockedView.propTypes = {
|
||||||
|
theme: PropTypes.string
|
||||||
|
};
|
||||||
|
|
||||||
|
export default withTheme(ScreenLockedView);
|
|
@ -1,10 +1,11 @@
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import {
|
import {
|
||||||
View, Linking, ScrollView, AsyncStorage, Switch, Text, Share, Clipboard
|
View, Linking, ScrollView, Switch, Share, Clipboard
|
||||||
} from 'react-native';
|
} from 'react-native';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { connect } from 'react-redux';
|
import { connect } from 'react-redux';
|
||||||
import { SafeAreaView } from 'react-navigation';
|
import { SafeAreaView } from 'react-navigation';
|
||||||
|
import AsyncStorage from '@react-native-community/async-storage';
|
||||||
|
|
||||||
import { logout as logoutAction } from '../../actions/login';
|
import { logout as logoutAction } from '../../actions/login';
|
||||||
import { selectServerRequest as selectServerRequestAction } from '../../actions/server';
|
import { selectServerRequest as selectServerRequestAction } from '../../actions/server';
|
||||||
|
@ -13,6 +14,7 @@ import { SWITCH_TRACK_COLOR, themes } from '../../constants/colors';
|
||||||
import { DrawerButton, CloseModalButton } from '../../containers/HeaderButton';
|
import { DrawerButton, CloseModalButton } from '../../containers/HeaderButton';
|
||||||
import StatusBar from '../../containers/StatusBar';
|
import StatusBar from '../../containers/StatusBar';
|
||||||
import ListItem from '../../containers/ListItem';
|
import ListItem from '../../containers/ListItem';
|
||||||
|
import ItemInfo from '../../containers/ItemInfo';
|
||||||
import { DisclosureImage } from '../../containers/DisclosureIndicator';
|
import { DisclosureImage } from '../../containers/DisclosureIndicator';
|
||||||
import Separator from '../../containers/Separator';
|
import Separator from '../../containers/Separator';
|
||||||
import I18n from '../../i18n';
|
import I18n from '../../i18n';
|
||||||
|
@ -53,16 +55,6 @@ SectionSeparator.propTypes = {
|
||||||
theme: PropTypes.string
|
theme: PropTypes.string
|
||||||
};
|
};
|
||||||
|
|
||||||
const ItemInfo = React.memo(({ info, theme }) => (
|
|
||||||
<View style={[styles.infoContainer, { backgroundColor: themes[theme].auxiliaryBackground }]}>
|
|
||||||
<Text style={[styles.infoText, { color: themes[theme].infoText }]}>{info}</Text>
|
|
||||||
</View>
|
|
||||||
));
|
|
||||||
ItemInfo.propTypes = {
|
|
||||||
info: PropTypes.string,
|
|
||||||
theme: PropTypes.string
|
|
||||||
};
|
|
||||||
|
|
||||||
class SettingsView extends React.Component {
|
class SettingsView extends React.Component {
|
||||||
static navigationOptions = ({ navigation, screenProps }) => ({
|
static navigationOptions = ({ navigation, screenProps }) => ({
|
||||||
...themedHeader(screenProps.theme),
|
...themedHeader(screenProps.theme),
|
||||||
|
@ -273,6 +265,14 @@ class SettingsView extends React.Component {
|
||||||
right={this.renderDisclosure}
|
right={this.renderDisclosure}
|
||||||
theme={theme}
|
theme={theme}
|
||||||
/>
|
/>
|
||||||
|
<Separator theme={theme} />
|
||||||
|
<ListItem
|
||||||
|
title={I18n.t('Screen_lock')}
|
||||||
|
showActionIndicator
|
||||||
|
onPress={() => this.navigateToScreen('ScreenLockConfigView')}
|
||||||
|
right={this.renderDisclosure}
|
||||||
|
theme={theme}
|
||||||
|
/>
|
||||||
|
|
||||||
<SectionSeparator theme={theme} />
|
<SectionSeparator theme={theme} />
|
||||||
|
|
||||||
|
|
|
@ -9,12 +9,5 @@ export default StyleSheet.create({
|
||||||
},
|
},
|
||||||
listPadding: {
|
listPadding: {
|
||||||
paddingVertical: 36
|
paddingVertical: 36
|
||||||
},
|
|
||||||
infoContainer: {
|
|
||||||
padding: 15
|
|
||||||
},
|
|
||||||
infoText: {
|
|
||||||
fontSize: 14,
|
|
||||||
...sharedStyles.textRegular
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -130,6 +130,7 @@ target 'ShareRocketChatRN' do
|
||||||
pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
|
pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
|
||||||
|
|
||||||
use_native_modules!
|
use_native_modules!
|
||||||
|
use_unimodules!
|
||||||
end
|
end
|
||||||
|
|
||||||
# Enables Flipper.
|
# Enables Flipper.
|
||||||
|
|
|
@ -28,6 +28,9 @@ PODS:
|
||||||
- UMImageLoaderInterface
|
- UMImageLoaderInterface
|
||||||
- EXKeepAwake (8.1.0):
|
- EXKeepAwake (8.1.0):
|
||||||
- UMCore
|
- UMCore
|
||||||
|
- EXLocalAuthentication (9.0.0):
|
||||||
|
- UMConstantsInterface
|
||||||
|
- UMCore
|
||||||
- EXPermissions (8.1.0):
|
- EXPermissions (8.1.0):
|
||||||
- UMCore
|
- UMCore
|
||||||
- UMPermissionsInterface
|
- UMPermissionsInterface
|
||||||
|
@ -434,6 +437,8 @@ PODS:
|
||||||
- React
|
- React
|
||||||
- RNBootSplash (2.2.4):
|
- RNBootSplash (2.2.4):
|
||||||
- React
|
- React
|
||||||
|
- RNCAsyncStorage (1.9.0):
|
||||||
|
- React
|
||||||
- RNDateTimePicker (2.3.2):
|
- RNDateTimePicker (2.3.2):
|
||||||
- React
|
- React
|
||||||
- RNDeviceInfo (5.5.7):
|
- RNDeviceInfo (5.5.7):
|
||||||
|
@ -453,12 +458,12 @@ PODS:
|
||||||
- React
|
- React
|
||||||
- RNGestureHandler (1.6.1):
|
- RNGestureHandler (1.6.1):
|
||||||
- React
|
- React
|
||||||
- RNImageCropPicker (0.30.0):
|
- RNImageCropPicker (0.28.0):
|
||||||
- React-Core
|
- React-Core
|
||||||
- React-RCTImage
|
- React-RCTImage
|
||||||
- RNImageCropPicker/QBImagePickerController (= 0.30.0)
|
- RNImageCropPicker/QBImagePickerController (= 0.28.0)
|
||||||
- RSKImageCropper
|
- RSKImageCropper
|
||||||
- RNImageCropPicker/QBImagePickerController (0.30.0):
|
- RNImageCropPicker/QBImagePickerController (0.28.0):
|
||||||
- React-Core
|
- React-Core
|
||||||
- React-RCTImage
|
- React-RCTImage
|
||||||
- RSKImageCropper
|
- RSKImageCropper
|
||||||
|
@ -511,6 +516,7 @@ DEPENDENCIES:
|
||||||
- EXHaptics (from `../node_modules/expo-haptics/ios`)
|
- EXHaptics (from `../node_modules/expo-haptics/ios`)
|
||||||
- EXImageLoader (from `../node_modules/expo-image-loader/ios`)
|
- EXImageLoader (from `../node_modules/expo-image-loader/ios`)
|
||||||
- EXKeepAwake (from `../node_modules/expo-keep-awake/ios`)
|
- EXKeepAwake (from `../node_modules/expo-keep-awake/ios`)
|
||||||
|
- EXLocalAuthentication (from `../node_modules/expo-local-authentication/ios`)
|
||||||
- EXPermissions (from `../node_modules/expo-permissions/ios`)
|
- EXPermissions (from `../node_modules/expo-permissions/ios`)
|
||||||
- EXWebBrowser (from `../node_modules/expo-web-browser/ios`)
|
- EXWebBrowser (from `../node_modules/expo-web-browser/ios`)
|
||||||
- FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`)
|
- FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`)
|
||||||
|
@ -576,6 +582,7 @@ DEPENDENCIES:
|
||||||
- rn-fetch-blob (from `../node_modules/rn-fetch-blob`)
|
- rn-fetch-blob (from `../node_modules/rn-fetch-blob`)
|
||||||
- RNAudio (from `../node_modules/react-native-audio`)
|
- RNAudio (from `../node_modules/react-native-audio`)
|
||||||
- RNBootSplash (from `../node_modules/react-native-bootsplash`)
|
- RNBootSplash (from `../node_modules/react-native-bootsplash`)
|
||||||
|
- "RNCAsyncStorage (from `../node_modules/@react-native-community/async-storage`)"
|
||||||
- "RNDateTimePicker (from `../node_modules/@react-native-community/datetimepicker`)"
|
- "RNDateTimePicker (from `../node_modules/@react-native-community/datetimepicker`)"
|
||||||
- RNDeviceInfo (from `../node_modules/react-native-device-info`)
|
- RNDeviceInfo (from `../node_modules/react-native-device-info`)
|
||||||
- RNFastImage (from `../node_modules/react-native-fast-image`)
|
- RNFastImage (from `../node_modules/react-native-fast-image`)
|
||||||
|
@ -653,6 +660,8 @@ EXTERNAL SOURCES:
|
||||||
:path: "../node_modules/expo-image-loader/ios"
|
:path: "../node_modules/expo-image-loader/ios"
|
||||||
EXKeepAwake:
|
EXKeepAwake:
|
||||||
:path: "../node_modules/expo-keep-awake/ios"
|
:path: "../node_modules/expo-keep-awake/ios"
|
||||||
|
EXLocalAuthentication:
|
||||||
|
:path: "../node_modules/expo-local-authentication/ios"
|
||||||
EXPermissions:
|
EXPermissions:
|
||||||
:path: "../node_modules/expo-permissions/ios"
|
:path: "../node_modules/expo-permissions/ios"
|
||||||
EXWebBrowser:
|
EXWebBrowser:
|
||||||
|
@ -739,6 +748,8 @@ EXTERNAL SOURCES:
|
||||||
:path: "../node_modules/react-native-audio"
|
:path: "../node_modules/react-native-audio"
|
||||||
RNBootSplash:
|
RNBootSplash:
|
||||||
:path: "../node_modules/react-native-bootsplash"
|
:path: "../node_modules/react-native-bootsplash"
|
||||||
|
RNCAsyncStorage:
|
||||||
|
:path: "../node_modules/@react-native-community/async-storage"
|
||||||
RNDateTimePicker:
|
RNDateTimePicker:
|
||||||
:path: "../node_modules/@react-native-community/datetimepicker"
|
:path: "../node_modules/@react-native-community/datetimepicker"
|
||||||
RNDeviceInfo:
|
RNDeviceInfo:
|
||||||
|
@ -810,6 +821,7 @@ SPEC CHECKSUMS:
|
||||||
EXHaptics: 013b5065946d4dd7b46ea547b58072d45a206dbd
|
EXHaptics: 013b5065946d4dd7b46ea547b58072d45a206dbd
|
||||||
EXImageLoader: 5ad6896fa1ef2ee814b551873cbf7a7baccc694a
|
EXImageLoader: 5ad6896fa1ef2ee814b551873cbf7a7baccc694a
|
||||||
EXKeepAwake: d045bc2cf1ad5a04f0323cc7c894b95b414042e0
|
EXKeepAwake: d045bc2cf1ad5a04f0323cc7c894b95b414042e0
|
||||||
|
EXLocalAuthentication: bbf1026cc289d729da4f29240dd7a8f6a14e4b20
|
||||||
EXPermissions: 24b97f734ce9172d245a5be38ad9ccfcb6135964
|
EXPermissions: 24b97f734ce9172d245a5be38ad9ccfcb6135964
|
||||||
EXWebBrowser: 5902f99ac5ac551e5c82ff46f13a337b323aa9ea
|
EXWebBrowser: 5902f99ac5ac551e5c82ff46f13a337b323aa9ea
|
||||||
Fabric: 706c8b8098fff96c33c0db69cbf81f9c551d0d74
|
Fabric: 706c8b8098fff96c33c0db69cbf81f9c551d0d74
|
||||||
|
@ -875,12 +887,13 @@ SPEC CHECKSUMS:
|
||||||
rn-fetch-blob: f065bb7ab7fb48dd002629f8bdcb0336602d3cba
|
rn-fetch-blob: f065bb7ab7fb48dd002629f8bdcb0336602d3cba
|
||||||
RNAudio: cae2991f2dccb75163f260b60da8051717b959fa
|
RNAudio: cae2991f2dccb75163f260b60da8051717b959fa
|
||||||
RNBootSplash: 7cb9b4fe7e94177edc0d11010f7631d79db2f5e9
|
RNBootSplash: 7cb9b4fe7e94177edc0d11010f7631d79db2f5e9
|
||||||
|
RNCAsyncStorage: 453cd7c335ec9ba3b877e27d02238956b76f3268
|
||||||
RNDateTimePicker: 4bd49e09f91ca73d69119a9e1173b0d43b82f5e5
|
RNDateTimePicker: 4bd49e09f91ca73d69119a9e1173b0d43b82f5e5
|
||||||
RNDeviceInfo: e2102056bde3ad5d137fd029d8d431510a00486a
|
RNDeviceInfo: e2102056bde3ad5d137fd029d8d431510a00486a
|
||||||
RNFastImage: 35ae972d6727c84ee3f5c6897e07f84d0a3445e9
|
RNFastImage: 35ae972d6727c84ee3f5c6897e07f84d0a3445e9
|
||||||
RNFirebase: 37daa9a346d070f9f6ee1f3b4aaf4c8e3b1d5d1c
|
RNFirebase: 37daa9a346d070f9f6ee1f3b4aaf4c8e3b1d5d1c
|
||||||
RNGestureHandler: 8f09cd560f8d533eb36da5a6c5a843af9f056b38
|
RNGestureHandler: 8f09cd560f8d533eb36da5a6c5a843af9f056b38
|
||||||
RNImageCropPicker: a606d65f71c6c05caa3c850c16fb1ba2a4718608
|
RNImageCropPicker: cf129d17e042ce3e96fb9ada967c28f21f977c82
|
||||||
RNLocalize: b6df30cc25ae736d37874f9bce13351db2f56796
|
RNLocalize: b6df30cc25ae736d37874f9bce13351db2f56796
|
||||||
RNReanimated: 955cf4068714003d2f1a6e2bae3fb1118f359aff
|
RNReanimated: 955cf4068714003d2f1a6e2bae3fb1118f359aff
|
||||||
RNRootView: 895a4813dedeaca82db2fa868ca1c333d790e494
|
RNRootView: 895a4813dedeaca82db2fa868ca1c333d790e494
|
||||||
|
@ -906,6 +919,6 @@ SPEC CHECKSUMS:
|
||||||
Yoga: 3ebccbdd559724312790e7742142d062476b698e
|
Yoga: 3ebccbdd559724312790e7742142d062476b698e
|
||||||
YogaKit: f782866e155069a2cca2517aafea43200b01fd5a
|
YogaKit: f782866e155069a2cca2517aafea43200b01fd5a
|
||||||
|
|
||||||
PODFILE CHECKSUM: 929bf93b227155c1405c8133dd38934cb852bb55
|
PODFILE CHECKSUM: 35d9478dd32cf502959b8efc14411ecf09c66c95
|
||||||
|
|
||||||
COCOAPODS: 1.8.4
|
COCOAPODS: 1.8.4
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/expo-local-authentication/ios/EXLocalAuthentication/EXLocalAuthentication.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/@react-native-community/async-storage/ios/RNCAsyncStorage.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/@react-native-community/async-storage/ios/RNCAsyncStorageDelegate.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/expo-local-authentication/ios/EXLocalAuthentication/EXLocalAuthentication.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/@react-native-community/async-storage/ios/RNCAsyncStorage.h
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../node_modules/@react-native-community/async-storage/ios/RNCAsyncStorageDelegate.h
|
|
@ -0,0 +1,26 @@
|
||||||
|
{
|
||||||
|
"name": "EXLocalAuthentication",
|
||||||
|
"version": "9.0.0",
|
||||||
|
"summary": "Provides an API for FaceID and TouchID (iOS) or the Fingerprint API (Android) to authenticate the user with a face or fingerprint scan.",
|
||||||
|
"description": "Provides an API for FaceID and TouchID (iOS) or the Fingerprint API (Android) to authenticate the user with a face or fingerprint scan.",
|
||||||
|
"license": "MIT",
|
||||||
|
"authors": "650 Industries, Inc.",
|
||||||
|
"homepage": "https://docs.expo.io/versions/latest/sdk/local-authentication/",
|
||||||
|
"platforms": {
|
||||||
|
"ios": "10.0"
|
||||||
|
},
|
||||||
|
"source": {
|
||||||
|
"git": "https://github.com/expo/expo.git"
|
||||||
|
},
|
||||||
|
"source_files": "EXLocalAuthentication/**/*.{h,m}",
|
||||||
|
"preserve_paths": "EXLocalAuthentication/**/*.{h,m}",
|
||||||
|
"requires_arc": true,
|
||||||
|
"dependencies": {
|
||||||
|
"UMCore": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"UMConstantsInterface": [
|
||||||
|
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"name": "RNCAsyncStorage",
|
||||||
|
"version": "1.9.0",
|
||||||
|
"summary": "Asynchronous, persistent, key-value storage system for React Native.",
|
||||||
|
"license": "MIT",
|
||||||
|
"authors": "Krzysztof Borowy <krizzu.dev@gmail.com>",
|
||||||
|
"homepage": "https://github.com/react-native-community/react-native-async-storage#readme",
|
||||||
|
"platforms": {
|
||||||
|
"ios": "9.0",
|
||||||
|
"tvos": "9.2"
|
||||||
|
},
|
||||||
|
"source": {
|
||||||
|
"git": "https://github.com/react-native-community/react-native-async-storage.git",
|
||||||
|
"tag": "v1.9.0"
|
||||||
|
},
|
||||||
|
"source_files": "ios/**/*.{h,m}",
|
||||||
|
"dependencies": {
|
||||||
|
"React": [
|
||||||
|
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "RNImageCropPicker",
|
"name": "RNImageCropPicker",
|
||||||
"version": "0.30.0",
|
"version": "0.28.0",
|
||||||
"summary": "Select single or multiple images, with cropping option",
|
"summary": "Select single or multiple images, with cropping option",
|
||||||
"requires_arc": true,
|
"requires_arc": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
@ -10,7 +10,7 @@
|
||||||
},
|
},
|
||||||
"source": {
|
"source": {
|
||||||
"git": "https://github.com/ivpusic/react-native-image-crop-picker",
|
"git": "https://github.com/ivpusic/react-native-image-crop-picker",
|
||||||
"tag": "v0.30.0"
|
"tag": "v0.28.0"
|
||||||
},
|
},
|
||||||
"source_files": "ios/src/*.{h,m}",
|
"source_files": "ios/src/*.{h,m}",
|
||||||
"platforms": {
|
"platforms": {
|
||||||
|
|
|
@ -28,6 +28,9 @@ PODS:
|
||||||
- UMImageLoaderInterface
|
- UMImageLoaderInterface
|
||||||
- EXKeepAwake (8.1.0):
|
- EXKeepAwake (8.1.0):
|
||||||
- UMCore
|
- UMCore
|
||||||
|
- EXLocalAuthentication (9.0.0):
|
||||||
|
- UMConstantsInterface
|
||||||
|
- UMCore
|
||||||
- EXPermissions (8.1.0):
|
- EXPermissions (8.1.0):
|
||||||
- UMCore
|
- UMCore
|
||||||
- UMPermissionsInterface
|
- UMPermissionsInterface
|
||||||
|
@ -434,6 +437,8 @@ PODS:
|
||||||
- React
|
- React
|
||||||
- RNBootSplash (2.2.4):
|
- RNBootSplash (2.2.4):
|
||||||
- React
|
- React
|
||||||
|
- RNCAsyncStorage (1.9.0):
|
||||||
|
- React
|
||||||
- RNDateTimePicker (2.3.2):
|
- RNDateTimePicker (2.3.2):
|
||||||
- React
|
- React
|
||||||
- RNDeviceInfo (5.5.7):
|
- RNDeviceInfo (5.5.7):
|
||||||
|
@ -453,12 +458,12 @@ PODS:
|
||||||
- React
|
- React
|
||||||
- RNGestureHandler (1.6.1):
|
- RNGestureHandler (1.6.1):
|
||||||
- React
|
- React
|
||||||
- RNImageCropPicker (0.30.0):
|
- RNImageCropPicker (0.28.0):
|
||||||
- React-Core
|
- React-Core
|
||||||
- React-RCTImage
|
- React-RCTImage
|
||||||
- RNImageCropPicker/QBImagePickerController (= 0.30.0)
|
- RNImageCropPicker/QBImagePickerController (= 0.28.0)
|
||||||
- RSKImageCropper
|
- RSKImageCropper
|
||||||
- RNImageCropPicker/QBImagePickerController (0.30.0):
|
- RNImageCropPicker/QBImagePickerController (0.28.0):
|
||||||
- React-Core
|
- React-Core
|
||||||
- React-RCTImage
|
- React-RCTImage
|
||||||
- RSKImageCropper
|
- RSKImageCropper
|
||||||
|
@ -511,6 +516,7 @@ DEPENDENCIES:
|
||||||
- EXHaptics (from `../node_modules/expo-haptics/ios`)
|
- EXHaptics (from `../node_modules/expo-haptics/ios`)
|
||||||
- EXImageLoader (from `../node_modules/expo-image-loader/ios`)
|
- EXImageLoader (from `../node_modules/expo-image-loader/ios`)
|
||||||
- EXKeepAwake (from `../node_modules/expo-keep-awake/ios`)
|
- EXKeepAwake (from `../node_modules/expo-keep-awake/ios`)
|
||||||
|
- EXLocalAuthentication (from `../node_modules/expo-local-authentication/ios`)
|
||||||
- EXPermissions (from `../node_modules/expo-permissions/ios`)
|
- EXPermissions (from `../node_modules/expo-permissions/ios`)
|
||||||
- EXWebBrowser (from `../node_modules/expo-web-browser/ios`)
|
- EXWebBrowser (from `../node_modules/expo-web-browser/ios`)
|
||||||
- FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`)
|
- FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`)
|
||||||
|
@ -576,6 +582,7 @@ DEPENDENCIES:
|
||||||
- rn-fetch-blob (from `../node_modules/rn-fetch-blob`)
|
- rn-fetch-blob (from `../node_modules/rn-fetch-blob`)
|
||||||
- RNAudio (from `../node_modules/react-native-audio`)
|
- RNAudio (from `../node_modules/react-native-audio`)
|
||||||
- RNBootSplash (from `../node_modules/react-native-bootsplash`)
|
- RNBootSplash (from `../node_modules/react-native-bootsplash`)
|
||||||
|
- "RNCAsyncStorage (from `../node_modules/@react-native-community/async-storage`)"
|
||||||
- "RNDateTimePicker (from `../node_modules/@react-native-community/datetimepicker`)"
|
- "RNDateTimePicker (from `../node_modules/@react-native-community/datetimepicker`)"
|
||||||
- RNDeviceInfo (from `../node_modules/react-native-device-info`)
|
- RNDeviceInfo (from `../node_modules/react-native-device-info`)
|
||||||
- RNFastImage (from `../node_modules/react-native-fast-image`)
|
- RNFastImage (from `../node_modules/react-native-fast-image`)
|
||||||
|
@ -653,6 +660,8 @@ EXTERNAL SOURCES:
|
||||||
:path: "../node_modules/expo-image-loader/ios"
|
:path: "../node_modules/expo-image-loader/ios"
|
||||||
EXKeepAwake:
|
EXKeepAwake:
|
||||||
:path: "../node_modules/expo-keep-awake/ios"
|
:path: "../node_modules/expo-keep-awake/ios"
|
||||||
|
EXLocalAuthentication:
|
||||||
|
:path: "../node_modules/expo-local-authentication/ios"
|
||||||
EXPermissions:
|
EXPermissions:
|
||||||
:path: "../node_modules/expo-permissions/ios"
|
:path: "../node_modules/expo-permissions/ios"
|
||||||
EXWebBrowser:
|
EXWebBrowser:
|
||||||
|
@ -739,6 +748,8 @@ EXTERNAL SOURCES:
|
||||||
:path: "../node_modules/react-native-audio"
|
:path: "../node_modules/react-native-audio"
|
||||||
RNBootSplash:
|
RNBootSplash:
|
||||||
:path: "../node_modules/react-native-bootsplash"
|
:path: "../node_modules/react-native-bootsplash"
|
||||||
|
RNCAsyncStorage:
|
||||||
|
:path: "../node_modules/@react-native-community/async-storage"
|
||||||
RNDateTimePicker:
|
RNDateTimePicker:
|
||||||
:path: "../node_modules/@react-native-community/datetimepicker"
|
:path: "../node_modules/@react-native-community/datetimepicker"
|
||||||
RNDeviceInfo:
|
RNDeviceInfo:
|
||||||
|
@ -810,6 +821,7 @@ SPEC CHECKSUMS:
|
||||||
EXHaptics: 013b5065946d4dd7b46ea547b58072d45a206dbd
|
EXHaptics: 013b5065946d4dd7b46ea547b58072d45a206dbd
|
||||||
EXImageLoader: 5ad6896fa1ef2ee814b551873cbf7a7baccc694a
|
EXImageLoader: 5ad6896fa1ef2ee814b551873cbf7a7baccc694a
|
||||||
EXKeepAwake: d045bc2cf1ad5a04f0323cc7c894b95b414042e0
|
EXKeepAwake: d045bc2cf1ad5a04f0323cc7c894b95b414042e0
|
||||||
|
EXLocalAuthentication: bbf1026cc289d729da4f29240dd7a8f6a14e4b20
|
||||||
EXPermissions: 24b97f734ce9172d245a5be38ad9ccfcb6135964
|
EXPermissions: 24b97f734ce9172d245a5be38ad9ccfcb6135964
|
||||||
EXWebBrowser: 5902f99ac5ac551e5c82ff46f13a337b323aa9ea
|
EXWebBrowser: 5902f99ac5ac551e5c82ff46f13a337b323aa9ea
|
||||||
Fabric: 706c8b8098fff96c33c0db69cbf81f9c551d0d74
|
Fabric: 706c8b8098fff96c33c0db69cbf81f9c551d0d74
|
||||||
|
@ -875,12 +887,13 @@ SPEC CHECKSUMS:
|
||||||
rn-fetch-blob: f065bb7ab7fb48dd002629f8bdcb0336602d3cba
|
rn-fetch-blob: f065bb7ab7fb48dd002629f8bdcb0336602d3cba
|
||||||
RNAudio: cae2991f2dccb75163f260b60da8051717b959fa
|
RNAudio: cae2991f2dccb75163f260b60da8051717b959fa
|
||||||
RNBootSplash: 7cb9b4fe7e94177edc0d11010f7631d79db2f5e9
|
RNBootSplash: 7cb9b4fe7e94177edc0d11010f7631d79db2f5e9
|
||||||
|
RNCAsyncStorage: 453cd7c335ec9ba3b877e27d02238956b76f3268
|
||||||
RNDateTimePicker: 4bd49e09f91ca73d69119a9e1173b0d43b82f5e5
|
RNDateTimePicker: 4bd49e09f91ca73d69119a9e1173b0d43b82f5e5
|
||||||
RNDeviceInfo: e2102056bde3ad5d137fd029d8d431510a00486a
|
RNDeviceInfo: e2102056bde3ad5d137fd029d8d431510a00486a
|
||||||
RNFastImage: 35ae972d6727c84ee3f5c6897e07f84d0a3445e9
|
RNFastImage: 35ae972d6727c84ee3f5c6897e07f84d0a3445e9
|
||||||
RNFirebase: 37daa9a346d070f9f6ee1f3b4aaf4c8e3b1d5d1c
|
RNFirebase: 37daa9a346d070f9f6ee1f3b4aaf4c8e3b1d5d1c
|
||||||
RNGestureHandler: 8f09cd560f8d533eb36da5a6c5a843af9f056b38
|
RNGestureHandler: 8f09cd560f8d533eb36da5a6c5a843af9f056b38
|
||||||
RNImageCropPicker: a606d65f71c6c05caa3c850c16fb1ba2a4718608
|
RNImageCropPicker: cf129d17e042ce3e96fb9ada967c28f21f977c82
|
||||||
RNLocalize: b6df30cc25ae736d37874f9bce13351db2f56796
|
RNLocalize: b6df30cc25ae736d37874f9bce13351db2f56796
|
||||||
RNReanimated: 955cf4068714003d2f1a6e2bae3fb1118f359aff
|
RNReanimated: 955cf4068714003d2f1a6e2bae3fb1118f359aff
|
||||||
RNRootView: 895a4813dedeaca82db2fa868ca1c333d790e494
|
RNRootView: 895a4813dedeaca82db2fa868ca1c333d790e494
|
||||||
|
@ -906,6 +919,6 @@ SPEC CHECKSUMS:
|
||||||
Yoga: 3ebccbdd559724312790e7742142d062476b698e
|
Yoga: 3ebccbdd559724312790e7742142d062476b698e
|
||||||
YogaKit: f782866e155069a2cca2517aafea43200b01fd5a
|
YogaKit: f782866e155069a2cca2517aafea43200b01fd5a
|
||||||
|
|
||||||
PODFILE CHECKSUM: 929bf93b227155c1405c8133dd38934cb852bb55
|
PODFILE CHECKSUM: 35d9478dd32cf502959b8efc14411ecf09c66c95
|
||||||
|
|
||||||
COCOAPODS: 1.8.4
|
COCOAPODS: 1.8.4
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,3 +1,4 @@
|
||||||
|
APPLICATION_EXTENSION_API_ONLY = YES
|
||||||
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/EXAV
|
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/EXAV
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/EXAV" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/EXAV" "${PODS_ROOT}/Headers/Public/UMCore" "${PODS_ROOT}/Headers/Public/UMFileSystemInterface" "${PODS_ROOT}/Headers/Public/UMPermissionsInterface"
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/EXAV" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/EXAV" "${PODS_ROOT}/Headers/Public/UMCore" "${PODS_ROOT}/Headers/Public/UMFileSystemInterface" "${PODS_ROOT}/Headers/Public/UMPermissionsInterface"
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
APPLICATION_EXTENSION_API_ONLY = YES
|
||||||
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/EXConstants
|
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/EXConstants
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/EXConstants" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/EXConstants" "${PODS_ROOT}/Headers/Public/UMConstantsInterface" "${PODS_ROOT}/Headers/Public/UMCore"
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/EXConstants" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/EXConstants" "${PODS_ROOT}/Headers/Public/UMConstantsInterface" "${PODS_ROOT}/Headers/Public/UMCore"
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
APPLICATION_EXTENSION_API_ONLY = YES
|
||||||
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/EXFileSystem
|
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/EXFileSystem
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/EXFileSystem" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/EXFileSystem" "${PODS_ROOT}/Headers/Public/UMCore" "${PODS_ROOT}/Headers/Public/UMFileSystemInterface"
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/EXFileSystem" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/EXFileSystem" "${PODS_ROOT}/Headers/Public/UMCore" "${PODS_ROOT}/Headers/Public/UMFileSystemInterface"
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
APPLICATION_EXTENSION_API_ONLY = YES
|
||||||
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/EXHaptics
|
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/EXHaptics
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/EXHaptics" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/EXHaptics" "${PODS_ROOT}/Headers/Public/UMCore"
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/EXHaptics" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/EXHaptics" "${PODS_ROOT}/Headers/Public/UMCore"
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
APPLICATION_EXTENSION_API_ONLY = YES
|
||||||
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/EXImageLoader
|
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/EXImageLoader
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/EXImageLoader" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/DoubleConversion" "${PODS_ROOT}/Headers/Public/EXImageLoader" "${PODS_ROOT}/Headers/Public/React-Core" "${PODS_ROOT}/Headers/Public/React-cxxreact" "${PODS_ROOT}/Headers/Public/React-jsi" "${PODS_ROOT}/Headers/Public/React-jsiexecutor" "${PODS_ROOT}/Headers/Public/React-jsinspector" "${PODS_ROOT}/Headers/Public/UMCore" "${PODS_ROOT}/Headers/Public/UMImageLoaderInterface" "${PODS_ROOT}/Headers/Public/Yoga" "${PODS_ROOT}/Headers/Public/glog"
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/EXImageLoader" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/DoubleConversion" "${PODS_ROOT}/Headers/Public/EXImageLoader" "${PODS_ROOT}/Headers/Public/React-Core" "${PODS_ROOT}/Headers/Public/React-cxxreact" "${PODS_ROOT}/Headers/Public/React-jsi" "${PODS_ROOT}/Headers/Public/React-jsiexecutor" "${PODS_ROOT}/Headers/Public/React-jsinspector" "${PODS_ROOT}/Headers/Public/UMCore" "${PODS_ROOT}/Headers/Public/UMImageLoaderInterface" "${PODS_ROOT}/Headers/Public/Yoga" "${PODS_ROOT}/Headers/Public/glog"
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
APPLICATION_EXTENSION_API_ONLY = YES
|
||||||
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/EXKeepAwake
|
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/EXKeepAwake
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/EXKeepAwake" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/EXKeepAwake" "${PODS_ROOT}/Headers/Public/UMCore"
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/EXKeepAwake" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/EXKeepAwake" "${PODS_ROOT}/Headers/Public/UMCore"
|
||||||
|
|
5
ios/Pods/Target Support Files/EXLocalAuthentication/EXLocalAuthentication-dummy.m
generated
Normal file
5
ios/Pods/Target Support Files/EXLocalAuthentication/EXLocalAuthentication-dummy.m
generated
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
@interface PodsDummy_EXLocalAuthentication : NSObject
|
||||||
|
@end
|
||||||
|
@implementation PodsDummy_EXLocalAuthentication
|
||||||
|
@end
|
12
ios/Pods/Target Support Files/EXLocalAuthentication/EXLocalAuthentication-prefix.pch
generated
Normal file
12
ios/Pods/Target Support Files/EXLocalAuthentication/EXLocalAuthentication-prefix.pch
generated
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
#ifdef __OBJC__
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
#else
|
||||||
|
#ifndef FOUNDATION_EXPORT
|
||||||
|
#if defined(__cplusplus)
|
||||||
|
#define FOUNDATION_EXPORT extern "C"
|
||||||
|
#else
|
||||||
|
#define FOUNDATION_EXPORT extern
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
11
ios/Pods/Target Support Files/EXLocalAuthentication/EXLocalAuthentication.xcconfig
generated
Normal file
11
ios/Pods/Target Support Files/EXLocalAuthentication/EXLocalAuthentication.xcconfig
generated
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
APPLICATION_EXTENSION_API_ONLY = YES
|
||||||
|
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/EXLocalAuthentication
|
||||||
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/EXLocalAuthentication" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/EXLocalAuthentication" "${PODS_ROOT}/Headers/Public/UMConstantsInterface" "${PODS_ROOT}/Headers/Public/UMCore"
|
||||||
|
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||||
|
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||||
|
PODS_ROOT = ${SRCROOT}
|
||||||
|
PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../node_modules/expo-local-authentication/ios
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
|
||||||
|
SKIP_INSTALL = YES
|
||||||
|
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
|
|
@ -1,3 +1,4 @@
|
||||||
|
APPLICATION_EXTENSION_API_ONLY = YES
|
||||||
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/EXPermissions
|
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/EXPermissions
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/EXPermissions" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/EXPermissions" "${PODS_ROOT}/Headers/Public/UMCore" "${PODS_ROOT}/Headers/Public/UMPermissionsInterface"
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/EXPermissions" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/EXPermissions" "${PODS_ROOT}/Headers/Public/UMCore" "${PODS_ROOT}/Headers/Public/UMPermissionsInterface"
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
APPLICATION_EXTENSION_API_ONLY = YES
|
||||||
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/EXWebBrowser
|
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/EXWebBrowser
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/EXWebBrowser" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/EXWebBrowser" "${PODS_ROOT}/Headers/Public/UMCore"
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/EXWebBrowser" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/EXWebBrowser" "${PODS_ROOT}/Headers/Public/UMCore"
|
||||||
|
|
|
@ -3013,6 +3013,30 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
SOFTWARE.
|
SOFTWARE.
|
||||||
|
|
||||||
|
|
||||||
|
## RNCAsyncStorage
|
||||||
|
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2015-present, Facebook, Inc.
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
|
||||||
## RNDateTimePicker
|
## RNDateTimePicker
|
||||||
|
|
||||||
MIT License
|
MIT License
|
||||||
|
|
|
@ -3214,6 +3214,36 @@ SOFTWARE.
|
||||||
<key>FooterText</key>
|
<key>FooterText</key>
|
||||||
<string>MIT License
|
<string>MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2015-present, Facebook, Inc.
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.</string>
|
||||||
|
<key>License</key>
|
||||||
|
<string>MIT</string>
|
||||||
|
<key>Title</key>
|
||||||
|
<string>RNCAsyncStorage</string>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>PSGroupSpecifier</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>FooterText</key>
|
||||||
|
<string>MIT License
|
||||||
|
|
||||||
Copyright (c) 2019 React Native Community
|
Copyright (c) 2019 React Native Community
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
|
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
|
||||||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Crashlytics/iOS" "${PODS_ROOT}/Fabric/iOS" "${PODS_ROOT}/FirebaseAnalytics/Frameworks" "${PODS_ROOT}/GoogleAppMeasurement/Frameworks" "${PODS_ROOT}/JitsiMeetSDK/Frameworks"
|
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Crashlytics/iOS" "${PODS_ROOT}/Fabric/iOS" "${PODS_ROOT}/FirebaseAnalytics/Frameworks" "${PODS_ROOT}/GoogleAppMeasurement/Frameworks" "${PODS_ROOT}/JitsiMeetSDK/Frameworks"
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) SD_WEBP=1 $(inherited) PB_FIELD_32BIT=1 PB_NO_PACKED_STRUCTS=1 PB_ENABLE_MALLOC=1
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) SD_WEBP=1 $(inherited) PB_FIELD_32BIT=1 PB_NO_PACKED_STRUCTS=1 PB_ENABLE_MALLOC=1
|
||||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BugsnagReactNative" "${PODS_ROOT}/Headers/Public/CocoaAsyncSocket" "${PODS_ROOT}/Headers/Public/CocoaLibEvent" "${PODS_ROOT}/Headers/Public/DoubleConversion" "${PODS_ROOT}/Headers/Public/EXAV" "${PODS_ROOT}/Headers/Public/EXConstants" "${PODS_ROOT}/Headers/Public/EXFileSystem" "${PODS_ROOT}/Headers/Public/EXHaptics" "${PODS_ROOT}/Headers/Public/EXImageLoader" "${PODS_ROOT}/Headers/Public/EXKeepAwake" "${PODS_ROOT}/Headers/Public/EXPermissions" "${PODS_ROOT}/Headers/Public/EXWebBrowser" "${PODS_ROOT}/Headers/Public/FBLazyVector" "${PODS_ROOT}/Headers/Public/FBReactNativeSpec" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseCore" "${PODS_ROOT}/Headers/Public/FirebaseCoreDiagnostics" "${PODS_ROOT}/Headers/Public/FirebaseCoreDiagnosticsInterop" "${PODS_ROOT}/Headers/Public/FirebaseInstallations" "${PODS_ROOT}/Headers/Public/Flipper" "${PODS_ROOT}/Headers/Public/Flipper-DoubleConversion" "${PODS_ROOT}/Headers/Public/Flipper-Folly" "${PODS_ROOT}/Headers/Public/Flipper-Glog" "${PODS_ROOT}/Headers/Public/Flipper-PeerTalk" "${PODS_ROOT}/Headers/Public/Flipper-RSocket" "${PODS_ROOT}/Headers/Public/FlipperKit" "${PODS_ROOT}/Headers/Public/GoogleDataTransport" "${PODS_ROOT}/Headers/Public/GoogleDataTransportCCTSupport" "${PODS_ROOT}/Headers/Public/GoogleUtilities" "${PODS_ROOT}/Headers/Public/KeyCommands" "${PODS_ROOT}/Headers/Public/OpenSSL-Universal" "${PODS_ROOT}/Headers/Public/PromisesObjC" "${PODS_ROOT}/Headers/Public/RCTRequired" "${PODS_ROOT}/Headers/Public/RCTTypeSafety" "${PODS_ROOT}/Headers/Public/RNAudio" "${PODS_ROOT}/Headers/Public/RNBootSplash" "${PODS_ROOT}/Headers/Public/RNDateTimePicker" "${PODS_ROOT}/Headers/Public/RNDeviceInfo" "${PODS_ROOT}/Headers/Public/RNFastImage" "${PODS_ROOT}/Headers/Public/RNFirebase" "${PODS_ROOT}/Headers/Public/RNGestureHandler" "${PODS_ROOT}/Headers/Public/RNImageCropPicker" "${PODS_ROOT}/Headers/Public/RNLocalize" "${PODS_ROOT}/Headers/Public/RNReanimated" "${PODS_ROOT}/Headers/Public/RNRootView" "${PODS_ROOT}/Headers/Public/RNScreens" "${PODS_ROOT}/Headers/Public/RNUserDefaults" "${PODS_ROOT}/Headers/Public/RNVectorIcons" "${PODS_ROOT}/Headers/Public/RSKImageCropper" "${PODS_ROOT}/Headers/Public/React-Core" "${PODS_ROOT}/Headers/Public/React-RCTText" "${PODS_ROOT}/Headers/Public/React-cxxreact" "${PODS_ROOT}/Headers/Public/React-jsi" "${PODS_ROOT}/Headers/Public/React-jsiexecutor" "${PODS_ROOT}/Headers/Public/React-jsinspector" "${PODS_ROOT}/Headers/Public/ReactCommon" "${PODS_ROOT}/Headers/Public/ReactNativeART" "${PODS_ROOT}/Headers/Public/ReactNativeKeyboardInput" "${PODS_ROOT}/Headers/Public/ReactNativeKeyboardTrackingView" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/SDWebImageWebPCoder" "${PODS_ROOT}/Headers/Public/UMAppLoader" "${PODS_ROOT}/Headers/Public/UMBarCodeScannerInterface" "${PODS_ROOT}/Headers/Public/UMCameraInterface" "${PODS_ROOT}/Headers/Public/UMConstantsInterface" "${PODS_ROOT}/Headers/Public/UMCore" "${PODS_ROOT}/Headers/Public/UMFaceDetectorInterface" "${PODS_ROOT}/Headers/Public/UMFileSystemInterface" "${PODS_ROOT}/Headers/Public/UMFontInterface" "${PODS_ROOT}/Headers/Public/UMImageLoaderInterface" "${PODS_ROOT}/Headers/Public/UMPermissionsInterface" "${PODS_ROOT}/Headers/Public/UMReactNativeAdapter" "${PODS_ROOT}/Headers/Public/UMSensorsInterface" "${PODS_ROOT}/Headers/Public/UMTaskManagerInterface" "${PODS_ROOT}/Headers/Public/Yoga" "${PODS_ROOT}/Headers/Public/YogaKit" "${PODS_ROOT}/Headers/Public/glog" "${PODS_ROOT}/Headers/Public/libwebp" "${PODS_ROOT}/Headers/Public/nanopb" "${PODS_ROOT}/Headers/Public/react-native-appearance" "${PODS_ROOT}/Headers/Public/react-native-background-timer" "${PODS_ROOT}/Headers/Public/react-native-cameraroll" "${PODS_ROOT}/Headers/Public/react-native-document-picker" "${PODS_ROOT}/Headers/Public/react-native-jitsi-meet" "${PODS_ROOT}/Headers/Public/react-native-notifications" "${PODS_ROOT}/Headers/Public/react-native-orientation-locker" "${PODS_ROOT}/Headers/Public/react-native-slider" "${PODS_ROOT}/Headers/Public/react-native-webview" "${PODS_ROOT}/Headers/Public/rn-extensions-share" "${PODS_ROOT}/Headers/Public/rn-fetch-blob" $(inherited) ${PODS_ROOT}/Firebase/CoreOnly/Sources "${PODS_TARGET_SRCROOT}/Sources/FBLPromises/include" "$(PODS_ROOT)/Headers/Private/React-Core"
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BugsnagReactNative" "${PODS_ROOT}/Headers/Public/CocoaAsyncSocket" "${PODS_ROOT}/Headers/Public/CocoaLibEvent" "${PODS_ROOT}/Headers/Public/DoubleConversion" "${PODS_ROOT}/Headers/Public/EXAV" "${PODS_ROOT}/Headers/Public/EXConstants" "${PODS_ROOT}/Headers/Public/EXFileSystem" "${PODS_ROOT}/Headers/Public/EXHaptics" "${PODS_ROOT}/Headers/Public/EXImageLoader" "${PODS_ROOT}/Headers/Public/EXKeepAwake" "${PODS_ROOT}/Headers/Public/EXLocalAuthentication" "${PODS_ROOT}/Headers/Public/EXPermissions" "${PODS_ROOT}/Headers/Public/EXWebBrowser" "${PODS_ROOT}/Headers/Public/FBLazyVector" "${PODS_ROOT}/Headers/Public/FBReactNativeSpec" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseCore" "${PODS_ROOT}/Headers/Public/FirebaseCoreDiagnostics" "${PODS_ROOT}/Headers/Public/FirebaseCoreDiagnosticsInterop" "${PODS_ROOT}/Headers/Public/FirebaseInstallations" "${PODS_ROOT}/Headers/Public/Flipper" "${PODS_ROOT}/Headers/Public/Flipper-DoubleConversion" "${PODS_ROOT}/Headers/Public/Flipper-Folly" "${PODS_ROOT}/Headers/Public/Flipper-Glog" "${PODS_ROOT}/Headers/Public/Flipper-PeerTalk" "${PODS_ROOT}/Headers/Public/Flipper-RSocket" "${PODS_ROOT}/Headers/Public/FlipperKit" "${PODS_ROOT}/Headers/Public/GoogleDataTransport" "${PODS_ROOT}/Headers/Public/GoogleDataTransportCCTSupport" "${PODS_ROOT}/Headers/Public/GoogleUtilities" "${PODS_ROOT}/Headers/Public/KeyCommands" "${PODS_ROOT}/Headers/Public/OpenSSL-Universal" "${PODS_ROOT}/Headers/Public/PromisesObjC" "${PODS_ROOT}/Headers/Public/RCTRequired" "${PODS_ROOT}/Headers/Public/RCTTypeSafety" "${PODS_ROOT}/Headers/Public/RNAudio" "${PODS_ROOT}/Headers/Public/RNBootSplash" "${PODS_ROOT}/Headers/Public/RNCAsyncStorage" "${PODS_ROOT}/Headers/Public/RNDateTimePicker" "${PODS_ROOT}/Headers/Public/RNDeviceInfo" "${PODS_ROOT}/Headers/Public/RNFastImage" "${PODS_ROOT}/Headers/Public/RNFirebase" "${PODS_ROOT}/Headers/Public/RNGestureHandler" "${PODS_ROOT}/Headers/Public/RNImageCropPicker" "${PODS_ROOT}/Headers/Public/RNLocalize" "${PODS_ROOT}/Headers/Public/RNReanimated" "${PODS_ROOT}/Headers/Public/RNRootView" "${PODS_ROOT}/Headers/Public/RNScreens" "${PODS_ROOT}/Headers/Public/RNUserDefaults" "${PODS_ROOT}/Headers/Public/RNVectorIcons" "${PODS_ROOT}/Headers/Public/RSKImageCropper" "${PODS_ROOT}/Headers/Public/React-Core" "${PODS_ROOT}/Headers/Public/React-RCTText" "${PODS_ROOT}/Headers/Public/React-cxxreact" "${PODS_ROOT}/Headers/Public/React-jsi" "${PODS_ROOT}/Headers/Public/React-jsiexecutor" "${PODS_ROOT}/Headers/Public/React-jsinspector" "${PODS_ROOT}/Headers/Public/ReactCommon" "${PODS_ROOT}/Headers/Public/ReactNativeART" "${PODS_ROOT}/Headers/Public/ReactNativeKeyboardInput" "${PODS_ROOT}/Headers/Public/ReactNativeKeyboardTrackingView" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/SDWebImageWebPCoder" "${PODS_ROOT}/Headers/Public/UMAppLoader" "${PODS_ROOT}/Headers/Public/UMBarCodeScannerInterface" "${PODS_ROOT}/Headers/Public/UMCameraInterface" "${PODS_ROOT}/Headers/Public/UMConstantsInterface" "${PODS_ROOT}/Headers/Public/UMCore" "${PODS_ROOT}/Headers/Public/UMFaceDetectorInterface" "${PODS_ROOT}/Headers/Public/UMFileSystemInterface" "${PODS_ROOT}/Headers/Public/UMFontInterface" "${PODS_ROOT}/Headers/Public/UMImageLoaderInterface" "${PODS_ROOT}/Headers/Public/UMPermissionsInterface" "${PODS_ROOT}/Headers/Public/UMReactNativeAdapter" "${PODS_ROOT}/Headers/Public/UMSensorsInterface" "${PODS_ROOT}/Headers/Public/UMTaskManagerInterface" "${PODS_ROOT}/Headers/Public/Yoga" "${PODS_ROOT}/Headers/Public/YogaKit" "${PODS_ROOT}/Headers/Public/glog" "${PODS_ROOT}/Headers/Public/libwebp" "${PODS_ROOT}/Headers/Public/nanopb" "${PODS_ROOT}/Headers/Public/react-native-appearance" "${PODS_ROOT}/Headers/Public/react-native-background-timer" "${PODS_ROOT}/Headers/Public/react-native-cameraroll" "${PODS_ROOT}/Headers/Public/react-native-document-picker" "${PODS_ROOT}/Headers/Public/react-native-jitsi-meet" "${PODS_ROOT}/Headers/Public/react-native-notifications" "${PODS_ROOT}/Headers/Public/react-native-orientation-locker" "${PODS_ROOT}/Headers/Public/react-native-slider" "${PODS_ROOT}/Headers/Public/react-native-webview" "${PODS_ROOT}/Headers/Public/rn-extensions-share" "${PODS_ROOT}/Headers/Public/rn-fetch-blob" $(inherited) ${PODS_ROOT}/Firebase/CoreOnly/Sources "${PODS_TARGET_SRCROOT}/Sources/FBLPromises/include" "$(PODS_ROOT)/Headers/Private/React-Core"
|
||||||
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
|
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
|
||||||
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BugsnagReactNative" "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket" "${PODS_CONFIGURATION_BUILD_DIR}/DoubleConversion" "${PODS_CONFIGURATION_BUILD_DIR}/EXAV" "${PODS_CONFIGURATION_BUILD_DIR}/EXConstants" "${PODS_CONFIGURATION_BUILD_DIR}/EXFileSystem" "${PODS_CONFIGURATION_BUILD_DIR}/EXHaptics" "${PODS_CONFIGURATION_BUILD_DIR}/EXImageLoader" "${PODS_CONFIGURATION_BUILD_DIR}/EXKeepAwake" "${PODS_CONFIGURATION_BUILD_DIR}/EXPermissions" "${PODS_CONFIGURATION_BUILD_DIR}/EXWebBrowser" "${PODS_CONFIGURATION_BUILD_DIR}/FBReactNativeSpec" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreDiagnostics" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstallations" "${PODS_CONFIGURATION_BUILD_DIR}/Flipper" "${PODS_CONFIGURATION_BUILD_DIR}/Flipper-DoubleConversion" "${PODS_CONFIGURATION_BUILD_DIR}/Flipper-Folly" "${PODS_CONFIGURATION_BUILD_DIR}/Flipper-Glog" "${PODS_CONFIGURATION_BUILD_DIR}/Flipper-PeerTalk" "${PODS_CONFIGURATION_BUILD_DIR}/Flipper-RSocket" "${PODS_CONFIGURATION_BUILD_DIR}/FlipperKit" "${PODS_CONFIGURATION_BUILD_DIR}/Folly" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransportCCTSupport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/KeyCommands" "${PODS_CONFIGURATION_BUILD_DIR}/PromisesObjC" "${PODS_CONFIGURATION_BUILD_DIR}/RCTTypeSafety" "${PODS_CONFIGURATION_BUILD_DIR}/RNAudio" "${PODS_CONFIGURATION_BUILD_DIR}/RNBootSplash" "${PODS_CONFIGURATION_BUILD_DIR}/RNDateTimePicker" "${PODS_CONFIGURATION_BUILD_DIR}/RNDeviceInfo" "${PODS_CONFIGURATION_BUILD_DIR}/RNFastImage" "${PODS_CONFIGURATION_BUILD_DIR}/RNFirebase" "${PODS_CONFIGURATION_BUILD_DIR}/RNGestureHandler" "${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker" "${PODS_CONFIGURATION_BUILD_DIR}/RNLocalize" "${PODS_CONFIGURATION_BUILD_DIR}/RNReanimated" "${PODS_CONFIGURATION_BUILD_DIR}/RNRootView" "${PODS_CONFIGURATION_BUILD_DIR}/RNScreens" "${PODS_CONFIGURATION_BUILD_DIR}/RNUserDefaults" "${PODS_CONFIGURATION_BUILD_DIR}/RNVectorIcons" "${PODS_CONFIGURATION_BUILD_DIR}/RSKImageCropper" "${PODS_CONFIGURATION_BUILD_DIR}/React-Core" "${PODS_CONFIGURATION_BUILD_DIR}/React-CoreModules" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTAnimation" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTBlob" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTImage" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTLinking" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTNetwork" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTSettings" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTText" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTVibration" "${PODS_CONFIGURATION_BUILD_DIR}/React-cxxreact" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsi" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsiexecutor" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsinspector" "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon" "${PODS_CONFIGURATION_BUILD_DIR}/ReactNativeART" "${PODS_CONFIGURATION_BUILD_DIR}/ReactNativeKeyboardInput" "${PODS_CONFIGURATION_BUILD_DIR}/ReactNativeKeyboardTrackingView" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder" "${PODS_CONFIGURATION_BUILD_DIR}/UMAppLoader" "${PODS_CONFIGURATION_BUILD_DIR}/UMCore" "${PODS_CONFIGURATION_BUILD_DIR}/UMPermissionsInterface" "${PODS_CONFIGURATION_BUILD_DIR}/UMReactNativeAdapter" "${PODS_CONFIGURATION_BUILD_DIR}/Yoga" "${PODS_CONFIGURATION_BUILD_DIR}/YogaKit" "${PODS_CONFIGURATION_BUILD_DIR}/glog" "${PODS_CONFIGURATION_BUILD_DIR}/libwebp" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-appearance" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-background-timer" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-cameraroll" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-document-picker" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-jitsi-meet" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-notifications" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-orientation-locker" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-slider" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-webview" "${PODS_CONFIGURATION_BUILD_DIR}/rn-extensions-share" "${PODS_CONFIGURATION_BUILD_DIR}/rn-fetch-blob" "${PODS_ROOT}/CocoaLibEvent/lib" "${PODS_ROOT}/OpenSSL-Universal/ios/lib"
|
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BugsnagReactNative" "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket" "${PODS_CONFIGURATION_BUILD_DIR}/DoubleConversion" "${PODS_CONFIGURATION_BUILD_DIR}/EXAV" "${PODS_CONFIGURATION_BUILD_DIR}/EXConstants" "${PODS_CONFIGURATION_BUILD_DIR}/EXFileSystem" "${PODS_CONFIGURATION_BUILD_DIR}/EXHaptics" "${PODS_CONFIGURATION_BUILD_DIR}/EXImageLoader" "${PODS_CONFIGURATION_BUILD_DIR}/EXKeepAwake" "${PODS_CONFIGURATION_BUILD_DIR}/EXLocalAuthentication" "${PODS_CONFIGURATION_BUILD_DIR}/EXPermissions" "${PODS_CONFIGURATION_BUILD_DIR}/EXWebBrowser" "${PODS_CONFIGURATION_BUILD_DIR}/FBReactNativeSpec" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreDiagnostics" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstallations" "${PODS_CONFIGURATION_BUILD_DIR}/Flipper" "${PODS_CONFIGURATION_BUILD_DIR}/Flipper-DoubleConversion" "${PODS_CONFIGURATION_BUILD_DIR}/Flipper-Folly" "${PODS_CONFIGURATION_BUILD_DIR}/Flipper-Glog" "${PODS_CONFIGURATION_BUILD_DIR}/Flipper-PeerTalk" "${PODS_CONFIGURATION_BUILD_DIR}/Flipper-RSocket" "${PODS_CONFIGURATION_BUILD_DIR}/FlipperKit" "${PODS_CONFIGURATION_BUILD_DIR}/Folly" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransportCCTSupport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/KeyCommands" "${PODS_CONFIGURATION_BUILD_DIR}/PromisesObjC" "${PODS_CONFIGURATION_BUILD_DIR}/RCTTypeSafety" "${PODS_CONFIGURATION_BUILD_DIR}/RNAudio" "${PODS_CONFIGURATION_BUILD_DIR}/RNBootSplash" "${PODS_CONFIGURATION_BUILD_DIR}/RNCAsyncStorage" "${PODS_CONFIGURATION_BUILD_DIR}/RNDateTimePicker" "${PODS_CONFIGURATION_BUILD_DIR}/RNDeviceInfo" "${PODS_CONFIGURATION_BUILD_DIR}/RNFastImage" "${PODS_CONFIGURATION_BUILD_DIR}/RNFirebase" "${PODS_CONFIGURATION_BUILD_DIR}/RNGestureHandler" "${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker" "${PODS_CONFIGURATION_BUILD_DIR}/RNLocalize" "${PODS_CONFIGURATION_BUILD_DIR}/RNReanimated" "${PODS_CONFIGURATION_BUILD_DIR}/RNRootView" "${PODS_CONFIGURATION_BUILD_DIR}/RNScreens" "${PODS_CONFIGURATION_BUILD_DIR}/RNUserDefaults" "${PODS_CONFIGURATION_BUILD_DIR}/RNVectorIcons" "${PODS_CONFIGURATION_BUILD_DIR}/RSKImageCropper" "${PODS_CONFIGURATION_BUILD_DIR}/React-Core" "${PODS_CONFIGURATION_BUILD_DIR}/React-CoreModules" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTAnimation" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTBlob" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTImage" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTLinking" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTNetwork" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTSettings" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTText" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTVibration" "${PODS_CONFIGURATION_BUILD_DIR}/React-cxxreact" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsi" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsiexecutor" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsinspector" "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon" "${PODS_CONFIGURATION_BUILD_DIR}/ReactNativeART" "${PODS_CONFIGURATION_BUILD_DIR}/ReactNativeKeyboardInput" "${PODS_CONFIGURATION_BUILD_DIR}/ReactNativeKeyboardTrackingView" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder" "${PODS_CONFIGURATION_BUILD_DIR}/UMAppLoader" "${PODS_CONFIGURATION_BUILD_DIR}/UMCore" "${PODS_CONFIGURATION_BUILD_DIR}/UMPermissionsInterface" "${PODS_CONFIGURATION_BUILD_DIR}/UMReactNativeAdapter" "${PODS_CONFIGURATION_BUILD_DIR}/Yoga" "${PODS_CONFIGURATION_BUILD_DIR}/YogaKit" "${PODS_CONFIGURATION_BUILD_DIR}/glog" "${PODS_CONFIGURATION_BUILD_DIR}/libwebp" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-appearance" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-background-timer" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-cameraroll" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-document-picker" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-jitsi-meet" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-notifications" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-orientation-locker" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-slider" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-webview" "${PODS_CONFIGURATION_BUILD_DIR}/rn-extensions-share" "${PODS_CONFIGURATION_BUILD_DIR}/rn-fetch-blob" "${PODS_ROOT}/CocoaLibEvent/lib" "${PODS_ROOT}/OpenSSL-Universal/ios/lib"
|
||||||
OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/YogaKit/YogaKit.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/FlipperKit/FlipperKit.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/yoga/Yoga.modulemap"
|
OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/YogaKit/YogaKit.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/FlipperKit/FlipperKit.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/yoga/Yoga.modulemap"
|
||||||
OTHER_LDFLAGS = $(inherited) -ObjC -l"BugsnagReactNative" -l"CocoaAsyncSocket" -l"DoubleConversion" -l"EXAV" -l"EXConstants" -l"EXFileSystem" -l"EXHaptics" -l"EXImageLoader" -l"EXKeepAwake" -l"EXPermissions" -l"EXWebBrowser" -l"FBReactNativeSpec" -l"FirebaseCore" -l"FirebaseCoreDiagnostics" -l"FirebaseInstallations" -l"Flipper" -l"Flipper-DoubleConversion" -l"Flipper-Folly" -l"Flipper-Glog" -l"Flipper-PeerTalk" -l"Flipper-RSocket" -l"FlipperKit" -l"Folly" -l"GoogleDataTransport" -l"GoogleDataTransportCCTSupport" -l"GoogleUtilities" -l"KeyCommands" -l"PromisesObjC" -l"RCTTypeSafety" -l"RNAudio" -l"RNBootSplash" -l"RNDateTimePicker" -l"RNDeviceInfo" -l"RNFastImage" -l"RNFirebase" -l"RNGestureHandler" -l"RNImageCropPicker" -l"RNLocalize" -l"RNReanimated" -l"RNRootView" -l"RNScreens" -l"RNUserDefaults" -l"RNVectorIcons" -l"RSKImageCropper" -l"React-Core" -l"React-CoreModules" -l"React-RCTAnimation" -l"React-RCTBlob" -l"React-RCTImage" -l"React-RCTLinking" -l"React-RCTNetwork" -l"React-RCTSettings" -l"React-RCTText" -l"React-RCTVibration" -l"React-cxxreact" -l"React-jsi" -l"React-jsiexecutor" -l"React-jsinspector" -l"ReactCommon" -l"ReactNativeART" -l"ReactNativeKeyboardInput" -l"ReactNativeKeyboardTrackingView" -l"SDWebImage" -l"SDWebImageWebPCoder" -l"UMAppLoader" -l"UMCore" -l"UMPermissionsInterface" -l"UMReactNativeAdapter" -l"Yoga" -l"YogaKit" -l"c++" -l"crypto" -l"event" -l"event_core" -l"event_extra" -l"event_pthreads" -l"glog" -l"libwebp" -l"nanopb" -l"react-native-appearance" -l"react-native-background-timer" -l"react-native-cameraroll" -l"react-native-document-picker" -l"react-native-jitsi-meet" -l"react-native-notifications" -l"react-native-orientation-locker" -l"react-native-slider" -l"react-native-webview" -l"rn-extensions-share" -l"rn-fetch-blob" -l"sqlite3" -l"ssl" -l"stdc++" -l"z" -framework "AVFoundation" -framework "AudioToolbox" -framework "CFNetwork" -framework "CoreTelephony" -framework "Crashlytics" -framework "FIRAnalyticsConnector" -framework "Fabric" -framework "FirebaseAnalytics" -framework "Foundation" -framework "GoogleAppMeasurement" -framework "ImageIO" -framework "JavaScriptCore" -framework "JitsiMeet" -framework "MessageUI" -framework "MobileCoreServices" -framework "Photos" -framework "QuartzCore" -framework "Security" -framework "StoreKit" -framework "SystemConfiguration" -framework "UIKit" -framework "WebRTC"
|
OTHER_LDFLAGS = $(inherited) -ObjC -l"BugsnagReactNative" -l"CocoaAsyncSocket" -l"DoubleConversion" -l"EXAV" -l"EXConstants" -l"EXFileSystem" -l"EXHaptics" -l"EXImageLoader" -l"EXKeepAwake" -l"EXLocalAuthentication" -l"EXPermissions" -l"EXWebBrowser" -l"FBReactNativeSpec" -l"FirebaseCore" -l"FirebaseCoreDiagnostics" -l"FirebaseInstallations" -l"Flipper" -l"Flipper-DoubleConversion" -l"Flipper-Folly" -l"Flipper-Glog" -l"Flipper-PeerTalk" -l"Flipper-RSocket" -l"FlipperKit" -l"Folly" -l"GoogleDataTransport" -l"GoogleDataTransportCCTSupport" -l"GoogleUtilities" -l"KeyCommands" -l"PromisesObjC" -l"RCTTypeSafety" -l"RNAudio" -l"RNBootSplash" -l"RNCAsyncStorage" -l"RNDateTimePicker" -l"RNDeviceInfo" -l"RNFastImage" -l"RNFirebase" -l"RNGestureHandler" -l"RNImageCropPicker" -l"RNLocalize" -l"RNReanimated" -l"RNRootView" -l"RNScreens" -l"RNUserDefaults" -l"RNVectorIcons" -l"RSKImageCropper" -l"React-Core" -l"React-CoreModules" -l"React-RCTAnimation" -l"React-RCTBlob" -l"React-RCTImage" -l"React-RCTLinking" -l"React-RCTNetwork" -l"React-RCTSettings" -l"React-RCTText" -l"React-RCTVibration" -l"React-cxxreact" -l"React-jsi" -l"React-jsiexecutor" -l"React-jsinspector" -l"ReactCommon" -l"ReactNativeART" -l"ReactNativeKeyboardInput" -l"ReactNativeKeyboardTrackingView" -l"SDWebImage" -l"SDWebImageWebPCoder" -l"UMAppLoader" -l"UMCore" -l"UMPermissionsInterface" -l"UMReactNativeAdapter" -l"Yoga" -l"YogaKit" -l"c++" -l"crypto" -l"event" -l"event_core" -l"event_extra" -l"event_pthreads" -l"glog" -l"libwebp" -l"nanopb" -l"react-native-appearance" -l"react-native-background-timer" -l"react-native-cameraroll" -l"react-native-document-picker" -l"react-native-jitsi-meet" -l"react-native-notifications" -l"react-native-orientation-locker" -l"react-native-slider" -l"react-native-webview" -l"rn-extensions-share" -l"rn-fetch-blob" -l"sqlite3" -l"ssl" -l"stdc++" -l"z" -framework "AVFoundation" -framework "AudioToolbox" -framework "CFNetwork" -framework "CoreTelephony" -framework "Crashlytics" -framework "FIRAnalyticsConnector" -framework "Fabric" -framework "FirebaseAnalytics" -framework "Foundation" -framework "GoogleAppMeasurement" -framework "ImageIO" -framework "JavaScriptCore" -framework "JitsiMeet" -framework "MessageUI" -framework "MobileCoreServices" -framework "Photos" -framework "QuartzCore" -framework "Security" -framework "StoreKit" -framework "SystemConfiguration" -framework "UIKit" -framework "WebRTC"
|
||||||
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/YogaKit/YogaKit.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/FlipperKit/FlipperKit.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/yoga/Yoga.modulemap"
|
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/YogaKit/YogaKit.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/FlipperKit/FlipperKit.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/yoga/Yoga.modulemap"
|
||||||
PODS_BUILD_DIR = ${BUILD_DIR}
|
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||||
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
|
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
|
||||||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Crashlytics/iOS" "${PODS_ROOT}/Fabric/iOS" "${PODS_ROOT}/FirebaseAnalytics/Frameworks" "${PODS_ROOT}/GoogleAppMeasurement/Frameworks" "${PODS_ROOT}/JitsiMeetSDK/Frameworks"
|
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Crashlytics/iOS" "${PODS_ROOT}/Fabric/iOS" "${PODS_ROOT}/FirebaseAnalytics/Frameworks" "${PODS_ROOT}/GoogleAppMeasurement/Frameworks" "${PODS_ROOT}/JitsiMeetSDK/Frameworks"
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) SD_WEBP=1 $(inherited) PB_FIELD_32BIT=1 PB_NO_PACKED_STRUCTS=1 PB_ENABLE_MALLOC=1
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) SD_WEBP=1 $(inherited) PB_FIELD_32BIT=1 PB_NO_PACKED_STRUCTS=1 PB_ENABLE_MALLOC=1
|
||||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BugsnagReactNative" "${PODS_ROOT}/Headers/Public/CocoaAsyncSocket" "${PODS_ROOT}/Headers/Public/CocoaLibEvent" "${PODS_ROOT}/Headers/Public/DoubleConversion" "${PODS_ROOT}/Headers/Public/EXAV" "${PODS_ROOT}/Headers/Public/EXConstants" "${PODS_ROOT}/Headers/Public/EXFileSystem" "${PODS_ROOT}/Headers/Public/EXHaptics" "${PODS_ROOT}/Headers/Public/EXImageLoader" "${PODS_ROOT}/Headers/Public/EXKeepAwake" "${PODS_ROOT}/Headers/Public/EXPermissions" "${PODS_ROOT}/Headers/Public/EXWebBrowser" "${PODS_ROOT}/Headers/Public/FBLazyVector" "${PODS_ROOT}/Headers/Public/FBReactNativeSpec" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseCore" "${PODS_ROOT}/Headers/Public/FirebaseCoreDiagnostics" "${PODS_ROOT}/Headers/Public/FirebaseCoreDiagnosticsInterop" "${PODS_ROOT}/Headers/Public/FirebaseInstallations" "${PODS_ROOT}/Headers/Public/Flipper" "${PODS_ROOT}/Headers/Public/Flipper-DoubleConversion" "${PODS_ROOT}/Headers/Public/Flipper-Folly" "${PODS_ROOT}/Headers/Public/Flipper-Glog" "${PODS_ROOT}/Headers/Public/Flipper-PeerTalk" "${PODS_ROOT}/Headers/Public/Flipper-RSocket" "${PODS_ROOT}/Headers/Public/FlipperKit" "${PODS_ROOT}/Headers/Public/GoogleDataTransport" "${PODS_ROOT}/Headers/Public/GoogleDataTransportCCTSupport" "${PODS_ROOT}/Headers/Public/GoogleUtilities" "${PODS_ROOT}/Headers/Public/KeyCommands" "${PODS_ROOT}/Headers/Public/OpenSSL-Universal" "${PODS_ROOT}/Headers/Public/PromisesObjC" "${PODS_ROOT}/Headers/Public/RCTRequired" "${PODS_ROOT}/Headers/Public/RCTTypeSafety" "${PODS_ROOT}/Headers/Public/RNAudio" "${PODS_ROOT}/Headers/Public/RNBootSplash" "${PODS_ROOT}/Headers/Public/RNDateTimePicker" "${PODS_ROOT}/Headers/Public/RNDeviceInfo" "${PODS_ROOT}/Headers/Public/RNFastImage" "${PODS_ROOT}/Headers/Public/RNFirebase" "${PODS_ROOT}/Headers/Public/RNGestureHandler" "${PODS_ROOT}/Headers/Public/RNImageCropPicker" "${PODS_ROOT}/Headers/Public/RNLocalize" "${PODS_ROOT}/Headers/Public/RNReanimated" "${PODS_ROOT}/Headers/Public/RNRootView" "${PODS_ROOT}/Headers/Public/RNScreens" "${PODS_ROOT}/Headers/Public/RNUserDefaults" "${PODS_ROOT}/Headers/Public/RNVectorIcons" "${PODS_ROOT}/Headers/Public/RSKImageCropper" "${PODS_ROOT}/Headers/Public/React-Core" "${PODS_ROOT}/Headers/Public/React-RCTText" "${PODS_ROOT}/Headers/Public/React-cxxreact" "${PODS_ROOT}/Headers/Public/React-jsi" "${PODS_ROOT}/Headers/Public/React-jsiexecutor" "${PODS_ROOT}/Headers/Public/React-jsinspector" "${PODS_ROOT}/Headers/Public/ReactCommon" "${PODS_ROOT}/Headers/Public/ReactNativeART" "${PODS_ROOT}/Headers/Public/ReactNativeKeyboardInput" "${PODS_ROOT}/Headers/Public/ReactNativeKeyboardTrackingView" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/SDWebImageWebPCoder" "${PODS_ROOT}/Headers/Public/UMAppLoader" "${PODS_ROOT}/Headers/Public/UMBarCodeScannerInterface" "${PODS_ROOT}/Headers/Public/UMCameraInterface" "${PODS_ROOT}/Headers/Public/UMConstantsInterface" "${PODS_ROOT}/Headers/Public/UMCore" "${PODS_ROOT}/Headers/Public/UMFaceDetectorInterface" "${PODS_ROOT}/Headers/Public/UMFileSystemInterface" "${PODS_ROOT}/Headers/Public/UMFontInterface" "${PODS_ROOT}/Headers/Public/UMImageLoaderInterface" "${PODS_ROOT}/Headers/Public/UMPermissionsInterface" "${PODS_ROOT}/Headers/Public/UMReactNativeAdapter" "${PODS_ROOT}/Headers/Public/UMSensorsInterface" "${PODS_ROOT}/Headers/Public/UMTaskManagerInterface" "${PODS_ROOT}/Headers/Public/Yoga" "${PODS_ROOT}/Headers/Public/YogaKit" "${PODS_ROOT}/Headers/Public/glog" "${PODS_ROOT}/Headers/Public/libwebp" "${PODS_ROOT}/Headers/Public/nanopb" "${PODS_ROOT}/Headers/Public/react-native-appearance" "${PODS_ROOT}/Headers/Public/react-native-background-timer" "${PODS_ROOT}/Headers/Public/react-native-cameraroll" "${PODS_ROOT}/Headers/Public/react-native-document-picker" "${PODS_ROOT}/Headers/Public/react-native-jitsi-meet" "${PODS_ROOT}/Headers/Public/react-native-notifications" "${PODS_ROOT}/Headers/Public/react-native-orientation-locker" "${PODS_ROOT}/Headers/Public/react-native-slider" "${PODS_ROOT}/Headers/Public/react-native-webview" "${PODS_ROOT}/Headers/Public/rn-extensions-share" "${PODS_ROOT}/Headers/Public/rn-fetch-blob" $(inherited) ${PODS_ROOT}/Firebase/CoreOnly/Sources "${PODS_TARGET_SRCROOT}/Sources/FBLPromises/include" "$(PODS_ROOT)/Headers/Private/React-Core"
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BugsnagReactNative" "${PODS_ROOT}/Headers/Public/CocoaAsyncSocket" "${PODS_ROOT}/Headers/Public/CocoaLibEvent" "${PODS_ROOT}/Headers/Public/DoubleConversion" "${PODS_ROOT}/Headers/Public/EXAV" "${PODS_ROOT}/Headers/Public/EXConstants" "${PODS_ROOT}/Headers/Public/EXFileSystem" "${PODS_ROOT}/Headers/Public/EXHaptics" "${PODS_ROOT}/Headers/Public/EXImageLoader" "${PODS_ROOT}/Headers/Public/EXKeepAwake" "${PODS_ROOT}/Headers/Public/EXLocalAuthentication" "${PODS_ROOT}/Headers/Public/EXPermissions" "${PODS_ROOT}/Headers/Public/EXWebBrowser" "${PODS_ROOT}/Headers/Public/FBLazyVector" "${PODS_ROOT}/Headers/Public/FBReactNativeSpec" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseCore" "${PODS_ROOT}/Headers/Public/FirebaseCoreDiagnostics" "${PODS_ROOT}/Headers/Public/FirebaseCoreDiagnosticsInterop" "${PODS_ROOT}/Headers/Public/FirebaseInstallations" "${PODS_ROOT}/Headers/Public/Flipper" "${PODS_ROOT}/Headers/Public/Flipper-DoubleConversion" "${PODS_ROOT}/Headers/Public/Flipper-Folly" "${PODS_ROOT}/Headers/Public/Flipper-Glog" "${PODS_ROOT}/Headers/Public/Flipper-PeerTalk" "${PODS_ROOT}/Headers/Public/Flipper-RSocket" "${PODS_ROOT}/Headers/Public/FlipperKit" "${PODS_ROOT}/Headers/Public/GoogleDataTransport" "${PODS_ROOT}/Headers/Public/GoogleDataTransportCCTSupport" "${PODS_ROOT}/Headers/Public/GoogleUtilities" "${PODS_ROOT}/Headers/Public/KeyCommands" "${PODS_ROOT}/Headers/Public/OpenSSL-Universal" "${PODS_ROOT}/Headers/Public/PromisesObjC" "${PODS_ROOT}/Headers/Public/RCTRequired" "${PODS_ROOT}/Headers/Public/RCTTypeSafety" "${PODS_ROOT}/Headers/Public/RNAudio" "${PODS_ROOT}/Headers/Public/RNBootSplash" "${PODS_ROOT}/Headers/Public/RNCAsyncStorage" "${PODS_ROOT}/Headers/Public/RNDateTimePicker" "${PODS_ROOT}/Headers/Public/RNDeviceInfo" "${PODS_ROOT}/Headers/Public/RNFastImage" "${PODS_ROOT}/Headers/Public/RNFirebase" "${PODS_ROOT}/Headers/Public/RNGestureHandler" "${PODS_ROOT}/Headers/Public/RNImageCropPicker" "${PODS_ROOT}/Headers/Public/RNLocalize" "${PODS_ROOT}/Headers/Public/RNReanimated" "${PODS_ROOT}/Headers/Public/RNRootView" "${PODS_ROOT}/Headers/Public/RNScreens" "${PODS_ROOT}/Headers/Public/RNUserDefaults" "${PODS_ROOT}/Headers/Public/RNVectorIcons" "${PODS_ROOT}/Headers/Public/RSKImageCropper" "${PODS_ROOT}/Headers/Public/React-Core" "${PODS_ROOT}/Headers/Public/React-RCTText" "${PODS_ROOT}/Headers/Public/React-cxxreact" "${PODS_ROOT}/Headers/Public/React-jsi" "${PODS_ROOT}/Headers/Public/React-jsiexecutor" "${PODS_ROOT}/Headers/Public/React-jsinspector" "${PODS_ROOT}/Headers/Public/ReactCommon" "${PODS_ROOT}/Headers/Public/ReactNativeART" "${PODS_ROOT}/Headers/Public/ReactNativeKeyboardInput" "${PODS_ROOT}/Headers/Public/ReactNativeKeyboardTrackingView" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/SDWebImageWebPCoder" "${PODS_ROOT}/Headers/Public/UMAppLoader" "${PODS_ROOT}/Headers/Public/UMBarCodeScannerInterface" "${PODS_ROOT}/Headers/Public/UMCameraInterface" "${PODS_ROOT}/Headers/Public/UMConstantsInterface" "${PODS_ROOT}/Headers/Public/UMCore" "${PODS_ROOT}/Headers/Public/UMFaceDetectorInterface" "${PODS_ROOT}/Headers/Public/UMFileSystemInterface" "${PODS_ROOT}/Headers/Public/UMFontInterface" "${PODS_ROOT}/Headers/Public/UMImageLoaderInterface" "${PODS_ROOT}/Headers/Public/UMPermissionsInterface" "${PODS_ROOT}/Headers/Public/UMReactNativeAdapter" "${PODS_ROOT}/Headers/Public/UMSensorsInterface" "${PODS_ROOT}/Headers/Public/UMTaskManagerInterface" "${PODS_ROOT}/Headers/Public/Yoga" "${PODS_ROOT}/Headers/Public/YogaKit" "${PODS_ROOT}/Headers/Public/glog" "${PODS_ROOT}/Headers/Public/libwebp" "${PODS_ROOT}/Headers/Public/nanopb" "${PODS_ROOT}/Headers/Public/react-native-appearance" "${PODS_ROOT}/Headers/Public/react-native-background-timer" "${PODS_ROOT}/Headers/Public/react-native-cameraroll" "${PODS_ROOT}/Headers/Public/react-native-document-picker" "${PODS_ROOT}/Headers/Public/react-native-jitsi-meet" "${PODS_ROOT}/Headers/Public/react-native-notifications" "${PODS_ROOT}/Headers/Public/react-native-orientation-locker" "${PODS_ROOT}/Headers/Public/react-native-slider" "${PODS_ROOT}/Headers/Public/react-native-webview" "${PODS_ROOT}/Headers/Public/rn-extensions-share" "${PODS_ROOT}/Headers/Public/rn-fetch-blob" $(inherited) ${PODS_ROOT}/Firebase/CoreOnly/Sources "${PODS_TARGET_SRCROOT}/Sources/FBLPromises/include" "$(PODS_ROOT)/Headers/Private/React-Core"
|
||||||
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
|
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
|
||||||
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BugsnagReactNative" "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket" "${PODS_CONFIGURATION_BUILD_DIR}/DoubleConversion" "${PODS_CONFIGURATION_BUILD_DIR}/EXAV" "${PODS_CONFIGURATION_BUILD_DIR}/EXConstants" "${PODS_CONFIGURATION_BUILD_DIR}/EXFileSystem" "${PODS_CONFIGURATION_BUILD_DIR}/EXHaptics" "${PODS_CONFIGURATION_BUILD_DIR}/EXImageLoader" "${PODS_CONFIGURATION_BUILD_DIR}/EXKeepAwake" "${PODS_CONFIGURATION_BUILD_DIR}/EXPermissions" "${PODS_CONFIGURATION_BUILD_DIR}/EXWebBrowser" "${PODS_CONFIGURATION_BUILD_DIR}/FBReactNativeSpec" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreDiagnostics" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstallations" "${PODS_CONFIGURATION_BUILD_DIR}/Folly" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransportCCTSupport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/KeyCommands" "${PODS_CONFIGURATION_BUILD_DIR}/PromisesObjC" "${PODS_CONFIGURATION_BUILD_DIR}/RCTTypeSafety" "${PODS_CONFIGURATION_BUILD_DIR}/RNAudio" "${PODS_CONFIGURATION_BUILD_DIR}/RNBootSplash" "${PODS_CONFIGURATION_BUILD_DIR}/RNDateTimePicker" "${PODS_CONFIGURATION_BUILD_DIR}/RNDeviceInfo" "${PODS_CONFIGURATION_BUILD_DIR}/RNFastImage" "${PODS_CONFIGURATION_BUILD_DIR}/RNFirebase" "${PODS_CONFIGURATION_BUILD_DIR}/RNGestureHandler" "${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker" "${PODS_CONFIGURATION_BUILD_DIR}/RNLocalize" "${PODS_CONFIGURATION_BUILD_DIR}/RNReanimated" "${PODS_CONFIGURATION_BUILD_DIR}/RNRootView" "${PODS_CONFIGURATION_BUILD_DIR}/RNScreens" "${PODS_CONFIGURATION_BUILD_DIR}/RNUserDefaults" "${PODS_CONFIGURATION_BUILD_DIR}/RNVectorIcons" "${PODS_CONFIGURATION_BUILD_DIR}/RSKImageCropper" "${PODS_CONFIGURATION_BUILD_DIR}/React-Core" "${PODS_CONFIGURATION_BUILD_DIR}/React-CoreModules" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTAnimation" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTBlob" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTImage" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTLinking" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTNetwork" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTSettings" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTText" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTVibration" "${PODS_CONFIGURATION_BUILD_DIR}/React-cxxreact" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsi" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsiexecutor" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsinspector" "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon" "${PODS_CONFIGURATION_BUILD_DIR}/ReactNativeART" "${PODS_CONFIGURATION_BUILD_DIR}/ReactNativeKeyboardInput" "${PODS_CONFIGURATION_BUILD_DIR}/ReactNativeKeyboardTrackingView" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder" "${PODS_CONFIGURATION_BUILD_DIR}/UMAppLoader" "${PODS_CONFIGURATION_BUILD_DIR}/UMCore" "${PODS_CONFIGURATION_BUILD_DIR}/UMPermissionsInterface" "${PODS_CONFIGURATION_BUILD_DIR}/UMReactNativeAdapter" "${PODS_CONFIGURATION_BUILD_DIR}/Yoga" "${PODS_CONFIGURATION_BUILD_DIR}/YogaKit" "${PODS_CONFIGURATION_BUILD_DIR}/glog" "${PODS_CONFIGURATION_BUILD_DIR}/libwebp" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-appearance" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-background-timer" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-cameraroll" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-document-picker" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-jitsi-meet" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-notifications" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-orientation-locker" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-slider" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-webview" "${PODS_CONFIGURATION_BUILD_DIR}/rn-extensions-share" "${PODS_CONFIGURATION_BUILD_DIR}/rn-fetch-blob" "${PODS_ROOT}/CocoaLibEvent/lib" "${PODS_ROOT}/OpenSSL-Universal/ios/lib"
|
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BugsnagReactNative" "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket" "${PODS_CONFIGURATION_BUILD_DIR}/DoubleConversion" "${PODS_CONFIGURATION_BUILD_DIR}/EXAV" "${PODS_CONFIGURATION_BUILD_DIR}/EXConstants" "${PODS_CONFIGURATION_BUILD_DIR}/EXFileSystem" "${PODS_CONFIGURATION_BUILD_DIR}/EXHaptics" "${PODS_CONFIGURATION_BUILD_DIR}/EXImageLoader" "${PODS_CONFIGURATION_BUILD_DIR}/EXKeepAwake" "${PODS_CONFIGURATION_BUILD_DIR}/EXLocalAuthentication" "${PODS_CONFIGURATION_BUILD_DIR}/EXPermissions" "${PODS_CONFIGURATION_BUILD_DIR}/EXWebBrowser" "${PODS_CONFIGURATION_BUILD_DIR}/FBReactNativeSpec" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreDiagnostics" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstallations" "${PODS_CONFIGURATION_BUILD_DIR}/Folly" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransportCCTSupport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/KeyCommands" "${PODS_CONFIGURATION_BUILD_DIR}/PromisesObjC" "${PODS_CONFIGURATION_BUILD_DIR}/RCTTypeSafety" "${PODS_CONFIGURATION_BUILD_DIR}/RNAudio" "${PODS_CONFIGURATION_BUILD_DIR}/RNBootSplash" "${PODS_CONFIGURATION_BUILD_DIR}/RNCAsyncStorage" "${PODS_CONFIGURATION_BUILD_DIR}/RNDateTimePicker" "${PODS_CONFIGURATION_BUILD_DIR}/RNDeviceInfo" "${PODS_CONFIGURATION_BUILD_DIR}/RNFastImage" "${PODS_CONFIGURATION_BUILD_DIR}/RNFirebase" "${PODS_CONFIGURATION_BUILD_DIR}/RNGestureHandler" "${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker" "${PODS_CONFIGURATION_BUILD_DIR}/RNLocalize" "${PODS_CONFIGURATION_BUILD_DIR}/RNReanimated" "${PODS_CONFIGURATION_BUILD_DIR}/RNRootView" "${PODS_CONFIGURATION_BUILD_DIR}/RNScreens" "${PODS_CONFIGURATION_BUILD_DIR}/RNUserDefaults" "${PODS_CONFIGURATION_BUILD_DIR}/RNVectorIcons" "${PODS_CONFIGURATION_BUILD_DIR}/RSKImageCropper" "${PODS_CONFIGURATION_BUILD_DIR}/React-Core" "${PODS_CONFIGURATION_BUILD_DIR}/React-CoreModules" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTAnimation" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTBlob" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTImage" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTLinking" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTNetwork" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTSettings" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTText" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTVibration" "${PODS_CONFIGURATION_BUILD_DIR}/React-cxxreact" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsi" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsiexecutor" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsinspector" "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon" "${PODS_CONFIGURATION_BUILD_DIR}/ReactNativeART" "${PODS_CONFIGURATION_BUILD_DIR}/ReactNativeKeyboardInput" "${PODS_CONFIGURATION_BUILD_DIR}/ReactNativeKeyboardTrackingView" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder" "${PODS_CONFIGURATION_BUILD_DIR}/UMAppLoader" "${PODS_CONFIGURATION_BUILD_DIR}/UMCore" "${PODS_CONFIGURATION_BUILD_DIR}/UMPermissionsInterface" "${PODS_CONFIGURATION_BUILD_DIR}/UMReactNativeAdapter" "${PODS_CONFIGURATION_BUILD_DIR}/Yoga" "${PODS_CONFIGURATION_BUILD_DIR}/YogaKit" "${PODS_CONFIGURATION_BUILD_DIR}/glog" "${PODS_CONFIGURATION_BUILD_DIR}/libwebp" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-appearance" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-background-timer" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-cameraroll" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-document-picker" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-jitsi-meet" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-notifications" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-orientation-locker" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-slider" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-webview" "${PODS_CONFIGURATION_BUILD_DIR}/rn-extensions-share" "${PODS_CONFIGURATION_BUILD_DIR}/rn-fetch-blob" "${PODS_ROOT}/CocoaLibEvent/lib" "${PODS_ROOT}/OpenSSL-Universal/ios/lib"
|
||||||
OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/YogaKit/YogaKit.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/yoga/Yoga.modulemap"
|
OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/YogaKit/YogaKit.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/yoga/Yoga.modulemap"
|
||||||
OTHER_LDFLAGS = $(inherited) -ObjC -l"BugsnagReactNative" -l"CocoaAsyncSocket" -l"DoubleConversion" -l"EXAV" -l"EXConstants" -l"EXFileSystem" -l"EXHaptics" -l"EXImageLoader" -l"EXKeepAwake" -l"EXPermissions" -l"EXWebBrowser" -l"FBReactNativeSpec" -l"FirebaseCore" -l"FirebaseCoreDiagnostics" -l"FirebaseInstallations" -l"Folly" -l"GoogleDataTransport" -l"GoogleDataTransportCCTSupport" -l"GoogleUtilities" -l"KeyCommands" -l"PromisesObjC" -l"RCTTypeSafety" -l"RNAudio" -l"RNBootSplash" -l"RNDateTimePicker" -l"RNDeviceInfo" -l"RNFastImage" -l"RNFirebase" -l"RNGestureHandler" -l"RNImageCropPicker" -l"RNLocalize" -l"RNReanimated" -l"RNRootView" -l"RNScreens" -l"RNUserDefaults" -l"RNVectorIcons" -l"RSKImageCropper" -l"React-Core" -l"React-CoreModules" -l"React-RCTAnimation" -l"React-RCTBlob" -l"React-RCTImage" -l"React-RCTLinking" -l"React-RCTNetwork" -l"React-RCTSettings" -l"React-RCTText" -l"React-RCTVibration" -l"React-cxxreact" -l"React-jsi" -l"React-jsiexecutor" -l"React-jsinspector" -l"ReactCommon" -l"ReactNativeART" -l"ReactNativeKeyboardInput" -l"ReactNativeKeyboardTrackingView" -l"SDWebImage" -l"SDWebImageWebPCoder" -l"UMAppLoader" -l"UMCore" -l"UMPermissionsInterface" -l"UMReactNativeAdapter" -l"Yoga" -l"YogaKit" -l"c++" -l"crypto" -l"event" -l"event_core" -l"event_extra" -l"event_pthreads" -l"glog" -l"libwebp" -l"nanopb" -l"react-native-appearance" -l"react-native-background-timer" -l"react-native-cameraroll" -l"react-native-document-picker" -l"react-native-jitsi-meet" -l"react-native-notifications" -l"react-native-orientation-locker" -l"react-native-slider" -l"react-native-webview" -l"rn-extensions-share" -l"rn-fetch-blob" -l"sqlite3" -l"ssl" -l"stdc++" -l"z" -framework "AVFoundation" -framework "AudioToolbox" -framework "CFNetwork" -framework "CoreTelephony" -framework "Crashlytics" -framework "FIRAnalyticsConnector" -framework "Fabric" -framework "FirebaseAnalytics" -framework "Foundation" -framework "GoogleAppMeasurement" -framework "ImageIO" -framework "JavaScriptCore" -framework "JitsiMeet" -framework "MessageUI" -framework "MobileCoreServices" -framework "Photos" -framework "QuartzCore" -framework "Security" -framework "StoreKit" -framework "SystemConfiguration" -framework "UIKit" -framework "WebRTC"
|
OTHER_LDFLAGS = $(inherited) -ObjC -l"BugsnagReactNative" -l"CocoaAsyncSocket" -l"DoubleConversion" -l"EXAV" -l"EXConstants" -l"EXFileSystem" -l"EXHaptics" -l"EXImageLoader" -l"EXKeepAwake" -l"EXLocalAuthentication" -l"EXPermissions" -l"EXWebBrowser" -l"FBReactNativeSpec" -l"FirebaseCore" -l"FirebaseCoreDiagnostics" -l"FirebaseInstallations" -l"Folly" -l"GoogleDataTransport" -l"GoogleDataTransportCCTSupport" -l"GoogleUtilities" -l"KeyCommands" -l"PromisesObjC" -l"RCTTypeSafety" -l"RNAudio" -l"RNBootSplash" -l"RNCAsyncStorage" -l"RNDateTimePicker" -l"RNDeviceInfo" -l"RNFastImage" -l"RNFirebase" -l"RNGestureHandler" -l"RNImageCropPicker" -l"RNLocalize" -l"RNReanimated" -l"RNRootView" -l"RNScreens" -l"RNUserDefaults" -l"RNVectorIcons" -l"RSKImageCropper" -l"React-Core" -l"React-CoreModules" -l"React-RCTAnimation" -l"React-RCTBlob" -l"React-RCTImage" -l"React-RCTLinking" -l"React-RCTNetwork" -l"React-RCTSettings" -l"React-RCTText" -l"React-RCTVibration" -l"React-cxxreact" -l"React-jsi" -l"React-jsiexecutor" -l"React-jsinspector" -l"ReactCommon" -l"ReactNativeART" -l"ReactNativeKeyboardInput" -l"ReactNativeKeyboardTrackingView" -l"SDWebImage" -l"SDWebImageWebPCoder" -l"UMAppLoader" -l"UMCore" -l"UMPermissionsInterface" -l"UMReactNativeAdapter" -l"Yoga" -l"YogaKit" -l"c++" -l"crypto" -l"event" -l"event_core" -l"event_extra" -l"event_pthreads" -l"glog" -l"libwebp" -l"nanopb" -l"react-native-appearance" -l"react-native-background-timer" -l"react-native-cameraroll" -l"react-native-document-picker" -l"react-native-jitsi-meet" -l"react-native-notifications" -l"react-native-orientation-locker" -l"react-native-slider" -l"react-native-webview" -l"rn-extensions-share" -l"rn-fetch-blob" -l"sqlite3" -l"ssl" -l"stdc++" -l"z" -framework "AVFoundation" -framework "AudioToolbox" -framework "CFNetwork" -framework "CoreTelephony" -framework "Crashlytics" -framework "FIRAnalyticsConnector" -framework "Fabric" -framework "FirebaseAnalytics" -framework "Foundation" -framework "GoogleAppMeasurement" -framework "ImageIO" -framework "JavaScriptCore" -framework "JitsiMeet" -framework "MessageUI" -framework "MobileCoreServices" -framework "Photos" -framework "QuartzCore" -framework "Security" -framework "StoreKit" -framework "SystemConfiguration" -framework "UIKit" -framework "WebRTC"
|
||||||
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/YogaKit/YogaKit.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/yoga/Yoga.modulemap"
|
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/YogaKit/YogaKit.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/yoga/Yoga.modulemap"
|
||||||
PODS_BUILD_DIR = ${BUILD_DIR}
|
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||||
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||||
|
|
|
@ -3013,6 +3013,30 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
SOFTWARE.
|
SOFTWARE.
|
||||||
|
|
||||||
|
|
||||||
|
## RNCAsyncStorage
|
||||||
|
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2015-present, Facebook, Inc.
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
|
||||||
## RNDateTimePicker
|
## RNDateTimePicker
|
||||||
|
|
||||||
MIT License
|
MIT License
|
||||||
|
|
|
@ -3214,6 +3214,36 @@ SOFTWARE.
|
||||||
<key>FooterText</key>
|
<key>FooterText</key>
|
||||||
<string>MIT License
|
<string>MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2015-present, Facebook, Inc.
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.</string>
|
||||||
|
<key>License</key>
|
||||||
|
<string>MIT</string>
|
||||||
|
<key>Title</key>
|
||||||
|
<string>RNCAsyncStorage</string>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>PSGroupSpecifier</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>FooterText</key>
|
||||||
|
<string>MIT License
|
||||||
|
|
||||||
Copyright (c) 2019 React Native Community
|
Copyright (c) 2019 React Native Community
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Crashlytics/iOS" "${PODS_ROOT}/Fabric/iOS" "${PODS_ROOT}/FirebaseAnalytics/Frameworks" "${PODS_ROOT}/GoogleAppMeasurement/Frameworks" "${PODS_ROOT}/JitsiMeetSDK/Frameworks"
|
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Crashlytics/iOS" "${PODS_ROOT}/Fabric/iOS" "${PODS_ROOT}/FirebaseAnalytics/Frameworks" "${PODS_ROOT}/GoogleAppMeasurement/Frameworks" "${PODS_ROOT}/JitsiMeetSDK/Frameworks"
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) SD_WEBP=1 $(inherited) PB_FIELD_32BIT=1 PB_NO_PACKED_STRUCTS=1 PB_ENABLE_MALLOC=1
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) SD_WEBP=1 $(inherited) PB_FIELD_32BIT=1 PB_NO_PACKED_STRUCTS=1 PB_ENABLE_MALLOC=1
|
||||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BugsnagReactNative" "${PODS_ROOT}/Headers/Public/CocoaAsyncSocket" "${PODS_ROOT}/Headers/Public/CocoaLibEvent" "${PODS_ROOT}/Headers/Public/DoubleConversion" "${PODS_ROOT}/Headers/Public/EXAV" "${PODS_ROOT}/Headers/Public/EXConstants" "${PODS_ROOT}/Headers/Public/EXFileSystem" "${PODS_ROOT}/Headers/Public/EXHaptics" "${PODS_ROOT}/Headers/Public/EXImageLoader" "${PODS_ROOT}/Headers/Public/EXKeepAwake" "${PODS_ROOT}/Headers/Public/EXPermissions" "${PODS_ROOT}/Headers/Public/EXWebBrowser" "${PODS_ROOT}/Headers/Public/FBLazyVector" "${PODS_ROOT}/Headers/Public/FBReactNativeSpec" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseCore" "${PODS_ROOT}/Headers/Public/FirebaseCoreDiagnostics" "${PODS_ROOT}/Headers/Public/FirebaseCoreDiagnosticsInterop" "${PODS_ROOT}/Headers/Public/FirebaseInstallations" "${PODS_ROOT}/Headers/Public/Flipper" "${PODS_ROOT}/Headers/Public/Flipper-DoubleConversion" "${PODS_ROOT}/Headers/Public/Flipper-Folly" "${PODS_ROOT}/Headers/Public/Flipper-Glog" "${PODS_ROOT}/Headers/Public/Flipper-PeerTalk" "${PODS_ROOT}/Headers/Public/Flipper-RSocket" "${PODS_ROOT}/Headers/Public/FlipperKit" "${PODS_ROOT}/Headers/Public/GoogleDataTransport" "${PODS_ROOT}/Headers/Public/GoogleDataTransportCCTSupport" "${PODS_ROOT}/Headers/Public/GoogleUtilities" "${PODS_ROOT}/Headers/Public/KeyCommands" "${PODS_ROOT}/Headers/Public/OpenSSL-Universal" "${PODS_ROOT}/Headers/Public/PromisesObjC" "${PODS_ROOT}/Headers/Public/RCTRequired" "${PODS_ROOT}/Headers/Public/RCTTypeSafety" "${PODS_ROOT}/Headers/Public/RNAudio" "${PODS_ROOT}/Headers/Public/RNBootSplash" "${PODS_ROOT}/Headers/Public/RNDateTimePicker" "${PODS_ROOT}/Headers/Public/RNDeviceInfo" "${PODS_ROOT}/Headers/Public/RNFastImage" "${PODS_ROOT}/Headers/Public/RNFirebase" "${PODS_ROOT}/Headers/Public/RNGestureHandler" "${PODS_ROOT}/Headers/Public/RNImageCropPicker" "${PODS_ROOT}/Headers/Public/RNLocalize" "${PODS_ROOT}/Headers/Public/RNReanimated" "${PODS_ROOT}/Headers/Public/RNRootView" "${PODS_ROOT}/Headers/Public/RNScreens" "${PODS_ROOT}/Headers/Public/RNUserDefaults" "${PODS_ROOT}/Headers/Public/RNVectorIcons" "${PODS_ROOT}/Headers/Public/RSKImageCropper" "${PODS_ROOT}/Headers/Public/React-Core" "${PODS_ROOT}/Headers/Public/React-RCTText" "${PODS_ROOT}/Headers/Public/React-cxxreact" "${PODS_ROOT}/Headers/Public/React-jsi" "${PODS_ROOT}/Headers/Public/React-jsiexecutor" "${PODS_ROOT}/Headers/Public/React-jsinspector" "${PODS_ROOT}/Headers/Public/ReactCommon" "${PODS_ROOT}/Headers/Public/ReactNativeART" "${PODS_ROOT}/Headers/Public/ReactNativeKeyboardInput" "${PODS_ROOT}/Headers/Public/ReactNativeKeyboardTrackingView" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/SDWebImageWebPCoder" "${PODS_ROOT}/Headers/Public/UMAppLoader" "${PODS_ROOT}/Headers/Public/UMBarCodeScannerInterface" "${PODS_ROOT}/Headers/Public/UMCameraInterface" "${PODS_ROOT}/Headers/Public/UMConstantsInterface" "${PODS_ROOT}/Headers/Public/UMCore" "${PODS_ROOT}/Headers/Public/UMFaceDetectorInterface" "${PODS_ROOT}/Headers/Public/UMFileSystemInterface" "${PODS_ROOT}/Headers/Public/UMFontInterface" "${PODS_ROOT}/Headers/Public/UMImageLoaderInterface" "${PODS_ROOT}/Headers/Public/UMPermissionsInterface" "${PODS_ROOT}/Headers/Public/UMReactNativeAdapter" "${PODS_ROOT}/Headers/Public/UMSensorsInterface" "${PODS_ROOT}/Headers/Public/UMTaskManagerInterface" "${PODS_ROOT}/Headers/Public/Yoga" "${PODS_ROOT}/Headers/Public/YogaKit" "${PODS_ROOT}/Headers/Public/glog" "${PODS_ROOT}/Headers/Public/libwebp" "${PODS_ROOT}/Headers/Public/nanopb" "${PODS_ROOT}/Headers/Public/react-native-appearance" "${PODS_ROOT}/Headers/Public/react-native-background-timer" "${PODS_ROOT}/Headers/Public/react-native-cameraroll" "${PODS_ROOT}/Headers/Public/react-native-document-picker" "${PODS_ROOT}/Headers/Public/react-native-jitsi-meet" "${PODS_ROOT}/Headers/Public/react-native-notifications" "${PODS_ROOT}/Headers/Public/react-native-orientation-locker" "${PODS_ROOT}/Headers/Public/react-native-slider" "${PODS_ROOT}/Headers/Public/react-native-webview" "${PODS_ROOT}/Headers/Public/rn-extensions-share" "${PODS_ROOT}/Headers/Public/rn-fetch-blob" $(inherited) ${PODS_ROOT}/Firebase/CoreOnly/Sources "${PODS_TARGET_SRCROOT}/Sources/FBLPromises/include" "$(PODS_ROOT)/Headers/Private/React-Core"
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BugsnagReactNative" "${PODS_ROOT}/Headers/Public/CocoaAsyncSocket" "${PODS_ROOT}/Headers/Public/CocoaLibEvent" "${PODS_ROOT}/Headers/Public/DoubleConversion" "${PODS_ROOT}/Headers/Public/EXAV" "${PODS_ROOT}/Headers/Public/EXConstants" "${PODS_ROOT}/Headers/Public/EXFileSystem" "${PODS_ROOT}/Headers/Public/EXHaptics" "${PODS_ROOT}/Headers/Public/EXImageLoader" "${PODS_ROOT}/Headers/Public/EXKeepAwake" "${PODS_ROOT}/Headers/Public/EXLocalAuthentication" "${PODS_ROOT}/Headers/Public/EXPermissions" "${PODS_ROOT}/Headers/Public/EXWebBrowser" "${PODS_ROOT}/Headers/Public/FBLazyVector" "${PODS_ROOT}/Headers/Public/FBReactNativeSpec" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseCore" "${PODS_ROOT}/Headers/Public/FirebaseCoreDiagnostics" "${PODS_ROOT}/Headers/Public/FirebaseCoreDiagnosticsInterop" "${PODS_ROOT}/Headers/Public/FirebaseInstallations" "${PODS_ROOT}/Headers/Public/Flipper" "${PODS_ROOT}/Headers/Public/Flipper-DoubleConversion" "${PODS_ROOT}/Headers/Public/Flipper-Folly" "${PODS_ROOT}/Headers/Public/Flipper-Glog" "${PODS_ROOT}/Headers/Public/Flipper-PeerTalk" "${PODS_ROOT}/Headers/Public/Flipper-RSocket" "${PODS_ROOT}/Headers/Public/FlipperKit" "${PODS_ROOT}/Headers/Public/GoogleDataTransport" "${PODS_ROOT}/Headers/Public/GoogleDataTransportCCTSupport" "${PODS_ROOT}/Headers/Public/GoogleUtilities" "${PODS_ROOT}/Headers/Public/KeyCommands" "${PODS_ROOT}/Headers/Public/OpenSSL-Universal" "${PODS_ROOT}/Headers/Public/PromisesObjC" "${PODS_ROOT}/Headers/Public/RCTRequired" "${PODS_ROOT}/Headers/Public/RCTTypeSafety" "${PODS_ROOT}/Headers/Public/RNAudio" "${PODS_ROOT}/Headers/Public/RNBootSplash" "${PODS_ROOT}/Headers/Public/RNCAsyncStorage" "${PODS_ROOT}/Headers/Public/RNDateTimePicker" "${PODS_ROOT}/Headers/Public/RNDeviceInfo" "${PODS_ROOT}/Headers/Public/RNFastImage" "${PODS_ROOT}/Headers/Public/RNFirebase" "${PODS_ROOT}/Headers/Public/RNGestureHandler" "${PODS_ROOT}/Headers/Public/RNImageCropPicker" "${PODS_ROOT}/Headers/Public/RNLocalize" "${PODS_ROOT}/Headers/Public/RNReanimated" "${PODS_ROOT}/Headers/Public/RNRootView" "${PODS_ROOT}/Headers/Public/RNScreens" "${PODS_ROOT}/Headers/Public/RNUserDefaults" "${PODS_ROOT}/Headers/Public/RNVectorIcons" "${PODS_ROOT}/Headers/Public/RSKImageCropper" "${PODS_ROOT}/Headers/Public/React-Core" "${PODS_ROOT}/Headers/Public/React-RCTText" "${PODS_ROOT}/Headers/Public/React-cxxreact" "${PODS_ROOT}/Headers/Public/React-jsi" "${PODS_ROOT}/Headers/Public/React-jsiexecutor" "${PODS_ROOT}/Headers/Public/React-jsinspector" "${PODS_ROOT}/Headers/Public/ReactCommon" "${PODS_ROOT}/Headers/Public/ReactNativeART" "${PODS_ROOT}/Headers/Public/ReactNativeKeyboardInput" "${PODS_ROOT}/Headers/Public/ReactNativeKeyboardTrackingView" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/SDWebImageWebPCoder" "${PODS_ROOT}/Headers/Public/UMAppLoader" "${PODS_ROOT}/Headers/Public/UMBarCodeScannerInterface" "${PODS_ROOT}/Headers/Public/UMCameraInterface" "${PODS_ROOT}/Headers/Public/UMConstantsInterface" "${PODS_ROOT}/Headers/Public/UMCore" "${PODS_ROOT}/Headers/Public/UMFaceDetectorInterface" "${PODS_ROOT}/Headers/Public/UMFileSystemInterface" "${PODS_ROOT}/Headers/Public/UMFontInterface" "${PODS_ROOT}/Headers/Public/UMImageLoaderInterface" "${PODS_ROOT}/Headers/Public/UMPermissionsInterface" "${PODS_ROOT}/Headers/Public/UMReactNativeAdapter" "${PODS_ROOT}/Headers/Public/UMSensorsInterface" "${PODS_ROOT}/Headers/Public/UMTaskManagerInterface" "${PODS_ROOT}/Headers/Public/Yoga" "${PODS_ROOT}/Headers/Public/YogaKit" "${PODS_ROOT}/Headers/Public/glog" "${PODS_ROOT}/Headers/Public/libwebp" "${PODS_ROOT}/Headers/Public/nanopb" "${PODS_ROOT}/Headers/Public/react-native-appearance" "${PODS_ROOT}/Headers/Public/react-native-background-timer" "${PODS_ROOT}/Headers/Public/react-native-cameraroll" "${PODS_ROOT}/Headers/Public/react-native-document-picker" "${PODS_ROOT}/Headers/Public/react-native-jitsi-meet" "${PODS_ROOT}/Headers/Public/react-native-notifications" "${PODS_ROOT}/Headers/Public/react-native-orientation-locker" "${PODS_ROOT}/Headers/Public/react-native-slider" "${PODS_ROOT}/Headers/Public/react-native-webview" "${PODS_ROOT}/Headers/Public/rn-extensions-share" "${PODS_ROOT}/Headers/Public/rn-fetch-blob" $(inherited) ${PODS_ROOT}/Firebase/CoreOnly/Sources "${PODS_TARGET_SRCROOT}/Sources/FBLPromises/include" "$(PODS_ROOT)/Headers/Private/React-Core"
|
||||||
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' '@executable_path/../../Frameworks'
|
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' '@executable_path/../../Frameworks'
|
||||||
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BugsnagReactNative" "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket" "${PODS_CONFIGURATION_BUILD_DIR}/DoubleConversion" "${PODS_CONFIGURATION_BUILD_DIR}/FBReactNativeSpec" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreDiagnostics" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstallations" "${PODS_CONFIGURATION_BUILD_DIR}/Flipper" "${PODS_CONFIGURATION_BUILD_DIR}/Flipper-DoubleConversion" "${PODS_CONFIGURATION_BUILD_DIR}/Flipper-Folly" "${PODS_CONFIGURATION_BUILD_DIR}/Flipper-Glog" "${PODS_CONFIGURATION_BUILD_DIR}/Flipper-PeerTalk" "${PODS_CONFIGURATION_BUILD_DIR}/Flipper-RSocket" "${PODS_CONFIGURATION_BUILD_DIR}/FlipperKit" "${PODS_CONFIGURATION_BUILD_DIR}/Folly" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransportCCTSupport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/KeyCommands" "${PODS_CONFIGURATION_BUILD_DIR}/PromisesObjC" "${PODS_CONFIGURATION_BUILD_DIR}/RCTTypeSafety" "${PODS_CONFIGURATION_BUILD_DIR}/RNAudio" "${PODS_CONFIGURATION_BUILD_DIR}/RNBootSplash" "${PODS_CONFIGURATION_BUILD_DIR}/RNDateTimePicker" "${PODS_CONFIGURATION_BUILD_DIR}/RNDeviceInfo" "${PODS_CONFIGURATION_BUILD_DIR}/RNFastImage" "${PODS_CONFIGURATION_BUILD_DIR}/RNFirebase" "${PODS_CONFIGURATION_BUILD_DIR}/RNGestureHandler" "${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker" "${PODS_CONFIGURATION_BUILD_DIR}/RNLocalize" "${PODS_CONFIGURATION_BUILD_DIR}/RNReanimated" "${PODS_CONFIGURATION_BUILD_DIR}/RNRootView" "${PODS_CONFIGURATION_BUILD_DIR}/RNScreens" "${PODS_CONFIGURATION_BUILD_DIR}/RNUserDefaults" "${PODS_CONFIGURATION_BUILD_DIR}/RNVectorIcons" "${PODS_CONFIGURATION_BUILD_DIR}/RSKImageCropper" "${PODS_CONFIGURATION_BUILD_DIR}/React-Core" "${PODS_CONFIGURATION_BUILD_DIR}/React-CoreModules" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTAnimation" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTBlob" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTImage" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTLinking" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTNetwork" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTSettings" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTText" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTVibration" "${PODS_CONFIGURATION_BUILD_DIR}/React-cxxreact" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsi" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsiexecutor" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsinspector" "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon" "${PODS_CONFIGURATION_BUILD_DIR}/ReactNativeART" "${PODS_CONFIGURATION_BUILD_DIR}/ReactNativeKeyboardInput" "${PODS_CONFIGURATION_BUILD_DIR}/ReactNativeKeyboardTrackingView" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder" "${PODS_CONFIGURATION_BUILD_DIR}/Yoga" "${PODS_CONFIGURATION_BUILD_DIR}/YogaKit" "${PODS_CONFIGURATION_BUILD_DIR}/glog" "${PODS_CONFIGURATION_BUILD_DIR}/libwebp" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-appearance" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-background-timer" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-cameraroll" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-document-picker" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-jitsi-meet" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-notifications" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-orientation-locker" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-slider" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-webview" "${PODS_CONFIGURATION_BUILD_DIR}/rn-extensions-share" "${PODS_CONFIGURATION_BUILD_DIR}/rn-fetch-blob" "${PODS_ROOT}/CocoaLibEvent/lib" "${PODS_ROOT}/OpenSSL-Universal/ios/lib"
|
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BugsnagReactNative" "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket" "${PODS_CONFIGURATION_BUILD_DIR}/DoubleConversion" "${PODS_CONFIGURATION_BUILD_DIR}/EXAV" "${PODS_CONFIGURATION_BUILD_DIR}/EXConstants" "${PODS_CONFIGURATION_BUILD_DIR}/EXFileSystem" "${PODS_CONFIGURATION_BUILD_DIR}/EXHaptics" "${PODS_CONFIGURATION_BUILD_DIR}/EXImageLoader" "${PODS_CONFIGURATION_BUILD_DIR}/EXKeepAwake" "${PODS_CONFIGURATION_BUILD_DIR}/EXLocalAuthentication" "${PODS_CONFIGURATION_BUILD_DIR}/EXPermissions" "${PODS_CONFIGURATION_BUILD_DIR}/EXWebBrowser" "${PODS_CONFIGURATION_BUILD_DIR}/FBReactNativeSpec" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreDiagnostics" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstallations" "${PODS_CONFIGURATION_BUILD_DIR}/Flipper" "${PODS_CONFIGURATION_BUILD_DIR}/Flipper-DoubleConversion" "${PODS_CONFIGURATION_BUILD_DIR}/Flipper-Folly" "${PODS_CONFIGURATION_BUILD_DIR}/Flipper-Glog" "${PODS_CONFIGURATION_BUILD_DIR}/Flipper-PeerTalk" "${PODS_CONFIGURATION_BUILD_DIR}/Flipper-RSocket" "${PODS_CONFIGURATION_BUILD_DIR}/FlipperKit" "${PODS_CONFIGURATION_BUILD_DIR}/Folly" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransportCCTSupport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/KeyCommands" "${PODS_CONFIGURATION_BUILD_DIR}/PromisesObjC" "${PODS_CONFIGURATION_BUILD_DIR}/RCTTypeSafety" "${PODS_CONFIGURATION_BUILD_DIR}/RNAudio" "${PODS_CONFIGURATION_BUILD_DIR}/RNBootSplash" "${PODS_CONFIGURATION_BUILD_DIR}/RNCAsyncStorage" "${PODS_CONFIGURATION_BUILD_DIR}/RNDateTimePicker" "${PODS_CONFIGURATION_BUILD_DIR}/RNDeviceInfo" "${PODS_CONFIGURATION_BUILD_DIR}/RNFastImage" "${PODS_CONFIGURATION_BUILD_DIR}/RNFirebase" "${PODS_CONFIGURATION_BUILD_DIR}/RNGestureHandler" "${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker" "${PODS_CONFIGURATION_BUILD_DIR}/RNLocalize" "${PODS_CONFIGURATION_BUILD_DIR}/RNReanimated" "${PODS_CONFIGURATION_BUILD_DIR}/RNRootView" "${PODS_CONFIGURATION_BUILD_DIR}/RNScreens" "${PODS_CONFIGURATION_BUILD_DIR}/RNUserDefaults" "${PODS_CONFIGURATION_BUILD_DIR}/RNVectorIcons" "${PODS_CONFIGURATION_BUILD_DIR}/RSKImageCropper" "${PODS_CONFIGURATION_BUILD_DIR}/React-Core" "${PODS_CONFIGURATION_BUILD_DIR}/React-CoreModules" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTAnimation" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTBlob" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTImage" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTLinking" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTNetwork" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTSettings" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTText" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTVibration" "${PODS_CONFIGURATION_BUILD_DIR}/React-cxxreact" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsi" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsiexecutor" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsinspector" "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon" "${PODS_CONFIGURATION_BUILD_DIR}/ReactNativeART" "${PODS_CONFIGURATION_BUILD_DIR}/ReactNativeKeyboardInput" "${PODS_CONFIGURATION_BUILD_DIR}/ReactNativeKeyboardTrackingView" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder" "${PODS_CONFIGURATION_BUILD_DIR}/UMAppLoader" "${PODS_CONFIGURATION_BUILD_DIR}/UMCore" "${PODS_CONFIGURATION_BUILD_DIR}/UMPermissionsInterface" "${PODS_CONFIGURATION_BUILD_DIR}/UMReactNativeAdapter" "${PODS_CONFIGURATION_BUILD_DIR}/Yoga" "${PODS_CONFIGURATION_BUILD_DIR}/YogaKit" "${PODS_CONFIGURATION_BUILD_DIR}/glog" "${PODS_CONFIGURATION_BUILD_DIR}/libwebp" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-appearance" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-background-timer" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-cameraroll" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-document-picker" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-jitsi-meet" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-notifications" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-orientation-locker" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-slider" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-webview" "${PODS_CONFIGURATION_BUILD_DIR}/rn-extensions-share" "${PODS_CONFIGURATION_BUILD_DIR}/rn-fetch-blob" "${PODS_ROOT}/CocoaLibEvent/lib" "${PODS_ROOT}/OpenSSL-Universal/ios/lib"
|
||||||
OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/YogaKit/YogaKit.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/FlipperKit/FlipperKit.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/yoga/Yoga.modulemap"
|
OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/YogaKit/YogaKit.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/FlipperKit/FlipperKit.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/yoga/Yoga.modulemap"
|
||||||
OTHER_LDFLAGS = $(inherited) -ObjC -l"BugsnagReactNative" -l"CocoaAsyncSocket" -l"DoubleConversion" -l"FBReactNativeSpec" -l"FirebaseCore" -l"FirebaseCoreDiagnostics" -l"FirebaseInstallations" -l"Flipper" -l"Flipper-DoubleConversion" -l"Flipper-Folly" -l"Flipper-Glog" -l"Flipper-PeerTalk" -l"Flipper-RSocket" -l"FlipperKit" -l"Folly" -l"GoogleDataTransport" -l"GoogleDataTransportCCTSupport" -l"GoogleUtilities" -l"KeyCommands" -l"PromisesObjC" -l"RCTTypeSafety" -l"RNAudio" -l"RNBootSplash" -l"RNDateTimePicker" -l"RNDeviceInfo" -l"RNFastImage" -l"RNFirebase" -l"RNGestureHandler" -l"RNImageCropPicker" -l"RNLocalize" -l"RNReanimated" -l"RNRootView" -l"RNScreens" -l"RNUserDefaults" -l"RNVectorIcons" -l"RSKImageCropper" -l"React-Core" -l"React-CoreModules" -l"React-RCTAnimation" -l"React-RCTBlob" -l"React-RCTImage" -l"React-RCTLinking" -l"React-RCTNetwork" -l"React-RCTSettings" -l"React-RCTText" -l"React-RCTVibration" -l"React-cxxreact" -l"React-jsi" -l"React-jsiexecutor" -l"React-jsinspector" -l"ReactCommon" -l"ReactNativeART" -l"ReactNativeKeyboardInput" -l"ReactNativeKeyboardTrackingView" -l"SDWebImage" -l"SDWebImageWebPCoder" -l"Yoga" -l"YogaKit" -l"c++" -l"crypto" -l"event" -l"event_core" -l"event_extra" -l"event_pthreads" -l"glog" -l"libwebp" -l"nanopb" -l"react-native-appearance" -l"react-native-background-timer" -l"react-native-cameraroll" -l"react-native-document-picker" -l"react-native-jitsi-meet" -l"react-native-notifications" -l"react-native-orientation-locker" -l"react-native-slider" -l"react-native-webview" -l"rn-extensions-share" -l"rn-fetch-blob" -l"sqlite3" -l"ssl" -l"stdc++" -l"z" -framework "AVFoundation" -framework "AudioToolbox" -framework "CFNetwork" -framework "CoreTelephony" -framework "Crashlytics" -framework "FIRAnalyticsConnector" -framework "Fabric" -framework "FirebaseAnalytics" -framework "Foundation" -framework "GoogleAppMeasurement" -framework "ImageIO" -framework "JavaScriptCore" -framework "JitsiMeet" -framework "MessageUI" -framework "MobileCoreServices" -framework "Photos" -framework "QuartzCore" -framework "Security" -framework "StoreKit" -framework "SystemConfiguration" -framework "UIKit" -framework "WebRTC"
|
OTHER_LDFLAGS = $(inherited) -ObjC -l"BugsnagReactNative" -l"CocoaAsyncSocket" -l"DoubleConversion" -l"EXAV" -l"EXConstants" -l"EXFileSystem" -l"EXHaptics" -l"EXImageLoader" -l"EXKeepAwake" -l"EXLocalAuthentication" -l"EXPermissions" -l"EXWebBrowser" -l"FBReactNativeSpec" -l"FirebaseCore" -l"FirebaseCoreDiagnostics" -l"FirebaseInstallations" -l"Flipper" -l"Flipper-DoubleConversion" -l"Flipper-Folly" -l"Flipper-Glog" -l"Flipper-PeerTalk" -l"Flipper-RSocket" -l"FlipperKit" -l"Folly" -l"GoogleDataTransport" -l"GoogleDataTransportCCTSupport" -l"GoogleUtilities" -l"KeyCommands" -l"PromisesObjC" -l"RCTTypeSafety" -l"RNAudio" -l"RNBootSplash" -l"RNCAsyncStorage" -l"RNDateTimePicker" -l"RNDeviceInfo" -l"RNFastImage" -l"RNFirebase" -l"RNGestureHandler" -l"RNImageCropPicker" -l"RNLocalize" -l"RNReanimated" -l"RNRootView" -l"RNScreens" -l"RNUserDefaults" -l"RNVectorIcons" -l"RSKImageCropper" -l"React-Core" -l"React-CoreModules" -l"React-RCTAnimation" -l"React-RCTBlob" -l"React-RCTImage" -l"React-RCTLinking" -l"React-RCTNetwork" -l"React-RCTSettings" -l"React-RCTText" -l"React-RCTVibration" -l"React-cxxreact" -l"React-jsi" -l"React-jsiexecutor" -l"React-jsinspector" -l"ReactCommon" -l"ReactNativeART" -l"ReactNativeKeyboardInput" -l"ReactNativeKeyboardTrackingView" -l"SDWebImage" -l"SDWebImageWebPCoder" -l"UMAppLoader" -l"UMCore" -l"UMPermissionsInterface" -l"UMReactNativeAdapter" -l"Yoga" -l"YogaKit" -l"c++" -l"crypto" -l"event" -l"event_core" -l"event_extra" -l"event_pthreads" -l"glog" -l"libwebp" -l"nanopb" -l"react-native-appearance" -l"react-native-background-timer" -l"react-native-cameraroll" -l"react-native-document-picker" -l"react-native-jitsi-meet" -l"react-native-notifications" -l"react-native-orientation-locker" -l"react-native-slider" -l"react-native-webview" -l"rn-extensions-share" -l"rn-fetch-blob" -l"sqlite3" -l"ssl" -l"stdc++" -l"z" -framework "AVFoundation" -framework "AudioToolbox" -framework "CFNetwork" -framework "CoreTelephony" -framework "Crashlytics" -framework "FIRAnalyticsConnector" -framework "Fabric" -framework "FirebaseAnalytics" -framework "Foundation" -framework "GoogleAppMeasurement" -framework "ImageIO" -framework "JavaScriptCore" -framework "JitsiMeet" -framework "MessageUI" -framework "MobileCoreServices" -framework "Photos" -framework "QuartzCore" -framework "Security" -framework "StoreKit" -framework "SystemConfiguration" -framework "UIKit" -framework "WebRTC"
|
||||||
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/YogaKit/YogaKit.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/FlipperKit/FlipperKit.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/yoga/Yoga.modulemap"
|
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/YogaKit/YogaKit.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/FlipperKit/FlipperKit.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/yoga/Yoga.modulemap"
|
||||||
PODS_BUILD_DIR = ${BUILD_DIR}
|
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||||
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Crashlytics/iOS" "${PODS_ROOT}/Fabric/iOS" "${PODS_ROOT}/FirebaseAnalytics/Frameworks" "${PODS_ROOT}/GoogleAppMeasurement/Frameworks" "${PODS_ROOT}/JitsiMeetSDK/Frameworks"
|
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Crashlytics/iOS" "${PODS_ROOT}/Fabric/iOS" "${PODS_ROOT}/FirebaseAnalytics/Frameworks" "${PODS_ROOT}/GoogleAppMeasurement/Frameworks" "${PODS_ROOT}/JitsiMeetSDK/Frameworks"
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) SD_WEBP=1 $(inherited) PB_FIELD_32BIT=1 PB_NO_PACKED_STRUCTS=1 PB_ENABLE_MALLOC=1
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) SD_WEBP=1 $(inherited) PB_FIELD_32BIT=1 PB_NO_PACKED_STRUCTS=1 PB_ENABLE_MALLOC=1
|
||||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BugsnagReactNative" "${PODS_ROOT}/Headers/Public/CocoaAsyncSocket" "${PODS_ROOT}/Headers/Public/CocoaLibEvent" "${PODS_ROOT}/Headers/Public/DoubleConversion" "${PODS_ROOT}/Headers/Public/EXAV" "${PODS_ROOT}/Headers/Public/EXConstants" "${PODS_ROOT}/Headers/Public/EXFileSystem" "${PODS_ROOT}/Headers/Public/EXHaptics" "${PODS_ROOT}/Headers/Public/EXImageLoader" "${PODS_ROOT}/Headers/Public/EXKeepAwake" "${PODS_ROOT}/Headers/Public/EXPermissions" "${PODS_ROOT}/Headers/Public/EXWebBrowser" "${PODS_ROOT}/Headers/Public/FBLazyVector" "${PODS_ROOT}/Headers/Public/FBReactNativeSpec" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseCore" "${PODS_ROOT}/Headers/Public/FirebaseCoreDiagnostics" "${PODS_ROOT}/Headers/Public/FirebaseCoreDiagnosticsInterop" "${PODS_ROOT}/Headers/Public/FirebaseInstallations" "${PODS_ROOT}/Headers/Public/Flipper" "${PODS_ROOT}/Headers/Public/Flipper-DoubleConversion" "${PODS_ROOT}/Headers/Public/Flipper-Folly" "${PODS_ROOT}/Headers/Public/Flipper-Glog" "${PODS_ROOT}/Headers/Public/Flipper-PeerTalk" "${PODS_ROOT}/Headers/Public/Flipper-RSocket" "${PODS_ROOT}/Headers/Public/FlipperKit" "${PODS_ROOT}/Headers/Public/GoogleDataTransport" "${PODS_ROOT}/Headers/Public/GoogleDataTransportCCTSupport" "${PODS_ROOT}/Headers/Public/GoogleUtilities" "${PODS_ROOT}/Headers/Public/KeyCommands" "${PODS_ROOT}/Headers/Public/OpenSSL-Universal" "${PODS_ROOT}/Headers/Public/PromisesObjC" "${PODS_ROOT}/Headers/Public/RCTRequired" "${PODS_ROOT}/Headers/Public/RCTTypeSafety" "${PODS_ROOT}/Headers/Public/RNAudio" "${PODS_ROOT}/Headers/Public/RNBootSplash" "${PODS_ROOT}/Headers/Public/RNDateTimePicker" "${PODS_ROOT}/Headers/Public/RNDeviceInfo" "${PODS_ROOT}/Headers/Public/RNFastImage" "${PODS_ROOT}/Headers/Public/RNFirebase" "${PODS_ROOT}/Headers/Public/RNGestureHandler" "${PODS_ROOT}/Headers/Public/RNImageCropPicker" "${PODS_ROOT}/Headers/Public/RNLocalize" "${PODS_ROOT}/Headers/Public/RNReanimated" "${PODS_ROOT}/Headers/Public/RNRootView" "${PODS_ROOT}/Headers/Public/RNScreens" "${PODS_ROOT}/Headers/Public/RNUserDefaults" "${PODS_ROOT}/Headers/Public/RNVectorIcons" "${PODS_ROOT}/Headers/Public/RSKImageCropper" "${PODS_ROOT}/Headers/Public/React-Core" "${PODS_ROOT}/Headers/Public/React-RCTText" "${PODS_ROOT}/Headers/Public/React-cxxreact" "${PODS_ROOT}/Headers/Public/React-jsi" "${PODS_ROOT}/Headers/Public/React-jsiexecutor" "${PODS_ROOT}/Headers/Public/React-jsinspector" "${PODS_ROOT}/Headers/Public/ReactCommon" "${PODS_ROOT}/Headers/Public/ReactNativeART" "${PODS_ROOT}/Headers/Public/ReactNativeKeyboardInput" "${PODS_ROOT}/Headers/Public/ReactNativeKeyboardTrackingView" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/SDWebImageWebPCoder" "${PODS_ROOT}/Headers/Public/UMAppLoader" "${PODS_ROOT}/Headers/Public/UMBarCodeScannerInterface" "${PODS_ROOT}/Headers/Public/UMCameraInterface" "${PODS_ROOT}/Headers/Public/UMConstantsInterface" "${PODS_ROOT}/Headers/Public/UMCore" "${PODS_ROOT}/Headers/Public/UMFaceDetectorInterface" "${PODS_ROOT}/Headers/Public/UMFileSystemInterface" "${PODS_ROOT}/Headers/Public/UMFontInterface" "${PODS_ROOT}/Headers/Public/UMImageLoaderInterface" "${PODS_ROOT}/Headers/Public/UMPermissionsInterface" "${PODS_ROOT}/Headers/Public/UMReactNativeAdapter" "${PODS_ROOT}/Headers/Public/UMSensorsInterface" "${PODS_ROOT}/Headers/Public/UMTaskManagerInterface" "${PODS_ROOT}/Headers/Public/Yoga" "${PODS_ROOT}/Headers/Public/YogaKit" "${PODS_ROOT}/Headers/Public/glog" "${PODS_ROOT}/Headers/Public/libwebp" "${PODS_ROOT}/Headers/Public/nanopb" "${PODS_ROOT}/Headers/Public/react-native-appearance" "${PODS_ROOT}/Headers/Public/react-native-background-timer" "${PODS_ROOT}/Headers/Public/react-native-cameraroll" "${PODS_ROOT}/Headers/Public/react-native-document-picker" "${PODS_ROOT}/Headers/Public/react-native-jitsi-meet" "${PODS_ROOT}/Headers/Public/react-native-notifications" "${PODS_ROOT}/Headers/Public/react-native-orientation-locker" "${PODS_ROOT}/Headers/Public/react-native-slider" "${PODS_ROOT}/Headers/Public/react-native-webview" "${PODS_ROOT}/Headers/Public/rn-extensions-share" "${PODS_ROOT}/Headers/Public/rn-fetch-blob" $(inherited) ${PODS_ROOT}/Firebase/CoreOnly/Sources "${PODS_TARGET_SRCROOT}/Sources/FBLPromises/include" "$(PODS_ROOT)/Headers/Private/React-Core"
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BugsnagReactNative" "${PODS_ROOT}/Headers/Public/CocoaAsyncSocket" "${PODS_ROOT}/Headers/Public/CocoaLibEvent" "${PODS_ROOT}/Headers/Public/DoubleConversion" "${PODS_ROOT}/Headers/Public/EXAV" "${PODS_ROOT}/Headers/Public/EXConstants" "${PODS_ROOT}/Headers/Public/EXFileSystem" "${PODS_ROOT}/Headers/Public/EXHaptics" "${PODS_ROOT}/Headers/Public/EXImageLoader" "${PODS_ROOT}/Headers/Public/EXKeepAwake" "${PODS_ROOT}/Headers/Public/EXLocalAuthentication" "${PODS_ROOT}/Headers/Public/EXPermissions" "${PODS_ROOT}/Headers/Public/EXWebBrowser" "${PODS_ROOT}/Headers/Public/FBLazyVector" "${PODS_ROOT}/Headers/Public/FBReactNativeSpec" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseCore" "${PODS_ROOT}/Headers/Public/FirebaseCoreDiagnostics" "${PODS_ROOT}/Headers/Public/FirebaseCoreDiagnosticsInterop" "${PODS_ROOT}/Headers/Public/FirebaseInstallations" "${PODS_ROOT}/Headers/Public/Flipper" "${PODS_ROOT}/Headers/Public/Flipper-DoubleConversion" "${PODS_ROOT}/Headers/Public/Flipper-Folly" "${PODS_ROOT}/Headers/Public/Flipper-Glog" "${PODS_ROOT}/Headers/Public/Flipper-PeerTalk" "${PODS_ROOT}/Headers/Public/Flipper-RSocket" "${PODS_ROOT}/Headers/Public/FlipperKit" "${PODS_ROOT}/Headers/Public/GoogleDataTransport" "${PODS_ROOT}/Headers/Public/GoogleDataTransportCCTSupport" "${PODS_ROOT}/Headers/Public/GoogleUtilities" "${PODS_ROOT}/Headers/Public/KeyCommands" "${PODS_ROOT}/Headers/Public/OpenSSL-Universal" "${PODS_ROOT}/Headers/Public/PromisesObjC" "${PODS_ROOT}/Headers/Public/RCTRequired" "${PODS_ROOT}/Headers/Public/RCTTypeSafety" "${PODS_ROOT}/Headers/Public/RNAudio" "${PODS_ROOT}/Headers/Public/RNBootSplash" "${PODS_ROOT}/Headers/Public/RNCAsyncStorage" "${PODS_ROOT}/Headers/Public/RNDateTimePicker" "${PODS_ROOT}/Headers/Public/RNDeviceInfo" "${PODS_ROOT}/Headers/Public/RNFastImage" "${PODS_ROOT}/Headers/Public/RNFirebase" "${PODS_ROOT}/Headers/Public/RNGestureHandler" "${PODS_ROOT}/Headers/Public/RNImageCropPicker" "${PODS_ROOT}/Headers/Public/RNLocalize" "${PODS_ROOT}/Headers/Public/RNReanimated" "${PODS_ROOT}/Headers/Public/RNRootView" "${PODS_ROOT}/Headers/Public/RNScreens" "${PODS_ROOT}/Headers/Public/RNUserDefaults" "${PODS_ROOT}/Headers/Public/RNVectorIcons" "${PODS_ROOT}/Headers/Public/RSKImageCropper" "${PODS_ROOT}/Headers/Public/React-Core" "${PODS_ROOT}/Headers/Public/React-RCTText" "${PODS_ROOT}/Headers/Public/React-cxxreact" "${PODS_ROOT}/Headers/Public/React-jsi" "${PODS_ROOT}/Headers/Public/React-jsiexecutor" "${PODS_ROOT}/Headers/Public/React-jsinspector" "${PODS_ROOT}/Headers/Public/ReactCommon" "${PODS_ROOT}/Headers/Public/ReactNativeART" "${PODS_ROOT}/Headers/Public/ReactNativeKeyboardInput" "${PODS_ROOT}/Headers/Public/ReactNativeKeyboardTrackingView" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/SDWebImageWebPCoder" "${PODS_ROOT}/Headers/Public/UMAppLoader" "${PODS_ROOT}/Headers/Public/UMBarCodeScannerInterface" "${PODS_ROOT}/Headers/Public/UMCameraInterface" "${PODS_ROOT}/Headers/Public/UMConstantsInterface" "${PODS_ROOT}/Headers/Public/UMCore" "${PODS_ROOT}/Headers/Public/UMFaceDetectorInterface" "${PODS_ROOT}/Headers/Public/UMFileSystemInterface" "${PODS_ROOT}/Headers/Public/UMFontInterface" "${PODS_ROOT}/Headers/Public/UMImageLoaderInterface" "${PODS_ROOT}/Headers/Public/UMPermissionsInterface" "${PODS_ROOT}/Headers/Public/UMReactNativeAdapter" "${PODS_ROOT}/Headers/Public/UMSensorsInterface" "${PODS_ROOT}/Headers/Public/UMTaskManagerInterface" "${PODS_ROOT}/Headers/Public/Yoga" "${PODS_ROOT}/Headers/Public/YogaKit" "${PODS_ROOT}/Headers/Public/glog" "${PODS_ROOT}/Headers/Public/libwebp" "${PODS_ROOT}/Headers/Public/nanopb" "${PODS_ROOT}/Headers/Public/react-native-appearance" "${PODS_ROOT}/Headers/Public/react-native-background-timer" "${PODS_ROOT}/Headers/Public/react-native-cameraroll" "${PODS_ROOT}/Headers/Public/react-native-document-picker" "${PODS_ROOT}/Headers/Public/react-native-jitsi-meet" "${PODS_ROOT}/Headers/Public/react-native-notifications" "${PODS_ROOT}/Headers/Public/react-native-orientation-locker" "${PODS_ROOT}/Headers/Public/react-native-slider" "${PODS_ROOT}/Headers/Public/react-native-webview" "${PODS_ROOT}/Headers/Public/rn-extensions-share" "${PODS_ROOT}/Headers/Public/rn-fetch-blob" $(inherited) ${PODS_ROOT}/Firebase/CoreOnly/Sources "${PODS_TARGET_SRCROOT}/Sources/FBLPromises/include" "$(PODS_ROOT)/Headers/Private/React-Core"
|
||||||
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' '@executable_path/../../Frameworks'
|
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' '@executable_path/../../Frameworks'
|
||||||
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BugsnagReactNative" "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket" "${PODS_CONFIGURATION_BUILD_DIR}/DoubleConversion" "${PODS_CONFIGURATION_BUILD_DIR}/FBReactNativeSpec" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreDiagnostics" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstallations" "${PODS_CONFIGURATION_BUILD_DIR}/Folly" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransportCCTSupport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/KeyCommands" "${PODS_CONFIGURATION_BUILD_DIR}/PromisesObjC" "${PODS_CONFIGURATION_BUILD_DIR}/RCTTypeSafety" "${PODS_CONFIGURATION_BUILD_DIR}/RNAudio" "${PODS_CONFIGURATION_BUILD_DIR}/RNBootSplash" "${PODS_CONFIGURATION_BUILD_DIR}/RNDateTimePicker" "${PODS_CONFIGURATION_BUILD_DIR}/RNDeviceInfo" "${PODS_CONFIGURATION_BUILD_DIR}/RNFastImage" "${PODS_CONFIGURATION_BUILD_DIR}/RNFirebase" "${PODS_CONFIGURATION_BUILD_DIR}/RNGestureHandler" "${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker" "${PODS_CONFIGURATION_BUILD_DIR}/RNLocalize" "${PODS_CONFIGURATION_BUILD_DIR}/RNReanimated" "${PODS_CONFIGURATION_BUILD_DIR}/RNRootView" "${PODS_CONFIGURATION_BUILD_DIR}/RNScreens" "${PODS_CONFIGURATION_BUILD_DIR}/RNUserDefaults" "${PODS_CONFIGURATION_BUILD_DIR}/RNVectorIcons" "${PODS_CONFIGURATION_BUILD_DIR}/RSKImageCropper" "${PODS_CONFIGURATION_BUILD_DIR}/React-Core" "${PODS_CONFIGURATION_BUILD_DIR}/React-CoreModules" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTAnimation" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTBlob" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTImage" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTLinking" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTNetwork" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTSettings" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTText" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTVibration" "${PODS_CONFIGURATION_BUILD_DIR}/React-cxxreact" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsi" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsiexecutor" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsinspector" "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon" "${PODS_CONFIGURATION_BUILD_DIR}/ReactNativeART" "${PODS_CONFIGURATION_BUILD_DIR}/ReactNativeKeyboardInput" "${PODS_CONFIGURATION_BUILD_DIR}/ReactNativeKeyboardTrackingView" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder" "${PODS_CONFIGURATION_BUILD_DIR}/Yoga" "${PODS_CONFIGURATION_BUILD_DIR}/YogaKit" "${PODS_CONFIGURATION_BUILD_DIR}/glog" "${PODS_CONFIGURATION_BUILD_DIR}/libwebp" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-appearance" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-background-timer" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-cameraroll" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-document-picker" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-jitsi-meet" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-notifications" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-orientation-locker" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-slider" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-webview" "${PODS_CONFIGURATION_BUILD_DIR}/rn-extensions-share" "${PODS_CONFIGURATION_BUILD_DIR}/rn-fetch-blob" "${PODS_ROOT}/CocoaLibEvent/lib" "${PODS_ROOT}/OpenSSL-Universal/ios/lib"
|
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BugsnagReactNative" "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket" "${PODS_CONFIGURATION_BUILD_DIR}/DoubleConversion" "${PODS_CONFIGURATION_BUILD_DIR}/EXAV" "${PODS_CONFIGURATION_BUILD_DIR}/EXConstants" "${PODS_CONFIGURATION_BUILD_DIR}/EXFileSystem" "${PODS_CONFIGURATION_BUILD_DIR}/EXHaptics" "${PODS_CONFIGURATION_BUILD_DIR}/EXImageLoader" "${PODS_CONFIGURATION_BUILD_DIR}/EXKeepAwake" "${PODS_CONFIGURATION_BUILD_DIR}/EXLocalAuthentication" "${PODS_CONFIGURATION_BUILD_DIR}/EXPermissions" "${PODS_CONFIGURATION_BUILD_DIR}/EXWebBrowser" "${PODS_CONFIGURATION_BUILD_DIR}/FBReactNativeSpec" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreDiagnostics" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstallations" "${PODS_CONFIGURATION_BUILD_DIR}/Folly" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransportCCTSupport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/KeyCommands" "${PODS_CONFIGURATION_BUILD_DIR}/PromisesObjC" "${PODS_CONFIGURATION_BUILD_DIR}/RCTTypeSafety" "${PODS_CONFIGURATION_BUILD_DIR}/RNAudio" "${PODS_CONFIGURATION_BUILD_DIR}/RNBootSplash" "${PODS_CONFIGURATION_BUILD_DIR}/RNCAsyncStorage" "${PODS_CONFIGURATION_BUILD_DIR}/RNDateTimePicker" "${PODS_CONFIGURATION_BUILD_DIR}/RNDeviceInfo" "${PODS_CONFIGURATION_BUILD_DIR}/RNFastImage" "${PODS_CONFIGURATION_BUILD_DIR}/RNFirebase" "${PODS_CONFIGURATION_BUILD_DIR}/RNGestureHandler" "${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker" "${PODS_CONFIGURATION_BUILD_DIR}/RNLocalize" "${PODS_CONFIGURATION_BUILD_DIR}/RNReanimated" "${PODS_CONFIGURATION_BUILD_DIR}/RNRootView" "${PODS_CONFIGURATION_BUILD_DIR}/RNScreens" "${PODS_CONFIGURATION_BUILD_DIR}/RNUserDefaults" "${PODS_CONFIGURATION_BUILD_DIR}/RNVectorIcons" "${PODS_CONFIGURATION_BUILD_DIR}/RSKImageCropper" "${PODS_CONFIGURATION_BUILD_DIR}/React-Core" "${PODS_CONFIGURATION_BUILD_DIR}/React-CoreModules" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTAnimation" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTBlob" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTImage" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTLinking" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTNetwork" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTSettings" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTText" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTVibration" "${PODS_CONFIGURATION_BUILD_DIR}/React-cxxreact" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsi" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsiexecutor" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsinspector" "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon" "${PODS_CONFIGURATION_BUILD_DIR}/ReactNativeART" "${PODS_CONFIGURATION_BUILD_DIR}/ReactNativeKeyboardInput" "${PODS_CONFIGURATION_BUILD_DIR}/ReactNativeKeyboardTrackingView" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder" "${PODS_CONFIGURATION_BUILD_DIR}/UMAppLoader" "${PODS_CONFIGURATION_BUILD_DIR}/UMCore" "${PODS_CONFIGURATION_BUILD_DIR}/UMPermissionsInterface" "${PODS_CONFIGURATION_BUILD_DIR}/UMReactNativeAdapter" "${PODS_CONFIGURATION_BUILD_DIR}/Yoga" "${PODS_CONFIGURATION_BUILD_DIR}/YogaKit" "${PODS_CONFIGURATION_BUILD_DIR}/glog" "${PODS_CONFIGURATION_BUILD_DIR}/libwebp" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-appearance" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-background-timer" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-cameraroll" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-document-picker" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-jitsi-meet" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-notifications" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-orientation-locker" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-slider" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-webview" "${PODS_CONFIGURATION_BUILD_DIR}/rn-extensions-share" "${PODS_CONFIGURATION_BUILD_DIR}/rn-fetch-blob" "${PODS_ROOT}/CocoaLibEvent/lib" "${PODS_ROOT}/OpenSSL-Universal/ios/lib"
|
||||||
OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/YogaKit/YogaKit.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/yoga/Yoga.modulemap"
|
OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/YogaKit/YogaKit.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/yoga/Yoga.modulemap"
|
||||||
OTHER_LDFLAGS = $(inherited) -ObjC -l"BugsnagReactNative" -l"CocoaAsyncSocket" -l"DoubleConversion" -l"FBReactNativeSpec" -l"FirebaseCore" -l"FirebaseCoreDiagnostics" -l"FirebaseInstallations" -l"Folly" -l"GoogleDataTransport" -l"GoogleDataTransportCCTSupport" -l"GoogleUtilities" -l"KeyCommands" -l"PromisesObjC" -l"RCTTypeSafety" -l"RNAudio" -l"RNBootSplash" -l"RNDateTimePicker" -l"RNDeviceInfo" -l"RNFastImage" -l"RNFirebase" -l"RNGestureHandler" -l"RNImageCropPicker" -l"RNLocalize" -l"RNReanimated" -l"RNRootView" -l"RNScreens" -l"RNUserDefaults" -l"RNVectorIcons" -l"RSKImageCropper" -l"React-Core" -l"React-CoreModules" -l"React-RCTAnimation" -l"React-RCTBlob" -l"React-RCTImage" -l"React-RCTLinking" -l"React-RCTNetwork" -l"React-RCTSettings" -l"React-RCTText" -l"React-RCTVibration" -l"React-cxxreact" -l"React-jsi" -l"React-jsiexecutor" -l"React-jsinspector" -l"ReactCommon" -l"ReactNativeART" -l"ReactNativeKeyboardInput" -l"ReactNativeKeyboardTrackingView" -l"SDWebImage" -l"SDWebImageWebPCoder" -l"Yoga" -l"YogaKit" -l"c++" -l"crypto" -l"event" -l"event_core" -l"event_extra" -l"event_pthreads" -l"glog" -l"libwebp" -l"nanopb" -l"react-native-appearance" -l"react-native-background-timer" -l"react-native-cameraroll" -l"react-native-document-picker" -l"react-native-jitsi-meet" -l"react-native-notifications" -l"react-native-orientation-locker" -l"react-native-slider" -l"react-native-webview" -l"rn-extensions-share" -l"rn-fetch-blob" -l"sqlite3" -l"ssl" -l"stdc++" -l"z" -framework "AVFoundation" -framework "AudioToolbox" -framework "CFNetwork" -framework "CoreTelephony" -framework "Crashlytics" -framework "FIRAnalyticsConnector" -framework "Fabric" -framework "FirebaseAnalytics" -framework "Foundation" -framework "GoogleAppMeasurement" -framework "ImageIO" -framework "JavaScriptCore" -framework "JitsiMeet" -framework "MessageUI" -framework "MobileCoreServices" -framework "Photos" -framework "QuartzCore" -framework "Security" -framework "StoreKit" -framework "SystemConfiguration" -framework "UIKit" -framework "WebRTC"
|
OTHER_LDFLAGS = $(inherited) -ObjC -l"BugsnagReactNative" -l"CocoaAsyncSocket" -l"DoubleConversion" -l"EXAV" -l"EXConstants" -l"EXFileSystem" -l"EXHaptics" -l"EXImageLoader" -l"EXKeepAwake" -l"EXLocalAuthentication" -l"EXPermissions" -l"EXWebBrowser" -l"FBReactNativeSpec" -l"FirebaseCore" -l"FirebaseCoreDiagnostics" -l"FirebaseInstallations" -l"Folly" -l"GoogleDataTransport" -l"GoogleDataTransportCCTSupport" -l"GoogleUtilities" -l"KeyCommands" -l"PromisesObjC" -l"RCTTypeSafety" -l"RNAudio" -l"RNBootSplash" -l"RNCAsyncStorage" -l"RNDateTimePicker" -l"RNDeviceInfo" -l"RNFastImage" -l"RNFirebase" -l"RNGestureHandler" -l"RNImageCropPicker" -l"RNLocalize" -l"RNReanimated" -l"RNRootView" -l"RNScreens" -l"RNUserDefaults" -l"RNVectorIcons" -l"RSKImageCropper" -l"React-Core" -l"React-CoreModules" -l"React-RCTAnimation" -l"React-RCTBlob" -l"React-RCTImage" -l"React-RCTLinking" -l"React-RCTNetwork" -l"React-RCTSettings" -l"React-RCTText" -l"React-RCTVibration" -l"React-cxxreact" -l"React-jsi" -l"React-jsiexecutor" -l"React-jsinspector" -l"ReactCommon" -l"ReactNativeART" -l"ReactNativeKeyboardInput" -l"ReactNativeKeyboardTrackingView" -l"SDWebImage" -l"SDWebImageWebPCoder" -l"UMAppLoader" -l"UMCore" -l"UMPermissionsInterface" -l"UMReactNativeAdapter" -l"Yoga" -l"YogaKit" -l"c++" -l"crypto" -l"event" -l"event_core" -l"event_extra" -l"event_pthreads" -l"glog" -l"libwebp" -l"nanopb" -l"react-native-appearance" -l"react-native-background-timer" -l"react-native-cameraroll" -l"react-native-document-picker" -l"react-native-jitsi-meet" -l"react-native-notifications" -l"react-native-orientation-locker" -l"react-native-slider" -l"react-native-webview" -l"rn-extensions-share" -l"rn-fetch-blob" -l"sqlite3" -l"ssl" -l"stdc++" -l"z" -framework "AVFoundation" -framework "AudioToolbox" -framework "CFNetwork" -framework "CoreTelephony" -framework "Crashlytics" -framework "FIRAnalyticsConnector" -framework "Fabric" -framework "FirebaseAnalytics" -framework "Foundation" -framework "GoogleAppMeasurement" -framework "ImageIO" -framework "JavaScriptCore" -framework "JitsiMeet" -framework "MessageUI" -framework "MobileCoreServices" -framework "Photos" -framework "QuartzCore" -framework "Security" -framework "StoreKit" -framework "SystemConfiguration" -framework "UIKit" -framework "WebRTC"
|
||||||
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/YogaKit/YogaKit.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/yoga/Yoga.modulemap"
|
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/YogaKit/YogaKit.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/yoga/Yoga.modulemap"
|
||||||
PODS_BUILD_DIR = ${BUILD_DIR}
|
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||||
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
@interface PodsDummy_RNCAsyncStorage : NSObject
|
||||||
|
@end
|
||||||
|
@implementation PodsDummy_RNCAsyncStorage
|
||||||
|
@end
|
|
@ -0,0 +1,12 @@
|
||||||
|
#ifdef __OBJC__
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
#else
|
||||||
|
#ifndef FOUNDATION_EXPORT
|
||||||
|
#if defined(__cplusplus)
|
||||||
|
#define FOUNDATION_EXPORT extern "C"
|
||||||
|
#else
|
||||||
|
#define FOUNDATION_EXPORT extern
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
APPLICATION_EXTENSION_API_ONLY = YES
|
||||||
|
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/RNCAsyncStorage
|
||||||
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/RNCAsyncStorage" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/DoubleConversion" "${PODS_ROOT}/Headers/Public/FBLazyVector" "${PODS_ROOT}/Headers/Public/FBReactNativeSpec" "${PODS_ROOT}/Headers/Public/RCTRequired" "${PODS_ROOT}/Headers/Public/RCTTypeSafety" "${PODS_ROOT}/Headers/Public/RNCAsyncStorage" "${PODS_ROOT}/Headers/Public/React-Core" "${PODS_ROOT}/Headers/Public/React-RCTText" "${PODS_ROOT}/Headers/Public/React-cxxreact" "${PODS_ROOT}/Headers/Public/React-jsi" "${PODS_ROOT}/Headers/Public/React-jsiexecutor" "${PODS_ROOT}/Headers/Public/React-jsinspector" "${PODS_ROOT}/Headers/Public/ReactCommon" "${PODS_ROOT}/Headers/Public/Yoga" "${PODS_ROOT}/Headers/Public/glog"
|
||||||
|
OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_ROOT}/Headers/Public/yoga/Yoga.modulemap"
|
||||||
|
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||||
|
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||||
|
PODS_ROOT = ${SRCROOT}
|
||||||
|
PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../node_modules/@react-native-community/async-storage
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
|
||||||
|
SKIP_INSTALL = YES
|
||||||
|
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
|
|
@ -13,7 +13,7 @@
|
||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>BNDL</string>
|
<string>BNDL</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>0.30.0</string>
|
<string>0.28.0</string>
|
||||||
<key>CFBundleSignature</key>
|
<key>CFBundleSignature</key>
|
||||||
<string>????</string>
|
<string>????</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
APPLICATION_EXTENSION_API_ONLY = YES
|
||||||
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/UMAppLoader
|
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/UMAppLoader
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/UMAppLoader" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/UMAppLoader"
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/UMAppLoader" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/UMAppLoader"
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
APPLICATION_EXTENSION_API_ONLY = YES
|
||||||
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/UMBarCodeScannerInterface
|
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/UMBarCodeScannerInterface
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/UMBarCodeScannerInterface" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/UMBarCodeScannerInterface"
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/UMBarCodeScannerInterface" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/UMBarCodeScannerInterface"
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
APPLICATION_EXTENSION_API_ONLY = YES
|
||||||
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/UMCameraInterface
|
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/UMCameraInterface
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/UMCameraInterface" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/UMCameraInterface"
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/UMCameraInterface" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/UMCameraInterface"
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
APPLICATION_EXTENSION_API_ONLY = YES
|
||||||
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/UMConstantsInterface
|
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/UMConstantsInterface
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/UMConstantsInterface" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/UMConstantsInterface"
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/UMConstantsInterface" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/UMConstantsInterface"
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
APPLICATION_EXTENSION_API_ONLY = YES
|
||||||
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/UMCore
|
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/UMCore
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/UMCore" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/UMCore"
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/UMCore" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/UMCore"
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
APPLICATION_EXTENSION_API_ONLY = YES
|
||||||
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/UMFaceDetectorInterface
|
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/UMFaceDetectorInterface
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/UMFaceDetectorInterface" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/UMFaceDetectorInterface"
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/UMFaceDetectorInterface" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/UMFaceDetectorInterface"
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
APPLICATION_EXTENSION_API_ONLY = YES
|
||||||
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/UMFileSystemInterface
|
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/UMFileSystemInterface
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/UMFileSystemInterface" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/UMFileSystemInterface"
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/UMFileSystemInterface" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/UMFileSystemInterface"
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
APPLICATION_EXTENSION_API_ONLY = YES
|
||||||
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/UMFontInterface
|
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/UMFontInterface
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/UMFontInterface" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/UMFontInterface"
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/UMFontInterface" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/UMFontInterface"
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
APPLICATION_EXTENSION_API_ONLY = YES
|
||||||
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/UMImageLoaderInterface
|
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/UMImageLoaderInterface
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/UMImageLoaderInterface" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/UMImageLoaderInterface"
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/UMImageLoaderInterface" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/UMImageLoaderInterface"
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
APPLICATION_EXTENSION_API_ONLY = YES
|
||||||
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/UMPermissionsInterface
|
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/UMPermissionsInterface
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/UMPermissionsInterface" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/UMCore" "${PODS_ROOT}/Headers/Public/UMPermissionsInterface"
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/UMPermissionsInterface" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/UMCore" "${PODS_ROOT}/Headers/Public/UMPermissionsInterface"
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
APPLICATION_EXTENSION_API_ONLY = YES
|
||||||
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/UMReactNativeAdapter
|
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/UMReactNativeAdapter
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/UMReactNativeAdapter" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/DoubleConversion" "${PODS_ROOT}/Headers/Public/React-Core" "${PODS_ROOT}/Headers/Public/React-cxxreact" "${PODS_ROOT}/Headers/Public/React-jsi" "${PODS_ROOT}/Headers/Public/React-jsiexecutor" "${PODS_ROOT}/Headers/Public/React-jsinspector" "${PODS_ROOT}/Headers/Public/UMCore" "${PODS_ROOT}/Headers/Public/UMFontInterface" "${PODS_ROOT}/Headers/Public/UMReactNativeAdapter" "${PODS_ROOT}/Headers/Public/Yoga" "${PODS_ROOT}/Headers/Public/glog"
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/UMReactNativeAdapter" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/DoubleConversion" "${PODS_ROOT}/Headers/Public/React-Core" "${PODS_ROOT}/Headers/Public/React-cxxreact" "${PODS_ROOT}/Headers/Public/React-jsi" "${PODS_ROOT}/Headers/Public/React-jsiexecutor" "${PODS_ROOT}/Headers/Public/React-jsinspector" "${PODS_ROOT}/Headers/Public/UMCore" "${PODS_ROOT}/Headers/Public/UMFontInterface" "${PODS_ROOT}/Headers/Public/UMReactNativeAdapter" "${PODS_ROOT}/Headers/Public/Yoga" "${PODS_ROOT}/Headers/Public/glog"
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue