moonyeju
2023-09-25
[ADD] login,main,signature page add
@04adf457b266f74daf2e287a58612331e719ad4a
+++ README.md
... | ... | @@ -0,0 +1,10 @@ |
1 | +# kogasapp | |
2 | +2023 테이큰소프트 모바일 서명 APP | |
3 | + | |
4 | +# 시작하기 | |
5 | +npm install | |
6 | +npx react-native run-android | |
7 | + | |
8 | +# ERROR | |
9 | +adb devices | |
10 | +기기이름 device라고 떠야함. offline X(파일 끝에 줄바꿈 문자 없음) |
+++ kogas_app/.bundle/config
... | ... | @@ -0,0 +1,2 @@ |
1 | +BUNDLE_PATH: "vendor/bundle" | |
2 | +BUNDLE_FORCE_RUBY_PLATFORM: 1 |
+++ kogas_app/.eslintrc.js
... | ... | @@ -0,0 +1,7 @@ |
1 | +module.exports = { | |
2 | + root: true, | |
3 | + extends: '@react-native', | |
4 | + parser: '@babel/eslint-parser', | |
5 | + parserOptions: {requireConfigFile: 'false'}, | |
6 | + babelOptions: {configFile: './.babelrc'}, | |
7 | +}; |
+++ kogas_app/.gitignore
... | ... | @@ -0,0 +1,68 @@ |
1 | +src/url.js | |
2 | + | |
3 | +# OSX | |
4 | +# | |
5 | +.DS_Store | |
6 | + | |
7 | +# Xcode | |
8 | +# | |
9 | +build/ | |
10 | +*.pbxuser | |
11 | +!default.pbxuser | |
12 | +*.mode1v3 | |
13 | +!default.mode1v3 | |
14 | +*.mode2v3 | |
15 | +!default.mode2v3 | |
16 | +*.perspectivev3 | |
17 | +!default.perspectivev3 | |
18 | +xcuserdata | |
19 | +*.xccheckout | |
20 | +*.moved-aside | |
21 | +DerivedData | |
22 | +*.hmap | |
23 | +*.ipa | |
24 | +*.xcuserstate | |
25 | +ios/.xcode.env.local | |
26 | + | |
27 | +# Android/IntelliJ | |
28 | +# | |
29 | +build/ | |
30 | +.idea | |
31 | +.gradle | |
32 | +local.properties | |
33 | +*.iml | |
34 | +*.hprof | |
35 | +.cxx/ | |
36 | +*.keystore | |
37 | +!debug.keystore | |
38 | + | |
39 | +# node.js | |
40 | +# | |
41 | +node_modules/ | |
42 | +npm-debug.log | |
43 | +yarn-error.log | |
44 | + | |
45 | +# fastlane | |
46 | +# | |
47 | +# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the | |
48 | +# screenshots whenever they are needed. | |
49 | +# For more information about the recommended setup visit: | |
50 | +# https://docs.fastlane.tools/best-practices/source-control/ | |
51 | + | |
52 | +**/fastlane/report.xml | |
53 | +**/fastlane/Preview.html | |
54 | +**/fastlane/screenshots | |
55 | +**/fastlane/test_output | |
56 | + | |
57 | +# Bundle artifact | |
58 | +*.jsbundle | |
59 | + | |
60 | +# Ruby / CocoaPods | |
61 | +/ios/Pods/ | |
62 | +/vendor/bundle/ | |
63 | + | |
64 | +# Temporary files created by Metro to check the health of the file watcher | |
65 | +.metro-health-check* | |
66 | + | |
67 | +# testing | |
68 | +/coverage |
+++ kogas_app/.prettierrc.js
... | ... | @@ -0,0 +1,7 @@ |
1 | +module.exports = { | |
2 | + arrowParens: 'avoid', | |
3 | + bracketSameLine: true, | |
4 | + bracketSpacing: false, | |
5 | + singleQuote: true, | |
6 | + trailingComma: 'all', | |
7 | +}; |
+++ kogas_app/.watchmanconfig
... | ... | @@ -0,0 +1,1 @@ |
1 | +{} |
+++ kogas_app/App.tsx
... | ... | @@ -0,0 +1,3 @@ |
1 | +import App from './src/App'; | |
2 | + | |
3 | +export default App; |
+++ kogas_app/Gemfile
... | ... | @@ -0,0 +1,6 @@ |
1 | +source 'https://rubygems.org' | |
2 | + | |
3 | +# You may use http://rbenv.org/ or https://rvm.io/ to install and use this version | |
4 | +ruby ">= 2.6.10" | |
5 | + | |
6 | +gem 'cocoapods', '~> 1.12' |
+++ kogas_app/README.md
... | ... | @@ -0,0 +1,79 @@ |
1 | +This is a new [**React Native**](https://reactnative.dev) project, bootstrapped using [`@react-native-community/cli`](https://github.com/react-native-community/cli). | |
2 | + | |
3 | +# Getting Started | |
4 | + | |
5 | +>**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. | |
6 | + | |
7 | +## Step 1: Start the Metro Server | |
8 | + | |
9 | +First, you will need to start **Metro**, the JavaScript _bundler_ that ships _with_ React Native. | |
10 | + | |
11 | +To start Metro, run the following command from the _root_ of your React Native project: | |
12 | + | |
13 | +```bash | |
14 | +# using npm | |
15 | +npm start | |
16 | + | |
17 | +# OR using Yarn | |
18 | +yarn start | |
19 | +``` | |
20 | + | |
21 | +## Step 2: Start your Application | |
22 | + | |
23 | +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: | |
24 | + | |
25 | +### For Android | |
26 | + | |
27 | +```bash | |
28 | +# using npm | |
29 | +npm run android | |
30 | + | |
31 | +# OR using Yarn | |
32 | +yarn android | |
33 | +``` | |
34 | + | |
35 | +### For iOS | |
36 | + | |
37 | +```bash | |
38 | +# using npm | |
39 | +npm run ios | |
40 | + | |
41 | +# OR using Yarn | |
42 | +yarn ios | |
43 | +``` | |
44 | + | |
45 | +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. | |
46 | + | |
47 | +This is one way to run your app — you can also run it directly from within Android Studio and Xcode respectively. | |
48 | + | |
49 | +## Step 3: Modifying your App | |
50 | + | |
51 | +Now that you have successfully run the app, let's modify it. | |
52 | + | |
53 | +1. Open `App.tsx` in your text editor of choice and edit some lines. | |
54 | +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! | |
55 | + | |
56 | + For **iOS**: Hit <kbd>Cmd ⌘</kbd> + <kbd>R</kbd> in your iOS Simulator to reload the app and see your changes! | |
57 | + | |
58 | +## Congratulations! :tada: | |
59 | + | |
60 | +You've successfully run and modified your React Native App. :partying_face: | |
61 | + | |
62 | +### Now what? | |
63 | + | |
64 | +- 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). | |
65 | +- If you're curious to learn more about React Native, check out the [Introduction to React Native](https://reactnative.dev/docs/getting-started). | |
66 | + | |
67 | +# Troubleshooting | |
68 | + | |
69 | +If you can't get this to work, see the [Troubleshooting](https://reactnative.dev/docs/troubleshooting) page. | |
70 | + | |
71 | +# Learn More | |
72 | + | |
73 | +To learn more about React Native, take a look at the following resources: | |
74 | + | |
75 | +- [React Native Website](https://reactnative.dev) - learn more about React Native. | |
76 | +- [Getting Started](https://reactnative.dev/docs/environment-setup) - an **overview** of React Native and how setup your environment. | |
77 | +- [Learn the Basics](https://reactnative.dev/docs/getting-started) - a **guided tour** of the React Native **basics**. | |
78 | +- [Blog](https://reactnative.dev/blog) - read the latest official React Native **Blog** posts. | |
79 | +- [`@facebook/react-native`](https://github.com/facebook/react-native) - the Open Source; GitHub **repository** for React Native. |
+++ kogas_app/__tests__/App.test.tsx
... | ... | @@ -0,0 +1,17 @@ |
1 | +/** | |
2 | + * @format | |
3 | + */ | |
4 | + | |
5 | +import 'react-native'; | |
6 | +import React from 'react'; | |
7 | +import App from '../App'; | |
8 | + | |
9 | +// Note: import explicitly to use the types shiped with jest. | |
10 | +import {it} from '@jest/globals'; | |
11 | + | |
12 | +// Note: test renderer must be required after react-native. | |
13 | +import renderer from 'react-test-renderer'; | |
14 | + | |
15 | +it('renders correctly', () => { | |
16 | + renderer.create(<App />); | |
17 | +}); |
+++ kogas_app/android/app/build.gradle
... | ... | @@ -0,0 +1,123 @@ |
1 | +apply plugin: "com.android.application" | |
2 | +apply plugin: "com.facebook.react" | |
3 | + | |
4 | +/** | |
5 | + * This is the configuration block to customize your React Native Android app. | |
6 | + * By default you don't need to apply any configuration, just uncomment the lines you need. | |
7 | + */ | |
8 | +react { | |
9 | + /* Folders */ | |
10 | + // The root of your project, i.e. where "package.json" lives. Default is '..' | |
11 | + // root = file("../") | |
12 | + // The folder where the react-native NPM package is. Default is ../node_modules/react-native | |
13 | + // reactNativeDir = file("../node_modules/react-native") | |
14 | + // The folder where the react-native Codegen package is. Default is ../node_modules/@react-native/codegen | |
15 | + // codegenDir = file("../node_modules/@react-native/codegen") | |
16 | + // The cli.js file which is the React Native CLI entrypoint. Default is ../node_modules/react-native/cli.js | |
17 | + // cliFile = file("../node_modules/react-native/cli.js") | |
18 | + | |
19 | + /* Variants */ | |
20 | + // The list of variants to that are debuggable. For those we're going to | |
21 | + // skip the bundling of the JS bundle and the assets. By default is just 'debug'. | |
22 | + // If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants. | |
23 | + // debuggableVariants = ["liteDebug", "prodDebug"] | |
24 | + | |
25 | + /* Bundling */ | |
26 | + // A list containing the node command and its flags. Default is just 'node'. | |
27 | + // nodeExecutableAndArgs = ["node"] | |
28 | + // | |
29 | + // The command to run when bundling. By default is 'bundle' | |
30 | + // bundleCommand = "ram-bundle" | |
31 | + // | |
32 | + // The path to the CLI configuration file. Default is empty. | |
33 | + // bundleConfig = file(../rn-cli.config.js) | |
34 | + // | |
35 | + // The name of the generated asset file containing your JS bundle | |
36 | + // bundleAssetName = "MyApplication.android.bundle" | |
37 | + // | |
38 | + // The entry file for bundle generation. Default is 'index.android.js' or 'index.js' | |
39 | + // entryFile = file("../js/MyApplication.android.js") | |
40 | + // | |
41 | + // A list of extra flags to pass to the 'bundle' commands. | |
42 | + // See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle | |
43 | + // extraPackagerArgs = [] | |
44 | + | |
45 | + /* Hermes Commands */ | |
46 | + // The hermes compiler command to run. By default it is 'hermesc' | |
47 | + // hermesCommand = "$rootDir/my-custom-hermesc/bin/hermesc" | |
48 | + // | |
49 | + // The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map" | |
50 | + // hermesFlags = ["-O", "-output-source-map"] | |
51 | +} | |
52 | + | |
53 | +/** | |
54 | + * Set this to true to Run Proguard on Release builds to minify the Java bytecode. | |
55 | + */ | |
56 | +def enableProguardInReleaseBuilds = false | |
57 | + | |
58 | +/** | |
59 | + * The preferred build flavor of JavaScriptCore (JSC) | |
60 | + * | |
61 | + * For example, to use the international variant, you can use: | |
62 | + * `def jscFlavor = 'org.webkit:android-jsc-intl:+'` | |
63 | + * | |
64 | + * The international variant includes ICU i18n library and necessary data | |
65 | + * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that | |
66 | + * give correct results when using with locales other than en-US. Note that | |
67 | + * this variant is about 6MiB larger per architecture than default. | |
68 | + */ | |
69 | +def jscFlavor = 'org.webkit:android-jsc:+' | |
70 | + | |
71 | +android { | |
72 | + ndkVersion rootProject.ext.ndkVersion | |
73 | + | |
74 | + compileSdkVersion rootProject.ext.compileSdkVersion | |
75 | + | |
76 | + namespace "com.kogas_app" | |
77 | + defaultConfig { | |
78 | + applicationId "com.kogas_app" | |
79 | + minSdkVersion rootProject.ext.minSdkVersion | |
80 | + targetSdkVersion rootProject.ext.targetSdkVersion | |
81 | + versionCode 1 | |
82 | + versionName "1.0" | |
83 | + } | |
84 | + signingConfigs { | |
85 | + debug { | |
86 | + storeFile file('debug.keystore') | |
87 | + storePassword 'android' | |
88 | + keyAlias 'androiddebugkey' | |
89 | + keyPassword 'android' | |
90 | + } | |
91 | + } | |
92 | + buildTypes { | |
93 | + debug { | |
94 | + signingConfig signingConfigs.debug | |
95 | + } | |
96 | + release { | |
97 | + // Caution! In production, you need to generate your own keystore file. | |
98 | + // see https://reactnative.dev/docs/signed-apk-android. | |
99 | + signingConfig signingConfigs.debug | |
100 | + minifyEnabled enableProguardInReleaseBuilds | |
101 | + proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" | |
102 | + } | |
103 | + } | |
104 | +} | |
105 | + | |
106 | +dependencies { | |
107 | + // The version of react-native is set by the React Native Gradle Plugin | |
108 | + implementation("com.facebook.react:react-android") | |
109 | + | |
110 | + debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") | |
111 | + debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") { | |
112 | + exclude group:'com.squareup.okhttp3', module:'okhttp' | |
113 | + } | |
114 | + | |
115 | + debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") | |
116 | + if (hermesEnabled.toBoolean()) { | |
117 | + implementation("com.facebook.react:hermes-android") | |
118 | + } else { | |
119 | + implementation jscFlavor | |
120 | + } | |
121 | +} | |
122 | + | |
123 | +apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project) |
+++ kogas_app/android/app/debug.keystore
Binary file is not shown |
+++ kogas_app/android/app/proguard-rules.pro
... | ... | @@ -0,0 +1,10 @@ |
1 | +# Add project specific ProGuard rules here. | |
2 | +# By default, the flags in this file are appended to flags specified | |
3 | +# in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt | |
4 | +# You can edit the include path and order by changing the proguardFiles | |
5 | +# directive in build.gradle. | |
6 | +# | |
7 | +# For more details, see | |
8 | +# http://developer.android.com/guide/developing/tools/proguard.html | |
9 | + | |
10 | +# Add any project specific keep options here: |
+++ kogas_app/android/app/src/debug/AndroidManifest.xml
... | ... | @@ -0,0 +1,13 @@ |
1 | +<?xml version="1.0" encoding="utf-8"?> | |
2 | +<manifest xmlns:android="http://schemas.android.com/apk/res/android" | |
3 | + xmlns:tools="http://schemas.android.com/tools"> | |
4 | + | |
5 | + <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> | |
6 | + | |
7 | + <application | |
8 | + android:usesCleartextTraffic="true" | |
9 | + tools:targetApi="28" | |
10 | + tools:ignore="GoogleAppIndexingWarning"> | |
11 | + <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" android:exported="false" /> | |
12 | + </application> | |
13 | +</manifest> |
+++ kogas_app/android/app/src/debug/java/com/kogas_app/ReactNativeFlipper.java
... | ... | @@ -0,0 +1,75 @@ |
1 | +/** | |
2 | + * Copyright (c) Meta Platforms, Inc. and affiliates. | |
3 | + * | |
4 | + * <p>This source code is licensed under the MIT license found in the LICENSE file in the root | |
5 | + * directory of this source tree. | |
6 | + */ | |
7 | +package com.kogas_app; | |
8 | + | |
9 | +import android.content.Context; | |
10 | +import com.facebook.flipper.android.AndroidFlipperClient; | |
11 | +import com.facebook.flipper.android.utils.FlipperUtils; | |
12 | +import com.facebook.flipper.core.FlipperClient; | |
13 | +import com.facebook.flipper.plugins.crashreporter.CrashReporterPlugin; | |
14 | +import com.facebook.flipper.plugins.databases.DatabasesFlipperPlugin; | |
15 | +import com.facebook.flipper.plugins.fresco.FrescoFlipperPlugin; | |
16 | +import com.facebook.flipper.plugins.inspector.DescriptorMapping; | |
17 | +import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin; | |
18 | +import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor; | |
19 | +import com.facebook.flipper.plugins.network.NetworkFlipperPlugin; | |
20 | +import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin; | |
21 | +import com.facebook.react.ReactInstanceEventListener; | |
22 | +import com.facebook.react.ReactInstanceManager; | |
23 | +import com.facebook.react.bridge.ReactContext; | |
24 | +import com.facebook.react.modules.network.NetworkingModule; | |
25 | +import okhttp3.OkHttpClient; | |
26 | + | |
27 | +/** | |
28 | + * Class responsible of loading Flipper inside your React Native application. This is the debug | |
29 | + * flavor of it. Here you can add your own plugins and customize the Flipper setup. | |
30 | + */ | |
31 | +public class ReactNativeFlipper { | |
32 | + public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) { | |
33 | + if (FlipperUtils.shouldEnableFlipper(context)) { | |
34 | + final FlipperClient client = AndroidFlipperClient.getInstance(context); | |
35 | + | |
36 | + client.addPlugin(new InspectorFlipperPlugin(context, DescriptorMapping.withDefaults())); | |
37 | + client.addPlugin(new DatabasesFlipperPlugin(context)); | |
38 | + client.addPlugin(new SharedPreferencesFlipperPlugin(context)); | |
39 | + client.addPlugin(CrashReporterPlugin.getInstance()); | |
40 | + | |
41 | + NetworkFlipperPlugin networkFlipperPlugin = new NetworkFlipperPlugin(); | |
42 | + NetworkingModule.setCustomClientBuilder( | |
43 | + new NetworkingModule.CustomClientBuilder() { | |
44 | + @Override | |
45 | + public void apply(OkHttpClient.Builder builder) { | |
46 | + builder.addNetworkInterceptor(new FlipperOkhttpInterceptor(networkFlipperPlugin)); | |
47 | + } | |
48 | + }); | |
49 | + client.addPlugin(networkFlipperPlugin); | |
50 | + client.start(); | |
51 | + | |
52 | + // Fresco Plugin needs to ensure that ImagePipelineFactory is initialized | |
53 | + // Hence we run if after all native modules have been initialized | |
54 | + ReactContext reactContext = reactInstanceManager.getCurrentReactContext(); | |
55 | + if (reactContext == null) { | |
56 | + reactInstanceManager.addReactInstanceEventListener( | |
57 | + new ReactInstanceEventListener() { | |
58 | + @Override | |
59 | + public void onReactContextInitialized(ReactContext reactContext) { | |
60 | + reactInstanceManager.removeReactInstanceEventListener(this); | |
61 | + reactContext.runOnNativeModulesQueueThread( | |
62 | + new Runnable() { | |
63 | + @Override | |
64 | + public void run() { | |
65 | + client.addPlugin(new FrescoFlipperPlugin()); | |
66 | + } | |
67 | + }); | |
68 | + } | |
69 | + }); | |
70 | + } else { | |
71 | + client.addPlugin(new FrescoFlipperPlugin()); | |
72 | + } | |
73 | + } | |
74 | + } | |
75 | +} |
+++ kogas_app/android/app/src/main/AndroidManifest.xml
... | ... | @@ -0,0 +1,25 @@ |
1 | +<manifest xmlns:android="http://schemas.android.com/apk/res/android"> | |
2 | + | |
3 | + <uses-permission android:name="android.permission.INTERNET" /> | |
4 | + | |
5 | + <application | |
6 | + android:name=".MainApplication" | |
7 | + android:label="@string/app_name" | |
8 | + android:icon="@mipmap/ic_launcher" | |
9 | + android:roundIcon="@mipmap/ic_launcher_round" | |
10 | + android:allowBackup="false" | |
11 | + android:theme="@style/AppTheme"> | |
12 | + <activity | |
13 | + android:name=".MainActivity" | |
14 | + android:label="@string/app_name" | |
15 | + android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" | |
16 | + android:launchMode="singleTask" | |
17 | + android:windowSoftInputMode="adjustResize" | |
18 | + android:exported="true"> | |
19 | + <intent-filter> | |
20 | + <action android:name="android.intent.action.MAIN" /> | |
21 | + <category android:name="android.intent.category.LAUNCHER" /> | |
22 | + </intent-filter> | |
23 | + </activity> | |
24 | + </application> | |
25 | +</manifest> |
+++ kogas_app/android/app/src/main/java/com/kogas_app/MainActivity.java
... | ... | @@ -0,0 +1,32 @@ |
1 | +package com.kogas_app; | |
2 | + | |
3 | +import com.facebook.react.ReactActivity; | |
4 | +import com.facebook.react.ReactActivityDelegate; | |
5 | +import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint; | |
6 | +import com.facebook.react.defaults.DefaultReactActivityDelegate; | |
7 | + | |
8 | +public class MainActivity extends ReactActivity { | |
9 | + | |
10 | + /** | |
11 | + * Returns the name of the main component registered from JavaScript. This is used to schedule | |
12 | + * rendering of the component. | |
13 | + */ | |
14 | + @Override | |
15 | + protected String getMainComponentName() { | |
16 | + return "kogas_app"; | |
17 | + } | |
18 | + | |
19 | + /** | |
20 | + * Returns the instance of the {@link ReactActivityDelegate}. Here we use a util class {@link | |
21 | + * DefaultReactActivityDelegate} which allows you to easily enable Fabric and Concurrent React | |
22 | + * (aka React 18) with two boolean flags. | |
23 | + */ | |
24 | + @Override | |
25 | + protected ReactActivityDelegate createReactActivityDelegate() { | |
26 | + return new DefaultReactActivityDelegate( | |
27 | + this, | |
28 | + getMainComponentName(), | |
29 | + // If you opted-in for the New Architecture, we enable the Fabric Renderer. | |
30 | + DefaultNewArchitectureEntryPoint.getFabricEnabled()); | |
31 | + } | |
32 | +} |
+++ kogas_app/android/app/src/main/java/com/kogas_app/MainApplication.java
... | ... | @@ -0,0 +1,62 @@ |
1 | +package com.kogas_app; | |
2 | + | |
3 | +import android.app.Application; | |
4 | +import com.facebook.react.PackageList; | |
5 | +import com.facebook.react.ReactApplication; | |
6 | +import com.facebook.react.ReactNativeHost; | |
7 | +import com.facebook.react.ReactPackage; | |
8 | +import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint; | |
9 | +import com.facebook.react.defaults.DefaultReactNativeHost; | |
10 | +import com.facebook.soloader.SoLoader; | |
11 | +import java.util.List; | |
12 | + | |
13 | +public class MainApplication extends Application implements ReactApplication { | |
14 | + | |
15 | + private final ReactNativeHost mReactNativeHost = | |
16 | + new DefaultReactNativeHost(this) { | |
17 | + @Override | |
18 | + public boolean getUseDeveloperSupport() { | |
19 | + return BuildConfig.DEBUG; | |
20 | + } | |
21 | + | |
22 | + @Override | |
23 | + protected List<ReactPackage> getPackages() { | |
24 | + @SuppressWarnings("UnnecessaryLocalVariable") | |
25 | + List<ReactPackage> packages = new PackageList(this).getPackages(); | |
26 | + // Packages that cannot be autolinked yet can be added manually here, for example: | |
27 | + // packages.add(new MyReactNativePackage()); | |
28 | + return packages; | |
29 | + } | |
30 | + | |
31 | + @Override | |
32 | + protected String getJSMainModuleName() { | |
33 | + return "index"; | |
34 | + } | |
35 | + | |
36 | + @Override | |
37 | + protected boolean isNewArchEnabled() { | |
38 | + return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED; | |
39 | + } | |
40 | + | |
41 | + @Override | |
42 | + protected Boolean isHermesEnabled() { | |
43 | + return BuildConfig.IS_HERMES_ENABLED; | |
44 | + } | |
45 | + }; | |
46 | + | |
47 | + @Override | |
48 | + public ReactNativeHost getReactNativeHost() { | |
49 | + return mReactNativeHost; | |
50 | + } | |
51 | + | |
52 | + @Override | |
53 | + public void onCreate() { | |
54 | + super.onCreate(); | |
55 | + SoLoader.init(this, /* native exopackage */ false); | |
56 | + if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { | |
57 | + // If you opted-in for the New Architecture, we load the native entry point for this app. | |
58 | + DefaultNewArchitectureEntryPoint.load(); | |
59 | + } | |
60 | + ReactNativeFlipper.initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); | |
61 | + } | |
62 | +} |
+++ kogas_app/android/app/src/main/res/drawable/rn_edit_text_material.xml
... | ... | @@ -0,0 +1,36 @@ |
1 | +<?xml version="1.0" encoding="utf-8"?> | |
2 | +<!-- Copyright (C) 2014 The Android Open Source Project | |
3 | + | |
4 | + Licensed under the Apache License, Version 2.0 (the "License"); | |
5 | + you may not use this file except in compliance with the License. | |
6 | + You may obtain a copy of the License at | |
7 | + | |
8 | + http://www.apache.org/licenses/LICENSE-2.0 | |
9 | + | |
10 | + Unless required by applicable law or agreed to in writing, software | |
11 | + distributed under the License is distributed on an "AS IS" BASIS, | |
12 | + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
13 | + See the License for the specific language governing permissions and | |
14 | + limitations under the License. | |
15 | +--> | |
16 | +<inset xmlns:android="http://schemas.android.com/apk/res/android" | |
17 | + android:insetLeft="@dimen/abc_edit_text_inset_horizontal_material" | |
18 | + android:insetRight="@dimen/abc_edit_text_inset_horizontal_material" | |
19 | + android:insetTop="@dimen/abc_edit_text_inset_top_material" | |
20 | + android:insetBottom="@dimen/abc_edit_text_inset_bottom_material"> | |
21 | + | |
22 | + <selector> | |
23 | + <!-- | |
24 | + This file is a copy of abc_edit_text_material (https://bit.ly/3k8fX7I). | |
25 | + The item below with state_pressed="false" and state_focused="false" causes a NullPointerException. | |
26 | + NullPointerException:tempt to invoke virtual method 'android.graphics.drawable.Drawable android.graphics.drawable.Drawable$ConstantState.newDrawable(android.content.res.Resources)' | |
27 | + | |
28 | + <item android:state_pressed="false" android:state_focused="false" android:drawable="@drawable/abc_textfield_default_mtrl_alpha"/> | |
29 | + | |
30 | + For more info, see https://bit.ly/3CdLStv (react-native/pull/29452) and https://bit.ly/3nxOMoR. | |
31 | + --> | |
32 | + <item android:state_enabled="false" android:drawable="@drawable/abc_textfield_default_mtrl_alpha"/> | |
33 | + <item android:drawable="@drawable/abc_textfield_activated_mtrl_alpha"/> | |
34 | + </selector> | |
35 | + | |
36 | +</inset> |
+++ kogas_app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
Binary file is not shown |
+++ kogas_app/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
Binary file is not shown |
+++ kogas_app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
Binary file is not shown |
+++ kogas_app/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
Binary file is not shown |
+++ kogas_app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
Binary file is not shown |
+++ kogas_app/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
Binary file is not shown |
+++ kogas_app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
Binary file is not shown |
+++ kogas_app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
Binary file is not shown |
+++ kogas_app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
Binary file is not shown |
+++ kogas_app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
Binary file is not shown |
+++ kogas_app/android/app/src/main/res/values/strings.xml
... | ... | @@ -0,0 +1,3 @@ |
1 | +<resources> | |
2 | + <string name="app_name">kogas_app</string> | |
3 | +</resources> |
+++ kogas_app/android/app/src/main/res/values/styles.xml
... | ... | @@ -0,0 +1,9 @@ |
1 | +<resources> | |
2 | + | |
3 | + <!-- Base application theme. --> | |
4 | + <style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar"> | |
5 | + <!-- Customize your theme here. --> | |
6 | + <item name="android:editTextBackground">@drawable/rn_edit_text_material</item> | |
7 | + </style> | |
8 | + | |
9 | +</resources> |
+++ kogas_app/android/app/src/release/java/com/kogas_app/ReactNativeFlipper.java
... | ... | @@ -0,0 +1,20 @@ |
1 | +/** | |
2 | + * Copyright (c) Meta Platforms, Inc. and affiliates. | |
3 | + * | |
4 | + * <p>This source code is licensed under the MIT license found in the LICENSE file in the root | |
5 | + * directory of this source tree. | |
6 | + */ | |
7 | +package com.kogas_app; | |
8 | + | |
9 | +import android.content.Context; | |
10 | +import com.facebook.react.ReactInstanceManager; | |
11 | + | |
12 | +/** | |
13 | + * Class responsible of loading Flipper inside your React Native application. This is the release | |
14 | + * flavor of it so it's empty as we don't want to load Flipper. | |
15 | + */ | |
16 | +public class ReactNativeFlipper { | |
17 | + public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) { | |
18 | + // Do nothing as we don't want to initialize Flipper on Release. | |
19 | + } | |
20 | +} |
+++ kogas_app/android/build.gradle
... | ... | @@ -0,0 +1,21 @@ |
1 | +// Top-level build file where you can add configuration options common to all sub-projects/modules. | |
2 | + | |
3 | +buildscript { | |
4 | + ext { | |
5 | + buildToolsVersion = "33.0.0" | |
6 | + minSdkVersion = 21 | |
7 | + compileSdkVersion = 33 | |
8 | + targetSdkVersion = 33 | |
9 | + | |
10 | + // We use NDK 23 which has both M1 support and is the side-by-side NDK version from AGP. | |
11 | + ndkVersion = "23.1.7779620" | |
12 | + } | |
13 | + repositories { | |
14 | + google() | |
15 | + mavenCentral() | |
16 | + } | |
17 | + dependencies { | |
18 | + classpath("com.android.tools.build:gradle") | |
19 | + classpath("com.facebook.react:react-native-gradle-plugin") | |
20 | + } | |
21 | +} |
+++ kogas_app/android/gradle.properties
... | ... | @@ -0,0 +1,44 @@ |
1 | +# Project-wide Gradle settings. | |
2 | + | |
3 | +# IDE (e.g. Android Studio) users: | |
4 | +# Gradle settings configured through the IDE *will override* | |
5 | +# any settings specified in this file. | |
6 | + | |
7 | +# For more details on how to configure your build environment visit | |
8 | +# http://www.gradle.org/docs/current/userguide/build_environment.html | |
9 | + | |
10 | +# Specifies the JVM arguments used for the daemon process. | |
11 | +# The setting is particularly useful for tweaking memory settings. | |
12 | +# Default value: -Xmx512m -XX:MaxMetaspaceSize=256m | |
13 | +org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m | |
14 | + | |
15 | +# When configured, Gradle will run in incubating parallel mode. | |
16 | +# This option should only be used with decoupled projects. More details, visit | |
17 | +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects | |
18 | +# org.gradle.parallel=true | |
19 | + | |
20 | +# AndroidX package structure to make it clearer which packages are bundled with the | |
21 | +# Android operating system, and which are packaged with your app's APK | |
22 | +# https://developer.android.com/topic/libraries/support-library/androidx-rn | |
23 | +android.useAndroidX=true | |
24 | +# Automatically convert third-party libraries to use AndroidX | |
25 | +android.enableJetifier=true | |
26 | + | |
27 | +# Version of flipper SDK to use with React Native | |
28 | +FLIPPER_VERSION=0.182.0 | |
29 | + | |
30 | +# Use this property to specify which architecture you want to build. | |
31 | +# You can also override it from the CLI using | |
32 | +# ./gradlew <task> -PreactNativeArchitectures=x86_64 | |
33 | +reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64 | |
34 | + | |
35 | +# Use this property to enable support to the new architecture. | |
36 | +# This will allow you to use TurboModules and the Fabric render in | |
37 | +# your application. You should enable this flag either if you want | |
38 | +# to write custom TurboModules/Fabric components OR use libraries that | |
39 | +# are providing them. | |
40 | +newArchEnabled=false | |
41 | + | |
42 | +# Use this property to enable or disable the Hermes JS engine. | |
43 | +# If set to false, you will be using JSC instead. | |
44 | +hermesEnabled=true |
+++ kogas_app/android/gradle/wrapper/gradle-wrapper.jar
Binary file is not shown |
+++ kogas_app/android/gradle/wrapper/gradle-wrapper.properties
... | ... | @@ -0,0 +1,6 @@ |
1 | +distributionBase=GRADLE_USER_HOME | |
2 | +distributionPath=wrapper/dists | |
3 | +distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-all.zip | |
4 | +networkTimeout=10000 | |
5 | +zipStoreBase=GRADLE_USER_HOME | |
6 | +zipStorePath=wrapper/dists |
+++ kogas_app/android/gradlew
... | ... | @@ -0,0 +1,244 @@ |
1 | +#!/bin/sh | |
2 | + | |
3 | +# | |
4 | +# Copyright © 2015-2021 the original authors. | |
5 | +# | |
6 | +# Licensed under the Apache License, Version 2.0 (the "License"); | |
7 | +# you may not use this file except in compliance with the License. | |
8 | +# You may obtain a copy of the License at | |
9 | +# | |
10 | +# https://www.apache.org/licenses/LICENSE-2.0 | |
11 | +# | |
12 | +# Unless required by applicable law or agreed to in writing, software | |
13 | +# distributed under the License is distributed on an "AS IS" BASIS, | |
14 | +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
15 | +# See the License for the specific language governing permissions and | |
16 | +# limitations under the License. | |
17 | +# | |
18 | + | |
19 | +############################################################################## | |
20 | +# | |
21 | +# Gradle start up script for POSIX generated by Gradle. | |
22 | +# | |
23 | +# Important for running: | |
24 | +# | |
25 | +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is | |
26 | +# noncompliant, but you have some other compliant shell such as ksh or | |
27 | +# bash, then to run this script, type that shell name before the whole | |
28 | +# command line, like: | |
29 | +# | |
30 | +# ksh Gradle | |
31 | +# | |
32 | +# Busybox and similar reduced shells will NOT work, because this script | |
33 | +# requires all of these POSIX shell features: | |
34 | +# * functions; | |
35 | +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», | |
36 | +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; | |
37 | +# * compound commands having a testable exit status, especially «case»; | |
38 | +# * various built-in commands including «command», «set», and «ulimit». | |
39 | +# | |
40 | +# Important for patching: | |
41 | +# | |
42 | +# (2) This script targets any POSIX shell, so it avoids extensions provided | |
43 | +# by Bash, Ksh, etc; in particular arrays are avoided. | |
44 | +# | |
45 | +# The "traditional" practice of packing multiple parameters into a | |
46 | +# space-separated string is a well documented source of bugs and security | |
47 | +# problems, so this is (mostly) avoided, by progressively accumulating | |
48 | +# options in "$@", and eventually passing that to Java. | |
49 | +# | |
50 | +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, | |
51 | +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; | |
52 | +# see the in-line comments for details. | |
53 | +# | |
54 | +# There are tweaks for specific operating systems such as AIX, CygWin, | |
55 | +# Darwin, MinGW, and NonStop. | |
56 | +# | |
57 | +# (3) This script is generated from the Groovy template | |
58 | +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt | |
59 | +# within the Gradle project. | |
60 | +# | |
61 | +# You can find Gradle at https://github.com/gradle/gradle/. | |
62 | +# | |
63 | +############################################################################## | |
64 | + | |
65 | +# Attempt to set APP_HOME | |
66 | + | |
67 | +# Resolve links: $0 may be a link | |
68 | +app_path=$0 | |
69 | + | |
70 | +# Need this for daisy-chained symlinks. | |
71 | +while | |
72 | + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path | |
73 | + [ -h "$app_path" ] | |
74 | +do | |
75 | + ls=$( ls -ld "$app_path" ) | |
76 | + link=${ls#*' -> '} | |
77 | + case $link in #( | |
78 | + /*) app_path=$link ;; #( | |
79 | + *) app_path=$APP_HOME$link ;; | |
80 | + esac | |
81 | +done | |
82 | + | |
83 | +# This is normally unused | |
84 | +# shellcheck disable=SC2034 | |
85 | +APP_BASE_NAME=${0##*/} | |
86 | +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit | |
87 | + | |
88 | +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. | |
89 | +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' | |
90 | + | |
91 | +# Use the maximum available, or set MAX_FD != -1 to use that value. | |
92 | +MAX_FD=maximum | |
93 | + | |
94 | +warn () { | |
95 | + echo "$*" | |
96 | +} >&2 | |
97 | + | |
98 | +die () { | |
99 | + echo | |
100 | + echo "$*" | |
101 | + echo | |
102 | + exit 1 | |
103 | +} >&2 | |
104 | + | |
105 | +# OS specific support (must be 'true' or 'false'). | |
106 | +cygwin=false | |
107 | +msys=false | |
108 | +darwin=false | |
109 | +nonstop=false | |
110 | +case "$( uname )" in #( | |
111 | + CYGWIN* ) cygwin=true ;; #( | |
112 | + Darwin* ) darwin=true ;; #( | |
113 | + MSYS* | MINGW* ) msys=true ;; #( | |
114 | + NONSTOP* ) nonstop=true ;; | |
115 | +esac | |
116 | + | |
117 | +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar | |
118 | + | |
119 | + | |
120 | +# Determine the Java command to use to start the JVM. | |
121 | +if [ -n "$JAVA_HOME" ] ; then | |
122 | + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then | |
123 | + # IBM's JDK on AIX uses strange locations for the executables | |
124 | + JAVACMD=$JAVA_HOME/jre/sh/java | |
125 | + else | |
126 | + JAVACMD=$JAVA_HOME/bin/java | |
127 | + fi | |
128 | + if [ ! -x "$JAVACMD" ] ; then | |
129 | + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME | |
130 | + | |
131 | +Please set the JAVA_HOME variable in your environment to match the | |
132 | +location of your Java installation." | |
133 | + fi | |
134 | +else | |
135 | + JAVACMD=java | |
136 | + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. | |
137 | + | |
138 | +Please set the JAVA_HOME variable in your environment to match the | |
139 | +location of your Java installation." | |
140 | +fi | |
141 | + | |
142 | +# Increase the maximum file descriptors if we can. | |
143 | +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then | |
144 | + case $MAX_FD in #( | |
145 | + max*) | |
146 | + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. | |
147 | + # shellcheck disable=SC3045 | |
148 | + MAX_FD=$( ulimit -H -n ) || | |
149 | + warn "Could not query maximum file descriptor limit" | |
150 | + esac | |
151 | + case $MAX_FD in #( | |
152 | + '' | soft) :;; #( | |
153 | + *) | |
154 | + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. | |
155 | + # shellcheck disable=SC3045 | |
156 | + ulimit -n "$MAX_FD" || | |
157 | + warn "Could not set maximum file descriptor limit to $MAX_FD" | |
158 | + esac | |
159 | +fi | |
160 | + | |
161 | +# Collect all arguments for the java command, stacking in reverse order: | |
162 | +# * args from the command line | |
163 | +# * the main class name | |
164 | +# * -classpath | |
165 | +# * -D...appname settings | |
166 | +# * --module-path (only if needed) | |
167 | +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. | |
168 | + | |
169 | +# For Cygwin or MSYS, switch paths to Windows format before running java | |
170 | +if "$cygwin" || "$msys" ; then | |
171 | + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) | |
172 | + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) | |
173 | + | |
174 | + JAVACMD=$( cygpath --unix "$JAVACMD" ) | |
175 | + | |
176 | + # Now convert the arguments - kludge to limit ourselves to /bin/sh | |
177 | + for arg do | |
178 | + if | |
179 | + case $arg in #( | |
180 | + -*) false ;; # don't mess with options #( | |
181 | + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath | |
182 | + [ -e "$t" ] ;; #( | |
183 | + *) false ;; | |
184 | + esac | |
185 | + then | |
186 | + arg=$( cygpath --path --ignore --mixed "$arg" ) | |
187 | + fi | |
188 | + # Roll the args list around exactly as many times as the number of | |
189 | + # args, so each arg winds up back in the position where it started, but | |
190 | + # possibly modified. | |
191 | + # | |
192 | + # NB: a `for` loop captures its iteration list before it begins, so | |
193 | + # changing the positional parameters here affects neither the number of | |
194 | + # iterations, nor the values presented in `arg`. | |
195 | + shift # remove old arg | |
196 | + set -- "$@" "$arg" # push replacement arg | |
197 | + done | |
198 | +fi | |
199 | + | |
200 | +# Collect all arguments for the java command; | |
201 | +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of | |
202 | +# shell script including quotes and variable substitutions, so put them in | |
203 | +# double quotes to make sure that they get re-expanded; and | |
204 | +# * put everything else in single quotes, so that it's not re-expanded. | |
205 | + | |
206 | +set -- \ | |
207 | + "-Dorg.gradle.appname=$APP_BASE_NAME" \ | |
208 | + -classpath "$CLASSPATH" \ | |
209 | + org.gradle.wrapper.GradleWrapperMain \ | |
210 | + "$@" | |
211 | + | |
212 | +# Stop when "xargs" is not available. | |
213 | +if ! command -v xargs >/dev/null 2>&1 | |
214 | +then | |
215 | + die "xargs is not available" | |
216 | +fi | |
217 | + | |
218 | +# Use "xargs" to parse quoted args. | |
219 | +# | |
220 | +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. | |
221 | +# | |
222 | +# In Bash we could simply go: | |
223 | +# | |
224 | +# readarray ARGS < <( xargs -n1 <<<"$var" ) && | |
225 | +# set -- "${ARGS[@]}" "$@" | |
226 | +# | |
227 | +# but POSIX shell has neither arrays nor command substitution, so instead we | |
228 | +# post-process each arg (as a line of input to sed) to backslash-escape any | |
229 | +# character that might be a shell metacharacter, then use eval to reverse | |
230 | +# that process (while maintaining the separation between arguments), and wrap | |
231 | +# the whole thing up as a single "set" statement. | |
232 | +# | |
233 | +# This will of course break if any of these variables contains a newline or | |
234 | +# an unmatched quote. | |
235 | +# | |
236 | + | |
237 | +eval "set -- $( | |
238 | + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | | |
239 | + xargs -n1 | | |
240 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | | |
241 | + tr '\n' ' ' | |
242 | + )" '"$@"' | |
243 | + | |
244 | +exec "$JAVACMD" "$@" |
+++ kogas_app/android/gradlew.bat
... | ... | @@ -0,0 +1,92 @@ |
1 | +@rem | |
2 | +@rem Copyright 2015 the original author or authors. | |
3 | +@rem | |
4 | +@rem Licensed under the Apache License, Version 2.0 (the "License"); | |
5 | +@rem you may not use this file except in compliance with the License. | |
6 | +@rem You may obtain a copy of the License at | |
7 | +@rem | |
8 | +@rem https://www.apache.org/licenses/LICENSE-2.0 | |
9 | +@rem | |
10 | +@rem Unless required by applicable law or agreed to in writing, software | |
11 | +@rem distributed under the License is distributed on an "AS IS" BASIS, | |
12 | +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
13 | +@rem See the License for the specific language governing permissions and | |
14 | +@rem limitations under the License. | |
15 | +@rem | |
16 | + | |
17 | +@if "%DEBUG%"=="" @echo off | |
18 | +@rem ########################################################################## | |
19 | +@rem | |
20 | +@rem Gradle startup script for Windows | |
21 | +@rem | |
22 | +@rem ########################################################################## | |
23 | + | |
24 | +@rem Set local scope for the variables with windows NT shell | |
25 | +if "%OS%"=="Windows_NT" setlocal | |
26 | + | |
27 | +set DIRNAME=%~dp0 | |
28 | +if "%DIRNAME%"=="" set DIRNAME=. | |
29 | +@rem This is normally unused | |
30 | +set APP_BASE_NAME=%~n0 | |
31 | +set APP_HOME=%DIRNAME% | |
32 | + | |
33 | +@rem Resolve any "." and ".." in APP_HOME to make it shorter. | |
34 | +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi | |
35 | + | |
36 | +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. | |
37 | +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" | |
38 | + | |
39 | +@rem Find java.exe | |
40 | +if defined JAVA_HOME goto findJavaFromJavaHome | |
41 | + | |
42 | +set JAVA_EXE=java.exe | |
43 | +%JAVA_EXE% -version >NUL 2>&1 | |
44 | +if %ERRORLEVEL% equ 0 goto execute | |
45 | + | |
46 | +echo. | |
47 | +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. | |
48 | +echo. | |
49 | +echo Please set the JAVA_HOME variable in your environment to match the | |
50 | +echo location of your Java installation. | |
51 | + | |
52 | +goto fail | |
53 | + | |
54 | +:findJavaFromJavaHome | |
55 | +set JAVA_HOME=%JAVA_HOME:"=% | |
56 | +set JAVA_EXE=%JAVA_HOME%/bin/java.exe | |
57 | + | |
58 | +if exist "%JAVA_EXE%" goto execute | |
59 | + | |
60 | +echo. | |
61 | +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% | |
62 | +echo. | |
63 | +echo Please set the JAVA_HOME variable in your environment to match the | |
64 | +echo location of your Java installation. | |
65 | + | |
66 | +goto fail | |
67 | + | |
68 | +:execute | |
69 | +@rem Setup the command line | |
70 | + | |
71 | +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar | |
72 | + | |
73 | + | |
74 | +@rem Execute Gradle | |
75 | +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* | |
76 | + | |
77 | +:end | |
78 | +@rem End local scope for the variables with windows NT shell | |
79 | +if %ERRORLEVEL% equ 0 goto mainEnd | |
80 | + | |
81 | +:fail | |
82 | +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of | |
83 | +rem the _cmd.exe /c_ return code! | |
84 | +set EXIT_CODE=%ERRORLEVEL% | |
85 | +if %EXIT_CODE% equ 0 set EXIT_CODE=1 | |
86 | +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% | |
87 | +exit /b %EXIT_CODE% | |
88 | + | |
89 | +:mainEnd | |
90 | +if "%OS%"=="Windows_NT" endlocal | |
91 | + | |
92 | +:omega |
+++ kogas_app/android/settings.gradle
... | ... | @@ -0,0 +1,4 @@ |
1 | +rootProject.name = 'kogas_app' | |
2 | +apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings) | |
3 | +include ':app' | |
4 | +includeBuild('../node_modules/@react-native/gradle-plugin') |
+++ kogas_app/app.json
... | ... | @@ -0,0 +1,4 @@ |
1 | +{ | |
2 | + "name": "kogas_app", | |
3 | + "displayName": "kogas_app" | |
4 | +} |
+++ kogas_app/babel.config.js
... | ... | @@ -0,0 +1,3 @@ |
1 | +module.exports = { | |
2 | + presets: ['module:metro-react-native-babel-preset'], | |
3 | +}; |
+++ kogas_app/index.js
... | ... | @@ -0,0 +1,9 @@ |
1 | +/** | |
2 | + * @format | |
3 | + */ | |
4 | + | |
5 | +import {AppRegistry} from 'react-native'; | |
6 | +import App from './App'; | |
7 | +import {name as appName} from './app.json'; | |
8 | + | |
9 | +AppRegistry.registerComponent(appName, () => App); |
+++ kogas_app/ios/.xcode.env
... | ... | @@ -0,0 +1,11 @@ |
1 | +# This `.xcode.env` file is versioned and is used to source the environment | |
2 | +# used when running script phases inside Xcode. | |
3 | +# To customize your local environment, you can create an `.xcode.env.local` | |
4 | +# file that is not versioned. | |
5 | + | |
6 | +# NODE_BINARY variable contains the PATH to the node executable. | |
7 | +# | |
8 | +# Customize the NODE_BINARY variable here. | |
9 | +# For example, to use nvm with brew, add the following line | |
10 | +# . "$(brew --prefix nvm)/nvm.sh" --no-use | |
11 | +export NODE_BINARY=$(command -v node) |
+++ kogas_app/ios/Podfile
... | ... | @@ -0,0 +1,62 @@ |
1 | +# Resolve react_native_pods.rb with node to allow for hoisting | |
2 | +require Pod::Executable.execute_command('node', ['-p', | |
3 | + 'require.resolve( | |
4 | + "react-native/scripts/react_native_pods.rb", | |
5 | + {paths: [process.argv[1]]}, | |
6 | + )', __dir__]).strip | |
7 | + | |
8 | +platform :ios, min_ios_version_supported | |
9 | +prepare_react_native_project! | |
10 | + | |
11 | +# If you are using a `react-native-flipper` your iOS build will fail when `NO_FLIPPER=1` is set. | |
12 | +# because `react-native-flipper` depends on (FlipperKit,...) that will be excluded | |
13 | +# | |
14 | +# To fix this you can also exclude `react-native-flipper` using a `react-native.config.js` | |
15 | +# ```js | |
16 | +# module.exports = { | |
17 | +# dependencies: { | |
18 | +# ...(process.env.NO_FLIPPER ? { 'react-native-flipper': { platforms: { ios: null } } } : {}), | |
19 | +# ``` | |
20 | +flipper_config = ENV['NO_FLIPPER'] == "1" ? FlipperConfiguration.disabled : FlipperConfiguration.enabled | |
21 | + | |
22 | +linkage = ENV['USE_FRAMEWORKS'] | |
23 | +if linkage != nil | |
24 | + Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green | |
25 | + use_frameworks! :linkage => linkage.to_sym | |
26 | +end | |
27 | + | |
28 | +target 'kogas_app' do | |
29 | + config = use_native_modules! | |
30 | + | |
31 | + # Flags change depending on the env values. | |
32 | + flags = get_default_flags() | |
33 | + | |
34 | + use_react_native!( | |
35 | + :path => config[:reactNativePath], | |
36 | + # Hermes is now enabled by default. Disable by setting this flag to false. | |
37 | + :hermes_enabled => flags[:hermes_enabled], | |
38 | + :fabric_enabled => flags[:fabric_enabled], | |
39 | + # Enables Flipper. | |
40 | + # | |
41 | + # Note that if you have use_frameworks! enabled, Flipper will not work and | |
42 | + # you should disable the next line. | |
43 | + :flipper_configuration => flipper_config, | |
44 | + # An absolute path to your application root. | |
45 | + :app_path => "#{Pod::Config.instance.installation_root}/.." | |
46 | + ) | |
47 | + | |
48 | + target 'kogas_appTests' do | |
49 | + inherit! :complete | |
50 | + # Pods for testing | |
51 | + end | |
52 | + | |
53 | + post_install do |installer| | |
54 | + # https://github.com/facebook/react-native/blob/main/packages/react-native/scripts/react_native_pods.rb#L197-L202 | |
55 | + react_native_post_install( | |
56 | + installer, | |
57 | + config[:reactNativePath], | |
58 | + :mac_catalyst_enabled => false | |
59 | + ) | |
60 | + __apply_Xcode_12_5_M1_post_install_workaround(installer) | |
61 | + end | |
62 | +end |
+++ kogas_app/ios/kogas_app.xcodeproj/project.pbxproj
... | ... | @@ -0,0 +1,702 @@ |
1 | +// !$*UTF8*$! | |
2 | +{ | |
3 | + archiveVersion = 1; | |
4 | + classes = { | |
5 | + }; | |
6 | + objectVersion = 54; | |
7 | + objects = { | |
8 | + | |
9 | +/* Begin PBXBuildFile section */ | |
10 | + 00E356F31AD99517003FC87E /* kogas_appTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* kogas_appTests.m */; }; | |
11 | + 0C80B921A6F3F58F76C31292 /* libPods-kogas_app.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DCACB8F33CDC322A6C60F78 /* libPods-kogas_app.a */; }; | |
12 | + 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; }; | |
13 | + 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; | |
14 | + 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; | |
15 | + 7699B88040F8A987B510C191 /* libPods-kogas_app-kogas_appTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 19F6CBCC0A4E27FBF8BF4A61 /* libPods-kogas_app-kogas_appTests.a */; }; | |
16 | + 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; }; | |
17 | +/* End PBXBuildFile section */ | |
18 | + | |
19 | +/* Begin PBXContainerItemProxy section */ | |
20 | + 00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = { | |
21 | + isa = PBXContainerItemProxy; | |
22 | + containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; | |
23 | + proxyType = 1; | |
24 | + remoteGlobalIDString = 13B07F861A680F5B00A75B9A; | |
25 | + remoteInfo = kogas_app; | |
26 | + }; | |
27 | +/* End PBXContainerItemProxy section */ | |
28 | + | |
29 | +/* Begin PBXFileReference section */ | |
30 | + 00E356EE1AD99517003FC87E /* kogas_appTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = kogas_appTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; | |
31 | + 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; | |
32 | + 00E356F21AD99517003FC87E /* kogas_appTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = kogas_appTests.m; sourceTree = "<group>"; }; | |
33 | + 13B07F961A680F5B00A75B9A /* kogas_app.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = kogas_app.app; sourceTree = BUILT_PRODUCTS_DIR; }; | |
34 | + 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = kogas_app/AppDelegate.h; sourceTree = "<group>"; }; | |
35 | + 13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = kogas_app/AppDelegate.mm; sourceTree = "<group>"; }; | |
36 | + 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = kogas_app/Images.xcassets; sourceTree = "<group>"; }; | |
37 | + 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = kogas_app/Info.plist; sourceTree = "<group>"; }; | |
38 | + 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = kogas_app/main.m; sourceTree = "<group>"; }; | |
39 | + 19F6CBCC0A4E27FBF8BF4A61 /* libPods-kogas_app-kogas_appTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-kogas_app-kogas_appTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; | |
40 | + 3B4392A12AC88292D35C810B /* Pods-kogas_app.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-kogas_app.debug.xcconfig"; path = "Target Support Files/Pods-kogas_app/Pods-kogas_app.debug.xcconfig"; sourceTree = "<group>"; }; | |
41 | + 5709B34CF0A7D63546082F79 /* Pods-kogas_app.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-kogas_app.release.xcconfig"; path = "Target Support Files/Pods-kogas_app/Pods-kogas_app.release.xcconfig"; sourceTree = "<group>"; }; | |
42 | + 5B7EB9410499542E8C5724F5 /* Pods-kogas_app-kogas_appTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-kogas_app-kogas_appTests.debug.xcconfig"; path = "Target Support Files/Pods-kogas_app-kogas_appTests/Pods-kogas_app-kogas_appTests.debug.xcconfig"; sourceTree = "<group>"; }; | |
43 | + 5DCACB8F33CDC322A6C60F78 /* libPods-kogas_app.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-kogas_app.a"; sourceTree = BUILT_PRODUCTS_DIR; }; | |
44 | + 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = kogas_app/LaunchScreen.storyboard; sourceTree = "<group>"; }; | |
45 | + 89C6BE57DB24E9ADA2F236DE /* Pods-kogas_app-kogas_appTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-kogas_app-kogas_appTests.release.xcconfig"; path = "Target Support Files/Pods-kogas_app-kogas_appTests/Pods-kogas_app-kogas_appTests.release.xcconfig"; sourceTree = "<group>"; }; | |
46 | + ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; | |
47 | +/* End PBXFileReference section */ | |
48 | + | |
49 | +/* Begin PBXFrameworksBuildPhase section */ | |
50 | + 00E356EB1AD99517003FC87E /* Frameworks */ = { | |
51 | + isa = PBXFrameworksBuildPhase; | |
52 | + buildActionMask = 2147483647; | |
53 | + files = ( | |
54 | + 7699B88040F8A987B510C191 /* libPods-kogas_app-kogas_appTests.a in Frameworks */, | |
55 | + ); | |
56 | + runOnlyForDeploymentPostprocessing = 0; | |
57 | + }; | |
58 | + 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { | |
59 | + isa = PBXFrameworksBuildPhase; | |
60 | + buildActionMask = 2147483647; | |
61 | + files = ( | |
62 | + 0C80B921A6F3F58F76C31292 /* libPods-kogas_app.a in Frameworks */, | |
63 | + ); | |
64 | + runOnlyForDeploymentPostprocessing = 0; | |
65 | + }; | |
66 | +/* End PBXFrameworksBuildPhase section */ | |
67 | + | |
68 | +/* Begin PBXGroup section */ | |
69 | + 00E356EF1AD99517003FC87E /* kogas_appTests */ = { | |
70 | + isa = PBXGroup; | |
71 | + children = ( | |
72 | + 00E356F21AD99517003FC87E /* kogas_appTests.m */, | |
73 | + 00E356F01AD99517003FC87E /* Supporting Files */, | |
74 | + ); | |
75 | + path = kogas_appTests; | |
76 | + sourceTree = "<group>"; | |
77 | + }; | |
78 | + 00E356F01AD99517003FC87E /* Supporting Files */ = { | |
79 | + isa = PBXGroup; | |
80 | + children = ( | |
81 | + 00E356F11AD99517003FC87E /* Info.plist */, | |
82 | + ); | |
83 | + name = "Supporting Files"; | |
84 | + sourceTree = "<group>"; | |
85 | + }; | |
86 | + 13B07FAE1A68108700A75B9A /* kogas_app */ = { | |
87 | + isa = PBXGroup; | |
88 | + children = ( | |
89 | + 13B07FAF1A68108700A75B9A /* AppDelegate.h */, | |
90 | + 13B07FB01A68108700A75B9A /* AppDelegate.mm */, | |
91 | + 13B07FB51A68108700A75B9A /* Images.xcassets */, | |
92 | + 13B07FB61A68108700A75B9A /* Info.plist */, | |
93 | + 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */, | |
94 | + 13B07FB71A68108700A75B9A /* main.m */, | |
95 | + ); | |
96 | + name = kogas_app; | |
97 | + sourceTree = "<group>"; | |
98 | + }; | |
99 | + 2D16E6871FA4F8E400B85C8A /* Frameworks */ = { | |
100 | + isa = PBXGroup; | |
101 | + children = ( | |
102 | + ED297162215061F000B7C4FE /* JavaScriptCore.framework */, | |
103 | + 5DCACB8F33CDC322A6C60F78 /* libPods-kogas_app.a */, | |
104 | + 19F6CBCC0A4E27FBF8BF4A61 /* libPods-kogas_app-kogas_appTests.a */, | |
105 | + ); | |
106 | + name = Frameworks; | |
107 | + sourceTree = "<group>"; | |
108 | + }; | |
109 | + 832341AE1AAA6A7D00B99B32 /* Libraries */ = { | |
110 | + isa = PBXGroup; | |
111 | + children = ( | |
112 | + ); | |
113 | + name = Libraries; | |
114 | + sourceTree = "<group>"; | |
115 | + }; | |
116 | + 83CBB9F61A601CBA00E9B192 = { | |
117 | + isa = PBXGroup; | |
118 | + children = ( | |
119 | + 13B07FAE1A68108700A75B9A /* kogas_app */, | |
120 | + 832341AE1AAA6A7D00B99B32 /* Libraries */, | |
121 | + 00E356EF1AD99517003FC87E /* kogas_appTests */, | |
122 | + 83CBBA001A601CBA00E9B192 /* Products */, | |
123 | + 2D16E6871FA4F8E400B85C8A /* Frameworks */, | |
124 | + BBD78D7AC51CEA395F1C20DB /* Pods */, | |
125 | + ); | |
126 | + indentWidth = 2; | |
127 | + sourceTree = "<group>"; | |
128 | + tabWidth = 2; | |
129 | + usesTabs = 0; | |
130 | + }; | |
131 | + 83CBBA001A601CBA00E9B192 /* Products */ = { | |
132 | + isa = PBXGroup; | |
133 | + children = ( | |
134 | + 13B07F961A680F5B00A75B9A /* kogas_app.app */, | |
135 | + 00E356EE1AD99517003FC87E /* kogas_appTests.xctest */, | |
136 | + ); | |
137 | + name = Products; | |
138 | + sourceTree = "<group>"; | |
139 | + }; | |
140 | + BBD78D7AC51CEA395F1C20DB /* Pods */ = { | |
141 | + isa = PBXGroup; | |
142 | + children = ( | |
143 | + 3B4392A12AC88292D35C810B /* Pods-kogas_app.debug.xcconfig */, | |
144 | + 5709B34CF0A7D63546082F79 /* Pods-kogas_app.release.xcconfig */, | |
145 | + 5B7EB9410499542E8C5724F5 /* Pods-kogas_app-kogas_appTests.debug.xcconfig */, | |
146 | + 89C6BE57DB24E9ADA2F236DE /* Pods-kogas_app-kogas_appTests.release.xcconfig */, | |
147 | + ); | |
148 | + path = Pods; | |
149 | + sourceTree = "<group>"; | |
150 | + }; | |
151 | +/* End PBXGroup section */ | |
152 | + | |
153 | +/* Begin PBXNativeTarget section */ | |
154 | + 00E356ED1AD99517003FC87E /* kogas_appTests */ = { | |
155 | + isa = PBXNativeTarget; | |
156 | + buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "kogas_appTests" */; | |
157 | + buildPhases = ( | |
158 | + A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */, | |
159 | + 00E356EA1AD99517003FC87E /* Sources */, | |
160 | + 00E356EB1AD99517003FC87E /* Frameworks */, | |
161 | + 00E356EC1AD99517003FC87E /* Resources */, | |
162 | + C59DA0FBD6956966B86A3779 /* [CP] Embed Pods Frameworks */, | |
163 | + F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */, | |
164 | + ); | |
165 | + buildRules = ( | |
166 | + ); | |
167 | + dependencies = ( | |
168 | + 00E356F51AD99517003FC87E /* PBXTargetDependency */, | |
169 | + ); | |
170 | + name = kogas_appTests; | |
171 | + productName = kogas_appTests; | |
172 | + productReference = 00E356EE1AD99517003FC87E /* kogas_appTests.xctest */; | |
173 | + productType = "com.apple.product-type.bundle.unit-test"; | |
174 | + }; | |
175 | + 13B07F861A680F5B00A75B9A /* kogas_app */ = { | |
176 | + isa = PBXNativeTarget; | |
177 | + buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "kogas_app" */; | |
178 | + buildPhases = ( | |
179 | + C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */, | |
180 | + FD10A7F022414F080027D42C /* Start Packager */, | |
181 | + 13B07F871A680F5B00A75B9A /* Sources */, | |
182 | + 13B07F8C1A680F5B00A75B9A /* Frameworks */, | |
183 | + 13B07F8E1A680F5B00A75B9A /* Resources */, | |
184 | + 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, | |
185 | + 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */, | |
186 | + E235C05ADACE081382539298 /* [CP] Copy Pods Resources */, | |
187 | + ); | |
188 | + buildRules = ( | |
189 | + ); | |
190 | + dependencies = ( | |
191 | + ); | |
192 | + name = kogas_app; | |
193 | + productName = kogas_app; | |
194 | + productReference = 13B07F961A680F5B00A75B9A /* kogas_app.app */; | |
195 | + productType = "com.apple.product-type.application"; | |
196 | + }; | |
197 | +/* End PBXNativeTarget section */ | |
198 | + | |
199 | +/* Begin PBXProject section */ | |
200 | + 83CBB9F71A601CBA00E9B192 /* Project object */ = { | |
201 | + isa = PBXProject; | |
202 | + attributes = { | |
203 | + LastUpgradeCheck = 1210; | |
204 | + TargetAttributes = { | |
205 | + 00E356ED1AD99517003FC87E = { | |
206 | + CreatedOnToolsVersion = 6.2; | |
207 | + TestTargetID = 13B07F861A680F5B00A75B9A; | |
208 | + }; | |
209 | + 13B07F861A680F5B00A75B9A = { | |
210 | + LastSwiftMigration = 1120; | |
211 | + }; | |
212 | + }; | |
213 | + }; | |
214 | + buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "kogas_app" */; | |
215 | + compatibilityVersion = "Xcode 12.0"; | |
216 | + developmentRegion = en; | |
217 | + hasScannedForEncodings = 0; | |
218 | + knownRegions = ( | |
219 | + en, | |
220 | + Base, | |
221 | + ); | |
222 | + mainGroup = 83CBB9F61A601CBA00E9B192; | |
223 | + productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; | |
224 | + projectDirPath = ""; | |
225 | + projectRoot = ""; | |
226 | + targets = ( | |
227 | + 13B07F861A680F5B00A75B9A /* kogas_app */, | |
228 | + 00E356ED1AD99517003FC87E /* kogas_appTests */, | |
229 | + ); | |
230 | + }; | |
231 | +/* End PBXProject section */ | |
232 | + | |
233 | +/* Begin PBXResourcesBuildPhase section */ | |
234 | + 00E356EC1AD99517003FC87E /* Resources */ = { | |
235 | + isa = PBXResourcesBuildPhase; | |
236 | + buildActionMask = 2147483647; | |
237 | + files = ( | |
238 | + ); | |
239 | + runOnlyForDeploymentPostprocessing = 0; | |
240 | + }; | |
241 | + 13B07F8E1A680F5B00A75B9A /* Resources */ = { | |
242 | + isa = PBXResourcesBuildPhase; | |
243 | + buildActionMask = 2147483647; | |
244 | + files = ( | |
245 | + 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */, | |
246 | + 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, | |
247 | + ); | |
248 | + runOnlyForDeploymentPostprocessing = 0; | |
249 | + }; | |
250 | +/* End PBXResourcesBuildPhase section */ | |
251 | + | |
252 | +/* Begin PBXShellScriptBuildPhase section */ | |
253 | + 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = { | |
254 | + isa = PBXShellScriptBuildPhase; | |
255 | + buildActionMask = 2147483647; | |
256 | + files = ( | |
257 | + ); | |
258 | + inputPaths = ( | |
259 | + "$(SRCROOT)/.xcode.env.local", | |
260 | + "$(SRCROOT)/.xcode.env", | |
261 | + ); | |
262 | + name = "Bundle React Native code and images"; | |
263 | + outputPaths = ( | |
264 | + ); | |
265 | + runOnlyForDeploymentPostprocessing = 0; | |
266 | + shellPath = /bin/sh; | |
267 | + shellScript = "set -e\n\nWITH_ENVIRONMENT=\"../node_modules/react-native/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"../node_modules/react-native/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n"; | |
268 | + }; | |
269 | + 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */ = { | |
270 | + isa = PBXShellScriptBuildPhase; | |
271 | + buildActionMask = 2147483647; | |
272 | + files = ( | |
273 | + ); | |
274 | + inputFileListPaths = ( | |
275 | + "${PODS_ROOT}/Target Support Files/Pods-kogas_app/Pods-kogas_app-frameworks-${CONFIGURATION}-input-files.xcfilelist", | |
276 | + ); | |
277 | + name = "[CP] Embed Pods Frameworks"; | |
278 | + outputFileListPaths = ( | |
279 | + "${PODS_ROOT}/Target Support Files/Pods-kogas_app/Pods-kogas_app-frameworks-${CONFIGURATION}-output-files.xcfilelist", | |
280 | + ); | |
281 | + runOnlyForDeploymentPostprocessing = 0; | |
282 | + shellPath = /bin/sh; | |
283 | + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-kogas_app/Pods-kogas_app-frameworks.sh\"\n"; | |
284 | + showEnvVarsInLog = 0; | |
285 | + }; | |
286 | + A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */ = { | |
287 | + isa = PBXShellScriptBuildPhase; | |
288 | + buildActionMask = 2147483647; | |
289 | + files = ( | |
290 | + ); | |
291 | + inputFileListPaths = ( | |
292 | + ); | |
293 | + inputPaths = ( | |
294 | + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", | |
295 | + "${PODS_ROOT}/Manifest.lock", | |
296 | + ); | |
297 | + name = "[CP] Check Pods Manifest.lock"; | |
298 | + outputFileListPaths = ( | |
299 | + ); | |
300 | + outputPaths = ( | |
301 | + "$(DERIVED_FILE_DIR)/Pods-kogas_app-kogas_appTests-checkManifestLockResult.txt", | |
302 | + ); | |
303 | + runOnlyForDeploymentPostprocessing = 0; | |
304 | + shellPath = /bin/sh; | |
305 | + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; | |
306 | + showEnvVarsInLog = 0; | |
307 | + }; | |
308 | + C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */ = { | |
309 | + isa = PBXShellScriptBuildPhase; | |
310 | + buildActionMask = 2147483647; | |
311 | + files = ( | |
312 | + ); | |
313 | + inputFileListPaths = ( | |
314 | + ); | |
315 | + inputPaths = ( | |
316 | + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", | |
317 | + "${PODS_ROOT}/Manifest.lock", | |
318 | + ); | |
319 | + name = "[CP] Check Pods Manifest.lock"; | |
320 | + outputFileListPaths = ( | |
321 | + ); | |
322 | + outputPaths = ( | |
323 | + "$(DERIVED_FILE_DIR)/Pods-kogas_app-checkManifestLockResult.txt", | |
324 | + ); | |
325 | + runOnlyForDeploymentPostprocessing = 0; | |
326 | + shellPath = /bin/sh; | |
327 | + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; | |
328 | + showEnvVarsInLog = 0; | |
329 | + }; | |
330 | + C59DA0FBD6956966B86A3779 /* [CP] Embed Pods Frameworks */ = { | |
331 | + isa = PBXShellScriptBuildPhase; | |
332 | + buildActionMask = 2147483647; | |
333 | + files = ( | |
334 | + ); | |
335 | + inputFileListPaths = ( | |
336 | + "${PODS_ROOT}/Target Support Files/Pods-kogas_app-kogas_appTests/Pods-kogas_app-kogas_appTests-frameworks-${CONFIGURATION}-input-files.xcfilelist", | |
337 | + ); | |
338 | + name = "[CP] Embed Pods Frameworks"; | |
339 | + outputFileListPaths = ( | |
340 | + "${PODS_ROOT}/Target Support Files/Pods-kogas_app-kogas_appTests/Pods-kogas_app-kogas_appTests-frameworks-${CONFIGURATION}-output-files.xcfilelist", | |
341 | + ); | |
342 | + runOnlyForDeploymentPostprocessing = 0; | |
343 | + shellPath = /bin/sh; | |
344 | + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-kogas_app-kogas_appTests/Pods-kogas_app-kogas_appTests-frameworks.sh\"\n"; | |
345 | + showEnvVarsInLog = 0; | |
346 | + }; | |
347 | + E235C05ADACE081382539298 /* [CP] Copy Pods Resources */ = { | |
348 | + isa = PBXShellScriptBuildPhase; | |
349 | + buildActionMask = 2147483647; | |
350 | + files = ( | |
351 | + ); | |
352 | + inputFileListPaths = ( | |
353 | + "${PODS_ROOT}/Target Support Files/Pods-kogas_app/Pods-kogas_app-resources-${CONFIGURATION}-input-files.xcfilelist", | |
354 | + ); | |
355 | + name = "[CP] Copy Pods Resources"; | |
356 | + outputFileListPaths = ( | |
357 | + "${PODS_ROOT}/Target Support Files/Pods-kogas_app/Pods-kogas_app-resources-${CONFIGURATION}-output-files.xcfilelist", | |
358 | + ); | |
359 | + runOnlyForDeploymentPostprocessing = 0; | |
360 | + shellPath = /bin/sh; | |
361 | + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-kogas_app/Pods-kogas_app-resources.sh\"\n"; | |
362 | + showEnvVarsInLog = 0; | |
363 | + }; | |
364 | + F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */ = { | |
365 | + isa = PBXShellScriptBuildPhase; | |
366 | + buildActionMask = 2147483647; | |
367 | + files = ( | |
368 | + ); | |
369 | + inputFileListPaths = ( | |
370 | + "${PODS_ROOT}/Target Support Files/Pods-kogas_app-kogas_appTests/Pods-kogas_app-kogas_appTests-resources-${CONFIGURATION}-input-files.xcfilelist", | |
371 | + ); | |
372 | + name = "[CP] Copy Pods Resources"; | |
373 | + outputFileListPaths = ( | |
374 | + "${PODS_ROOT}/Target Support Files/Pods-kogas_app-kogas_appTests/Pods-kogas_app-kogas_appTests-resources-${CONFIGURATION}-output-files.xcfilelist", | |
375 | + ); | |
376 | + runOnlyForDeploymentPostprocessing = 0; | |
377 | + shellPath = /bin/sh; | |
378 | + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-kogas_app-kogas_appTests/Pods-kogas_app-kogas_appTests-resources.sh\"\n"; | |
379 | + showEnvVarsInLog = 0; | |
380 | + }; | |
381 | + FD10A7F022414F080027D42C /* Start Packager */ = { | |
382 | + isa = PBXShellScriptBuildPhase; | |
383 | + buildActionMask = 2147483647; | |
384 | + files = ( | |
385 | + ); | |
386 | + inputFileListPaths = ( | |
387 | + ); | |
388 | + inputPaths = ( | |
389 | + ); | |
390 | + name = "Start Packager"; | |
391 | + outputFileListPaths = ( | |
392 | + ); | |
393 | + outputPaths = ( | |
394 | + ); | |
395 | + runOnlyForDeploymentPostprocessing = 0; | |
396 | + shellPath = /bin/sh; | |
397 | + shellScript = "export RCT_METRO_PORT=\"${RCT_METRO_PORT:=8081}\"\necho \"export RCT_METRO_PORT=${RCT_METRO_PORT}\" > \"${SRCROOT}/../node_modules/react-native/scripts/.packager.env\"\nif [ -z \"${RCT_NO_LAUNCH_PACKAGER+xxx}\" ] ; then\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\n if ! curl -s \"http://localhost:${RCT_METRO_PORT}/status\" | grep -q \"packager-status:running\" ; then\n echo \"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\"\n exit 2\n fi\n else\n open \"$SRCROOT/../node_modules/react-native/scripts/launchPackager.command\" || echo \"Can't start packager automatically\"\n fi\nfi\n"; | |
398 | + showEnvVarsInLog = 0; | |
399 | + }; | |
400 | +/* End PBXShellScriptBuildPhase section */ | |
401 | + | |
402 | +/* Begin PBXSourcesBuildPhase section */ | |
403 | + 00E356EA1AD99517003FC87E /* Sources */ = { | |
404 | + isa = PBXSourcesBuildPhase; | |
405 | + buildActionMask = 2147483647; | |
406 | + files = ( | |
407 | + 00E356F31AD99517003FC87E /* kogas_appTests.m in Sources */, | |
408 | + ); | |
409 | + runOnlyForDeploymentPostprocessing = 0; | |
410 | + }; | |
411 | + 13B07F871A680F5B00A75B9A /* Sources */ = { | |
412 | + isa = PBXSourcesBuildPhase; | |
413 | + buildActionMask = 2147483647; | |
414 | + files = ( | |
415 | + 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */, | |
416 | + 13B07FC11A68108700A75B9A /* main.m in Sources */, | |
417 | + ); | |
418 | + runOnlyForDeploymentPostprocessing = 0; | |
419 | + }; | |
420 | +/* End PBXSourcesBuildPhase section */ | |
421 | + | |
422 | +/* Begin PBXTargetDependency section */ | |
423 | + 00E356F51AD99517003FC87E /* PBXTargetDependency */ = { | |
424 | + isa = PBXTargetDependency; | |
425 | + target = 13B07F861A680F5B00A75B9A /* kogas_app */; | |
426 | + targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */; | |
427 | + }; | |
428 | +/* End PBXTargetDependency section */ | |
429 | + | |
430 | +/* Begin XCBuildConfiguration section */ | |
431 | + 00E356F61AD99517003FC87E /* Debug */ = { | |
432 | + isa = XCBuildConfiguration; | |
433 | + baseConfigurationReference = 5B7EB9410499542E8C5724F5 /* Pods-kogas_app-kogas_appTests.debug.xcconfig */; | |
434 | + buildSettings = { | |
435 | + BUNDLE_LOADER = "$(TEST_HOST)"; | |
436 | + GCC_PREPROCESSOR_DEFINITIONS = ( | |
437 | + "DEBUG=1", | |
438 | + "$(inherited)", | |
439 | + ); | |
440 | + INFOPLIST_FILE = kogas_appTests/Info.plist; | |
441 | + IPHONEOS_DEPLOYMENT_TARGET = 12.4; | |
442 | + LD_RUNPATH_SEARCH_PATHS = ( | |
443 | + "$(inherited)", | |
444 | + "@executable_path/Frameworks", | |
445 | + "@loader_path/Frameworks", | |
446 | + ); | |
447 | + OTHER_LDFLAGS = ( | |
448 | + "-ObjC", | |
449 | + "-lc++", | |
450 | + "$(inherited)", | |
451 | + ); | |
452 | + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; | |
453 | + PRODUCT_NAME = "$(TARGET_NAME)"; | |
454 | + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/kogas_app.app/kogas_app"; | |
455 | + }; | |
456 | + name = Debug; | |
457 | + }; | |
458 | + 00E356F71AD99517003FC87E /* Release */ = { | |
459 | + isa = XCBuildConfiguration; | |
460 | + baseConfigurationReference = 89C6BE57DB24E9ADA2F236DE /* Pods-kogas_app-kogas_appTests.release.xcconfig */; | |
461 | + buildSettings = { | |
462 | + BUNDLE_LOADER = "$(TEST_HOST)"; | |
463 | + COPY_PHASE_STRIP = NO; | |
464 | + INFOPLIST_FILE = kogas_appTests/Info.plist; | |
465 | + IPHONEOS_DEPLOYMENT_TARGET = 12.4; | |
466 | + LD_RUNPATH_SEARCH_PATHS = ( | |
467 | + "$(inherited)", | |
468 | + "@executable_path/Frameworks", | |
469 | + "@loader_path/Frameworks", | |
470 | + ); | |
471 | + OTHER_LDFLAGS = ( | |
472 | + "-ObjC", | |
473 | + "-lc++", | |
474 | + "$(inherited)", | |
475 | + ); | |
476 | + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; | |
477 | + PRODUCT_NAME = "$(TARGET_NAME)"; | |
478 | + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/kogas_app.app/kogas_app"; | |
479 | + }; | |
480 | + name = Release; | |
481 | + }; | |
482 | + 13B07F941A680F5B00A75B9A /* Debug */ = { | |
483 | + isa = XCBuildConfiguration; | |
484 | + baseConfigurationReference = 3B4392A12AC88292D35C810B /* Pods-kogas_app.debug.xcconfig */; | |
485 | + buildSettings = { | |
486 | + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; | |
487 | + CLANG_ENABLE_MODULES = YES; | |
488 | + CURRENT_PROJECT_VERSION = 1; | |
489 | + ENABLE_BITCODE = NO; | |
490 | + INFOPLIST_FILE = kogas_app/Info.plist; | |
491 | + LD_RUNPATH_SEARCH_PATHS = ( | |
492 | + "$(inherited)", | |
493 | + "@executable_path/Frameworks", | |
494 | + ); | |
495 | + MARKETING_VERSION = 1.0; | |
496 | + OTHER_LDFLAGS = ( | |
497 | + "$(inherited)", | |
498 | + "-ObjC", | |
499 | + "-lc++", | |
500 | + ); | |
501 | + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; | |
502 | + PRODUCT_NAME = kogas_app; | |
503 | + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; | |
504 | + SWIFT_VERSION = 5.0; | |
505 | + VERSIONING_SYSTEM = "apple-generic"; | |
506 | + }; | |
507 | + name = Debug; | |
508 | + }; | |
509 | + 13B07F951A680F5B00A75B9A /* Release */ = { | |
510 | + isa = XCBuildConfiguration; | |
511 | + baseConfigurationReference = 5709B34CF0A7D63546082F79 /* Pods-kogas_app.release.xcconfig */; | |
512 | + buildSettings = { | |
513 | + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; | |
514 | + CLANG_ENABLE_MODULES = YES; | |
515 | + CURRENT_PROJECT_VERSION = 1; | |
516 | + INFOPLIST_FILE = kogas_app/Info.plist; | |
517 | + LD_RUNPATH_SEARCH_PATHS = ( | |
518 | + "$(inherited)", | |
519 | + "@executable_path/Frameworks", | |
520 | + ); | |
521 | + MARKETING_VERSION = 1.0; | |
522 | + OTHER_LDFLAGS = ( | |
523 | + "$(inherited)", | |
524 | + "-ObjC", | |
525 | + "-lc++", | |
526 | + ); | |
527 | + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; | |
528 | + PRODUCT_NAME = kogas_app; | |
529 | + SWIFT_VERSION = 5.0; | |
530 | + VERSIONING_SYSTEM = "apple-generic"; | |
531 | + }; | |
532 | + name = Release; | |
533 | + }; | |
534 | + 83CBBA201A601CBA00E9B192 /* Debug */ = { | |
535 | + isa = XCBuildConfiguration; | |
536 | + buildSettings = { | |
537 | + ALWAYS_SEARCH_USER_PATHS = NO; | |
538 | + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; | |
539 | + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; | |
540 | + CLANG_CXX_LIBRARY = "libc++"; | |
541 | + CLANG_ENABLE_MODULES = YES; | |
542 | + CLANG_ENABLE_OBJC_ARC = YES; | |
543 | + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; | |
544 | + CLANG_WARN_BOOL_CONVERSION = YES; | |
545 | + CLANG_WARN_COMMA = YES; | |
546 | + CLANG_WARN_CONSTANT_CONVERSION = YES; | |
547 | + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; | |
548 | + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; | |
549 | + CLANG_WARN_EMPTY_BODY = YES; | |
550 | + CLANG_WARN_ENUM_CONVERSION = YES; | |
551 | + CLANG_WARN_INFINITE_RECURSION = YES; | |
552 | + CLANG_WARN_INT_CONVERSION = YES; | |
553 | + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; | |
554 | + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; | |
555 | + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; | |
556 | + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; | |
557 | + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; | |
558 | + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; | |
559 | + CLANG_WARN_STRICT_PROTOTYPES = YES; | |
560 | + CLANG_WARN_SUSPICIOUS_MOVE = YES; | |
561 | + CLANG_WARN_UNREACHABLE_CODE = YES; | |
562 | + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; | |
563 | + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; | |
564 | + COPY_PHASE_STRIP = NO; | |
565 | + ENABLE_STRICT_OBJC_MSGSEND = YES; | |
566 | + ENABLE_TESTABILITY = YES; | |
567 | + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; | |
568 | + GCC_C_LANGUAGE_STANDARD = gnu99; | |
569 | + GCC_DYNAMIC_NO_PIC = NO; | |
570 | + GCC_NO_COMMON_BLOCKS = YES; | |
571 | + GCC_OPTIMIZATION_LEVEL = 0; | |
572 | + GCC_PREPROCESSOR_DEFINITIONS = ( | |
573 | + "DEBUG=1", | |
574 | + "$(inherited)", | |
575 | + ); | |
576 | + GCC_SYMBOLS_PRIVATE_EXTERN = NO; | |
577 | + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; | |
578 | + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; | |
579 | + GCC_WARN_UNDECLARED_SELECTOR = YES; | |
580 | + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; | |
581 | + GCC_WARN_UNUSED_FUNCTION = YES; | |
582 | + GCC_WARN_UNUSED_VARIABLE = YES; | |
583 | + IPHONEOS_DEPLOYMENT_TARGET = 12.4; | |
584 | + LD_RUNPATH_SEARCH_PATHS = ( | |
585 | + /usr/lib/swift, | |
586 | + "$(inherited)", | |
587 | + ); | |
588 | + LIBRARY_SEARCH_PATHS = ( | |
589 | + "\"$(SDKROOT)/usr/lib/swift\"", | |
590 | + "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", | |
591 | + "\"$(inherited)\"", | |
592 | + ); | |
593 | + MTL_ENABLE_DEBUG_INFO = YES; | |
594 | + ONLY_ACTIVE_ARCH = YES; | |
595 | + OTHER_CPLUSPLUSFLAGS = ( | |
596 | + "$(OTHER_CFLAGS)", | |
597 | + "-DFOLLY_NO_CONFIG", | |
598 | + "-DFOLLY_MOBILE=1", | |
599 | + "-DFOLLY_USE_LIBCPP=1", | |
600 | + ); | |
601 | + SDKROOT = iphoneos; | |
602 | + }; | |
603 | + name = Debug; | |
604 | + }; | |
605 | + 83CBBA211A601CBA00E9B192 /* Release */ = { | |
606 | + isa = XCBuildConfiguration; | |
607 | + buildSettings = { | |
608 | + ALWAYS_SEARCH_USER_PATHS = NO; | |
609 | + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; | |
610 | + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; | |
611 | + CLANG_CXX_LIBRARY = "libc++"; | |
612 | + CLANG_ENABLE_MODULES = YES; | |
613 | + CLANG_ENABLE_OBJC_ARC = YES; | |
614 | + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; | |
615 | + CLANG_WARN_BOOL_CONVERSION = YES; | |
616 | + CLANG_WARN_COMMA = YES; | |
617 | + CLANG_WARN_CONSTANT_CONVERSION = YES; | |
618 | + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; | |
619 | + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; | |
620 | + CLANG_WARN_EMPTY_BODY = YES; | |
621 | + CLANG_WARN_ENUM_CONVERSION = YES; | |
622 | + CLANG_WARN_INFINITE_RECURSION = YES; | |
623 | + CLANG_WARN_INT_CONVERSION = YES; | |
624 | + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; | |
625 | + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; | |
626 | + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; | |
627 | + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; | |
628 | + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; | |
629 | + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; | |
630 | + CLANG_WARN_STRICT_PROTOTYPES = YES; | |
631 | + CLANG_WARN_SUSPICIOUS_MOVE = YES; | |
632 | + CLANG_WARN_UNREACHABLE_CODE = YES; | |
633 | + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; | |
634 | + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; | |
635 | + COPY_PHASE_STRIP = YES; | |
636 | + ENABLE_NS_ASSERTIONS = NO; | |
637 | + ENABLE_STRICT_OBJC_MSGSEND = YES; | |
638 | + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; | |
639 | + GCC_C_LANGUAGE_STANDARD = gnu99; | |
640 | + GCC_NO_COMMON_BLOCKS = YES; | |
641 | + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; | |
642 | + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; | |
643 | + GCC_WARN_UNDECLARED_SELECTOR = YES; | |
644 | + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; | |
645 | + GCC_WARN_UNUSED_FUNCTION = YES; | |
646 | + GCC_WARN_UNUSED_VARIABLE = YES; | |
647 | + IPHONEOS_DEPLOYMENT_TARGET = 12.4; | |
648 | + LD_RUNPATH_SEARCH_PATHS = ( | |
649 | + /usr/lib/swift, | |
650 | + "$(inherited)", | |
651 | + ); | |
652 | + LIBRARY_SEARCH_PATHS = ( | |
653 | + "\"$(SDKROOT)/usr/lib/swift\"", | |
654 | + "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", | |
655 | + "\"$(inherited)\"", | |
656 | + ); | |
657 | + MTL_ENABLE_DEBUG_INFO = NO; | |
658 | + OTHER_CPLUSPLUSFLAGS = ( | |
659 | + "$(OTHER_CFLAGS)", | |
660 | + "-DFOLLY_NO_CONFIG", | |
661 | + "-DFOLLY_MOBILE=1", | |
662 | + "-DFOLLY_USE_LIBCPP=1", | |
663 | + ); | |
664 | + SDKROOT = iphoneos; | |
665 | + VALIDATE_PRODUCT = YES; | |
666 | + }; | |
667 | + name = Release; | |
668 | + }; | |
669 | +/* End XCBuildConfiguration section */ | |
670 | + | |
671 | +/* Begin XCConfigurationList section */ | |
672 | + 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "kogas_appTests" */ = { | |
673 | + isa = XCConfigurationList; | |
674 | + buildConfigurations = ( | |
675 | + 00E356F61AD99517003FC87E /* Debug */, | |
676 | + 00E356F71AD99517003FC87E /* Release */, | |
677 | + ); | |
678 | + defaultConfigurationIsVisible = 0; | |
679 | + defaultConfigurationName = Release; | |
680 | + }; | |
681 | + 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "kogas_app" */ = { | |
682 | + isa = XCConfigurationList; | |
683 | + buildConfigurations = ( | |
684 | + 13B07F941A680F5B00A75B9A /* Debug */, | |
685 | + 13B07F951A680F5B00A75B9A /* Release */, | |
686 | + ); | |
687 | + defaultConfigurationIsVisible = 0; | |
688 | + defaultConfigurationName = Release; | |
689 | + }; | |
690 | + 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "kogas_app" */ = { | |
691 | + isa = XCConfigurationList; | |
692 | + buildConfigurations = ( | |
693 | + 83CBBA201A601CBA00E9B192 /* Debug */, | |
694 | + 83CBBA211A601CBA00E9B192 /* Release */, | |
695 | + ); | |
696 | + defaultConfigurationIsVisible = 0; | |
697 | + defaultConfigurationName = Release; | |
698 | + }; | |
699 | +/* End XCConfigurationList section */ | |
700 | + }; | |
701 | + rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; | |
702 | +} |
+++ kogas_app/ios/kogas_app/AppDelegate.h
... | ... | @@ -0,0 +1,6 @@ |
1 | +#import <RCTAppDelegate.h> | |
2 | +#import <UIKit/UIKit.h> | |
3 | + | |
4 | +@interface AppDelegate : RCTAppDelegate | |
5 | + | |
6 | +@end |
+++ kogas_app/ios/kogas_app/AppDelegate.mm
... | ... | @@ -0,0 +1,26 @@ |
1 | +#import "AppDelegate.h" | |
2 | + | |
3 | +#import <React/RCTBundleURLProvider.h> | |
4 | + | |
5 | +@implementation AppDelegate | |
6 | + | |
7 | +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions | |
8 | +{ | |
9 | + self.moduleName = @"kogas_app"; | |
10 | + // You can add your custom initial props in the dictionary below. | |
11 | + // They will be passed down to the ViewController used by React Native. | |
12 | + self.initialProps = @{}; | |
13 | + | |
14 | + return [super application:application didFinishLaunchingWithOptions:launchOptions]; | |
15 | +} | |
16 | + | |
17 | +- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge | |
18 | +{ | |
19 | +#if DEBUG | |
20 | + return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"]; | |
21 | +#else | |
22 | + return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; | |
23 | +#endif | |
24 | +} | |
25 | + | |
26 | +@end |
+++ kogas_app/ios/kogas_app/Images.xcassets/AppIcon.appiconset/Contents.json
... | ... | @@ -0,0 +1,53 @@ |
1 | +{ | |
2 | + "images" : [ | |
3 | + { | |
4 | + "idiom" : "iphone", | |
5 | + "scale" : "2x", | |
6 | + "size" : "20x20" | |
7 | + }, | |
8 | + { | |
9 | + "idiom" : "iphone", | |
10 | + "scale" : "3x", | |
11 | + "size" : "20x20" | |
12 | + }, | |
13 | + { | |
14 | + "idiom" : "iphone", | |
15 | + "scale" : "2x", | |
16 | + "size" : "29x29" | |
17 | + }, | |
18 | + { | |
19 | + "idiom" : "iphone", | |
20 | + "scale" : "3x", | |
21 | + "size" : "29x29" | |
22 | + }, | |
23 | + { | |
24 | + "idiom" : "iphone", | |
25 | + "scale" : "2x", | |
26 | + "size" : "40x40" | |
27 | + }, | |
28 | + { | |
29 | + "idiom" : "iphone", | |
30 | + "scale" : "3x", | |
31 | + "size" : "40x40" | |
32 | + }, | |
33 | + { | |
34 | + "idiom" : "iphone", | |
35 | + "scale" : "2x", | |
36 | + "size" : "60x60" | |
37 | + }, | |
38 | + { | |
39 | + "idiom" : "iphone", | |
40 | + "scale" : "3x", | |
41 | + "size" : "60x60" | |
42 | + }, | |
43 | + { | |
44 | + "idiom" : "ios-marketing", | |
45 | + "scale" : "1x", | |
46 | + "size" : "1024x1024" | |
47 | + } | |
48 | + ], | |
49 | + "info" : { | |
50 | + "author" : "xcode", | |
51 | + "version" : 1 | |
52 | + } | |
53 | +} |
+++ kogas_app/ios/kogas_app/Images.xcassets/Contents.json
... | ... | @@ -0,0 +1,6 @@ |
1 | +{ | |
2 | + "info" : { | |
3 | + "version" : 1, | |
4 | + "author" : "xcode" | |
5 | + } | |
6 | +} |
+++ kogas_app/ios/kogas_app/Info.plist
... | ... | @@ -0,0 +1,55 @@ |
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | |
3 | +<plist version="1.0"> | |
4 | +<dict> | |
5 | + <key>CFBundleDevelopmentRegion</key> | |
6 | + <string>en</string> | |
7 | + <key>CFBundleDisplayName</key> | |
8 | + <string>kogas_app</string> | |
9 | + <key>CFBundleExecutable</key> | |
10 | + <string>$(EXECUTABLE_NAME)</string> | |
11 | + <key>CFBundleIdentifier</key> | |
12 | + <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> | |
13 | + <key>CFBundleInfoDictionaryVersion</key> | |
14 | + <string>6.0</string> | |
15 | + <key>CFBundleName</key> | |
16 | + <string>$(PRODUCT_NAME)</string> | |
17 | + <key>CFBundlePackageType</key> | |
18 | + <string>APPL</string> | |
19 | + <key>CFBundleShortVersionString</key> | |
20 | + <string>$(MARKETING_VERSION)</string> | |
21 | + <key>CFBundleSignature</key> | |
22 | + <string>????</string> | |
23 | + <key>CFBundleVersion</key> | |
24 | + <string>$(CURRENT_PROJECT_VERSION)</string> | |
25 | + <key>LSRequiresIPhoneOS</key> | |
26 | + <true/> | |
27 | + <key>NSAppTransportSecurity</key> | |
28 | + <dict> | |
29 | + <key>NSExceptionDomains</key> | |
30 | + <dict> | |
31 | + <key>localhost</key> | |
32 | + <dict> | |
33 | + <key>NSExceptionAllowsInsecureHTTPLoads</key> | |
34 | + <true/> | |
35 | + </dict> | |
36 | + </dict> | |
37 | + </dict> | |
38 | + <key>NSLocationWhenInUseUsageDescription</key> | |
39 | + <string></string> | |
40 | + <key>UILaunchStoryboardName</key> | |
41 | + <string>LaunchScreen</string> | |
42 | + <key>UIRequiredDeviceCapabilities</key> | |
43 | + <array> | |
44 | + <string>armv7</string> | |
45 | + </array> | |
46 | + <key>UISupportedInterfaceOrientations</key> | |
47 | + <array> | |
48 | + <string>UIInterfaceOrientationPortrait</string> | |
49 | + <string>UIInterfaceOrientationLandscapeLeft</string> | |
50 | + <string>UIInterfaceOrientationLandscapeRight</string> | |
51 | + </array> | |
52 | + <key>UIViewControllerBasedStatusBarAppearance</key> | |
53 | + <false/> | |
54 | +</dict> | |
55 | +</plist> |
+++ kogas_app/ios/kogas_app/LaunchScreen.storyboard
... | ... | @@ -0,0 +1,47 @@ |
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="15702" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM"> | |
3 | + <device id="retina4_7" orientation="portrait" appearance="light"/> | |
4 | + <dependencies> | |
5 | + <deployment identifier="iOS"/> | |
6 | + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15704"/> | |
7 | + <capability name="Safe area layout guides" minToolsVersion="9.0"/> | |
8 | + <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> | |
9 | + </dependencies> | |
10 | + <scenes> | |
11 | + <!--View Controller--> | |
12 | + <scene sceneID="EHf-IW-A2E"> | |
13 | + <objects> | |
14 | + <viewController id="01J-lp-oVM" sceneMemberID="viewController"> | |
15 | + <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3"> | |
16 | + <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> | |
17 | + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | |
18 | + <subviews> | |
19 | + <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="kogas_app" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="GJd-Yh-RWb"> | |
20 | + <rect key="frame" x="0.0" y="202" width="375" height="43"/> | |
21 | + <fontDescription key="fontDescription" type="boldSystem" pointSize="36"/> | |
22 | + <nil key="highlightedColor"/> | |
23 | + </label> | |
24 | + <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Powered by React Native" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="9" translatesAutoresizingMaskIntoConstraints="NO" id="MN2-I3-ftu"> | |
25 | + <rect key="frame" x="0.0" y="626" width="375" height="21"/> | |
26 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | |
27 | + <nil key="highlightedColor"/> | |
28 | + </label> | |
29 | + </subviews> | |
30 | + <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/> | |
31 | + <constraints> | |
32 | + <constraint firstItem="Bcu-3y-fUS" firstAttribute="bottom" secondItem="MN2-I3-ftu" secondAttribute="bottom" constant="20" id="OZV-Vh-mqD"/> | |
33 | + <constraint firstItem="Bcu-3y-fUS" firstAttribute="centerX" secondItem="GJd-Yh-RWb" secondAttribute="centerX" id="Q3B-4B-g5h"/> | |
34 | + <constraint firstItem="MN2-I3-ftu" firstAttribute="centerX" secondItem="Bcu-3y-fUS" secondAttribute="centerX" id="akx-eg-2ui"/> | |
35 | + <constraint firstItem="MN2-I3-ftu" firstAttribute="leading" secondItem="Bcu-3y-fUS" secondAttribute="leading" id="i1E-0Y-4RG"/> | |
36 | + <constraint firstItem="GJd-Yh-RWb" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="bottom" multiplier="1/3" constant="1" id="moa-c2-u7t"/> | |
37 | + <constraint firstItem="GJd-Yh-RWb" firstAttribute="leading" secondItem="Bcu-3y-fUS" secondAttribute="leading" symbolic="YES" id="x7j-FC-K8j"/> | |
38 | + </constraints> | |
39 | + <viewLayoutGuide key="safeArea" id="Bcu-3y-fUS"/> | |
40 | + </view> | |
41 | + </viewController> | |
42 | + <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/> | |
43 | + </objects> | |
44 | + <point key="canvasLocation" x="52.173913043478265" y="375"/> | |
45 | + </scene> | |
46 | + </scenes> | |
47 | +</document> |
+++ kogas_app/ios/kogas_app/main.m
... | ... | @@ -0,0 +1,10 @@ |
1 | +#import <UIKit/UIKit.h> | |
2 | + | |
3 | +#import "AppDelegate.h" | |
4 | + | |
5 | +int main(int argc, char *argv[]) | |
6 | +{ | |
7 | + @autoreleasepool { | |
8 | + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); | |
9 | + } | |
10 | +} |
+++ kogas_app/ios/kogas_appTests/Info.plist
... | ... | @@ -0,0 +1,24 @@ |
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | |
3 | +<plist version="1.0"> | |
4 | +<dict> | |
5 | + <key>CFBundleDevelopmentRegion</key> | |
6 | + <string>en</string> | |
7 | + <key>CFBundleExecutable</key> | |
8 | + <string>$(EXECUTABLE_NAME)</string> | |
9 | + <key>CFBundleIdentifier</key> | |
10 | + <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> | |
11 | + <key>CFBundleInfoDictionaryVersion</key> | |
12 | + <string>6.0</string> | |
13 | + <key>CFBundleName</key> | |
14 | + <string>$(PRODUCT_NAME)</string> | |
15 | + <key>CFBundlePackageType</key> | |
16 | + <string>BNDL</string> | |
17 | + <key>CFBundleShortVersionString</key> | |
18 | + <string>1.0</string> | |
19 | + <key>CFBundleSignature</key> | |
20 | + <string>????</string> | |
21 | + <key>CFBundleVersion</key> | |
22 | + <string>1</string> | |
23 | +</dict> | |
24 | +</plist> |
+++ kogas_app/ios/kogas_appTests/kogas_appTests.m
... | ... | @@ -0,0 +1,66 @@ |
1 | +#import <UIKit/UIKit.h> | |
2 | +#import <XCTest/XCTest.h> | |
3 | + | |
4 | +#import <React/RCTLog.h> | |
5 | +#import <React/RCTRootView.h> | |
6 | + | |
7 | +#define TIMEOUT_SECONDS 600 | |
8 | +#define TEXT_TO_LOOK_FOR @"Welcome to React" | |
9 | + | |
10 | +@interface kogas_appTests : XCTestCase | |
11 | + | |
12 | +@end | |
13 | + | |
14 | +@implementation kogas_appTests | |
15 | + | |
16 | +- (BOOL)findSubviewInView:(UIView *)view matching:(BOOL (^)(UIView *view))test | |
17 | +{ | |
18 | + if (test(view)) { | |
19 | + return YES; | |
20 | + } | |
21 | + for (UIView *subview in [view subviews]) { | |
22 | + if ([self findSubviewInView:subview matching:test]) { | |
23 | + return YES; | |
24 | + } | |
25 | + } | |
26 | + return NO; | |
27 | +} | |
28 | + | |
29 | +- (void)testRendersWelcomeScreen | |
30 | +{ | |
31 | + UIViewController *vc = [[[RCTSharedApplication() delegate] window] rootViewController]; | |
32 | + NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS]; | |
33 | + BOOL foundElement = NO; | |
34 | + | |
35 | + __block NSString *redboxError = nil; | |
36 | +#ifdef DEBUG | |
37 | + RCTSetLogFunction( | |
38 | + ^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) { | |
39 | + if (level >= RCTLogLevelError) { | |
40 | + redboxError = message; | |
41 | + } | |
42 | + }); | |
43 | +#endif | |
44 | + | |
45 | + while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) { | |
46 | + [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; | |
47 | + [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; | |
48 | + | |
49 | + foundElement = [self findSubviewInView:vc.view | |
50 | + matching:^BOOL(UIView *view) { | |
51 | + if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) { | |
52 | + return YES; | |
53 | + } | |
54 | + return NO; | |
55 | + }]; | |
56 | + } | |
57 | + | |
58 | +#ifdef DEBUG | |
59 | + RCTSetLogFunction(RCTDefaultLogFunction); | |
60 | +#endif | |
61 | + | |
62 | + XCTAssertNil(redboxError, @"RedBox error: %@", redboxError); | |
63 | + XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS); | |
64 | +} | |
65 | + | |
66 | +@end |
+++ kogas_app/jest.config.js
... | ... | @@ -0,0 +1,3 @@ |
1 | +module.exports = { | |
2 | + preset: 'react-native', | |
3 | +}; |
+++ kogas_app/metro.config.js
... | ... | @@ -0,0 +1,11 @@ |
1 | +const {getDefaultConfig, mergeConfig} = require('@react-native/metro-config'); | |
2 | + | |
3 | +/** | |
4 | + * Metro configuration | |
5 | + * https://facebook.github.io/metro/docs/configuration | |
6 | + * | |
7 | + * @type {import('metro-config').MetroConfig} | |
8 | + */ | |
9 | +const config = {}; | |
10 | + | |
11 | +module.exports = mergeConfig(getDefaultConfig(__dirname), config); |
+++ kogas_app/package-lock.json
This file is too big to display. |
+++ kogas_app/package.json
This diff is skipped because there are too many other diffs. |
+++ kogas_app/src/App.js
This diff is skipped because there are too many other diffs. |
+++ kogas_app/src/color.js
This diff is skipped because there are too many other diffs. |
+++ kogas_app/src/components/Button.js
This diff is skipped because there are too many other diffs. |
+++ kogas_app/src/components/DetailListItem.js
This diff is skipped because there are too many other diffs. |
+++ kogas_app/src/components/EmptyList.js
This diff is skipped because there are too many other diffs. |
+++ kogas_app/src/components/ListItem.js
This diff is skipped because there are too many other diffs. |
+++ kogas_app/src/components/TextInput.js
This diff is skipped because there are too many other diffs. |
+++ kogas_app/src/contexts/UserContext.js
This diff is skipped because there are too many other diffs. |
+++ kogas_app/src/screens/HomeScreen.js
This diff is skipped because there are too many other diffs. |
+++ kogas_app/src/screens/ListDetailScreen.js
This diff is skipped because there are too many other diffs. |
+++ kogas_app/src/screens/SettingsScreen.js
This diff is skipped because there are too many other diffs. |
+++ kogas_app/src/screens/SignInScreen.js
This diff is skipped because there are too many other diffs. |
+++ kogas_app/src/screens/SignatureListScreen.js
This diff is skipped because there are too many other diffs. |
+++ kogas_app/src/screens/SignatureScreen.js
This diff is skipped because there are too many other diffs. |
+++ kogas_app/tsconfig.json
This diff is skipped because there are too many other diffs. |
+++ kogas_app/yarn.lock
This diff is skipped because there are too many other diffs. |
+++ package-lock.json
This diff is skipped because there are too many other diffs. |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?