first commit
|
@ -0,0 +1,6 @@
|
||||||
|
|
||||||
|
[android]
|
||||||
|
target = Google Inc.:Google APIs:23
|
||||||
|
|
||||||
|
[maven_repositories]
|
||||||
|
central = https://repo1.maven.org/maven2
|
|
@ -0,0 +1,4 @@
|
||||||
|
module.exports = {
|
||||||
|
root: true,
|
||||||
|
extends: '@react-native-community',
|
||||||
|
};
|
|
@ -0,0 +1,73 @@
|
||||||
|
[ignore]
|
||||||
|
; We fork some components by platform
|
||||||
|
.*/*[.]android.js
|
||||||
|
|
||||||
|
; Ignore "BUCK" generated dirs
|
||||||
|
<PROJECT_ROOT>/\.buckd/
|
||||||
|
|
||||||
|
; Ignore polyfills
|
||||||
|
node_modules/react-native/Libraries/polyfills/.*
|
||||||
|
|
||||||
|
; These should not be required directly
|
||||||
|
; require from fbjs/lib instead: require('fbjs/lib/warning')
|
||||||
|
node_modules/warning/.*
|
||||||
|
|
||||||
|
; Flow doesn't support platforms
|
||||||
|
.*/Libraries/Utilities/LoadingView.js
|
||||||
|
|
||||||
|
[untyped]
|
||||||
|
.*/node_modules/@react-native-community/cli/.*/.*
|
||||||
|
|
||||||
|
[include]
|
||||||
|
|
||||||
|
[libs]
|
||||||
|
node_modules/react-native/interface.js
|
||||||
|
node_modules/react-native/flow/
|
||||||
|
|
||||||
|
[options]
|
||||||
|
emoji=true
|
||||||
|
|
||||||
|
esproposal.optional_chaining=enable
|
||||||
|
esproposal.nullish_coalescing=enable
|
||||||
|
|
||||||
|
module.file_ext=.js
|
||||||
|
module.file_ext=.json
|
||||||
|
module.file_ext=.ios.js
|
||||||
|
|
||||||
|
munge_underscores=true
|
||||||
|
|
||||||
|
module.name_mapper='^react-native/\(.*\)$' -> '<PROJECT_ROOT>/node_modules/react-native/\1'
|
||||||
|
module.name_mapper='^@?[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> '<PROJECT_ROOT>/node_modules/react-native/Libraries/Image/RelativeImageStub'
|
||||||
|
|
||||||
|
suppress_type=$FlowIssue
|
||||||
|
suppress_type=$FlowFixMe
|
||||||
|
suppress_type=$FlowFixMeProps
|
||||||
|
suppress_type=$FlowFixMeState
|
||||||
|
|
||||||
|
suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(<VERSION>\\)? *\\(site=[a-z,_]*react_native\\(_ios\\)?_\\(oss\\|fb\\)[a-z,_]*\\)?)\\)
|
||||||
|
suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(<VERSION>\\)? *\\(site=[a-z,_]*react_native\\(_ios\\)?_\\(oss\\|fb\\)[a-z,_]*\\)?)\\)?:? #[0-9]+
|
||||||
|
suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError
|
||||||
|
|
||||||
|
[lints]
|
||||||
|
sketchy-null-number=warn
|
||||||
|
sketchy-null-mixed=warn
|
||||||
|
sketchy-number=warn
|
||||||
|
untyped-type-import=warn
|
||||||
|
nonstrict-import=warn
|
||||||
|
deprecated-type=warn
|
||||||
|
unsafe-getters-setters=warn
|
||||||
|
unnecessary-invariant=warn
|
||||||
|
signature-verification-failure=warn
|
||||||
|
deprecated-utility=error
|
||||||
|
|
||||||
|
[strict]
|
||||||
|
deprecated-type
|
||||||
|
nonstrict-import
|
||||||
|
sketchy-null
|
||||||
|
unclear-type
|
||||||
|
unsafe-getters-setters
|
||||||
|
untyped-import
|
||||||
|
untyped-type-import
|
||||||
|
|
||||||
|
[version]
|
||||||
|
^0.122.0
|
|
@ -0,0 +1 @@
|
||||||
|
*.pbxproj -text
|
|
@ -0,0 +1,59 @@
|
||||||
|
# OSX
|
||||||
|
#
|
||||||
|
.DS_Store
|
||||||
|
|
||||||
|
# Xcode
|
||||||
|
#
|
||||||
|
build/
|
||||||
|
*.pbxuser
|
||||||
|
!default.pbxuser
|
||||||
|
*.mode1v3
|
||||||
|
!default.mode1v3
|
||||||
|
*.mode2v3
|
||||||
|
!default.mode2v3
|
||||||
|
*.perspectivev3
|
||||||
|
!default.perspectivev3
|
||||||
|
xcuserdata
|
||||||
|
*.xccheckout
|
||||||
|
*.moved-aside
|
||||||
|
DerivedData
|
||||||
|
*.hmap
|
||||||
|
*.ipa
|
||||||
|
*.xcuserstate
|
||||||
|
|
||||||
|
# Android/IntelliJ
|
||||||
|
#
|
||||||
|
build/
|
||||||
|
.idea
|
||||||
|
.gradle
|
||||||
|
local.properties
|
||||||
|
*.iml
|
||||||
|
|
||||||
|
# node.js
|
||||||
|
#
|
||||||
|
node_modules/
|
||||||
|
npm-debug.log
|
||||||
|
yarn-error.log
|
||||||
|
|
||||||
|
# BUCK
|
||||||
|
buck-out/
|
||||||
|
\.buckd/
|
||||||
|
*.keystore
|
||||||
|
!debug.keystore
|
||||||
|
|
||||||
|
# fastlane
|
||||||
|
#
|
||||||
|
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
|
||||||
|
# screenshots whenever they are needed.
|
||||||
|
# For more information about the recommended setup visit:
|
||||||
|
# https://docs.fastlane.tools/best-practices/source-control/
|
||||||
|
|
||||||
|
*/fastlane/report.xml
|
||||||
|
*/fastlane/Preview.html
|
||||||
|
*/fastlane/screenshots
|
||||||
|
|
||||||
|
# Bundle artifact
|
||||||
|
*.jsbundle
|
||||||
|
|
||||||
|
# CocoaPods
|
||||||
|
/ios/Pods/
|
|
@ -0,0 +1,6 @@
|
||||||
|
module.exports = {
|
||||||
|
bracketSpacing: false,
|
||||||
|
jsxBracketSameLine: true,
|
||||||
|
singleQuote: true,
|
||||||
|
trailingComma: 'all',
|
||||||
|
};
|
|
@ -0,0 +1 @@
|
||||||
|
{}
|
|
@ -0,0 +1,254 @@
|
||||||
|
//ios Certificates key : rentchatYs962816
|
||||||
|
|
||||||
|
// twilio
|
||||||
|
// FRIENDLY NAME : rentchat
|
||||||
|
// SID : SKd9452f332bc79084af9b03b8098c18cd
|
||||||
|
// KEY TYPE : Standard
|
||||||
|
// SECRET : ImrUyVKfoQqGxC7xuBbhCcIfCePBIlU0
|
||||||
|
import React, {Component} from 'react';
|
||||||
|
import {StatusBar, Platform, Text, TextInput} from 'react-native';
|
||||||
|
import {
|
||||||
|
SafeAreaView,
|
||||||
|
createStackNavigator,
|
||||||
|
createAppContainer,
|
||||||
|
} from 'react-navigation';
|
||||||
|
import Router from './src/router';
|
||||||
|
import JMessage from 'jmessage-react-plugin';
|
||||||
|
import {colors} from './src/assets/styles/colors-theme';
|
||||||
|
import {handleNavigationChange} from './src/common/history';
|
||||||
|
import LoadingView from './src/common/loading';
|
||||||
|
import {Provider, observer} from 'mobx-react';
|
||||||
|
import NavigationService from './src/services/NavigationService';
|
||||||
|
import JPush from 'jpush-react-native';
|
||||||
|
import stores from './src/store';
|
||||||
|
import {
|
||||||
|
checkNotifications,
|
||||||
|
requestNotifications,
|
||||||
|
} from 'react-native-permissions';
|
||||||
|
//import * as stores from './src/stores/index';
|
||||||
|
import {handleErrors} from './src/common/global-error-handler';
|
||||||
|
import Event from './src/common/event';
|
||||||
|
import PushService from './src/common/PushService';
|
||||||
|
import NotifService from './src/common/NotifService';
|
||||||
|
|
||||||
|
@observer
|
||||||
|
export default class App extends Component {
|
||||||
|
constructor(props) {
|
||||||
|
super(props);
|
||||||
|
Text.defaultProps = Text.defaultProps || {};
|
||||||
|
TextInput.defaultProps = TextInput.defaultProps || {};
|
||||||
|
// Ignore dynamic type scaling on iOS
|
||||||
|
Text.defaultProps.allowFontScaling = false;
|
||||||
|
TextInput.defaultProps.allowFontScaling = false;
|
||||||
|
this.timer = null;
|
||||||
|
this.state = {
|
||||||
|
loadingCount: 0,
|
||||||
|
};
|
||||||
|
//this.notif = new NotifService(this.onRegister.bind(this));
|
||||||
|
// require('promise/setimmediate/rejection-tracking').enable({
|
||||||
|
// allRejections: true,
|
||||||
|
// onUnhandled: (id, error) => {
|
||||||
|
// handleErrors(error);
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
|
||||||
|
// this._handleGlobalError = this.handleGlobalError.bind(this)
|
||||||
|
// this._handleShowLoading = this.handleShowLoading.bind(this)
|
||||||
|
// this._handleHideLoading = this.handleHideLoading.bind(this)
|
||||||
|
}
|
||||||
|
|
||||||
|
checkPermission() {
|
||||||
|
checkNotifications().then(({status, settings}) => {
|
||||||
|
console.log(status);
|
||||||
|
if (status == 'DENIED') {
|
||||||
|
this.requestNotifications();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
requestNotifications() {
|
||||||
|
requestNotifications([
|
||||||
|
'alert',
|
||||||
|
'sound',
|
||||||
|
'badge',
|
||||||
|
]).then(({status, settings}) => {});
|
||||||
|
}
|
||||||
|
|
||||||
|
async componentWillMount() {}
|
||||||
|
|
||||||
|
notificationClickAction(data) {
|
||||||
|
console.log(data);
|
||||||
|
if (data.hasOwnProperty('extras')) {
|
||||||
|
console.log('oh...');
|
||||||
|
if (data.extras.hasOwnProperty('_j_type')) {
|
||||||
|
if (data.extras._j_type == 'jmessage') {
|
||||||
|
if (data.notificationEventType == 'notificationOpened') {
|
||||||
|
console.log(data.extras.custom.id);
|
||||||
|
console.log(data.extras.custom.type);
|
||||||
|
console.log(data.extras.custom.nickname);
|
||||||
|
if (data.extras.custom.type == 'group') {
|
||||||
|
var data = {
|
||||||
|
id: data.extras.custom.id,
|
||||||
|
type: 'group',
|
||||||
|
nickname: 'Helper',
|
||||||
|
};
|
||||||
|
try {
|
||||||
|
NavigationService.navigate('chat', {conversation: data});
|
||||||
|
} catch (error) {
|
||||||
|
console.log(error);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
var data = {
|
||||||
|
username: data.extras.custom.id,
|
||||||
|
type: 'single',
|
||||||
|
nickname: data.extras.custom.nickname,
|
||||||
|
};
|
||||||
|
try {
|
||||||
|
NavigationService.navigate('chat', {conversation: data});
|
||||||
|
} catch (error) {
|
||||||
|
console.log(error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async componentDidMount() {
|
||||||
|
await this.checkPermission();
|
||||||
|
var params = {
|
||||||
|
appkey: '89d24c00f8f896623e0bccef',
|
||||||
|
isOpenMessageRoaming: false,
|
||||||
|
isProduction: true,
|
||||||
|
channel: '',
|
||||||
|
};
|
||||||
|
await JMessage.init(params);
|
||||||
|
await JPush.init();
|
||||||
|
JMessage.getUserInfo(
|
||||||
|
{
|
||||||
|
username: '4dbc5b294f184772a043573d7ad9b8c8',
|
||||||
|
appKey: '89d24c00f8f896623e0bccef',
|
||||||
|
},
|
||||||
|
userInfo => {
|
||||||
|
// do something.
|
||||||
|
console.log(userInfo);
|
||||||
|
},
|
||||||
|
error => {
|
||||||
|
var code = error.code;
|
||||||
|
var desc = error.description;
|
||||||
|
},
|
||||||
|
);
|
||||||
|
JMessage.setDebugMode({enable: false});
|
||||||
|
JMessage.setBadge(0, success => {});
|
||||||
|
JMessage.getMyInfo(myInfo => {
|
||||||
|
if (myInfo.username) {
|
||||||
|
} else {
|
||||||
|
console.log(myInfo);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
JMessage.addSyncOfflineMessageListener(message => {
|
||||||
|
console.log(
|
||||||
|
'| JIGUANG |===addSyncOfflineMessageListener====' +
|
||||||
|
JSON.stringify(message),
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
this.connectListener = result => {
|
||||||
|
console.log('connectListener:' + JSON.stringify(result));
|
||||||
|
};
|
||||||
|
|
||||||
|
JPush.addNotificationListener(result => {
|
||||||
|
console.log(`notificationListener: ${JSON.stringify(result)}`);
|
||||||
|
this.notificationClickAction(result);
|
||||||
|
});
|
||||||
|
JPush.addCustomMessagegListener(result => {
|
||||||
|
console.log(`customMessageListener: ${JSON.stringify(result)}`);
|
||||||
|
});
|
||||||
|
//PushService.configure()
|
||||||
|
// 监听全局报错
|
||||||
|
// Event.listen('GLOBAL_ERROR', this._handleGlobalError, this)
|
||||||
|
|
||||||
|
// 显示加载动画
|
||||||
|
// Event.listen('SHOW_LOADING', this._handleShowLoading, this)
|
||||||
|
|
||||||
|
// 隐藏加载动画
|
||||||
|
// Event.listen('HIDE_LOADING', this._handleHideLoading, this)
|
||||||
|
}
|
||||||
|
|
||||||
|
//组件卸载之前移除监听
|
||||||
|
componentWillUnmount() {
|
||||||
|
// Event.remove('GLOBAL_ERROR', this)
|
||||||
|
//Event.remove('SHOW_LOADING', this)
|
||||||
|
// Event.remove('HIDE_LOADING', this)
|
||||||
|
// JPush.removeListener(result => {
|
||||||
|
// console.log(`remove listener: ${JSON.stringify(result)}`);
|
||||||
|
// });
|
||||||
|
}
|
||||||
|
|
||||||
|
onRegister(token) {
|
||||||
|
console.log(token);
|
||||||
|
}
|
||||||
|
|
||||||
|
onNotif(notif) {
|
||||||
|
console.log(notif);
|
||||||
|
}
|
||||||
|
render() {
|
||||||
|
return (
|
||||||
|
<Provider {...stores}>
|
||||||
|
<SafeAreaView
|
||||||
|
style={{flex: 1, backgroundColor: colors.mainColor}}
|
||||||
|
forceInset={{
|
||||||
|
top: 'always',
|
||||||
|
bottom: 'always',
|
||||||
|
}}>
|
||||||
|
<StatusBar
|
||||||
|
animated={true}
|
||||||
|
barStyle={'light-content'}
|
||||||
|
backgroundColor={colors.mainColor}
|
||||||
|
translucent={true}
|
||||||
|
/>
|
||||||
|
<Router
|
||||||
|
onNavigationStateChange={handleNavigationChange}
|
||||||
|
ref={navigatorRef => {
|
||||||
|
NavigationService.setTopLevelNavigator(navigatorRef);
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
<LoadingView visible={this.state.loadingCount > 0} />
|
||||||
|
</SafeAreaView>
|
||||||
|
</Provider>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* showLoading
|
||||||
|
*/
|
||||||
|
handleShowLoading() {
|
||||||
|
if (this.timer) {
|
||||||
|
clearTimeout(this.timer);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.timer = setTimeout(() => {
|
||||||
|
this.setState({
|
||||||
|
loadingCount: this.state.loadingCount + 1,
|
||||||
|
});
|
||||||
|
}, 50);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* hideLoading
|
||||||
|
* @param bForece
|
||||||
|
*/
|
||||||
|
handleHideLoading(bForece) {
|
||||||
|
if (this.timer) {
|
||||||
|
clearTimeout(this.timer);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.timer = setTimeout(() => {
|
||||||
|
if (this.state.loadingCount > 0) {
|
||||||
|
this.setState({
|
||||||
|
loadingCount: bForece ? 0 : this.state.loadingCount - 1,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, 50);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
MIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgRdoZOqwblY00OEmY
|
||||||
|
c0Yoo74RwTBSvzLmRiuO1rUBWb+gCgYIKoZIzj0DAQehRANCAASa37Z5ZdZ2w9YZ
|
||||||
|
tFoOkqGNbN+TrkRuJ03qggxpC1D5S2eQtJJ2iWf42JR+jHXb5HuOCQRxpQPsa3Cr
|
||||||
|
kdTNynO3
|
||||||
|
-----END PRIVATE KEY-----
|
|
@ -0,0 +1,16 @@
|
||||||
|
-----BEGIN CERTIFICATE REQUEST-----
|
||||||
|
MIICjDCCAXQCAQAwRzEnMCUGCSqGSIb3DQEJARYYcGhpbGlwLmNoZXVuZ0BuaXJv
|
||||||
|
bnMuY29tMQ8wDQYDVQQDDAZwaGlsaXAxCzAJBgNVBAYTAkhLMIIBIjANBgkqhkiG
|
||||||
|
9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqFjySinOVdAYMKcaUN6bqBssHQbqbDC/oknV
|
||||||
|
hgS2YnJd2PmRwrVgx9v3/RucnVHxFkjtcT3JbZgnS4AUo3uGKU7tDkM39ZGWBqun
|
||||||
|
lWeFC5a3t7anZjlk38fwftBg99HZPkQ3kVrZVQtKraKtzETLngHOKKlCvcNWT0+o
|
||||||
|
L+Dv+HWKalbNt9u9TK8bEhZQKKoqknjyueHPxjEfBN79eLhjFCAlVl0VkcJngW4V
|
||||||
|
kCyl+csEQvnmncvQBotU5VVJlD5kFU799VscdMRq+GQ03SFYam/zC9atfR7gEiaD
|
||||||
|
lU4223jB1mTD2WoDnDwgBoUXypR9wZfQQUe2fcrhRCYBMj8nPwIDAQABoAAwDQYJ
|
||||||
|
KoZIhvcNAQELBQADggEBACPSAG0udA1y93TgtDmSMA3TeoMZvLUL4uQyGPRbp/uW
|
||||||
|
89nyn9zUVEpBcWxUFqcDevpDRP7yczNxT2a8VmJ/efNE0WkGPgCtZBfjsegdEJNa
|
||||||
|
NoPhqpVFn7TrS+Zk9frFXJHq7MLeuTowLZ8DCUFQ5YdiunvdcwHbMAyQxN/7J5t1
|
||||||
|
2fHUTQLZFIi8WMNI2TLcelOoZjJM8FWfxuUTaAmwnDhogNFo05bbEH1/6aUE7TW2
|
||||||
|
a2WzRTk7tDKIrKaZZcPBKTj8ItxIVf85lEKFa9T6mfIAU/bDcLH77pqdDPqR8aYf
|
||||||
|
QwnJvH1KmEl3OdsPjd9sghNE/ef7hi7EmMq58uXPCVE=
|
||||||
|
-----END CERTIFICATE REQUEST-----
|
|
@ -0,0 +1,98 @@
|
||||||
|
## Rent Chat
|
||||||
|
|
||||||
|
## Description
|
||||||
|
This mobile application is primarily designed for communication between tenants and landlords. Users can input their property information within the app, and tenants can connect with landlords using an invitation code to facilitate communication. The main features of the app include online chat, intelligent lease agreements, property listings, rent reminders, feedback on property issues to landlords, online payments, and renovation services.
|
||||||
|
|
||||||
|
### Screenshot
|
||||||
|
<img src="./src/assets/screenshot/1.jpeg" width="40%" height="40%">
|
||||||
|
<img src="./src/assets/screenshot/2.jpeg" width="40%" height="40%">
|
||||||
|
<img src="./src/assets/screenshot/3.jpeg" width="40%" height="40%">
|
||||||
|
<img src="./src/assets/screenshot/4.jpeg" width="40%" height="40%">
|
||||||
|
<img src="./src/assets/screenshot/5.jpeg" width="40%" height="40%">
|
||||||
|
<img src="./src/assets/screenshot/6.jpeg" width="40%" height="40%">
|
||||||
|
<img src="./src/assets/screenshot/7.jpeg" width="40%" height="40%">
|
||||||
|
<img src="./src/assets/screenshot/8.jpeg" width="40%" height="40%">
|
||||||
|
<img src="./src/assets/screenshot/9.jpeg" width="40%" height="40%">
|
||||||
|
<img src="./src/assets/screenshot/10.jpeg" width="40%" height="40%">
|
||||||
|
<img src="./src/assets/screenshot/11.jpeg" width="40%" height="40%">
|
||||||
|
<img src="./src/assets/screenshot/banner.png" >
|
||||||
|
|
||||||
|
This is a new [**React Native**](https://reactnative.dev) project, bootstrapped using [`@react-native-community/cli`](https://github.com/react-native-community/cli).
|
||||||
|
|
||||||
|
# Getting Started
|
||||||
|
|
||||||
|
>**Note**: Make sure you have completed the [React Native - Environment Setup](https://reactnative.dev/docs/environment-setup) instructions till "Creating a new application" step, before proceeding.
|
||||||
|
|
||||||
|
## Step 1: Start the Metro Server
|
||||||
|
|
||||||
|
First, you will need to start **Metro**, the JavaScript _bundler_ that ships _with_ React Native.
|
||||||
|
|
||||||
|
To start Metro, run the following command from the _root_ of your React Native project:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# using npm
|
||||||
|
npm start
|
||||||
|
|
||||||
|
# OR using Yarn
|
||||||
|
yarn start
|
||||||
|
```
|
||||||
|
|
||||||
|
## Step 2: Start your Application
|
||||||
|
|
||||||
|
Let Metro Bundler run in its _own_ terminal. Open a _new_ terminal from the _root_ of your React Native project. Run the following command to start your _Android_ or _iOS_ app:
|
||||||
|
|
||||||
|
### For Android
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# using npm
|
||||||
|
npm run android
|
||||||
|
|
||||||
|
# OR using Yarn
|
||||||
|
yarn android
|
||||||
|
```
|
||||||
|
|
||||||
|
### For iOS
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# using npm
|
||||||
|
npm run ios
|
||||||
|
|
||||||
|
# OR using Yarn
|
||||||
|
yarn ios
|
||||||
|
```
|
||||||
|
|
||||||
|
If everything is set up _correctly_, you should see your new app running in your _Android Emulator_ or _iOS Simulator_ shortly provided you have set up your emulator/simulator correctly.
|
||||||
|
|
||||||
|
This is one way to run your app — you can also run it directly from within Android Studio and Xcode respectively.
|
||||||
|
|
||||||
|
## Step 3: Modifying your App
|
||||||
|
|
||||||
|
Now that you have successfully run the app, let's modify it.
|
||||||
|
|
||||||
|
1. Open `App.tsx` in your text editor of choice and edit some lines.
|
||||||
|
2. For **Android**: Press the <kbd>R</kbd> key twice or select **"Reload"** from the **Developer Menu** (<kbd>Ctrl</kbd> + <kbd>M</kbd> (on Window and Linux) or <kbd>Cmd ⌘</kbd> + <kbd>M</kbd> (on macOS)) to see your changes!
|
||||||
|
|
||||||
|
For **iOS**: Hit <kbd>Cmd ⌘</kbd> + <kbd>R</kbd> in your iOS Simulator to reload the app and see your changes!
|
||||||
|
|
||||||
|
## Congratulations! :tada:
|
||||||
|
|
||||||
|
You've successfully run and modified your React Native App. :partying_face:
|
||||||
|
|
||||||
|
### Now what?
|
||||||
|
|
||||||
|
- If you want to add this new React Native code to an existing application, check out the [Integration guide](https://reactnative.dev/docs/integration-with-existing-apps).
|
||||||
|
- If you're curious to learn more about React Native, check out the [Introduction to React Native](https://reactnative.dev/docs/getting-started).
|
||||||
|
|
||||||
|
# Troubleshooting
|
||||||
|
|
||||||
|
If you can't get this to work, see the [Troubleshooting](https://reactnative.dev/docs/troubleshooting) page.
|
||||||
|
|
||||||
|
# Learn More
|
||||||
|
|
||||||
|
To learn more about React Native, take a look at the following resources:
|
||||||
|
|
||||||
|
- [React Native Website](https://reactnative.dev) - learn more about React Native.
|
||||||
|
- [Getting Started](https://reactnative.dev/docs/environment-setup) - an **overview** of React Native and how setup your environment.
|
||||||
|
- [Learn the Basics](https://reactnative.dev/docs/getting-started) - a **guided tour** of the React Native **basics**.
|
||||||
|
- [Blog](https://reactnative.dev/blog) - read the latest official React Native **Blog** posts.
|
||||||
|
- [`@facebook/react-native`](https://github.com/facebook/react-native) - the Open Source; GitHub **repository** for React Native.
|
|
@ -0,0 +1,14 @@
|
||||||
|
/**
|
||||||
|
* @format
|
||||||
|
*/
|
||||||
|
|
||||||
|
import 'react-native';
|
||||||
|
import React from 'react';
|
||||||
|
import App from '../App';
|
||||||
|
|
||||||
|
// Note: test renderer must be required after react-native.
|
||||||
|
import renderer from 'react-test-renderer';
|
||||||
|
|
||||||
|
it('renders correctly', () => {
|
||||||
|
renderer.create(<App />);
|
||||||
|
});
|
|
@ -0,0 +1,8 @@
|
||||||
|
module.exports = {
|
||||||
|
presets: ['module:metro-react-native-babel-preset'],
|
||||||
|
plugins: [
|
||||||
|
['@babel/plugin-transform-flow-strip-types'],
|
||||||
|
['@babel/plugin-proposal-decorators', {legacy: true}],
|
||||||
|
['@babel/plugin-proposal-class-properties', {loose: true}],
|
||||||
|
],
|
||||||
|
};
|
|
@ -0,0 +1,3 @@
|
||||||
|
module.exports = {
|
||||||
|
presets: ['module:metro-react-native-babel-preset'],
|
||||||
|
};
|
|
@ -0,0 +1,10 @@
|
||||||
|
/**
|
||||||
|
* @format
|
||||||
|
*/
|
||||||
|
import 'react-native-gesture-handler';
|
||||||
|
import {AppRegistry} from 'react-native';
|
||||||
|
import App from './App';
|
||||||
|
import {name as appName} from './app.json';
|
||||||
|
console.disableYellowBox = true;
|
||||||
|
|
||||||
|
AppRegistry.registerComponent(appName, () => App);
|
|
@ -0,0 +1,9 @@
|
||||||
|
/**
|
||||||
|
* @format
|
||||||
|
*/
|
||||||
|
|
||||||
|
import {AppRegistry} from 'react-native';
|
||||||
|
import App from './App';
|
||||||
|
import {name as appName} from './app.json';
|
||||||
|
|
||||||
|
AppRegistry.registerComponent(appName, () => App);
|
|
@ -0,0 +1,20 @@
|
||||||
|
/**
|
||||||
|
* Metro configuration for React Native
|
||||||
|
* https://github.com/facebook/react-native
|
||||||
|
*
|
||||||
|
* @format
|
||||||
|
*/
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
transformer: {
|
||||||
|
getTransformOptions: async () => ({
|
||||||
|
transform: {
|
||||||
|
experimentalImportSupport: false,
|
||||||
|
inlineRequires: false,
|
||||||
|
babelTransformerPath: require.resolve(
|
||||||
|
'react-native-typescript-transformer',
|
||||||
|
),
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
};
|
|
@ -0,0 +1,17 @@
|
||||||
|
/**
|
||||||
|
* Metro configuration for React Native
|
||||||
|
* https://github.com/facebook/react-native
|
||||||
|
*
|
||||||
|
* @format
|
||||||
|
*/
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
transformer: {
|
||||||
|
getTransformOptions: async () => ({
|
||||||
|
transform: {
|
||||||
|
experimentalImportSupport: false,
|
||||||
|
inlineRequires: false,
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
};
|
|
@ -0,0 +1,127 @@
|
||||||
|
{
|
||||||
|
"name": "rentchat",
|
||||||
|
"version": "0.0.1",
|
||||||
|
"private": true,
|
||||||
|
"rnpm": {
|
||||||
|
"assets": [
|
||||||
|
"./src/assets/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"android": "react-native run-android",
|
||||||
|
"ios": "react-native run-ios",
|
||||||
|
"start": "react-native start",
|
||||||
|
"test": "jest",
|
||||||
|
"lint": "eslint ."
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/plugin-proposal-decorators": "^7.12.1",
|
||||||
|
"@invertase/react-native-apple-authentication": "^2.1.0",
|
||||||
|
"@react-native-community/async-storage": "^1.12.1",
|
||||||
|
"@react-native-community/cameraroll": "^4.0.1",
|
||||||
|
"@react-native-community/datetimepicker": "^3.0.4",
|
||||||
|
"@react-native-community/google-signin": "^5.0.0",
|
||||||
|
"@react-native-community/image-editor": "^2.3.0",
|
||||||
|
"@react-native-community/masked-view": "^0.1.10",
|
||||||
|
"@react-native-community/netinfo": "^5.9.7",
|
||||||
|
"@react-native-community/push-notification-ios": "^1.7.3",
|
||||||
|
"@react-native-community/toolbar-android": "0.1.0-rc.2",
|
||||||
|
"@react-native-community/viewpager": "^4.2.0",
|
||||||
|
"aurora-imui-react-native": "^0.14.0",
|
||||||
|
"axios": "^0.21.0",
|
||||||
|
"babel-plugin-transform-decorators-legacy": "^1.3.5",
|
||||||
|
"fetch-intercept": "^2.3.1",
|
||||||
|
"jcore-react-native": "^1.9.0",
|
||||||
|
"jmessage-react-plugin": "^3.1.8",
|
||||||
|
"jpush-react-native": "^2.8.1",
|
||||||
|
"lodash": "^4.17.20",
|
||||||
|
"lottie-react-native": "^3.5.0",
|
||||||
|
"mobx": "^6.0.3",
|
||||||
|
"mobx-persist": "^0.4.1",
|
||||||
|
"mobx-react": "^7.0.4",
|
||||||
|
"mobx-react-form": "^2.0.9",
|
||||||
|
"moment": "^2.29.1",
|
||||||
|
"react": "16.13.1",
|
||||||
|
"react-native": "0.63.3",
|
||||||
|
"react-native-amazing-cropper": "^0.1.4",
|
||||||
|
"react-native-app-intro-slider": "^4.0.4",
|
||||||
|
"react-native-autocomplete-input": "^4.2.0",
|
||||||
|
"react-native-blink-view": "0.0.6",
|
||||||
|
"react-native-check-box": "^2.1.7",
|
||||||
|
"react-native-country-picker-modal": "^2.0.0",
|
||||||
|
"react-native-credit-card-input": "^0.4.1",
|
||||||
|
"react-native-dark-mode": "^0.2.2",
|
||||||
|
"react-native-device-info": "^7.0.2",
|
||||||
|
"react-native-document-picker": "^4.1.0",
|
||||||
|
"react-native-easy-toast": "^1.2.0",
|
||||||
|
"react-native-elements": "^3.0.0-alpha.1",
|
||||||
|
"react-native-fast-image": "^8.3.3",
|
||||||
|
"react-native-fbsdk": "^2.0.0",
|
||||||
|
"react-native-fs": "^2.16.6",
|
||||||
|
"react-native-gesture-handler": "^1.8.0",
|
||||||
|
"react-native-html-to-pdf": "^0.8.0",
|
||||||
|
"react-native-htmlview": "^0.16.0",
|
||||||
|
"react-native-image-crop-picker": "^0.35.1",
|
||||||
|
"react-native-image-pan-zoom": "^2.1.12",
|
||||||
|
"react-native-image-rotate": "^2.1.0",
|
||||||
|
"react-native-image-to-pdf": "^1.2.0",
|
||||||
|
"react-native-image-viewing": "^0.2.0",
|
||||||
|
"react-native-keyboard-aware-scroll-view": "^0.9.3",
|
||||||
|
"react-native-linear-gradient": "^2.5.6",
|
||||||
|
"react-native-md5": "^1.0.0",
|
||||||
|
"react-native-modal-datetime-picker": "^9.0.0",
|
||||||
|
"react-native-modals": "^0.19.9",
|
||||||
|
"react-native-paper": "^4.3.1",
|
||||||
|
"react-native-pdf": "^6.2.2",
|
||||||
|
"react-native-permissions": "^2.2.2",
|
||||||
|
"react-native-picker-js": "^1.1.2",
|
||||||
|
"react-native-picker-select": "^8.0.2",
|
||||||
|
"react-native-popup-menu": "^0.15.9",
|
||||||
|
"react-native-push-notification": "^6.1.3",
|
||||||
|
"react-native-reanimated": "^1.13.1",
|
||||||
|
"react-native-render-html": "^4.2.4",
|
||||||
|
"react-native-rss-parser": "^1.5.1",
|
||||||
|
"react-native-safe-area-context": "^3.1.8",
|
||||||
|
"react-native-safe-area-view": "^1.1.1",
|
||||||
|
"react-native-screens": "^2.14.0",
|
||||||
|
"react-native-share": "^4.1.0",
|
||||||
|
"react-native-signature-capture": "^0.4.10",
|
||||||
|
"react-native-simple-radio-button": "^2.7.4",
|
||||||
|
"react-native-size-matters": "^0.3.1",
|
||||||
|
"react-native-sound": "^0.11.0",
|
||||||
|
"react-native-step-indicator": "^1.0.3",
|
||||||
|
"react-native-svg": "^12.1.0",
|
||||||
|
"react-native-swiper": "^1.6.0",
|
||||||
|
"react-native-switch-pro": "^1.0.5",
|
||||||
|
"react-native-tab-view": "^2.15.2",
|
||||||
|
"react-native-typescript-transformer": "^1.2.13",
|
||||||
|
"react-native-uuid": "^1.4.9",
|
||||||
|
"react-native-vector-icons": "^7.1.0",
|
||||||
|
"react-native-video": "^5.1.0-alpha8",
|
||||||
|
"react-native-view-shot": "^3.1.2",
|
||||||
|
"react-native-webview": "^10.10.2",
|
||||||
|
"react-native-wechat": "^1.9.12",
|
||||||
|
"react-navigation": "^4.4.3",
|
||||||
|
"react-navigation-material-bottom-tabs": "^2.3.3",
|
||||||
|
"react-navigation-stack": "^2.10.1",
|
||||||
|
"react-navigation-tabs": "^2.10.1",
|
||||||
|
"react-navigation-transitions": "^1.0.12",
|
||||||
|
"rn-countdown": "^1.0.0",
|
||||||
|
"rn-fetch-blob": "^0.12.0",
|
||||||
|
"valid-url": "^1.0.9",
|
||||||
|
"validatorjs": "^3.20.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@babel/core": "^7.8.4",
|
||||||
|
"@babel/runtime": "^7.8.4",
|
||||||
|
"@react-native-community/eslint-config": "^1.1.0",
|
||||||
|
"babel-jest": "^25.1.0",
|
||||||
|
"eslint": "^6.5.1",
|
||||||
|
"jest": "^25.1.0",
|
||||||
|
"metro-react-native-babel-preset": "^0.59.0",
|
||||||
|
"react-test-renderer": "16.13.1"
|
||||||
|
},
|
||||||
|
"jest": {
|
||||||
|
"preset": "react-native"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
module.exports = {
|
||||||
|
dependencies: {
|
||||||
|
'jmessage-react-plugin': {
|
||||||
|
platforms: {
|
||||||
|
android: {
|
||||||
|
packageInstance: 'new JMessageReactPackage(false)',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
|
@ -0,0 +1,116 @@
|
||||||
|
Bag Attributes
|
||||||
|
friendlyName: 7788 dev key
|
||||||
|
localKeyID: 21 47 E5 7F FE 5A 1D 4B 63 22 DA C1 14 0E 5B 65 E0 AE DD 67
|
||||||
|
subject=/CN=7788 dev key/C=HK/emailAddress=philip.cheung@nirons.com
|
||||||
|
issuer=/CN=7788 dev key/C=HK/emailAddress=philip.cheung@nirons.com
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDZDCCAkygAwIBAgIBATANBgkqhkiG9w0BAQsFADBNMRUwEwYDVQQDDAw3Nzg4
|
||||||
|
IGRldiBrZXkxCzAJBgNVBAYTAkhLMScwJQYJKoZIhvcNAQkBFhhwaGlsaXAuY2hl
|
||||||
|
dW5nQG5pcm9ucy5jb20wHhcNMTkxMTA0MDIwODI0WhcNMjAxMTAzMDIwODI0WjBN
|
||||||
|
MRUwEwYDVQQDDAw3Nzg4IGRldiBrZXkxCzAJBgNVBAYTAkhLMScwJQYJKoZIhvcN
|
||||||
|
AQkBFhhwaGlsaXAuY2hldW5nQG5pcm9ucy5jb20wggEiMA0GCSqGSIb3DQEBAQUA
|
||||||
|
A4IBDwAwggEKAoIBAQClR8euadir+78GoN0JRitD59H3tm5M+PpdJiWw/7gsyckN
|
||||||
|
nYosF9Wu1oRKsIO8Z8FZAfOT2NAMNOMmfXsS7H29XhHU0A/c4UkBUXmi8BlHqsIm
|
||||||
|
ULncrge3IVZ8RcLhVkIKWy/fzaIjZNtsI2A4EHA/Y1U3sHVHBfHPdG0STouERpDg
|
||||||
|
/+qUz734zTsPqhyCsB4YfEiLjacjkj9hPjAXgLLHTv9urkOXT0F14CtDWAA8fbDT
|
||||||
|
fox9kwQIf5J4hGa6iPgNw9IwMD0eObwCpPCqg9iHs8mLWObLv5NJ7jz2WzicJpM5
|
||||||
|
xiZb+PfNbo+pOuEAFlIQRhs7xXYTjx7QCY+WiWkLAgMBAAGjTzBNMA4GA1UdDwEB
|
||||||
|
/wQEAwIFoDAWBgNVHSUBAf8EDDAKBggrBgEFBQcDBDAjBgNVHREEHDAagRhwaGls
|
||||||
|
aXAuY2hldW5nQG5pcm9ucy5jb20wDQYJKoZIhvcNAQELBQADggEBAIrRiHsH61Z/
|
||||||
|
UgnxoQBFVKG1+IWm/1GENhizlPslkKsysHqX5StAPYNBZIwCd6muG8rd5GDNXv+2
|
||||||
|
xsZ+BX+YCb6j1o+0xz77J2NHJXYaxT8tmXHJCO8ustMc6Nj+pYEuTWbOE6ljbRsB
|
||||||
|
VCGjeihk1l/ljYn0cD2ALcxUJm/1rar4udZNkXN+zWf68W5/sfMOLnhxNaImVQpI
|
||||||
|
Jvx67G1cs6kM3sFwnnMbYkJRdyFs+RWlopq43ylYifo2g5MLAMv3ra3Fn8BWuT9O
|
||||||
|
eopd3dO9ALyi70iZ7fZGdYYHI9oJqIodZ644o3Lf6WxIF35+8jIrL6iLNc0E2ZO4
|
||||||
|
zWqYBNJS+v8=
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
Bag Attributes
|
||||||
|
friendlyName: 7788 dev key
|
||||||
|
localKeyID: 21 47 E5 7F FE 5A 1D 4B 63 22 DA C1 14 0E 5B 65 E0 AE DD 67
|
||||||
|
subject=/CN=7788 dev key/C=HK/emailAddress=philip.cheung@nirons.com
|
||||||
|
issuer=/CN=7788 dev key/C=HK/emailAddress=philip.cheung@nirons.com
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDZDCCAkygAwIBAgIBATANBgkqhkiG9w0BAQsFADBNMRUwEwYDVQQDDAw3Nzg4
|
||||||
|
IGRldiBrZXkxCzAJBgNVBAYTAkhLMScwJQYJKoZIhvcNAQkBFhhwaGlsaXAuY2hl
|
||||||
|
dW5nQG5pcm9ucy5jb20wHhcNMTkxMTA0MDIwODI0WhcNMjAxMTAzMDIwODI0WjBN
|
||||||
|
MRUwEwYDVQQDDAw3Nzg4IGRldiBrZXkxCzAJBgNVBAYTAkhLMScwJQYJKoZIhvcN
|
||||||
|
AQkBFhhwaGlsaXAuY2hldW5nQG5pcm9ucy5jb20wggEiMA0GCSqGSIb3DQEBAQUA
|
||||||
|
A4IBDwAwggEKAoIBAQClR8euadir+78GoN0JRitD59H3tm5M+PpdJiWw/7gsyckN
|
||||||
|
nYosF9Wu1oRKsIO8Z8FZAfOT2NAMNOMmfXsS7H29XhHU0A/c4UkBUXmi8BlHqsIm
|
||||||
|
ULncrge3IVZ8RcLhVkIKWy/fzaIjZNtsI2A4EHA/Y1U3sHVHBfHPdG0STouERpDg
|
||||||
|
/+qUz734zTsPqhyCsB4YfEiLjacjkj9hPjAXgLLHTv9urkOXT0F14CtDWAA8fbDT
|
||||||
|
fox9kwQIf5J4hGa6iPgNw9IwMD0eObwCpPCqg9iHs8mLWObLv5NJ7jz2WzicJpM5
|
||||||
|
xiZb+PfNbo+pOuEAFlIQRhs7xXYTjx7QCY+WiWkLAgMBAAGjTzBNMA4GA1UdDwEB
|
||||||
|
/wQEAwIFoDAWBgNVHSUBAf8EDDAKBggrBgEFBQcDBDAjBgNVHREEHDAagRhwaGls
|
||||||
|
aXAuY2hldW5nQG5pcm9ucy5jb20wDQYJKoZIhvcNAQELBQADggEBAIrRiHsH61Z/
|
||||||
|
UgnxoQBFVKG1+IWm/1GENhizlPslkKsysHqX5StAPYNBZIwCd6muG8rd5GDNXv+2
|
||||||
|
xsZ+BX+YCb6j1o+0xz77J2NHJXYaxT8tmXHJCO8ustMc6Nj+pYEuTWbOE6ljbRsB
|
||||||
|
VCGjeihk1l/ljYn0cD2ALcxUJm/1rar4udZNkXN+zWf68W5/sfMOLnhxNaImVQpI
|
||||||
|
Jvx67G1cs6kM3sFwnnMbYkJRdyFs+RWlopq43ylYifo2g5MLAMv3ra3Fn8BWuT9O
|
||||||
|
eopd3dO9ALyi70iZ7fZGdYYHI9oJqIodZ644o3Lf6WxIF35+8jIrL6iLNc0E2ZO4
|
||||||
|
zWqYBNJS+v8=
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
Bag Attributes
|
||||||
|
friendlyName: 7788 dev key
|
||||||
|
localKeyID: 21 47 E5 7F FE 5A 1D 4B 63 22 DA C1 14 0E 5B 65 E0 AE DD 67
|
||||||
|
Key Attributes: <No Attributes>
|
||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQClR8euadir+78G
|
||||||
|
oN0JRitD59H3tm5M+PpdJiWw/7gsyckNnYosF9Wu1oRKsIO8Z8FZAfOT2NAMNOMm
|
||||||
|
fXsS7H29XhHU0A/c4UkBUXmi8BlHqsImULncrge3IVZ8RcLhVkIKWy/fzaIjZNts
|
||||||
|
I2A4EHA/Y1U3sHVHBfHPdG0STouERpDg/+qUz734zTsPqhyCsB4YfEiLjacjkj9h
|
||||||
|
PjAXgLLHTv9urkOXT0F14CtDWAA8fbDTfox9kwQIf5J4hGa6iPgNw9IwMD0eObwC
|
||||||
|
pPCqg9iHs8mLWObLv5NJ7jz2WzicJpM5xiZb+PfNbo+pOuEAFlIQRhs7xXYTjx7Q
|
||||||
|
CY+WiWkLAgMBAAECggEBAIrdl0jUR6agOmyARZZgLUO9h21gCqaDXh9bSLnA8OY4
|
||||||
|
l8LnxUqsr+1Y8Qer7NMkPY/iEtv6gzpuSRdywDAzIKY1Xjf2pA1J/0OrR859ek/7
|
||||||
|
iWoV00M1uOfFi9uX5VfcWFpJKR0ZsYuZVr4xrssMDLNFazkB+lc1CGjsAiQqeBAm
|
||||||
|
u/N8Vfsqgfl1tVu5LryWy/8gReg39vF8oDDr/dksNPfmGbHysX06X1SCgG4AP/X8
|
||||||
|
LpbAb9v+itP3jJulhR8TVIOx3aTWS9zjWwMr4VXtHkBkJPyk5qvjksSIbOEJ+fTc
|
||||||
|
z+xopaGEhJRKs6kV9qQ/8eahKVoRh9lQsSs0lO9MfIkCgYEA1dTqUiZF2L8N284G
|
||||||
|
lEhhkEns+19qWvoO1t67n6X9tthI+RLQulQqfuJxNDenevLqnlrjf5Hf9YVqsi0u
|
||||||
|
wlQbtTZNQQD1r9yUpswiN/u7UbA9zzcIN0eWhzPzKdLq4Sso+THl9Y2HRpqolQDg
|
||||||
|
z5dbmph+zD+8b4GnXXghuotIysUCgYEAxd/MmIqBjwd47F4VuWFgXMRrJ1NSdVyH
|
||||||
|
/T2OfGP7b3nBhT2QidWhwaMnO4RcjR/4/Vv8JYbqmzymFSLrFBhH1jeX4vJx8aj9
|
||||||
|
ySnG4/yKFj1kpgC2owsaUfCdNID0M+h7Nx4Z3AD+kCcOVv37oAEcBi5gWgVMC2fl
|
||||||
|
psv73EKV4Y8CgYA+yrhIiV6naGs8acK61op34Y2Kv5kuwBGNfXihSBA6GkdLhP/w
|
||||||
|
R3j3K63MhK9UxnKpL81wj7ixk40iZ2w8upAsZZbICO0cyGyKkpVV1UFLmrJ74BA0
|
||||||
|
k3wbleDJHlvE5XSxwLpjojzgOdhZcRmTPEI1IqTRe8HtCKjKJNXavr4QdQKBgBsg
|
||||||
|
CtP+aLRKufDtFN1M1ADjjCzf5zXfcWTtw1KaAiXN8xFo1x+OAZah3wbxph5Se7d/
|
||||||
|
nJkoXZDaR4ouNzuR+IcNJ+0cfzI5kFC7QWCPhf52fA2lm2POadVBvssrwk47WGi9
|
||||||
|
352hJURtljGmr4/Hlyfhw6OThlEp9PlgjS4sko9RAoGABQtBIg9kqv7Q7iRwtn5C
|
||||||
|
zD7zpuxY91tU5QDgDkMNknrE39o2TGrhGJq/bEIIMhrXBY2CnAIhZgO5nIiXjNbq
|
||||||
|
gqCDHnU3fCqcpxH5SFyVa1W+ONzBhg4orr64vXzd1fO6BINPFCiLzclUnn+/sBP4
|
||||||
|
LJGpwr0pEqBHmdhz4tWwv84=
|
||||||
|
-----END PRIVATE KEY-----
|
||||||
|
Bag Attributes
|
||||||
|
friendlyName: 7788 dev key
|
||||||
|
localKeyID: 21 47 E5 7F FE 5A 1D 4B 63 22 DA C1 14 0E 5B 65 E0 AE DD 67
|
||||||
|
Key Attributes: <No Attributes>
|
||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQClR8euadir+78G
|
||||||
|
oN0JRitD59H3tm5M+PpdJiWw/7gsyckNnYosF9Wu1oRKsIO8Z8FZAfOT2NAMNOMm
|
||||||
|
fXsS7H29XhHU0A/c4UkBUXmi8BlHqsImULncrge3IVZ8RcLhVkIKWy/fzaIjZNts
|
||||||
|
I2A4EHA/Y1U3sHVHBfHPdG0STouERpDg/+qUz734zTsPqhyCsB4YfEiLjacjkj9h
|
||||||
|
PjAXgLLHTv9urkOXT0F14CtDWAA8fbDTfox9kwQIf5J4hGa6iPgNw9IwMD0eObwC
|
||||||
|
pPCqg9iHs8mLWObLv5NJ7jz2WzicJpM5xiZb+PfNbo+pOuEAFlIQRhs7xXYTjx7Q
|
||||||
|
CY+WiWkLAgMBAAECggEBAIrdl0jUR6agOmyARZZgLUO9h21gCqaDXh9bSLnA8OY4
|
||||||
|
l8LnxUqsr+1Y8Qer7NMkPY/iEtv6gzpuSRdywDAzIKY1Xjf2pA1J/0OrR859ek/7
|
||||||
|
iWoV00M1uOfFi9uX5VfcWFpJKR0ZsYuZVr4xrssMDLNFazkB+lc1CGjsAiQqeBAm
|
||||||
|
u/N8Vfsqgfl1tVu5LryWy/8gReg39vF8oDDr/dksNPfmGbHysX06X1SCgG4AP/X8
|
||||||
|
LpbAb9v+itP3jJulhR8TVIOx3aTWS9zjWwMr4VXtHkBkJPyk5qvjksSIbOEJ+fTc
|
||||||
|
z+xopaGEhJRKs6kV9qQ/8eahKVoRh9lQsSs0lO9MfIkCgYEA1dTqUiZF2L8N284G
|
||||||
|
lEhhkEns+19qWvoO1t67n6X9tthI+RLQulQqfuJxNDenevLqnlrjf5Hf9YVqsi0u
|
||||||
|
wlQbtTZNQQD1r9yUpswiN/u7UbA9zzcIN0eWhzPzKdLq4Sso+THl9Y2HRpqolQDg
|
||||||
|
z5dbmph+zD+8b4GnXXghuotIysUCgYEAxd/MmIqBjwd47F4VuWFgXMRrJ1NSdVyH
|
||||||
|
/T2OfGP7b3nBhT2QidWhwaMnO4RcjR/4/Vv8JYbqmzymFSLrFBhH1jeX4vJx8aj9
|
||||||
|
ySnG4/yKFj1kpgC2owsaUfCdNID0M+h7Nx4Z3AD+kCcOVv37oAEcBi5gWgVMC2fl
|
||||||
|
psv73EKV4Y8CgYA+yrhIiV6naGs8acK61op34Y2Kv5kuwBGNfXihSBA6GkdLhP/w
|
||||||
|
R3j3K63MhK9UxnKpL81wj7ixk40iZ2w8upAsZZbICO0cyGyKkpVV1UFLmrJ74BA0
|
||||||
|
k3wbleDJHlvE5XSxwLpjojzgOdhZcRmTPEI1IqTRe8HtCKjKJNXavr4QdQKBgBsg
|
||||||
|
CtP+aLRKufDtFN1M1ADjjCzf5zXfcWTtw1KaAiXN8xFo1x+OAZah3wbxph5Se7d/
|
||||||
|
nJkoXZDaR4ouNzuR+IcNJ+0cfzI5kFC7QWCPhf52fA2lm2POadVBvssrwk47WGi9
|
||||||
|
352hJURtljGmr4/Hlyfhw6OThlEp9PlgjS4sko9RAoGABQtBIg9kqv7Q7iRwtn5C
|
||||||
|
zD7zpuxY91tU5QDgDkMNknrE39o2TGrhGJq/bEIIMhrXBY2CnAIhZgO5nIiXjNbq
|
||||||
|
gqCDHnU3fCqcpxH5SFyVa1W+ONzBhg4orr64vXzd1fO6BINPFCiLzclUnn+/sBP4
|
||||||
|
LJGpwr0pEqBHmdhz4tWwv84=
|
||||||
|
-----END PRIVATE KEY-----
|
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 5.0 KiB |
After Width: | Height: | Size: 9.5 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 5.9 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 4.8 KiB |
After Width: | Height: | Size: 7.9 KiB |
|
@ -0,0 +1,6 @@
|
||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
MIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgFg+OneGGIEhXZT85
|
||||||
|
uTDuAzOJSCQ6H0La7mYT9oS61kWgCgYIKoZIzj0DAQehRANCAARGi78fvWkdb4q7
|
||||||
|
27dSU13aXIFJtbq5FhExGliJUMayFtYdfJw97sysB2WcK0mDmih76Zrjzox0Zc7p
|
||||||
|
UUscgRTL
|
||||||
|
-----END PRIVATE KEY-----
|
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 692 KiB |
After Width: | Height: | Size: 7.9 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 4.8 KiB |
After Width: | Height: | Size: 240 B |
After Width: | Height: | Size: 368 B |
After Width: | Height: | Size: 764 B |
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 571 KiB |
After Width: | Height: | Size: 617 KiB |
After Width: | Height: | Size: 914 KiB |
After Width: | Height: | Size: 514 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 5.9 KiB |
After Width: | Height: | Size: 491 KiB |
After Width: | Height: | Size: 787 KiB |
After Width: | Height: | Size: 5.6 KiB |
After Width: | Height: | Size: 8.9 KiB |
After Width: | Height: | Size: 636 KiB |
After Width: | Height: | Size: 4.8 KiB |
After Width: | Height: | Size: 7.9 KiB |
After Width: | Height: | Size: 800 KiB |
After Width: | Height: | Size: 5.0 KiB |
After Width: | Height: | Size: 9.5 KiB |
After Width: | Height: | Size: 4.7 KiB |
After Width: | Height: | Size: 8.9 KiB |
After Width: | Height: | Size: 994 KiB |
After Width: | Height: | Size: 199 KiB |
After Width: | Height: | Size: 522 KiB |
After Width: | Height: | Size: 563 KiB |
After Width: | Height: | Size: 547 KiB |
After Width: | Height: | Size: 420 KiB |
After Width: | Height: | Size: 97 KiB |
After Width: | Height: | Size: 356 KiB |
After Width: | Height: | Size: 535 KiB |
After Width: | Height: | Size: 717 KiB |
After Width: | Height: | Size: 664 KiB |
After Width: | Height: | Size: 4.0 KiB |
After Width: | Height: | Size: 7.5 KiB |
After Width: | Height: | Size: 1.1 MiB |