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 ![]() (image error) Size: 2.2 KiB |
After ![]() (image error) Size: 5.0 KiB |
After ![]() (image error) Size: 9.5 KiB |
After ![]() (image error) Size: 1.6 KiB |
After ![]() (image error) Size: 3.7 KiB |
After ![]() (image error) Size: 5.9 KiB |
After ![]() (image error) Size: 2.2 KiB |
After ![]() (image error) Size: 4.8 KiB |
After ![]() (image error) Size: 7.9 KiB |
|
@ -0,0 +1,6 @@
|
||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
MIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgFg+OneGGIEhXZT85
|
||||||
|
uTDuAzOJSCQ6H0La7mYT9oS61kWgCgYIKoZIzj0DAQehRANCAARGi78fvWkdb4q7
|
||||||
|
27dSU13aXIFJtbq5FhExGliJUMayFtYdfJw97sysB2WcK0mDmih76Zrjzox0Zc7p
|
||||||
|
UUscgRTL
|
||||||
|
-----END PRIVATE KEY-----
|
After ![]() (image error) Size: 1.2 KiB |
After ![]() (image error) Size: 1.7 KiB |
After ![]() (image error) Size: 692 KiB |
After ![]() (image error) Size: 7.9 KiB |
After ![]() (image error) Size: 12 KiB |
After ![]() (image error) Size: 3.2 KiB |
After ![]() (image error) Size: 4.8 KiB |
After ![]() (image error) Size: 240 B |
After ![]() (image error) Size: 368 B |
After ![]() (image error) Size: 764 B |
After ![]() (image error) Size: 1.0 KiB |
After ![]() (image error) Size: 1.5 KiB |
After ![]() (image error) Size: 2.2 KiB |
After ![]() (image error) Size: 571 KiB |
After ![]() (image error) Size: 617 KiB |
After ![]() (image error) Size: 914 KiB |
After ![]() (image error) Size: 514 KiB |
After ![]() (image error) Size: 3.7 KiB |
After ![]() (image error) Size: 5.9 KiB |
After ![]() (image error) Size: 491 KiB |
After ![]() (image error) Size: 787 KiB |
After ![]() (image error) Size: 5.6 KiB |
After ![]() (image error) Size: 8.9 KiB |
After ![]() (image error) Size: 636 KiB |
After ![]() (image error) Size: 4.8 KiB |
After ![]() (image error) Size: 7.9 KiB |
After ![]() (image error) Size: 800 KiB |
After ![]() (image error) Size: 5.0 KiB |
After ![]() (image error) Size: 9.5 KiB |
After ![]() (image error) Size: 4.7 KiB |
After ![]() (image error) Size: 8.9 KiB |
After ![]() (image error) Size: 994 KiB |
After ![]() (image error) Size: 199 KiB |
After ![]() (image error) Size: 522 KiB |
After ![]() (image error) Size: 563 KiB |
After ![]() (image error) Size: 547 KiB |
After ![]() (image error) Size: 420 KiB |
After ![]() (image error) Size: 97 KiB |
After ![]() (image error) Size: 356 KiB |
After ![]() (image error) Size: 535 KiB |
After ![]() (image error) Size: 717 KiB |
After ![]() (image error) Size: 664 KiB |
After ![]() (image error) Size: 4.0 KiB |
After ![]() (image error) Size: 7.5 KiB |
After ![]() (image error) Size: 1.1 MiB |