@@ -1,2 +1,2 @@ | |||
BUNDLE_PATH: "vendor/bundle" | |||
BUNDLE_FORCE_RUBY_PLATFORM: 1 | |||
BUNDLE_FORCE_RUBY_PLATFORM: 1 |
@@ -1,4 +1,16 @@ | |||
module.exports = { | |||
root: true, | |||
extends: '@react-native-community', | |||
parser: '@typescript-eslint/parser', | |||
plugins: ['@typescript-eslint'], | |||
overrides: [ | |||
{ | |||
files: ['*.ts', '*.tsx'], | |||
rules: { | |||
'@typescript-eslint/no-shadow': ['error'], | |||
'no-shadow': 'off', | |||
'no-undef': 'off', | |||
}, | |||
}, | |||
], | |||
}; |
@@ -1,65 +0,0 @@ | |||
[ignore] | |||
; We fork some components by platform | |||
.*/*[.]android.js | |||
; Ignore "BUCK" generated dirs | |||
<PROJECT_ROOT>/\.buckd/ | |||
; Ignore polyfills | |||
node_modules/react-native/Libraries/polyfills/.* | |||
; Flow doesn't support platforms | |||
.*/Libraries/Utilities/LoadingView.js | |||
[untyped] | |||
.*/node_modules/@react-native-community/cli/.*/.* | |||
[include] | |||
[libs] | |||
node_modules/react-native/interface.js | |||
node_modules/react-native/flow/ | |||
[options] | |||
emoji=true | |||
exact_by_default=true | |||
format.bracket_spacing=false | |||
module.file_ext=.js | |||
module.file_ext=.json | |||
module.file_ext=.ios.js | |||
munge_underscores=true | |||
module.name_mapper='^react-native/\(.*\)$' -> '<PROJECT_ROOT>/node_modules/react-native/\1' | |||
module.name_mapper='^@?[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> '<PROJECT_ROOT>/node_modules/react-native/Libraries/Image/RelativeImageStub' | |||
suppress_type=$FlowIssue | |||
suppress_type=$FlowFixMe | |||
suppress_type=$FlowFixMeProps | |||
suppress_type=$FlowFixMeState | |||
[lints] | |||
sketchy-null-number=warn | |||
sketchy-null-mixed=warn | |||
sketchy-number=warn | |||
untyped-type-import=warn | |||
nonstrict-import=warn | |||
deprecated-type=warn | |||
unsafe-getters-setters=warn | |||
unnecessary-invariant=warn | |||
signature-verification-failure=warn | |||
[strict] | |||
deprecated-type | |||
nonstrict-import | |||
sketchy-null | |||
unclear-type | |||
unsafe-getters-setters | |||
untyped-import | |||
untyped-type-import | |||
[version] | |||
^0.170.0 |
@@ -20,6 +20,7 @@ DerivedData | |||
*.hmap | |||
*.ipa | |||
*.xcuserstate | |||
ios/.xcode.env.local | |||
# Android/IntelliJ | |||
# | |||
@@ -29,6 +30,7 @@ build/ | |||
local.properties | |||
*.iml | |||
*.hprof | |||
.cxx/ | |||
# node.js | |||
# | |||
@@ -49,9 +51,10 @@ buck-out/ | |||
# For more information about the recommended setup visit: | |||
# https://docs.fastlane.tools/best-practices/source-control/ | |||
*/fastlane/report.xml | |||
*/fastlane/Preview.html | |||
*/fastlane/screenshots | |||
**/fastlane/report.xml | |||
**/fastlane/Preview.html | |||
**/fastlane/screenshots | |||
**/fastlane/test_output | |||
# Bundle artifact | |||
*.jsbundle | |||
@@ -0,0 +1 @@ | |||
16 |
@@ -0,0 +1,7 @@ | |||
module.exports = { | |||
arrowParens: 'avoid', | |||
bracketSameLine: true, | |||
bracketSpacing: false, | |||
singleQuote: true, | |||
trailingComma: 'all', | |||
}; |
@@ -1 +1 @@ | |||
2.7.4 | |||
2.7.5 |
@@ -1 +1 @@ | |||
{} | |||
{} |
@@ -1,4 +1,6 @@ | |||
source 'https://rubygems.org' | |||
# You may use http://rbenv.org/ or https://rvm.io/ to install and use this version | |||
ruby '2.7.4' | |||
gem 'cocoapods', '~> 1.11', '>= 1.11.2' | |||
ruby '2.7.5' | |||
gem 'cocoapods', '~> 1.11', '>= 1.11.2' |
@@ -0,0 +1,14 @@ | |||
/** | |||
* @format | |||
*/ | |||
import 'react-native'; | |||
import React from 'react'; | |||
import App from '../App'; | |||
// Note: test renderer must be required after react-native. | |||
import renderer from 'react-test-renderer'; | |||
it('renders correctly', () => { | |||
renderer.create(<App />); | |||
}); |
@@ -1,6 +1,7 @@ | |||
apply plugin: "com.android.application" | |||
import com.android.build.OutputFile | |||
import org.apache.tools.ant.taskdefs.condition.Os | |||
/** | |||
* The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets | |||
@@ -123,16 +124,19 @@ def jscFlavor = 'org.webkit:android-jsc:+' | |||
/** | |||
* Whether to enable the Hermes VM. | |||
* | |||
* This should be set on project.ext.react and mirrored here. If it is not set | |||
* This should be set on project.ext.react and that value will be read here. If it is not set | |||
* on project.ext.react, JavaScript will not be compiled to Hermes Bytecode | |||
* and the benefits of using Hermes will therefore be sharply reduced. | |||
*/ | |||
def enableHermes = project.ext.react.get("enableHermes", false); | |||
/** | |||
* Architectures to build native code for in debug. | |||
* Architectures to build native code for. | |||
*/ | |||
def nativeArchitectures = project.getProperties().get("reactNativeDebugArchitectures") | |||
def reactNativeArchitectures() { | |||
def value = project.getProperties().get("reactNativeArchitectures") | |||
return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"] | |||
} | |||
android { | |||
ndkVersion rootProject.ext.ndkVersion | |||
@@ -143,9 +147,77 @@ android { | |||
applicationId "com.lesspass.android" | |||
minSdkVersion rootProject.ext.minSdkVersion | |||
targetSdkVersion rootProject.ext.targetSdkVersion | |||
versionCode versionMajor * 10000 + versionMinor * 100 + versionPatch | |||
versionName "${versionMajor}.${versionMinor}.${versionPatch}" | |||
multiDexEnabled true | |||
versionCode 9007001 | |||
versionName "9.7.1" | |||
buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString() | |||
if (isNewArchitectureEnabled()) { | |||
// We configure the CMake build only if you decide to opt-in for the New Architecture. | |||
externalNativeBuild { | |||
cmake { | |||
arguments "-DPROJECT_BUILD_DIR=$buildDir", | |||
"-DREACT_ANDROID_DIR=$rootDir/../node_modules/react-native/ReactAndroid", | |||
"-DREACT_ANDROID_BUILD_DIR=$rootDir/../node_modules/react-native/ReactAndroid/build", | |||
"-DNODE_MODULES_DIR=$rootDir/../node_modules", | |||
"-DANDROID_STL=c++_shared" | |||
} | |||
} | |||
if (!enableSeparateBuildPerCPUArchitecture) { | |||
ndk { | |||
abiFilters (*reactNativeArchitectures()) | |||
} | |||
} | |||
} | |||
} | |||
if (isNewArchitectureEnabled()) { | |||
// We configure the NDK build only if you decide to opt-in for the New Architecture. | |||
externalNativeBuild { | |||
cmake { | |||
path "$projectDir/src/main/jni/CMakeLists.txt" | |||
} | |||
} | |||
def reactAndroidProjectDir = project(':ReactAndroid').projectDir | |||
def packageReactNdkDebugLibs = tasks.register("packageReactNdkDebugLibs", Copy) { | |||
dependsOn(":ReactAndroid:packageReactNdkDebugLibsForBuck") | |||
from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib") | |||
into("$buildDir/react-ndk/exported") | |||
} | |||
def packageReactNdkReleaseLibs = tasks.register("packageReactNdkReleaseLibs", Copy) { | |||
dependsOn(":ReactAndroid:packageReactNdkReleaseLibsForBuck") | |||
from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib") | |||
into("$buildDir/react-ndk/exported") | |||
} | |||
afterEvaluate { | |||
// If you wish to add a custom TurboModule or component locally, | |||
// you should uncomment this line. | |||
// preBuild.dependsOn("generateCodegenArtifactsFromSchema") | |||
preDebugBuild.dependsOn(packageReactNdkDebugLibs) | |||
preReleaseBuild.dependsOn(packageReactNdkReleaseLibs) | |||
// Due to a bug inside AGP, we have to explicitly set a dependency | |||
// between configureCMakeDebug* tasks and the preBuild tasks. | |||
// This can be removed once this is solved: https://issuetracker.google.com/issues/207403732 | |||
configureCMakeRelWithDebInfo.dependsOn(preReleaseBuild) | |||
configureCMakeDebug.dependsOn(preDebugBuild) | |||
reactNativeArchitectures().each { architecture -> | |||
tasks.findByName("configureCMakeDebug[${architecture}]")?.configure { | |||
dependsOn("preDebugBuild") | |||
} | |||
tasks.findByName("configureCMakeRelWithDebInfo[${architecture}]")?.configure { | |||
dependsOn("preReleaseBuild") | |||
} | |||
} | |||
} | |||
} | |||
splits { | |||
abi { | |||
reset() | |||
enable enableSeparateBuildPerCPUArchitecture | |||
universalApk false // If true, also generate a universal APK | |||
include (*reactNativeArchitectures()) | |||
} | |||
} | |||
signingConfigs { | |||
debug { | |||
@@ -163,23 +235,9 @@ android { | |||
} | |||
} | |||
} | |||
splits { | |||
abi { | |||
reset() | |||
enable enableSeparateBuildPerCPUArchitecture | |||
universalApk false // If true, also generate a universal APK | |||
include "armeabi-v7a", "x86", "arm64-v8a", "x86_64" | |||
} | |||
} | |||
buildTypes { | |||
debug { | |||
signingConfig signingConfigs.debug | |||
if (nativeArchitectures) { | |||
ndk { | |||
abiFilters nativeArchitectures.split(',') | |||
} | |||
} | |||
manifestPlaceholders = [excludeSystemAlertWindowPermission: "false"] | |||
} | |||
release { | |||
minifyEnabled enableProguardInReleaseBuilds | |||
@@ -194,11 +252,12 @@ android { | |||
variant.outputs.each { output -> | |||
// For each separate APK per architecture, set a unique version code as described here: | |||
// https://developer.android.com/studio/build/configure-apk-splits.html | |||
// Example: versionCode 1 will generate 1001 for armeabi-v7a, 1002 for x86, etc. | |||
def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4] | |||
def abi = output.getFilter(OutputFile.ABI) | |||
if (abi != null) { // null for the universal-debug, universal-release variants | |||
output.versionCodeOverride = | |||
versionCodes.get(abi) * 10000000 + defaultConfig.versionCode | |||
defaultConfig.versionCode * 1000 + versionCodes.get(abi) | |||
} | |||
} | |||
@@ -207,6 +266,7 @@ android { | |||
dependencies { | |||
implementation fileTree(dir: "libs", include: ["*.jar"]) | |||
//noinspection GradleDynamicVersion | |||
implementation "com.facebook.react:react-native:+" // From node_modules | |||
@@ -226,21 +286,30 @@ dependencies { | |||
} | |||
implementation "com.madgag.spongycastle:core:1.58.0.0" | |||
if (enableHermes) { | |||
def hermesPath = "../../node_modules/hermes-engine/android/"; | |||
debugImplementation files(hermesPath + "hermes-debug.aar") | |||
releaseImplementation files(hermesPath + "hermes-release.aar") | |||
//noinspection GradleDynamicVersion | |||
implementation("com.facebook.react:hermes-engine:+") { // From node_modules | |||
exclude group:'com.facebook.fbjni' | |||
} | |||
} else { | |||
implementation jscFlavor | |||
} | |||
testImplementation "junit:junit:4.12" | |||
implementation "com.android.support:multidex:1.0.3" | |||
} | |||
sourceSets { | |||
test { | |||
java { | |||
srcDirs = ["test"] | |||
if (isNewArchitectureEnabled()) { | |||
// If new architecture is enabled, we let you build RN from source | |||
// Otherwise we fallback to a prebuilt .aar bundled in the NPM package. | |||
// This will be applied to all the imported transtitive dependency. | |||
configurations.all { | |||
resolutionStrategy.dependencySubstitution { | |||
substitute(module("com.facebook.react:react-native")) | |||
.using(project(":ReactAndroid")) | |||
.because("On New Architecture we're building React Native from source") | |||
substitute(module("com.facebook.react:hermes-engine")) | |||
.using(project(":ReactAndroid:hermes-engine")) | |||
.because("On New Architecture we're building Hermes from source") | |||
} | |||
} | |||
} | |||
@@ -253,3 +322,11 @@ task copyDownloadableDepsToLibs(type: Copy) { | |||
} | |||
apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project) | |||
def isNewArchitectureEnabled() { | |||
// To opt-in for the New Architecture, you can either: | |||
// - Set `newArchEnabled` to true inside the `gradle.properties` file | |||
// - Invoke gradle with `-newArchEnabled=true` | |||
// - Set an environment variable `ORG_GRADLE_PROJECT_newArchEnabled=true` | |||
return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true" | |||
} |
@@ -0,0 +1,46 @@ | |||
package com.lesspass.android; | |||
import android.content.ClipDescription; | |||
import android.content.ClipboardManager; | |||
import android.content.ClipData; | |||
import android.os.PersistableBundle; | |||
import android.content.Context; | |||
import com.facebook.react.bridge.NativeModule; | |||
import com.facebook.react.bridge.ReactApplicationContext; | |||
import com.facebook.react.bridge.ReactContext; | |||
import com.facebook.react.bridge.ReactContextBaseJavaModule; | |||
import com.facebook.react.bridge.ReactMethod; | |||
public class LessPassClipboardModule extends ReactContextBaseJavaModule { | |||
private ReactApplicationContext reactContext; | |||
public LessPassClipboardModule(ReactApplicationContext reactContext) { | |||
super(reactContext); | |||
this.reactContext = reactContext; | |||
} | |||
@Override | |||
public String getName() { | |||
return "LessPassClipboard"; | |||
} | |||
private ClipboardManager getClipboardService() { | |||
return (ClipboardManager) reactContext.getSystemService(Context.CLIPBOARD_SERVICE); | |||
} | |||
@ReactMethod | |||
public void copy(String text) { | |||
try { | |||
ClipData clipdata = ClipData.newPlainText(null, text); | |||
PersistableBundle extras = new PersistableBundle(); | |||
extras.putBoolean("android.content.extra.IS_SENSITIVE", true); | |||
clipdata.getDescription().setExtras(extras); | |||
ClipboardManager clipboard = getClipboardService(); | |||
clipboard.setPrimaryClip(clipdata); | |||
} catch (Exception e) { | |||
e.printStackTrace(); | |||
} | |||
} | |||
} |
@@ -9,7 +9,7 @@ import java.util.ArrayList; | |||
import java.util.Collections; | |||
import java.util.List; | |||
public class LessPassReactPackage implements ReactPackage { | |||
public class LessPassPackage implements ReactPackage { | |||
@Override | |||
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) { | |||
return Collections.emptyList(); | |||
@@ -19,6 +19,7 @@ public class LessPassReactPackage implements ReactPackage { | |||
public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) { | |||
List<NativeModule> modules = new ArrayList<>(); | |||
modules.add(new LessPassModule(reactContext)); | |||
modules.add(new LessPassClipboardModule(reactContext)); | |||
return modules; | |||
} | |||
} |
@@ -1,11 +1,17 @@ | |||
package com.lesspass.android; | |||
import android.os.Bundle; | |||
import com.facebook.react.ReactActivity; | |||
import com.facebook.react.ReactActivityDelegate; | |||
import com.facebook.react.ReactRootView; | |||
public class MainActivity extends ReactActivity { | |||
/** | |||
* Returns the name of the main component registered from JavaScript. This is used to schedule | |||
* rendering of the component. | |||
*/ | |||
@Override | |||
protected String getMainComponentName() { | |||
return "LessPass"; | |||
@@ -13,16 +19,19 @@ public class MainActivity extends ReactActivity { | |||
/** | |||
* Returns the instance of the {@link ReactActivityDelegate}. There the RootView is created and | |||
* you can specify the rendered you wish to use (Fabric or the older renderer). | |||
* you can specify the renderer you wish to use - the new renderer (Fabric) or the old renderer | |||
* (Paper). | |||
*/ | |||
@Override | |||
protected ReactActivityDelegate createReactActivityDelegate() { | |||
return new MainActivityDelegate(this, getMainComponentName()); | |||
} | |||
public static class MainActivityDelegate extends ReactActivityDelegate { | |||
public MainActivityDelegate(ReactActivity activity, String mainComponentName) { | |||
super(activity, mainComponentName); | |||
} | |||
@Override | |||
protected ReactRootView createRootView() { | |||
ReactRootView reactRootView = new ReactRootView(getContext()); | |||
@@ -30,5 +39,17 @@ public class MainActivity extends ReactActivity { | |||
reactRootView.setIsFabric(BuildConfig.IS_NEW_ARCHITECTURE_ENABLED); | |||
return reactRootView; | |||
} | |||
@Override | |||
protected boolean isConcurrentRootEnabled() { | |||
// If you opted-in for the New Architecture, we enable Concurrent Root (i.e. React 18). | |||
// More on this on https://reactjs.org/blog/2022/03/29/react-v18.html | |||
return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED; | |||
} | |||
} | |||
@Override | |||
protected void onCreate(Bundle savedInstanceState) { | |||
super.onCreate(null); | |||
} | |||
} |
@@ -2,7 +2,6 @@ package com.lesspass.android; | |||
import android.app.Application; | |||
import android.content.Context; | |||
import com.facebook.react.bridge.JSIModulePackage; | |||
import com.facebook.react.PackageList; | |||
import com.facebook.react.ReactApplication; | |||
import com.facebook.react.ReactInstanceManager; | |||
@@ -10,7 +9,7 @@ import com.facebook.react.ReactNativeHost; | |||
import com.facebook.react.ReactPackage; | |||
import com.facebook.react.config.ReactFeatureFlags; | |||
import com.facebook.soloader.SoLoader; | |||
import com.lesspass.newarchitecture.MainApplicationReactNativeHost; | |||
import com.lesspass.android.newarchitecture.MainApplicationReactNativeHost; | |||
import java.lang.reflect.InvocationTargetException; | |||
import java.util.List; | |||
@@ -27,7 +26,9 @@ public class MainApplication extends Application implements ReactApplication { | |||
protected List<ReactPackage> getPackages() { | |||
@SuppressWarnings("UnnecessaryLocalVariable") | |||
List<ReactPackage> packages = new PackageList(this).getPackages(); | |||
packages.add(new LessPassReactPackage()); | |||
// Packages that cannot be autolinked yet can be added manually here, for example: | |||
// packages.add(new MyReactNativePackage()); | |||
packages.add(new LessPassPackage()); | |||
return packages; | |||
} | |||
@@ -59,21 +60,21 @@ public class MainApplication extends Application implements ReactApplication { | |||
} | |||
/** | |||
* Loads Flipper in React Native templates. Call this in the onCreate method with something like | |||
* initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); | |||
* | |||
* @param context | |||
* @param reactInstanceManager | |||
*/ | |||
* Loads Flipper in React Native templates. Call this in the onCreate method with something like | |||
* initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); | |||
* | |||
* @param context | |||
* @param reactInstanceManager | |||
*/ | |||
private static void initializeFlipper( | |||
Context context, ReactInstanceManager reactInstanceManager) { | |||
if (BuildConfig.DEBUG) { | |||
try { | |||
/* | |||
We use reflection here to pick up the class that initializes Flipper, | |||
We use reflection here to pick up the class that initializes Flipper, | |||
since Flipper library is not available in release mode | |||
*/ | |||
Class<?> aClass = Class.forName("com.lesspass.android.ReactNativeFlipper"); | |||
Class<?> aClass = Class.forName("com.lesspass.ReactNativeFlipper"); | |||
aClass | |||
.getMethod("initializeFlipper", Context.class, ReactInstanceManager.class) | |||
.invoke(null, context, reactInstanceManager); | |||
@@ -0,0 +1,116 @@ | |||
package com.lesspass.android.newarchitecture; | |||
import android.app.Application; | |||
import androidx.annotation.NonNull; | |||
import com.facebook.react.PackageList; | |||
import com.facebook.react.ReactInstanceManager; | |||
import com.facebook.react.ReactNativeHost; | |||
import com.facebook.react.ReactPackage; | |||
import com.facebook.react.ReactPackageTurboModuleManagerDelegate; | |||
import com.facebook.react.bridge.JSIModulePackage; | |||
import com.facebook.react.bridge.JSIModuleProvider; | |||
import com.facebook.react.bridge.JSIModuleSpec; | |||
import com.facebook.react.bridge.JSIModuleType; | |||
import com.facebook.react.bridge.JavaScriptContextHolder; | |||
import com.facebook.react.bridge.ReactApplicationContext; | |||
import com.facebook.react.bridge.UIManager; | |||
import com.facebook.react.fabric.ComponentFactory; | |||
import com.facebook.react.fabric.CoreComponentsRegistry; | |||
import com.facebook.react.fabric.FabricJSIModuleProvider; | |||
import com.facebook.react.fabric.ReactNativeConfig; | |||
import com.facebook.react.uimanager.ViewManagerRegistry; | |||
import com.lesspass.android.BuildConfig; | |||
import com.lesspass.android.newarchitecture.components.MainComponentsRegistry; | |||
import com.lesspass.android.newarchitecture.modules.MainApplicationTurboModuleManagerDelegate; | |||
import java.util.ArrayList; | |||
import java.util.List; | |||
/** | |||
* A {@link ReactNativeHost} that helps you load everything needed for the New Architecture, both | |||
* TurboModule delegates and the Fabric Renderer. | |||
* | |||
* <p>Please note that this class is used ONLY if you opt-in for the New Architecture (see the | |||
* `newArchEnabled` property). Is ignored otherwise. | |||
*/ | |||
public class MainApplicationReactNativeHost extends ReactNativeHost { | |||
public MainApplicationReactNativeHost(Application application) { | |||
super(application); | |||
} | |||
@Override | |||
public boolean getUseDeveloperSupport() { | |||
return BuildConfig.DEBUG; | |||
} | |||
@Override | |||
protected List<ReactPackage> getPackages() { | |||
List<ReactPackage> packages = new PackageList(this).getPackages(); | |||
// Packages that cannot be autolinked yet can be added manually here, for example: | |||
// packages.add(new MyReactNativePackage()); | |||
// TurboModules must also be loaded here providing a valid TurboReactPackage implementation: | |||
// packages.add(new TurboReactPackage() { ... }); | |||
// If you have custom Fabric Components, their ViewManagers should also be loaded here | |||
// inside a ReactPackage. | |||
return packages; | |||
} | |||
@Override | |||
protected String getJSMainModuleName() { | |||
return "index"; | |||
} | |||
@NonNull | |||
@Override | |||
protected ReactPackageTurboModuleManagerDelegate.Builder | |||
getReactPackageTurboModuleManagerDelegateBuilder() { | |||
// Here we provide the ReactPackageTurboModuleManagerDelegate Builder. This is necessary | |||
// for the new architecture and to use TurboModules correctly. | |||
return new MainApplicationTurboModuleManagerDelegate.Builder(); | |||
} | |||
@Override | |||
protected JSIModulePackage getJSIModulePackage() { | |||
return new JSIModulePackage() { | |||
@Override | |||
public List<JSIModuleSpec> getJSIModules( | |||
final ReactApplicationContext reactApplicationContext, | |||
final JavaScriptContextHolder jsContext) { | |||
final List<JSIModuleSpec> specs = new ArrayList<>(); | |||
// Here we provide a new JSIModuleSpec that will be responsible of providing the | |||
// custom Fabric Components. | |||
specs.add( | |||
new JSIModuleSpec() { | |||
@Override | |||
public JSIModuleType getJSIModuleType() { | |||
return JSIModuleType.UIManager; | |||
} | |||
@Override | |||
public JSIModuleProvider<UIManager> getJSIModuleProvider() { | |||
final ComponentFactory componentFactory = new ComponentFactory(); | |||
CoreComponentsRegistry.register(componentFactory); | |||
// Here we register a Components Registry. | |||
// The one that is generated with the template contains no components | |||
// and just provides you the one from React Native core. | |||
MainComponentsRegistry.register(componentFactory); | |||
final ReactInstanceManager reactInstanceManager = getReactInstanceManager(); | |||
ViewManagerRegistry viewManagerRegistry = | |||
new ViewManagerRegistry( | |||
reactInstanceManager.getOrCreateViewManagers(reactApplicationContext)); | |||
return new FabricJSIModuleProvider( | |||
reactApplicationContext, | |||
componentFactory, | |||
ReactNativeConfig.DEFAULT_CONFIG, | |||
viewManagerRegistry); | |||
} | |||
}); | |||
return specs; | |||
} | |||
}; | |||
} | |||
} |
@@ -0,0 +1,36 @@ | |||
package com.lesspass.android.newarchitecture.components; | |||
import com.facebook.jni.HybridData; | |||
import com.facebook.proguard.annotations.DoNotStrip; | |||
import com.facebook.react.fabric.ComponentFactory; | |||
import com.facebook.soloader.SoLoader; | |||
/** | |||
* Class responsible to load the custom Fabric Components. This class has native methods and needs a | |||
* corresponding C++ implementation/header file to work correctly (already placed inside the jni/ | |||
* folder for you). | |||
* | |||
* <p>Please note that this class is used ONLY if you opt-in for the New Architecture (see the | |||
* `newArchEnabled` property). Is ignored otherwise. | |||
*/ | |||
@DoNotStrip | |||
public class MainComponentsRegistry { | |||
static { | |||
SoLoader.loadLibrary("fabricjni"); | |||
} | |||
@DoNotStrip private final HybridData mHybridData; | |||
@DoNotStrip | |||
private native HybridData initHybrid(ComponentFactory componentFactory); | |||
@DoNotStrip | |||
private MainComponentsRegistry(ComponentFactory componentFactory) { | |||
mHybridData = initHybrid(componentFactory); | |||
} | |||
@DoNotStrip | |||
public static MainComponentsRegistry register(ComponentFactory componentFactory) { | |||
return new MainComponentsRegistry(componentFactory); | |||
} | |||
} |
@@ -0,0 +1,48 @@ | |||
package com.lesspass.android.newarchitecture.modules; | |||
import com.facebook.jni.HybridData; | |||
import com.facebook.react.ReactPackage; | |||
import com.facebook.react.ReactPackageTurboModuleManagerDelegate; | |||
import com.facebook.react.bridge.ReactApplicationContext; | |||
import com.facebook.soloader.SoLoader; | |||
import java.util.List; | |||
/** | |||
* Class responsible to load the TurboModules. This class has native methods and needs a | |||
* corresponding C++ implementation/header file to work correctly (already placed inside the jni/ | |||
* folder for you). | |||
* | |||
* <p>Please note that this class is used ONLY if you opt-in for the New Architecture (see the | |||
* `newArchEnabled` property). Is ignored otherwise. | |||
*/ | |||
public class MainApplicationTurboModuleManagerDelegate | |||
extends ReactPackageTurboModuleManagerDelegate { | |||
private static volatile boolean sIsSoLibraryLoaded; | |||
protected MainApplicationTurboModuleManagerDelegate( | |||
ReactApplicationContext reactApplicationContext, List<ReactPackage> packages) { | |||
super(reactApplicationContext, packages); | |||
} | |||
protected native HybridData initHybrid(); | |||
native boolean canCreateTurboModule(String moduleName); | |||
public static class Builder extends ReactPackageTurboModuleManagerDelegate.Builder { | |||
protected MainApplicationTurboModuleManagerDelegate build( | |||
ReactApplicationContext context, List<ReactPackage> packages) { | |||
return new MainApplicationTurboModuleManagerDelegate(context, packages); | |||
} | |||
} | |||
@Override | |||
protected synchronized void maybeLoadOtherSoLibraries() { | |||
if (!sIsSoLibraryLoaded) { | |||
// If you change the name of your application .so file in the Android.mk file, | |||
// make sure you update the name here as well. | |||
SoLoader.loadLibrary("lesspass_appmodules"); | |||
sIsSoLibraryLoaded = true; | |||
} | |||
} | |||
} |
@@ -0,0 +1,7 @@ | |||
cmake_minimum_required(VERSION 3.13) | |||
# Define the library name here. | |||
project(lesspass_appmodules) | |||
# This file includes all the necessary to let you build your application with the New Architecture. | |||
include(${REACT_ANDROID_DIR}/cmake-utils/ReactNative-application.cmake) |
@@ -0,0 +1,32 @@ | |||
#include "MainApplicationModuleProvider.h" | |||
#include <rncli.h> | |||
#include <rncore.h> | |||
namespace facebook { | |||
namespace react { | |||
std::shared_ptr<TurboModule> MainApplicationModuleProvider( | |||
const std::string &moduleName, | |||
const JavaTurboModule::InitParams ¶ms) { | |||
// Here you can provide your own module provider for TurboModules coming from | |||
// either your application or from external libraries. The approach to follow | |||
// is similar to the following (for a library called `samplelibrary`: | |||
// | |||
// auto module = samplelibrary_ModuleProvider(moduleName, params); | |||
// if (module != nullptr) { | |||
// return module; | |||
// } | |||
// return rncore_ModuleProvider(moduleName, params); | |||
// Module providers autolinked by RN CLI | |||
auto rncli_module = rncli_ModuleProvider(moduleName, params); | |||
if (rncli_module != nullptr) { | |||
return rncli_module; | |||
} | |||
return rncore_ModuleProvider(moduleName, params); | |||
} | |||
} // namespace react | |||
} // namespace facebook |
@@ -0,0 +1,16 @@ | |||
#pragma once | |||
#include <memory> | |||
#include <string> | |||
#include <ReactCommon/JavaTurboModule.h> | |||
namespace facebook { | |||
namespace react { | |||
std::shared_ptr<TurboModule> MainApplicationModuleProvider( | |||
const std::string &moduleName, | |||
const JavaTurboModule::InitParams ¶ms); | |||
} // namespace react | |||
} // namespace facebook |
@@ -0,0 +1,45 @@ | |||
#include "MainApplicationTurboModuleManagerDelegate.h" | |||
#include "MainApplicationModuleProvider.h" | |||
namespace facebook { | |||
namespace react { | |||
jni::local_ref<MainApplicationTurboModuleManagerDelegate::jhybriddata> | |||
MainApplicationTurboModuleManagerDelegate::initHybrid( | |||
jni::alias_ref<jhybridobject>) { | |||
return makeCxxInstance(); | |||
} | |||
void MainApplicationTurboModuleManagerDelegate::registerNatives() { | |||
registerHybrid({ | |||
makeNativeMethod( | |||
"initHybrid", MainApplicationTurboModuleManagerDelegate::initHybrid), | |||
makeNativeMethod( | |||
"canCreateTurboModule", | |||
MainApplicationTurboModuleManagerDelegate::canCreateTurboModule), | |||
}); | |||
} | |||
std::shared_ptr<TurboModule> | |||
MainApplicationTurboModuleManagerDelegate::getTurboModule( | |||
const std::string &name, | |||
const std::shared_ptr<CallInvoker> &jsInvoker) { | |||
// Not implemented yet: provide pure-C++ NativeModules here. | |||
return nullptr; | |||
} | |||
std::shared_ptr<TurboModule> | |||
MainApplicationTurboModuleManagerDelegate::getTurboModule( | |||
const std::string &name, | |||
const JavaTurboModule::InitParams ¶ms) { | |||
return MainApplicationModuleProvider(name, params); | |||
} | |||
bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule( | |||
const std::string &name) { | |||
return getTurboModule(name, nullptr) != nullptr || | |||
getTurboModule(name, {.moduleName = name}) != nullptr; | |||
} | |||
} // namespace react | |||
} // namespace facebook |
@@ -0,0 +1,38 @@ | |||
#include <memory> | |||
#include <string> | |||
#include <ReactCommon/TurboModuleManagerDelegate.h> | |||
#include <fbjni/fbjni.h> | |||
namespace facebook { | |||
namespace react { | |||
class MainApplicationTurboModuleManagerDelegate | |||
: public jni::HybridClass< | |||
MainApplicationTurboModuleManagerDelegate, | |||
TurboModuleManagerDelegate> { | |||
public: | |||
// Adapt it to the package you used for your Java class. | |||
static constexpr auto kJavaDescriptor = | |||
"Lcom/lesspass/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;"; | |||
static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject>); | |||
static void registerNatives(); | |||
std::shared_ptr<TurboModule> getTurboModule( | |||
const std::string &name, | |||
const std::shared_ptr<CallInvoker> &jsInvoker) override; | |||
std::shared_ptr<TurboModule> getTurboModule( | |||
const std::string &name, | |||
const JavaTurboModule::InitParams ¶ms) override; | |||
/** | |||
* Test-only method. Allows user to verify whether a TurboModule can be | |||
* created by instances of this class. | |||
*/ | |||
bool canCreateTurboModule(const std::string &name); | |||
}; | |||
} // namespace react | |||
} // namespace facebook |
@@ -0,0 +1,65 @@ | |||
#include "MainComponentsRegistry.h" | |||
#include <CoreComponentsRegistry.h> | |||
#include <fbjni/fbjni.h> | |||
#include <react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h> | |||
#include <react/renderer/components/rncore/ComponentDescriptors.h> | |||
#include <rncli.h> | |||
namespace facebook { | |||
namespace react { | |||
MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {} | |||
std::shared_ptr<ComponentDescriptorProviderRegistry const> | |||
MainComponentsRegistry::sharedProviderRegistry() { | |||
auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry(); | |||
// Autolinked providers registered by RN CLI | |||
rncli_registerProviders(providerRegistry); | |||
// Custom Fabric Components go here. You can register custom | |||
// components coming from your App or from 3rd party libraries here. | |||
// | |||
// providerRegistry->add(concreteComponentDescriptorProvider< | |||
// AocViewerComponentDescriptor>()); | |||
return providerRegistry; | |||
} | |||
jni::local_ref<MainComponentsRegistry::jhybriddata> | |||
MainComponentsRegistry::initHybrid( | |||
jni::alias_ref<jclass>, | |||
ComponentFactory *delegate) { | |||
auto instance = makeCxxInstance(delegate); | |||
auto buildRegistryFunction = | |||
[](EventDispatcher::Weak const &eventDispatcher, | |||
ContextContainer::Shared const &contextContainer) | |||
-> ComponentDescriptorRegistry::Shared { | |||
auto registry = MainComponentsRegistry::sharedProviderRegistry() | |||
->createComponentDescriptorRegistry( | |||
{eventDispatcher, contextContainer}); | |||
auto mutableRegistry = | |||
std::const_pointer_cast<ComponentDescriptorRegistry>(registry); | |||
mutableRegistry->setFallbackComponentDescriptor( | |||
std::make_shared<UnimplementedNativeViewComponentDescriptor>( | |||
ComponentDescriptorParameters{ | |||
eventDispatcher, contextContainer, nullptr})); | |||
return registry; | |||
}; | |||
delegate->buildRegistryFunction = buildRegistryFunction; | |||
return instance; | |||
} | |||
void MainComponentsRegistry::registerNatives() { | |||
registerHybrid({ | |||
makeNativeMethod("initHybrid", MainComponentsRegistry::initHybrid), | |||
}); | |||
} | |||
} // namespace react | |||
} // namespace facebook |
@@ -0,0 +1,32 @@ | |||
#pragma once | |||
#include <ComponentFactory.h> | |||
#include <fbjni/fbjni.h> | |||
#include <react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h> | |||
#include <react/renderer/componentregistry/ComponentDescriptorRegistry.h> | |||
namespace facebook { | |||
namespace react { | |||
class MainComponentsRegistry | |||
: public facebook::jni::HybridClass<MainComponentsRegistry> { | |||
public: | |||
// Adapt it to the package you used for your Java class. | |||
constexpr static auto kJavaDescriptor = | |||
"Lcom/lesspass/newarchitecture/components/MainComponentsRegistry;"; | |||
static void registerNatives(); | |||
MainComponentsRegistry(ComponentFactory *delegate); | |||
private: | |||
static std::shared_ptr<ComponentDescriptorProviderRegistry const> | |||
sharedProviderRegistry(); | |||
static jni::local_ref<jhybriddata> initHybrid( | |||
jni::alias_ref<jclass>, | |||
ComponentFactory *delegate); | |||
}; | |||
} // namespace react | |||
} // namespace facebook |
@@ -0,0 +1,11 @@ | |||
#include <fbjni/fbjni.h> | |||
#include "MainApplicationTurboModuleManagerDelegate.h" | |||
#include "MainComponentsRegistry.h" | |||
JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) { | |||
return facebook::jni::initialize(vm, [] { | |||
facebook::react::MainApplicationTurboModuleManagerDelegate:: | |||
registerNatives(); | |||
facebook::react::MainComponentsRegistry::registerNatives(); | |||
}); | |||
} |
@@ -1,9 +1,12 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<!-- Copyright (C) 2014 The Android Open Source Project | |||
Licensed under the Apache License, Version 2.0 (the "License"); | |||
you may not use this file except in compliance with the License. | |||
You may obtain a copy of the License at | |||
http://www.apache.org/licenses/LICENSE-2.0 | |||
Unless required by applicable law or agreed to in writing, software | |||
distributed under the License is distributed on an "AS IS" BASIS, | |||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
@@ -15,15 +18,19 @@ | |||
android:insetRight="@dimen/abc_edit_text_inset_horizontal_material" | |||
android:insetTop="@dimen/abc_edit_text_inset_top_material" | |||
android:insetBottom="@dimen/abc_edit_text_inset_bottom_material"> | |||
<selector> | |||
<!-- | |||
This file is a copy of abc_edit_text_material (https://bit.ly/3k8fX7I). | |||
The item below with state_pressed="false" and state_focused="false" causes a NullPointerException. | |||
NullPointerException:tempt to invoke virtual method 'android.graphics.drawable.Drawable android.graphics.drawable.Drawable$ConstantState.newDrawable(android.content.res.Resources)' | |||
<item android:state_pressed="false" android:state_focused="false" android:drawable="@drawable/abc_textfield_default_mtrl_alpha"/> | |||
For more info, see https://bit.ly/3CdLStv (react-native/pull/29452) and https://bit.ly/3nxOMoR. | |||
--> | |||
<item android:state_enabled="false" android:drawable="@drawable/abc_textfield_default_mtrl_alpha"/> | |||
<item android:drawable="@drawable/abc_textfield_activated_mtrl_alpha"/> | |||
</selector> | |||
</inset> | |||
</inset> |
@@ -1,16 +1,28 @@ | |||
// Top-level build file where you can add configuration options common to all sub-projects/modules. | |||
import groovy.json.JsonSlurper | |||
buildscript { | |||
ext { | |||
buildToolsVersion = "31.0.0" | |||
minSdkVersion = 21 | |||
compileSdkVersion = 31 | |||
targetSdkVersion = 31 | |||
if (System.properties['os.arch'] == "aarch64") { | |||
// For M1 Users we need to use the NDK 24 which added support for aarch64 | |||
ndkVersion = "24.0.8215888" | |||
} else { | |||
// Otherwise we default to the side-by-side NDK version from AGP. | |||
ndkVersion = "21.4.7075529" | |||
} | |||
} | |||
repositories { | |||
google() | |||
mavenCentral() | |||
} | |||
dependencies { | |||
classpath("com.android.tools.build:gradle:7.0.4") | |||
classpath("com.android.tools.build:gradle:7.2.1") | |||
classpath("com.facebook.react:react-native-gradle-plugin") | |||
classpath("de.undercouch:gradle-download-task:4.1.2") | |||
classpath("de.undercouch:gradle-download-task:5.0.1") | |||
// NOTE: Do not place your application dependencies here; they belong | |||
// in the individual module build.gradle files | |||
} | |||
@@ -34,36 +46,6 @@ allprojects { | |||
} | |||
} | |||
google() | |||
jcenter() | |||
maven { url 'https://www.jitpack.io' } | |||
} | |||
} | |||
ext { | |||
buildToolsVersion = "31.0.0" | |||
minSdkVersion = 21 | |||
compileSdkVersion = 31 | |||
targetSdkVersion = 31 | |||
if (System.properties['os.arch'] == "aarch64") { | |||
// For M1 Users we need to use the NDK 24 which added support for aarch64 | |||
ndkVersion = "24.0.8215888" | |||
} else { | |||
// Otherwise we default to the side-by-side NDK version from AGP. | |||
ndkVersion = "21.4.7075529" | |||
} | |||
def npmVersion = getNpmVersionArray() | |||
versionMajor = npmVersion[0] | |||
versionMinor = npmVersion[1] | |||
versionPatch = npmVersion[2] | |||
} | |||
def getNpmVersion() { | |||
def inputFile = new File("../package.json") | |||
def packageJson = new JsonSlurper().parseText(inputFile.text) | |||
return packageJson["version"] | |||
} | |||
def getNpmVersionArray() { | |||
def (major, minor, patch) = getNpmVersion().tokenize('.') | |||
return [Integer.parseInt(major), Integer.parseInt(minor), Integer.parseInt(patch)] as int[] | |||
} |
@@ -26,10 +26,12 @@ android.enableJetifier=true | |||
# Version of flipper SDK to use with React Native | |||
FLIPPER_VERSION=0.125.0 | |||
# Use this property to specify which architecture you want to build. | |||
# You can also override it from the CLI using | |||
# ./gradlew <task> -PreactNativeArchitectures=x86_64 | |||
reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64 | |||
# Use this property to enable support to the new architecture. | |||
# This will allow you to use TurboModules and the Fabric render in | |||
# your application. You should enable this flag either if you want | |||
@@ -1,5 +1,5 @@ | |||
distributionBase=GRADLE_USER_HOME | |||
distributionPath=wrapper/dists | |||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip | |||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip | |||
zipStoreBase=GRADLE_USER_HOME | |||
zipStorePath=wrapper/dists |
@@ -231,4 +231,4 @@ eval "set -- $( | |||
tr '\n' ' ' | |||
)" '"$@"' | |||
exec "$JAVACMD" "$@" | |||
exec "$JAVACMD" "$@" |
@@ -5,7 +5,7 @@ | |||
@rem you may not use this file except in compliance with the License. | |||
@rem You may obtain a copy of the License at | |||
@rem | |||
@rem http://www.apache.org/licenses/LICENSE-2.0 | |||
@rem https://www.apache.org/licenses/LICENSE-2.0 | |||
@rem | |||
@rem Unless required by applicable law or agreed to in writing, software | |||
@rem distributed under the License is distributed on an "AS IS" BASIS, | |||
@@ -75,6 +75,7 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar | |||
:end | |||
@rem End local scope for the variables with windows NT shell | |||
if "%ERRORLEVEL%"=="0" goto mainEnd | |||
:fail | |||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of | |||
@@ -2,7 +2,10 @@ rootProject.name = 'LessPass' | |||
apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings) | |||
include ':app' | |||
includeBuild('../node_modules/react-native-gradle-plugin') | |||
if (settings.hasProperty("newArchEnabled") && settings.newArchEnabled == "true") { | |||
include(":ReactAndroid") | |||
project(":ReactAndroid").projectDir = file('../node_modules/react-native/ReactAndroid') | |||
} | |||
include(":ReactAndroid:hermes-engine") | |||
project(":ReactAndroid:hermes-engine").projectDir = file('../node_modules/react-native/ReactAndroid/hermes-engine') | |||
} |
@@ -1,4 +1,4 @@ | |||
{ | |||
"name": "LessPass", | |||
"displayName": "LessPass" | |||
} | |||
} |
@@ -1,3 +1,8 @@ | |||
module.exports = { | |||
presets: ['module:metro-react-native-babel-preset'], | |||
env: { | |||
production: { | |||
plugins: ['react-native-paper/babel'], | |||
}, | |||
}, | |||
}; |
@@ -0,0 +1,11 @@ | |||
# This `.xcode.env` file is versioned and is used to source the environment | |||
# used when running script phases inside Xcode. | |||
# To customize your local environment, you can create an `.xcode.env.local` | |||
# file that is not versioned. | |||
# NODE_BINARY variable contains the PATH to the node executable. | |||
# | |||
# Customize the NODE_BINARY variable here. | |||
# For example, to use nvm with brew, add the following line | |||
# . "$(brew --prefix nvm)/nvm.sh" --no-use | |||
export NODE_BINARY=$(command -v node) |
@@ -3,73 +3,114 @@ | |||
archiveVersion = 1; | |||
classes = { | |||
}; | |||
objectVersion = 46; | |||
objectVersion = 54; | |||
objects = { | |||
/* Begin PBXBuildFile section */ | |||
13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; | |||
00E356F31AD99517003FC87E /* LessPassTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* LessPassTests.m */; }; | |||
0C80B921A6F3F58F76C31292 /* libPods-LessPass.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DCACB8F33CDC322A6C60F78 /* libPods-LessPass.a */; }; | |||
13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; }; | |||
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; | |||
13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; | |||
2135E9CC48DB47BCB711C12B /* Hack.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 2A7E546E77E74EF3A37A6A77 /* Hack.ttf */; }; | |||
7699B88040F8A987B510C191 /* libPods-LessPass-LessPassTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 19F6CBCC0A4E27FBF8BF4A61 /* libPods-LessPass-LessPassTests.a */; }; | |||
81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; }; | |||
F08AE89A24CCC1AC00473F32 /* LessPassModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = F08AE89924CCC1AC00473F32 /* LessPassModule.swift */; }; | |||
F08AE89C24CCC24600473F32 /* LessPassModule.m in Sources */ = {isa = PBXBuildFile; fileRef = F08AE89B24CCC24600473F32 /* LessPassModule.m */; }; | |||
F469205BC7F04E6E826112BF /* libPods-LessPass.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A7C3CEA04B154D4EA5B5FE2D /* libPods-LessPass.a */; }; | |||
F0198E9428FDD15300D6FFF4 /* LessPassClipboardModule.m in Sources */ = {isa = PBXBuildFile; fileRef = F0198E9328FDD15300D6FFF4 /* LessPassClipboardModule.m */; }; | |||
F0198E9528FDD15300D6FFF4 /* LessPassClipboardModule.m in Sources */ = {isa = PBXBuildFile; fileRef = F0198E9328FDD15300D6FFF4 /* LessPassClipboardModule.m */; }; | |||
F0614DEC28F4B29F00A63AC5 /* Hack.ttf in Resources */ = {isa = PBXBuildFile; fileRef = F0614DEB28F4B29F00A63AC5 /* Hack.ttf */; }; | |||
F0614DEF28F4B49C00A63AC5 /* LessPassModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0614DEE28F4B49C00A63AC5 /* LessPassModule.swift */; }; | |||
F0614DF128F4B58B00A63AC5 /* LessPassModule.m in Sources */ = {isa = PBXBuildFile; fileRef = F0614DF028F4B58B00A63AC5 /* LessPassModule.m */; }; | |||
/* End PBXBuildFile section */ | |||
/* Begin PBXContainerItemProxy section */ | |||
00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = { | |||
isa = PBXContainerItemProxy; | |||
containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; | |||
proxyType = 1; | |||
remoteGlobalIDString = 13B07F861A680F5B00A75B9A; | |||
remoteInfo = LessPass; | |||
}; | |||
/* End PBXContainerItemProxy section */ | |||
/* Begin PBXFileReference section */ | |||
0033D790DF6D0BD054D0FE0B /* Pods-LessPass.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LessPass.release.xcconfig"; path = "Target Support Files/Pods-LessPass/Pods-LessPass.release.xcconfig"; sourceTree = "<group>"; }; | |||
008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = "<group>"; }; | |||
00E356EE1AD99517003FC87E /* LessPassTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LessPassTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; | |||
00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; | |||
00E356F21AD99517003FC87E /* LessPassTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LessPassTests.m; sourceTree = "<group>"; }; | |||
13B07F961A680F5B00A75B9A /* LessPass.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = LessPass.app; sourceTree = BUILT_PRODUCTS_DIR; }; | |||
13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = LessPass/AppDelegate.h; sourceTree = "<group>"; }; | |||
13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = LessPass/AppDelegate.m; sourceTree = "<group>"; }; | |||
13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = LessPass/AppDelegate.mm; sourceTree = "<group>"; }; | |||
13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = LessPass/Images.xcassets; sourceTree = "<group>"; }; | |||
13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = LessPass/Info.plist; sourceTree = "<group>"; }; | |||
13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = LessPass/main.m; sourceTree = "<group>"; }; | |||
2A7E546E77E74EF3A37A6A77 /* Hack.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Hack.ttf; path = ../assets/fonts/Hack.ttf; sourceTree = "<group>"; }; | |||
19F6CBCC0A4E27FBF8BF4A61 /* libPods-LessPass-LessPassTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-LessPass-LessPassTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; | |||
3B4392A12AC88292D35C810B /* Pods-LessPass.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LessPass.debug.xcconfig"; path = "Target Support Files/Pods-LessPass/Pods-LessPass.debug.xcconfig"; sourceTree = "<group>"; }; | |||
5709B34CF0A7D63546082F79 /* Pods-LessPass.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LessPass.release.xcconfig"; path = "Target Support Files/Pods-LessPass/Pods-LessPass.release.xcconfig"; sourceTree = "<group>"; }; | |||
5B7EB9410499542E8C5724F5 /* Pods-LessPass-LessPassTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LessPass-LessPassTests.debug.xcconfig"; path = "Target Support Files/Pods-LessPass-LessPassTests/Pods-LessPass-LessPassTests.debug.xcconfig"; sourceTree = "<group>"; }; | |||
5DCACB8F33CDC322A6C60F78 /* libPods-LessPass.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-LessPass.a"; sourceTree = BUILT_PRODUCTS_DIR; }; | |||
81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = LessPass/LaunchScreen.storyboard; sourceTree = "<group>"; }; | |||
87960872BEE8F60939847679 /* Pods-LessPass.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LessPass.debug.xcconfig"; path = "Target Support Files/Pods-LessPass/Pods-LessPass.debug.xcconfig"; sourceTree = "<group>"; }; | |||
A7C3CEA04B154D4EA5B5FE2D /* libPods-LessPass.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-LessPass.a"; sourceTree = BUILT_PRODUCTS_DIR; }; | |||
89C6BE57DB24E9ADA2F236DE /* Pods-LessPass-LessPassTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LessPass-LessPassTests.release.xcconfig"; path = "Target Support Files/Pods-LessPass-LessPassTests/Pods-LessPass-LessPassTests.release.xcconfig"; sourceTree = "<group>"; }; | |||
ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; | |||
ED2971642150620600B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.0.sdk/System/Library/Frameworks/JavaScriptCore.framework; sourceTree = DEVELOPER_DIR; }; | |||
F08AE89824CCC1AB00473F32 /* LessPass-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "LessPass-Bridging-Header.h"; sourceTree = "<group>"; }; | |||
F08AE89924CCC1AC00473F32 /* LessPassModule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LessPassModule.swift; sourceTree = "<group>"; }; | |||
F08AE89B24CCC24600473F32 /* LessPassModule.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LessPassModule.m; sourceTree = "<group>"; }; | |||
F0198E9228FDD07E00D6FFF4 /* LessPassClipboardModule.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LessPassClipboardModule.h; sourceTree = "<group>"; }; | |||
F0198E9328FDD15300D6FFF4 /* LessPassClipboardModule.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LessPassClipboardModule.m; sourceTree = "<group>"; }; | |||
F0614DE728F4B26B00A63AC5 /* FontAwesome.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = FontAwesome.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf"; sourceTree = "<group>"; }; | |||
F0614DE928F4B27800A63AC5 /* MaterialCommunityIcons.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = MaterialCommunityIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf"; sourceTree = "<group>"; }; | |||
F0614DEB28F4B29F00A63AC5 /* Hack.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Hack.ttf; path = ../assets/fonts/Hack.ttf; sourceTree = "<group>"; }; | |||
F0614DED28F4B49C00A63AC5 /* LessPass-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "LessPass-Bridging-Header.h"; sourceTree = "<group>"; }; | |||
F0614DEE28F4B49C00A63AC5 /* LessPassModule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LessPassModule.swift; sourceTree = "<group>"; }; | |||
F0614DF028F4B58B00A63AC5 /* LessPassModule.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LessPassModule.m; sourceTree = "<group>"; }; | |||
/* End PBXFileReference section */ | |||
/* Begin PBXFrameworksBuildPhase section */ | |||
00E356EB1AD99517003FC87E /* Frameworks */ = { | |||
isa = PBXFrameworksBuildPhase; | |||
buildActionMask = 2147483647; | |||
files = ( | |||
7699B88040F8A987B510C191 /* libPods-LessPass-LessPassTests.a in Frameworks */, | |||
); | |||
runOnlyForDeploymentPostprocessing = 0; | |||
}; | |||
13B07F8C1A680F5B00A75B9A /* Frameworks */ = { | |||
isa = PBXFrameworksBuildPhase; | |||
buildActionMask = 2147483647; | |||
files = ( | |||
F469205BC7F04E6E826112BF /* libPods-LessPass.a in Frameworks */, | |||
0C80B921A6F3F58F76C31292 /* libPods-LessPass.a in Frameworks */, | |||
); | |||
runOnlyForDeploymentPostprocessing = 0; | |||
}; | |||
/* End PBXFrameworksBuildPhase section */ | |||
/* Begin PBXGroup section */ | |||
057FF7BE84754F339DE1FDE2 /* Resources */ = { | |||
00E356EF1AD99517003FC87E /* LessPassTests */ = { | |||
isa = PBXGroup; | |||
children = ( | |||
2A7E546E77E74EF3A37A6A77 /* Hack.ttf */, | |||
00E356F21AD99517003FC87E /* LessPassTests.m */, | |||
00E356F01AD99517003FC87E /* Supporting Files */, | |||
); | |||
name = Resources; | |||
path = LessPassTests; | |||
sourceTree = "<group>"; | |||
}; | |||
00E356F01AD99517003FC87E /* Supporting Files */ = { | |||
isa = PBXGroup; | |||
children = ( | |||
00E356F11AD99517003FC87E /* Info.plist */, | |||
); | |||
name = "Supporting Files"; | |||
sourceTree = "<group>"; | |||
}; | |||
13B07FAE1A68108700A75B9A /* LessPass */ = { | |||
isa = PBXGroup; | |||
children = ( | |||
008F07F21AC5B25A0029DE68 /* main.jsbundle */, | |||
F0614DE628F4B1EA00A63AC5 /* Fonts */, | |||
13B07FAF1A68108700A75B9A /* AppDelegate.h */, | |||
13B07FB01A68108700A75B9A /* AppDelegate.m */, | |||
13B07FB01A68108700A75B9A /* AppDelegate.mm */, | |||
13B07FB51A68108700A75B9A /* Images.xcassets */, | |||
13B07FB61A68108700A75B9A /* Info.plist */, | |||
81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */, | |||
13B07FB71A68108700A75B9A /* main.m */, | |||
F08AE89924CCC1AC00473F32 /* LessPassModule.swift */, | |||
F08AE89824CCC1AB00473F32 /* LessPass-Bridging-Header.h */, | |||
F08AE89B24CCC24600473F32 /* LessPassModule.m */, | |||
F0614DEE28F4B49C00A63AC5 /* LessPassModule.swift */, | |||
F0614DF028F4B58B00A63AC5 /* LessPassModule.m */, | |||
F0614DED28F4B49C00A63AC5 /* LessPass-Bridging-Header.h */, | |||
F0198E9228FDD07E00D6FFF4 /* LessPassClipboardModule.h */, | |||
F0198E9328FDD15300D6FFF4 /* LessPassClipboardModule.m */, | |||
); | |||
name = LessPass; | |||
sourceTree = "<group>"; | |||
@@ -78,8 +119,8 @@ | |||
isa = PBXGroup; | |||
children = ( | |||
ED297162215061F000B7C4FE /* JavaScriptCore.framework */, | |||
ED2971642150620600B7C4FE /* JavaScriptCore.framework */, | |||
A7C3CEA04B154D4EA5B5FE2D /* libPods-LessPass.a */, | |||
5DCACB8F33CDC322A6C60F78 /* libPods-LessPass.a */, | |||
19F6CBCC0A4E27FBF8BF4A61 /* libPods-LessPass-LessPassTests.a */, | |||
); | |||
name = Frameworks; | |||
sourceTree = "<group>"; | |||
@@ -96,10 +137,10 @@ | |||
children = ( | |||
13B07FAE1A68108700A75B9A /* LessPass */, | |||
832341AE1AAA6A7D00B99B32 /* Libraries */, | |||
00E356EF1AD99517003FC87E /* LessPassTests */, | |||
83CBBA001A601CBA00E9B192 /* Products */, | |||
2D16E6871FA4F8E400B85C8A /* Frameworks */, | |||
D727F9DEC1CEF1C5FAE9CF83 /* Pods */, | |||
057FF7BE84754F339DE1FDE2 /* Resources */, | |||
BBD78D7AC51CEA395F1C20DB /* Pods */, | |||
); | |||
indentWidth = 2; | |||
sourceTree = "<group>"; | |||
@@ -110,34 +151,68 @@ | |||
isa = PBXGroup; | |||
children = ( | |||
13B07F961A680F5B00A75B9A /* LessPass.app */, | |||
00E356EE1AD99517003FC87E /* LessPassTests.xctest */, | |||
); | |||
name = Products; | |||
sourceTree = "<group>"; | |||
}; | |||
D727F9DEC1CEF1C5FAE9CF83 /* Pods */ = { | |||
BBD78D7AC51CEA395F1C20DB /* Pods */ = { | |||
isa = PBXGroup; | |||
children = ( | |||
87960872BEE8F60939847679 /* Pods-LessPass.debug.xcconfig */, | |||
0033D790DF6D0BD054D0FE0B /* Pods-LessPass.release.xcconfig */, | |||
3B4392A12AC88292D35C810B /* Pods-LessPass.debug.xcconfig */, | |||
5709B34CF0A7D63546082F79 /* Pods-LessPass.release.xcconfig */, | |||
5B7EB9410499542E8C5724F5 /* Pods-LessPass-LessPassTests.debug.xcconfig */, | |||
89C6BE57DB24E9ADA2F236DE /* Pods-LessPass-LessPassTests.release.xcconfig */, | |||
); | |||
path = Pods; | |||
sourceTree = "<group>"; | |||
}; | |||
F0614DE628F4B1EA00A63AC5 /* Fonts */ = { | |||
isa = PBXGroup; | |||
children = ( | |||
F0614DEB28F4B29F00A63AC5 /* Hack.ttf */, | |||
F0614DE928F4B27800A63AC5 /* MaterialCommunityIcons.ttf */, | |||
F0614DE728F4B26B00A63AC5 /* FontAwesome.ttf */, | |||
); | |||
name = Fonts; | |||
sourceTree = "<group>"; | |||
}; | |||
/* End PBXGroup section */ | |||
/* Begin PBXNativeTarget section */ | |||
00E356ED1AD99517003FC87E /* LessPassTests */ = { | |||
isa = PBXNativeTarget; | |||
buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "LessPassTests" */; | |||
buildPhases = ( | |||
A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */, | |||
00E356EA1AD99517003FC87E /* Sources */, | |||
00E356EB1AD99517003FC87E /* Frameworks */, | |||
00E356EC1AD99517003FC87E /* Resources */, | |||
C59DA0FBD6956966B86A3779 /* [CP] Embed Pods Frameworks */, | |||
F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */, | |||
); | |||
buildRules = ( | |||
); | |||
dependencies = ( | |||
00E356F51AD99517003FC87E /* PBXTargetDependency */, | |||
); | |||
name = LessPassTests; | |||
productName = LessPassTests; | |||
productReference = 00E356EE1AD99517003FC87E /* LessPassTests.xctest */; | |||
productType = "com.apple.product-type.bundle.unit-test"; | |||
}; | |||
13B07F861A680F5B00A75B9A /* LessPass */ = { | |||
isa = PBXNativeTarget; | |||
buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "LessPass" */; | |||
buildPhases = ( | |||
8446EE65DD72C14B0E665F02 /* [CP] Check Pods Manifest.lock */, | |||
C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */, | |||
FD10A7F022414F080027D42C /* Start Packager */, | |||
13B07F871A680F5B00A75B9A /* Sources */, | |||
13B07F8C1A680F5B00A75B9A /* Frameworks */, | |||
13B07F8E1A680F5B00A75B9A /* Resources */, | |||
00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, | |||
87F65528C05E5E581ABE0A81 /* [CP] Embed Pods Frameworks */, | |||
352DA40C15F903EA6E9A3A11 /* [CP] Copy Pods Resources */, | |||
00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */, | |||
E235C05ADACE081382539298 /* [CP] Copy Pods Resources */, | |||
); | |||
buildRules = ( | |||
); | |||
@@ -154,17 +229,19 @@ | |||
83CBB9F71A601CBA00E9B192 /* Project object */ = { | |||
isa = PBXProject; | |||
attributes = { | |||
LastUpgradeCheck = 1230; | |||
LastUpgradeCheck = 1210; | |||
TargetAttributes = { | |||
00E356ED1AD99517003FC87E = { | |||
CreatedOnToolsVersion = 6.2; | |||
TestTargetID = 13B07F861A680F5B00A75B9A; | |||
}; | |||
13B07F861A680F5B00A75B9A = { | |||
DevelopmentTeam = 5Y4MF2AT83; | |||
LastSwiftMigration = 1160; | |||
ProvisioningStyle = Automatic; | |||
LastSwiftMigration = 1320; | |||
}; | |||
}; | |||
}; | |||
buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "LessPass" */; | |||
compatibilityVersion = "Xcode 3.2"; | |||
compatibilityVersion = "Xcode 12.0"; | |||
developmentRegion = en; | |||
hasScannedForEncodings = 0; | |||
knownRegions = ( | |||
@@ -177,18 +254,26 @@ | |||
projectRoot = ""; | |||
targets = ( | |||
13B07F861A680F5B00A75B9A /* LessPass */, | |||
00E356ED1AD99517003FC87E /* LessPassTests */, | |||
); | |||
}; | |||
/* End PBXProject section */ | |||
/* Begin PBXResourcesBuildPhase section */ | |||
00E356EC1AD99517003FC87E /* Resources */ = { | |||
isa = PBXResourcesBuildPhase; | |||
buildActionMask = 2147483647; | |||
files = ( | |||
); | |||
runOnlyForDeploymentPostprocessing = 0; | |||
}; | |||
13B07F8E1A680F5B00A75B9A /* Resources */ = { | |||
isa = PBXResourcesBuildPhase; | |||
buildActionMask = 2147483647; | |||
files = ( | |||
81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */, | |||
F0614DEC28F4B29F00A63AC5 /* Hack.ttf in Resources */, | |||
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, | |||
2135E9CC48DB47BCB711C12B /* Hack.ttf in Resources */, | |||
); | |||
runOnlyForDeploymentPostprocessing = 0; | |||
}; | |||
@@ -201,65 +286,56 @@ | |||
files = ( | |||
); | |||
inputPaths = ( | |||
"$(SRCROOT)/.xcode.env.local", | |||
"$(SRCROOT)/.xcode.env", | |||
); | |||
name = "Bundle React Native code and images"; | |||
outputPaths = ( | |||
); | |||
runOnlyForDeploymentPostprocessing = 0; | |||
shellPath = /bin/sh; | |||
shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh"; | |||
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"; | |||
}; | |||
00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */ = { | |||
isa = PBXShellScriptBuildPhase; | |||
buildActionMask = 2147483647; | |||
files = ( | |||
); | |||
inputFileListPaths = ( | |||
"${PODS_ROOT}/Target Support Files/Pods-LessPass/Pods-LessPass-frameworks-${CONFIGURATION}-input-files.xcfilelist", | |||
); | |||
name = "[CP] Embed Pods Frameworks"; | |||
outputFileListPaths = ( | |||
"${PODS_ROOT}/Target Support Files/Pods-LessPass/Pods-LessPass-frameworks-${CONFIGURATION}-output-files.xcfilelist", | |||
); | |||
runOnlyForDeploymentPostprocessing = 0; | |||
shellPath = /bin/sh; | |||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-LessPass/Pods-LessPass-frameworks.sh\"\n"; | |||
showEnvVarsInLog = 0; | |||
}; | |||
352DA40C15F903EA6E9A3A11 /* [CP] Copy Pods Resources */ = { | |||
A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */ = { | |||
isa = PBXShellScriptBuildPhase; | |||
buildActionMask = 2147483647; | |||
files = ( | |||
); | |||
inputFileListPaths = ( | |||
); | |||
inputPaths = ( | |||
"${PODS_ROOT}/Target Support Files/Pods-LessPass/Pods-LessPass-resources.sh", | |||
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf", | |||
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Entypo.ttf", | |||
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf", | |||
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Feather.ttf", | |||
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf", | |||
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Brands.ttf", | |||
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf", | |||
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf", | |||
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Fontisto.ttf", | |||
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Foundation.ttf", | |||
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf", | |||
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf", | |||
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf", | |||
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Octicons.ttf", | |||
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf", | |||
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Zocial.ttf", | |||
"${PODS_CONFIGURATION_BUILD_DIR}/React-Core/AccessibilityResources.bundle", | |||
"${PODS_PODFILE_DIR_PATH}/Podfile.lock", | |||
"${PODS_ROOT}/Manifest.lock", | |||
); | |||
name = "[CP] Check Pods Manifest.lock"; | |||
outputFileListPaths = ( | |||
); | |||
name = "[CP] Copy Pods Resources"; | |||
outputPaths = ( | |||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AntDesign.ttf", | |||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Entypo.ttf", | |||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EvilIcons.ttf", | |||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Feather.ttf", | |||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome.ttf", | |||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Brands.ttf", | |||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Regular.ttf", | |||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Solid.ttf", | |||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Fontisto.ttf", | |||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Foundation.ttf", | |||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Ionicons.ttf", | |||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialCommunityIcons.ttf", | |||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialIcons.ttf", | |||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Octicons.ttf", | |||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/SimpleLineIcons.ttf", | |||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Zocial.ttf", | |||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AccessibilityResources.bundle", | |||
"$(DERIVED_FILE_DIR)/Pods-LessPass-LessPassTests-checkManifestLockResult.txt", | |||
); | |||
runOnlyForDeploymentPostprocessing = 0; | |||
shellPath = /bin/sh; | |||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-LessPass/Pods-LessPass-resources.sh\"\n"; | |||
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"; | |||
showEnvVarsInLog = 0; | |||
}; | |||
8446EE65DD72C14B0E665F02 /* [CP] Check Pods Manifest.lock */ = { | |||
C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */ = { | |||
isa = PBXShellScriptBuildPhase; | |||
buildActionMask = 2147483647; | |||
files = ( | |||
@@ -281,26 +357,55 @@ | |||
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"; | |||
showEnvVarsInLog = 0; | |||
}; | |||
87F65528C05E5E581ABE0A81 /* [CP] Embed Pods Frameworks */ = { | |||
C59DA0FBD6956966B86A3779 /* [CP] Embed Pods Frameworks */ = { | |||
isa = PBXShellScriptBuildPhase; | |||
buildActionMask = 2147483647; | |||
files = ( | |||
); | |||
inputPaths = ( | |||
"${PODS_ROOT}/Target Support Files/Pods-LessPass/Pods-LessPass-frameworks.sh", | |||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/Flipper-DoubleConversion/double-conversion.framework/double-conversion", | |||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/Flipper-Glog/glog.framework/glog", | |||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL-Universal/OpenSSL.framework/OpenSSL", | |||
inputFileListPaths = ( | |||
"${PODS_ROOT}/Target Support Files/Pods-LessPass-LessPassTests/Pods-LessPass-LessPassTests-frameworks-${CONFIGURATION}-input-files.xcfilelist", | |||
); | |||
name = "[CP] Embed Pods Frameworks"; | |||
outputPaths = ( | |||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/double-conversion.framework", | |||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/glog.framework", | |||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OpenSSL.framework", | |||
outputFileListPaths = ( | |||
"${PODS_ROOT}/Target Support Files/Pods-LessPass-LessPassTests/Pods-LessPass-LessPassTests-frameworks-${CONFIGURATION}-output-files.xcfilelist", | |||
); | |||
runOnlyForDeploymentPostprocessing = 0; | |||
shellPath = /bin/sh; | |||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-LessPass/Pods-LessPass-frameworks.sh\"\n"; | |||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-LessPass-LessPassTests/Pods-LessPass-LessPassTests-frameworks.sh\"\n"; | |||
showEnvVarsInLog = 0; | |||
}; | |||
E235C05ADACE081382539298 /* [CP] Copy Pods Resources */ = { | |||
isa = PBXShellScriptBuildPhase; | |||
buildActionMask = 2147483647; | |||
files = ( | |||
); | |||
inputFileListPaths = ( | |||
"${PODS_ROOT}/Target Support Files/Pods-LessPass/Pods-LessPass-resources-${CONFIGURATION}-input-files.xcfilelist", | |||
); | |||
name = "[CP] Copy Pods Resources"; | |||
outputFileListPaths = ( | |||
"${PODS_ROOT}/Target Support Files/Pods-LessPass/Pods-LessPass-resources-${CONFIGURATION}-output-files.xcfilelist", | |||
); | |||
runOnlyForDeploymentPostprocessing = 0; | |||
shellPath = /bin/sh; | |||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-LessPass/Pods-LessPass-resources.sh\"\n"; | |||
showEnvVarsInLog = 0; | |||
}; | |||
F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */ = { | |||
isa = PBXShellScriptBuildPhase; | |||
buildActionMask = 2147483647; | |||
files = ( | |||
); | |||
inputFileListPaths = ( | |||
"${PODS_ROOT}/Target Support Files/Pods-LessPass-LessPassTests/Pods-LessPass-LessPassTests-resources-${CONFIGURATION}-input-files.xcfilelist", | |||
); | |||
name = "[CP] Copy Pods Resources"; | |||
outputFileListPaths = ( | |||
"${PODS_ROOT}/Target Support Files/Pods-LessPass-LessPassTests/Pods-LessPass-LessPassTests-resources-${CONFIGURATION}-output-files.xcfilelist", | |||
); | |||
runOnlyForDeploymentPostprocessing = 0; | |||
shellPath = /bin/sh; | |||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-LessPass-LessPassTests/Pods-LessPass-LessPassTests-resources.sh\"\n"; | |||
showEnvVarsInLog = 0; | |||
}; | |||
FD10A7F022414F080027D42C /* Start Packager */ = { | |||
@@ -325,39 +430,105 @@ | |||
/* End PBXShellScriptBuildPhase section */ | |||
/* Begin PBXSourcesBuildPhase section */ | |||
00E356EA1AD99517003FC87E /* Sources */ = { | |||
isa = PBXSourcesBuildPhase; | |||
buildActionMask = 2147483647; | |||
files = ( | |||
F0198E9528FDD15300D6FFF4 /* LessPassClipboardModule.m in Sources */, | |||
00E356F31AD99517003FC87E /* LessPassTests.m in Sources */, | |||
); | |||
runOnlyForDeploymentPostprocessing = 0; | |||
}; | |||
13B07F871A680F5B00A75B9A /* Sources */ = { | |||
isa = PBXSourcesBuildPhase; | |||
buildActionMask = 2147483647; | |||
files = ( | |||
13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */, | |||
F08AE89A24CCC1AC00473F32 /* LessPassModule.swift in Sources */, | |||
13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */, | |||
F0614DEF28F4B49C00A63AC5 /* LessPassModule.swift in Sources */, | |||
13B07FC11A68108700A75B9A /* main.m in Sources */, | |||
F08AE89C24CCC24600473F32 /* LessPassModule.m in Sources */, | |||
F0614DF128F4B58B00A63AC5 /* LessPassModule.m in Sources */, | |||
F0198E9428FDD15300D6FFF4 /* LessPassClipboardModule.m in Sources */, | |||
); | |||
runOnlyForDeploymentPostprocessing = 0; | |||
}; | |||
/* End PBXSourcesBuildPhase section */ | |||
/* Begin PBXTargetDependency section */ | |||
00E356F51AD99517003FC87E /* PBXTargetDependency */ = { | |||
isa = PBXTargetDependency; | |||
target = 13B07F861A680F5B00A75B9A /* LessPass */; | |||
targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */; | |||
}; | |||
/* End PBXTargetDependency section */ | |||
/* Begin XCBuildConfiguration section */ | |||
00E356F61AD99517003FC87E /* Debug */ = { | |||
isa = XCBuildConfiguration; | |||
baseConfigurationReference = 5B7EB9410499542E8C5724F5 /* Pods-LessPass-LessPassTests.debug.xcconfig */; | |||
buildSettings = { | |||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; | |||
BUNDLE_LOADER = "$(TEST_HOST)"; | |||
GCC_PREPROCESSOR_DEFINITIONS = ( | |||
"DEBUG=1", | |||
"$(inherited)", | |||
); | |||
INFOPLIST_FILE = LessPassTests/Info.plist; | |||
IPHONEOS_DEPLOYMENT_TARGET = 12.4; | |||
LD_RUNPATH_SEARCH_PATHS = ( | |||
"$(inherited)", | |||
"@executable_path/Frameworks", | |||
"@loader_path/Frameworks", | |||
); | |||
OTHER_LDFLAGS = ( | |||
"-ObjC", | |||
"-lc++", | |||
"$(inherited)", | |||
); | |||
PRODUCT_BUNDLE_IDENTIFIER = com.lesspass.ios; | |||
PRODUCT_NAME = "$(TARGET_NAME)"; | |||
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LessPass.app/LessPass"; | |||
}; | |||
name = Debug; | |||
}; | |||
00E356F71AD99517003FC87E /* Release */ = { | |||
isa = XCBuildConfiguration; | |||
baseConfigurationReference = 89C6BE57DB24E9ADA2F236DE /* Pods-LessPass-LessPassTests.release.xcconfig */; | |||
buildSettings = { | |||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; | |||
BUNDLE_LOADER = "$(TEST_HOST)"; | |||
COPY_PHASE_STRIP = NO; | |||
INFOPLIST_FILE = LessPassTests/Info.plist; | |||
IPHONEOS_DEPLOYMENT_TARGET = 12.4; | |||
LD_RUNPATH_SEARCH_PATHS = ( | |||
"$(inherited)", | |||
"@executable_path/Frameworks", | |||
"@loader_path/Frameworks", | |||
); | |||
OTHER_LDFLAGS = ( | |||
"-ObjC", | |||
"-lc++", | |||
"$(inherited)", | |||
); | |||
PRODUCT_BUNDLE_IDENTIFIER = com.lesspass.ios; | |||
PRODUCT_NAME = "$(TARGET_NAME)"; | |||
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LessPass.app/LessPass"; | |||
}; | |||
name = Release; | |||
}; | |||
13B07F941A680F5B00A75B9A /* Debug */ = { | |||
isa = XCBuildConfiguration; | |||
baseConfigurationReference = 87960872BEE8F60939847679 /* Pods-LessPass.debug.xcconfig */; | |||
baseConfigurationReference = 3B4392A12AC88292D35C810B /* Pods-LessPass.debug.xcconfig */; | |||
buildSettings = { | |||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; | |||
CLANG_ENABLE_MODULES = YES; | |||
CODE_SIGN_IDENTITY = "Apple Development"; | |||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development"; | |||
CODE_SIGN_STYLE = Automatic; | |||
CURRENT_PROJECT_VERSION = 1; | |||
DEVELOPMENT_TEAM = 5Y4MF2AT83; | |||
ENABLE_BITCODE = NO; | |||
GCC_PREPROCESSOR_DEFINITIONS = ( | |||
INFOPLIST_FILE = LessPass/Info.plist; | |||
LD_RUNPATH_SEARCH_PATHS = ( | |||
"$(inherited)", | |||
"FB_SONARKIT_ENABLED=1", | |||
"@executable_path/Frameworks", | |||
); | |||
INFOPLIST_FILE = LessPass/Info.plist; | |||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; | |||
MARKETING_VERSION = 9.7.0; | |||
MARKETING_VERSION = 9.7.1; | |||
OTHER_LDFLAGS = ( | |||
"$(inherited)", | |||
"-ObjC", | |||
@@ -365,28 +536,27 @@ | |||
); | |||
PRODUCT_BUNDLE_IDENTIFIER = com.lesspass.ios; | |||
PRODUCT_NAME = LessPass; | |||
PROVISIONING_PROFILE_SPECIFIER = ""; | |||
SWIFT_OBJC_BRIDGING_HEADER = "LessPass-Bridging-Header.h"; | |||
SWIFT_OPTIMIZATION_LEVEL = "-Onone"; | |||
SWIFT_VERSION = 5.0; | |||
TARGETED_DEVICE_FAMILY = "1,2"; | |||
VERSIONING_SYSTEM = "apple-generic"; | |||
}; | |||
name = Debug; | |||
}; | |||
13B07F951A680F5B00A75B9A /* Release */ = { | |||
isa = XCBuildConfiguration; | |||
baseConfigurationReference = 0033D790DF6D0BD054D0FE0B /* Pods-LessPass.release.xcconfig */; | |||
baseConfigurationReference = 5709B34CF0A7D63546082F79 /* Pods-LessPass.release.xcconfig */; | |||
buildSettings = { | |||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; | |||
CLANG_ENABLE_MODULES = YES; | |||
CODE_SIGN_IDENTITY = "Apple Development"; | |||
CODE_SIGN_STYLE = Automatic; | |||
CURRENT_PROJECT_VERSION = 1; | |||
DEVELOPMENT_TEAM = 5Y4MF2AT83; | |||
INFOPLIST_FILE = LessPass/Info.plist; | |||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; | |||
MARKETING_VERSION = 9.7.0; | |||
LD_RUNPATH_SEARCH_PATHS = ( | |||
"$(inherited)", | |||
"@executable_path/Frameworks", | |||
); | |||
MARKETING_VERSION = 9.7.1; | |||
OTHER_LDFLAGS = ( | |||
"$(inherited)", | |||
"-ObjC", | |||
@@ -394,7 +564,6 @@ | |||
); | |||
PRODUCT_BUNDLE_IDENTIFIER = com.lesspass.ios; | |||
PRODUCT_NAME = LessPass; | |||
PROVISIONING_PROFILE_SPECIFIER = ""; | |||
SWIFT_OBJC_BRIDGING_HEADER = "LessPass-Bridging-Header.h"; | |||
SWIFT_VERSION = 5.0; | |||
TARGETED_DEVICE_FAMILY = "1,2"; | |||
@@ -407,7 +576,7 @@ | |||
buildSettings = { | |||
ALWAYS_SEARCH_USER_PATHS = NO; | |||
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; | |||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; | |||
CLANG_CXX_LANGUAGE_STANDARD = "c++17"; | |||
CLANG_CXX_LIBRARY = "libc++"; | |||
CLANG_ENABLE_MODULES = YES; | |||
CLANG_ENABLE_OBJC_ARC = YES; | |||
@@ -435,7 +604,7 @@ | |||
COPY_PHASE_STRIP = NO; | |||
ENABLE_STRICT_OBJC_MSGSEND = YES; | |||
ENABLE_TESTABILITY = YES; | |||
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; | |||
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; | |||
GCC_C_LANGUAGE_STANDARD = gnu99; | |||
GCC_DYNAMIC_NO_PIC = NO; | |||
GCC_NO_COMMON_BLOCKS = YES; | |||
@@ -451,15 +620,25 @@ | |||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; | |||
GCC_WARN_UNUSED_FUNCTION = YES; | |||
GCC_WARN_UNUSED_VARIABLE = YES; | |||
IPHONEOS_DEPLOYMENT_TARGET = 11.0; | |||
LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)"; | |||
IPHONEOS_DEPLOYMENT_TARGET = 12.4; | |||
LD_RUNPATH_SEARCH_PATHS = ( | |||
/usr/lib/swift, | |||
"$(inherited)", | |||
); | |||
LIBRARY_SEARCH_PATHS = ( | |||
"$(SDKROOT)/usr/lib/swift", | |||
"\"$(SDKROOT)/usr/lib/swift\"", | |||
"\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", | |||
"\"$(inherited)\"", | |||
); | |||
MTL_ENABLE_DEBUG_INFO = YES; | |||
ONLY_ACTIVE_ARCH = YES; | |||
OTHER_CPLUSPLUSFLAGS = ( | |||
"$(OTHER_CFLAGS)", | |||
"-DFOLLY_NO_CONFIG", | |||
"-DFOLLY_MOBILE=1", | |||
"-DFOLLY_USE_LIBCPP=1", | |||
); | |||
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; | |||
SDKROOT = iphoneos; | |||
}; | |||
name = Debug; | |||
@@ -469,7 +648,7 @@ | |||
buildSettings = { | |||
ALWAYS_SEARCH_USER_PATHS = NO; | |||
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; | |||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; | |||
CLANG_CXX_LANGUAGE_STANDARD = "c++17"; | |||
CLANG_CXX_LIBRARY = "libc++"; | |||
CLANG_ENABLE_MODULES = YES; | |||
CLANG_ENABLE_OBJC_ARC = YES; | |||
@@ -497,7 +676,7 @@ | |||
COPY_PHASE_STRIP = YES; | |||
ENABLE_NS_ASSERTIONS = NO; | |||
ENABLE_STRICT_OBJC_MSGSEND = YES; | |||
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; | |||
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; | |||
GCC_C_LANGUAGE_STANDARD = gnu99; | |||
GCC_NO_COMMON_BLOCKS = YES; | |||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES; | |||
@@ -506,16 +685,25 @@ | |||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; | |||
GCC_WARN_UNUSED_FUNCTION = YES; | |||
GCC_WARN_UNUSED_VARIABLE = YES; | |||
IPHONEOS_DEPLOYMENT_TARGET = 11.0; | |||
LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)"; | |||
IPHONEOS_DEPLOYMENT_TARGET = 12.4; | |||
LD_RUNPATH_SEARCH_PATHS = ( | |||
/usr/lib/swift, | |||
"$(inherited)", | |||
); | |||
LIBRARY_SEARCH_PATHS = ( | |||
"$(SDKROOT)/usr/lib/swift", | |||
"\"$(SDKROOT)/usr/lib/swift\"", | |||
"\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", | |||
"\"$(inherited)\"", | |||
); | |||
MTL_ENABLE_DEBUG_INFO = NO; | |||
OTHER_CPLUSPLUSFLAGS = ( | |||
"$(OTHER_CFLAGS)", | |||
"-DFOLLY_NO_CONFIG", | |||
"-DFOLLY_MOBILE=1", | |||
"-DFOLLY_USE_LIBCPP=1", | |||
); | |||
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; | |||
SDKROOT = iphoneos; | |||
SWIFT_COMPILATION_MODE = wholemodule; | |||
VALIDATE_PRODUCT = YES; | |||
}; | |||
name = Release; | |||
@@ -523,6 +711,15 @@ | |||
/* End XCBuildConfiguration section */ | |||
/* Begin XCConfigurationList section */ | |||
00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "LessPassTests" */ = { | |||
isa = XCConfigurationList; | |||
buildConfigurations = ( | |||
00E356F61AD99517003FC87E /* Debug */, | |||
00E356F71AD99517003FC87E /* Release */, | |||
); | |||
defaultConfigurationIsVisible = 0; | |||
defaultConfigurationName = Release; | |||
}; | |||
13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "LessPass" */ = { | |||
isa = XCConfigurationList; | |||
buildConfigurations = ( | |||
@@ -1,7 +0,0 @@ | |||
<?xml version="1.0" encoding="UTF-8"?> | |||
<Workspace | |||
version = "1.0"> | |||
<FileRef | |||
location = "self:"> | |||
</FileRef> | |||
</Workspace> |
@@ -1,6 +1,6 @@ | |||
<?xml version="1.0" encoding="UTF-8"?> | |||
<Scheme | |||
LastUpgradeVersion = "1230" | |||
LastUpgradeVersion = "1210" | |||
version = "1.3"> | |||
<BuildAction | |||
parallelizeBuildables = "YES" | |||
@@ -20,20 +20,6 @@ | |||
ReferencedContainer = "container:LessPass.xcodeproj"> | |||
</BuildableReference> | |||
</BuildActionEntry> | |||
<BuildActionEntry | |||
buildForTesting = "YES" | |||
buildForRunning = "YES" | |||
buildForProfiling = "YES" | |||
buildForArchiving = "YES" | |||
buildForAnalyzing = "YES"> | |||
<BuildableReference | |||
BuildableIdentifier = "primary" | |||
BlueprintIdentifier = "1BEE828C124E6416179B904A9F66D794" | |||
BuildableName = "React" | |||
BlueprintName = "React" | |||
ReferencedContainer = "container:Pods/Pods.xcodeproj"> | |||
</BuildableReference> | |||
</BuildActionEntry> | |||
</BuildActionEntries> | |||
</BuildAction> | |||
<TestAction | |||
@@ -2,7 +2,7 @@ | |||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | |||
<plist version="1.0"> | |||
<dict> | |||
<key>IDEDidComputeMac32BitWarning</key> | |||
<true/> | |||
<key>PreviewsEnabled</key> | |||
<false/> | |||
</dict> | |||
</plist> |
@@ -1,62 +0,0 @@ | |||
#import "AppDelegate.h" | |||
#import <React/RCTBridge.h> | |||
#import <React/RCTBundleURLProvider.h> | |||
#import <React/RCTRootView.h> | |||
#ifdef FB_SONARKIT_ENABLED | |||
#import <FlipperKit/FlipperClient.h> | |||
#import <FlipperKitLayoutPlugin/FlipperKitLayoutPlugin.h> | |||
#import <FlipperKitUserDefaultsPlugin/FKUserDefaultsPlugin.h> | |||
#import <FlipperKitNetworkPlugin/FlipperKitNetworkPlugin.h> | |||
#import <SKIOSNetworkPlugin/SKIOSNetworkAdapter.h> | |||
#import <FlipperKitReactPlugin/FlipperKitReactPlugin.h> | |||
static void InitializeFlipper(UIApplication *application) { | |||
FlipperClient *client = [FlipperClient sharedClient]; | |||
SKDescriptorMapper *layoutDescriptorMapper = [[SKDescriptorMapper alloc] initWithDefaults]; | |||
[client addPlugin:[[FlipperKitLayoutPlugin alloc] initWithRootNode:application withDescriptorMapper:layoutDescriptorMapper]]; | |||
[client addPlugin:[[FKUserDefaultsPlugin alloc] initWithSuiteName:nil]]; | |||
[client addPlugin:[FlipperKitReactPlugin new]]; | |||
[client addPlugin:[[FlipperKitNetworkPlugin alloc] initWithNetworkAdapter:[SKIOSNetworkAdapter new]]]; | |||
[client start]; | |||
} | |||
#endif | |||
@implementation AppDelegate | |||
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions | |||
{ | |||
#ifdef FB_SONARKIT_ENABLED | |||
InitializeFlipper(application); | |||
#endif | |||
RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions]; | |||
RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge | |||
moduleName:@"LessPass" | |||
initialProperties:nil]; | |||
if (@available(iOS 13.0, *)) { | |||
rootView.backgroundColor = [UIColor systemBackgroundColor]; | |||
} else { | |||
rootView.backgroundColor = [UIColor whiteColor]; | |||
} | |||
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; | |||
UIViewController *rootViewController = [UIViewController new]; | |||
rootViewController.view = rootView; | |||
self.window.rootViewController = rootViewController; | |||
[self.window makeKeyAndVisible]; | |||
return YES; | |||
} | |||
- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge | |||
{ | |||
#if DEBUG | |||
return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"]; | |||
#else | |||
return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; | |||
#endif | |||
} | |||
@end |
@@ -0,0 +1,133 @@ | |||
#import "AppDelegate.h" | |||
#import <React/RCTBridge.h> | |||
#import <React/RCTBundleURLProvider.h> | |||
#import <React/RCTRootView.h> | |||
#import <React/RCTAppSetupUtils.h> | |||
#if RCT_NEW_ARCH_ENABLED | |||
#import <React/CoreModulesPlugins.h> | |||
#import <React/RCTCxxBridgeDelegate.h> | |||
#import <React/RCTFabricSurfaceHostingProxyRootView.h> | |||
#import <React/RCTSurfacePresenter.h> | |||
#import <React/RCTSurfacePresenterBridgeAdapter.h> | |||
#import <ReactCommon/RCTTurboModuleManager.h> | |||
#import <react/config/ReactNativeConfig.h> | |||
static NSString *const kRNConcurrentRoot = @"concurrentRoot"; | |||
@interface AppDelegate () <RCTCxxBridgeDelegate, RCTTurboModuleManagerDelegate> { | |||
RCTTurboModuleManager *_turboModuleManager; | |||
RCTSurfacePresenterBridgeAdapter *_bridgeAdapter; | |||
std::shared_ptr<const facebook::react::ReactNativeConfig> _reactNativeConfig; | |||
facebook::react::ContextContainer::Shared _contextContainer; | |||
} | |||
@end | |||
#endif | |||
@implementation AppDelegate | |||
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions | |||
{ | |||
RCTAppSetupPrepareApp(application); | |||
RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions]; | |||
#if RCT_NEW_ARCH_ENABLED | |||
_contextContainer = std::make_shared<facebook::react::ContextContainer const>(); | |||
_reactNativeConfig = std::make_shared<facebook::react::EmptyReactNativeConfig const>(); | |||
_contextContainer->insert("ReactNativeConfig", _reactNativeConfig); | |||
_bridgeAdapter = [[RCTSurfacePresenterBridgeAdapter alloc] initWithBridge:bridge contextContainer:_contextContainer]; | |||
bridge.surfacePresenter = _bridgeAdapter.surfacePresenter; | |||
#endif | |||
NSDictionary *initProps = [self prepareInitialProps]; | |||
UIView *rootView = RCTAppSetupDefaultRootView(bridge, @"LessPass", initProps); | |||
if (@available(iOS 13.0, *)) { | |||
rootView.backgroundColor = [UIColor systemBackgroundColor]; | |||
} else { | |||
rootView.backgroundColor = [UIColor whiteColor]; | |||
} | |||
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; | |||
UIViewController *rootViewController = [UIViewController new]; | |||
rootViewController.view = rootView; | |||
self.window.rootViewController = rootViewController; | |||
[self.window makeKeyAndVisible]; | |||
return YES; | |||
} | |||
/// This method controls whether the `concurrentRoot`feature of React18 is turned on or off. | |||
/// | |||
/// @see: https://reactjs.org/blog/2022/03/29/react-v18.html | |||
/// @note: This requires to be rendering on Fabric (i.e. on the New Architecture). | |||
/// @return: `true` if the `concurrentRoot` feture is enabled. Otherwise, it returns `false`. | |||
- (BOOL)concurrentRootEnabled | |||
{ | |||
// Switch this bool to turn on and off the concurrent root | |||
return true; | |||
} | |||
- (NSDictionary *)prepareInitialProps | |||
{ | |||
NSMutableDictionary *initProps = [NSMutableDictionary new]; | |||
#ifdef RCT_NEW_ARCH_ENABLED | |||
initProps[kRNConcurrentRoot] = @([self concurrentRootEnabled]); | |||
#endif | |||
return initProps; | |||
} | |||
- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge | |||
{ | |||
#if DEBUG | |||
return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"]; | |||
#else | |||
return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; | |||
#endif | |||
} | |||
#if RCT_NEW_ARCH_ENABLED | |||
#pragma mark - RCTCxxBridgeDelegate | |||
- (std::unique_ptr<facebook::react::JSExecutorFactory>)jsExecutorFactoryForBridge:(RCTBridge *)bridge | |||
{ | |||
_turboModuleManager = [[RCTTurboModuleManager alloc] initWithBridge:bridge | |||
delegate:self | |||
jsInvoker:bridge.jsCallInvoker]; | |||
return RCTAppSetupDefaultJsExecutorFactory(bridge, _turboModuleManager); | |||
} | |||
#pragma mark RCTTurboModuleManagerDelegate | |||
- (Class)getModuleClassFromName:(const char *)name | |||
{ | |||
return RCTCoreModulesClassProvider(name); | |||
} | |||
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:(const std::string &)name | |||
jsInvoker:(std::shared_ptr<facebook::react::CallInvoker>)jsInvoker | |||
{ | |||
return nullptr; | |||
} | |||
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:(const std::string &)name | |||
initParams: | |||
(const facebook::react::ObjCTurboModule::InitParams &)params | |||
{ | |||
return nullptr; | |||
} | |||
- (id<RCTTurboModule>)getModuleInstanceFromClass:(Class)moduleClass | |||
{ | |||
return RCTAppSetupDefaultModuleFromClass(moduleClass); | |||
} | |||
#endif | |||
@end |
@@ -1,183 +1,330 @@ | |||
{ | |||
"images": [ | |||
"images" : [ | |||
{ | |||
"size": "60x60", | |||
"expected-size": "180", | |||
"filename": "180.png", | |||
"idiom": "iphone", | |||
"scale": "3x" | |||
"filename" : "40.png", | |||
"idiom" : "iphone", | |||
"scale" : "2x", | |||
"size" : "20x20" | |||
}, | |||
{ | |||
"size": "40x40", | |||
"expected-size": "80", | |||
"filename": "80.png", | |||
"idiom": "iphone", | |||
"scale": "2x" | |||
"filename" : "60.png", | |||
"idiom" : "iphone", | |||
"scale" : "3x", | |||
"size" : "20x20" | |||
}, | |||
{ | |||
"size": "40x40", | |||
"expected-size": "120", | |||
"filename": "120.png", | |||
"idiom": "iphone", | |||
"scale": "3x" | |||
"filename" : "29.png", | |||
"idiom" : "iphone", | |||
"scale" : "1x", | |||
"size" : "29x29" | |||
}, | |||
{ | |||
"size": "60x60", | |||
"expected-size": "120", | |||
"filename": "120.png", | |||
"idiom": "iphone", | |||
"scale": "2x" | |||
"filename" : "58.png", | |||
"idiom" : "iphone", | |||
"scale" : "2x", | |||
"size" : "29x29" | |||
}, | |||
{ | |||
"size": "57x57", | |||
"expected-size": "57", | |||
"filename": "57.png", | |||
"idiom": "iphone", | |||
"scale": "1x" | |||
"filename" : "87.png", | |||
"idiom" : "iphone", | |||
"scale" : "3x", | |||
"size" : "29x29" | |||
}, | |||
{ | |||
"size": "29x29", | |||
"expected-size": "58", | |||
"filename": "58.png", | |||
"idiom": "iphone", | |||
"scale": "2x" | |||
"filename" : "80.png", | |||
"idiom" : "iphone", | |||
"scale" : "2x", | |||
"size" : "40x40" | |||
}, | |||
{ | |||
"size": "29x29", | |||
"expected-size": "29", | |||
"filename": "29.png", | |||
"idiom": "iphone", | |||
"scale": "1x" | |||
"filename" : "120.png", | |||
"idiom" : "iphone", | |||
"scale" : "3x", | |||
"size" : "40x40" | |||
}, | |||
{ | |||
"size": "29x29", | |||
"expected-size": "87", | |||
"filename": "87.png", | |||
"idiom": "iphone", | |||
"scale": "3x" | |||
"filename" : "57.png", | |||
"idiom" : "iphone", | |||
"scale" : "1x", | |||
"size" : "57x57" | |||
}, | |||
{ | |||
"size": "57x57", | |||
"expected-size": "114", | |||
"filename": "114.png", | |||
"idiom": "iphone", | |||
"scale": "2x" | |||
"filename" : "114.png", | |||
"idiom" : "iphone", | |||
"scale" : "2x", | |||
"size" : "57x57" | |||
}, | |||
{ | |||
"size": "20x20", | |||
"expected-size": "40", | |||
"filename": "40.png", | |||
"idiom": "iphone", | |||
"scale": "2x" | |||
"filename" : "120.png", | |||
"idiom" : "iphone", | |||
"scale" : "2x", | |||
"size" : "60x60" | |||
}, | |||
{ | |||
"size": "20x20", | |||
"expected-size": "60", | |||
"filename": "60.png", | |||
"idiom": "iphone", | |||
"scale": "3x" | |||
"filename" : "180.png", | |||
"idiom" : "iphone", | |||
"scale" : "3x", | |||
"size" : "60x60" | |||
}, | |||
{ | |||
"size": "1024x1024", | |||
"filename": "1024.png", | |||
"expected-size": "1024", | |||
"idiom": "ios-marketing", | |||
"scale": "1x" | |||
"filename" : "20.png", | |||
"idiom" : "ipad", | |||
"scale" : "1x", | |||
"size" : "20x20" | |||
}, | |||
{ | |||
"size": "40x40", | |||
"expected-size": "80", | |||
"filename": "80.png", | |||
"idiom": "ipad", | |||
"scale": "2x" | |||
"filename" : "40.png", | |||
"idiom" : "ipad", | |||
"scale" : "2x", | |||
"size" : "20x20" | |||
}, | |||
{ | |||
"size": "72x72", | |||
"expected-size": "72", | |||
"filename": "72.png", | |||
"idiom": "ipad", | |||
"scale": "1x" | |||
"filename" : "29.png", | |||
"idiom" : "ipad", | |||
"scale" : "1x", | |||
"size" : "29x29" | |||
}, | |||
{ | |||
"size": "76x76", | |||
"expected-size": "152", | |||
"filename": "152.png", | |||
"idiom": "ipad", | |||
"scale": "2x" | |||
"filename" : "58.png", | |||
"idiom" : "ipad", | |||
"scale" : "2x", | |||
"size" : "29x29" | |||
}, | |||
{ | |||
"size": "50x50", | |||
"expected-size": "100", | |||
"filename": "100.png", | |||
"idiom": "ipad", | |||
"scale": "2x" | |||
"filename" : "40.png", | |||
"idiom" : "ipad", | |||
"scale" : "1x", | |||
"size" : "40x40" | |||
}, | |||
{ | |||
"size": "29x29", | |||
"expected-size": "58", | |||
"filename": "58.png", | |||
"idiom": "ipad", | |||
"scale": "2x" | |||
"filename" : "80.png", | |||
"idiom" : "ipad", | |||
"scale" : "2x", | |||
"size" : "40x40" | |||
}, | |||
{ | |||
"size": "76x76", | |||
"expected-size": "76", | |||
"filename": "76.png", | |||
"idiom": "ipad", | |||
"scale": "1x" | |||
"filename" : "50.png", | |||
"idiom" : "ipad", | |||
"scale" : "1x", | |||
"size" : "50x50" | |||
}, | |||
{ | |||
"size": "29x29", | |||
"expected-size": "29", | |||
"filename": "29.png", | |||
"idiom": "ipad", | |||
"scale": "1x" | |||
"filename" : "100.png", | |||
"idiom" : "ipad", | |||
"scale" : "2x", | |||
"size" : "50x50" | |||
}, | |||
{ | |||
"size": "50x50", | |||
"expected-size": "50", | |||
"filename": "50.png", | |||
"idiom": "ipad", | |||
"scale": "1x" | |||
"filename" : "72.png", | |||
"idiom" : "ipad", | |||
"scale" : "1x", | |||
"size" : "72x72" | |||
}, | |||
{ | |||
"size": "72x72", | |||
"expected-size": "144", | |||
"filename": "144.png", | |||
"idiom": "ipad", | |||
"scale": "2x" | |||
"filename" : "144.png", | |||
"idiom" : "ipad", | |||
"scale" : "2x", | |||
"size" : "72x72" | |||
}, | |||
{ | |||
"size": "40x40", | |||
"expected-size": "40", | |||
"filename": "40.png", | |||
"idiom": "ipad", | |||
"scale": "1x" | |||
"filename" : "76.png", | |||
"idiom" : "ipad", | |||
"scale" : "1x", | |||
"size" : "76x76" | |||
}, | |||
{ | |||
"size": "83.5x83.5", | |||
"expected-size": "167", | |||
"filename": "167.png", | |||
"idiom": "ipad", | |||
"scale": "2x" | |||
"filename" : "152.png", | |||
"idiom" : "ipad", | |||
"scale" : "2x", | |||
"size" : "76x76" | |||
}, | |||
{ | |||
"size": "20x20", | |||
"expected-size": "20", | |||
"filename": "20.png", | |||
"idiom": "ipad", | |||
"scale": "1x" | |||
"filename" : "167.png", | |||
"idiom" : "ipad", | |||
"scale" : "2x", | |||
"size" : "83.5x83.5" | |||
}, | |||
{ | |||
"size": "20x20", | |||
"expected-size": "40", | |||
"filename": "40.png", | |||
"idiom": "ipad", | |||
"scale": "2x" | |||
"filename" : "1024.png", | |||
"idiom" : "ios-marketing", | |||
"scale" : "1x", | |||
"size" : "1024x1024" | |||
}, | |||
{ | |||
"filename" : "48.png", | |||
"idiom" : "watch", | |||
"role" : "notificationCenter", | |||
"scale" : "2x", | |||
"size" : "24x24", | |||
"subtype" : "38mm" | |||
}, | |||
{ | |||
"filename" : "55.png", | |||
"idiom" : "watch", | |||
"role" : "notificationCenter", | |||
"scale" : "2x", | |||
"size" : "27.5x27.5", | |||
"subtype" : "42mm" | |||
}, | |||
{ | |||
"filename" : "58.png", | |||
"idiom" : "watch", | |||
"role" : "companionSettings", | |||
"scale" : "2x", | |||
"size" : "29x29" | |||
}, | |||
{ | |||
"filename" : "87.png", | |||
"idiom" : "watch", | |||
"role" : "companionSettings", | |||
"scale" : "3x", | |||
"size" : "29x29" | |||
}, | |||
{ | |||
"idiom" : "watch", | |||
"role" : "notificationCenter", | |||
"scale" : "2x", | |||
"size" : "33x33", | |||
"subtype" : "45mm" | |||
}, | |||
{ | |||
"filename" : "80.png", | |||
"idiom" : "watch", | |||
"role" : "appLauncher", | |||
"scale" : "2x", | |||
"size" : "40x40", | |||
"subtype" : "38mm" | |||
}, | |||
{ | |||
"filename" : "88.png", | |||
"idiom" : "watch", | |||
"role" : "appLauncher", | |||
"scale" : "2x", | |||
"size" : "44x44", | |||
"subtype" : "40mm" | |||
}, | |||
{ | |||
"idiom" : "watch", | |||
"role" : "appLauncher", | |||
"scale" : "2x", | |||
"size" : "46x46", | |||
"subtype" : "41mm" | |||
}, | |||
{ | |||
"filename" : "100.png", | |||
"idiom" : "watch", | |||
"role" : "appLauncher", | |||
"scale" : "2x", | |||
"size" : "50x50", | |||
"subtype" : "44mm" | |||
}, | |||
{ | |||
"idiom" : "watch", | |||
"role" : "appLauncher", | |||
"scale" : "2x", | |||
"size" : "51x51", | |||
"subtype" : "45mm" | |||
}, | |||
{ | |||
"filename" : "172.png", | |||
"idiom" : "watch", | |||
"role" : "quickLook", | |||
"scale" : "2x", | |||
"size" : "86x86", | |||
"subtype" : "38mm" | |||
}, | |||
{ | |||
"filename" : "196.png", | |||
"idiom" : "watch", | |||
"role" : "quickLook", | |||
"scale" : "2x", | |||
"size" : "98x98", | |||
"subtype" : "42mm" | |||
}, | |||
{ | |||
"filename" : "216.png", | |||
"idiom" : "watch", | |||
"role" : "quickLook", | |||
"scale" : "2x", | |||
"size" : "108x108", | |||
"subtype" : "44mm" | |||
}, | |||
{ | |||
"idiom" : "watch", | |||
"role" : "quickLook", | |||
"scale" : "2x", | |||
"size" : "117x117", | |||
"subtype" : "45mm" | |||
}, | |||
{ | |||
"filename" : "1024.png", | |||
"idiom" : "watch-marketing", | |||
"scale" : "1x", | |||
"size" : "1024x1024" | |||
}, | |||
{ | |||
"filename" : "16.png", | |||
"idiom" : "mac", | |||
"scale" : "1x", | |||
"size" : "16x16" | |||
}, | |||
{ | |||
"filename" : "32.png", | |||
"idiom" : "mac", | |||
"scale" : "2x", | |||
"size" : "16x16" | |||
}, | |||
{ | |||
"filename" : "32.png", | |||
"idiom" : "mac", | |||
"scale" : "1x", | |||
"size" : "32x32" | |||
}, | |||
{ | |||
"filename" : "64.png", | |||
"idiom" : "mac", | |||
"scale" : "2x", | |||
"size" : "32x32" | |||
}, | |||
{ | |||
"filename" : "128.png", | |||
"idiom" : "mac", | |||
"scale" : "1x", | |||
"size" : "128x128" | |||
}, | |||
{ | |||
"filename" : "256.png", | |||
"idiom" : "mac", | |||
"scale" : "2x", | |||
"size" : "128x128" | |||
}, | |||
{ | |||
"filename" : "256.png", | |||
"idiom" : "mac", | |||
"scale" : "1x", | |||
"size" : "256x256" | |||
}, | |||
{ | |||
"filename" : "512.png", | |||
"idiom" : "mac", | |||
"scale" : "2x", | |||
"size" : "256x256" | |||
}, | |||
{ | |||
"filename" : "512.png", | |||
"idiom" : "mac", | |||
"scale" : "1x", | |||
"size" : "512x512" | |||
}, | |||
{ | |||
"filename" : "1024.png", | |||
"idiom" : "mac", | |||
"scale" : "2x", | |||
"size" : "512x512" | |||
} | |||
], | |||
"info": { | |||
"author": "xcode", | |||
"version": 1 | |||
"info" : { | |||
"author" : "xcode", | |||
"version" : 1 | |||
} | |||
} | |||
} |
@@ -23,7 +23,7 @@ | |||
<key>CFBundleVersion</key> | |||
<string>$(CURRENT_PROJECT_VERSION)</string> | |||
<key>LSRequiresIPhoneOS</key> | |||
<true/> | |||
<true /> | |||
<key>NSAppTransportSecurity</key> | |||
<dict> | |||
<key>NSExceptionDomains</key> | |||
@@ -32,25 +32,12 @@ | |||
<key>NSFaceIDUsageDescription</key> | |||
<string>Enabling Face ID allows you quick and secure your master password.</string> | |||
<key>NSLocationWhenInUseUsageDescription</key> | |||
<string></string> | |||
<key>UIAppFonts</key> | |||
<string /> | |||
<key>UIAppFonts</key> | |||
<array> | |||
<string>AntDesign.ttf</string> | |||
<string>Entypo.ttf</string> | |||
<string>EvilIcons.ttf</string> | |||
<string>Feather.ttf</string> | |||
<string>FontAwesome.ttf</string> | |||
<string>FontAwesome5_Brands.ttf</string> | |||
<string>FontAwesome5_Regular.ttf</string> | |||
<string>FontAwesome5_Solid.ttf</string> | |||
<string>Foundation.ttf</string> | |||
<string>Ionicons.ttf</string> | |||
<string>MaterialIcons.ttf</string> | |||
<string>MaterialCommunityIcons.ttf</string> | |||
<string>Hack.ttf</string> | |||
<string>SimpleLineIcons.ttf</string> | |||
<string>Octicons.ttf</string> | |||
<string>Zocial.ttf</string> | |||
</array> | |||
<key>UILaunchStoryboardName</key> | |||
<string>LaunchScreen</string> | |||
@@ -0,0 +1,8 @@ | |||
#ifndef LessPassClipboardModule_h | |||
#define LessPassClipboardModule_h | |||
#import <React/RCTBridgeModule.h> | |||
@interface LessPassClipboardModule : NSObject <RCTBridgeModule> | |||
@end | |||
#endif |
@@ -0,0 +1,14 @@ | |||
#import "LessPassClipboardModule.h" | |||
@implementation LessPassClipboardModule | |||
RCT_EXPORT_MODULE(LessPassClipboard); | |||
RCT_EXPORT_METHOD(copy:(NSString *)content) | |||
{ | |||
UIPasteboard *clipboard = [UIPasteboard generalPasteboard]; | |||
clipboard.string = (content ? : @""); | |||
} | |||
@end |
@@ -13,7 +13,7 @@ | |||
@implementation LessPassTests | |||
- (BOOL)findSubviewInView:(UIView *)view matching:(BOOL(^)(UIView *view))test | |||
- (BOOL)findSubviewInView:(UIView *)view matching:(BOOL (^)(UIView *view))test | |||
{ | |||
if (test(view)) { | |||
return YES; | |||
@@ -34,23 +34,25 @@ | |||
__block NSString *redboxError = nil; | |||
#ifdef DEBUG | |||
RCTSetLogFunction(^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) { | |||
if (level >= RCTLogLevelError) { | |||
redboxError = message; | |||
} | |||
}); | |||
RCTSetLogFunction( | |||
^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) { | |||
if (level >= RCTLogLevelError) { | |||
redboxError = message; | |||
} | |||
}); | |||
#endif | |||
while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) { | |||
[[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; | |||
[[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; | |||
foundElement = [self findSubviewInView:vc.view matching:^BOOL(UIView *view) { | |||
if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) { | |||
return YES; | |||
} | |||
return NO; | |||
}]; | |||
foundElement = [self findSubviewInView:vc.view | |||
matching:^BOOL(UIView *view) { | |||
if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) { | |||
return YES; | |||
} | |||
return NO; | |||
}]; | |||
} | |||
#ifdef DEBUG | |||
@@ -61,5 +63,4 @@ | |||
XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS); | |||
} | |||
@end |
@@ -1,7 +1,7 @@ | |||
require_relative '../node_modules/react-native/scripts/react_native_pods' | |||
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules' | |||
platform :ios, '11.0' | |||
platform :ios, '12.4' | |||
install! 'cocoapods', :deterministic_uuids => false | |||
target 'LessPass' do | |||
@@ -12,22 +12,32 @@ target 'LessPass' do | |||
use_react_native!( | |||
:path => config[:reactNativePath], | |||
# to enable hermes on iOS, change `false` to `true` and then install pods | |||
:hermes_enabled => flags[:hermes_enabled], | |||
# Hermes is now enabled by default. Disable by setting this flag to false. | |||
# Upcoming versions of React Native may rely on get_default_flags(), but | |||
# we make it explicit here to aid in the React Native upgrade process. | |||
:hermes_enabled => true, | |||
:fabric_enabled => flags[:fabric_enabled], | |||
# Enables Flipper. | |||
# | |||
# Note that if you have use_frameworks! enabled, Flipper will not work and | |||
# you should disable the next line. | |||
:flipper_configuration => FlipperConfiguration.enabled, | |||
# An absolute path to your application root. | |||
:app_path => "#{Pod::Config.instance.installation_root}/.." | |||
) | |||
use_native_modules! | |||
target 'LessPassTests' do | |||
inherit! :complete | |||
# Pods for testing | |||
end | |||
# Enables Flipper. | |||
# | |||
# Note that if you have use_frameworks! enabled, Flipper will not work and | |||
# you should disable the next line. | |||
use_flipper!() | |||
post_install do |installer| | |||
react_native_post_install(installer) | |||
react_native_post_install( | |||
installer, | |||
# Set `mac_catalyst_enabled` to `true` in order to apply patches | |||
# necessary for Mac Catalyst builds | |||
:mac_catalyst_enabled => false | |||
) | |||
__apply_Xcode_12_5_M1_post_install_workaround(installer) | |||
end | |||
end | |||
end |
@@ -2,19 +2,19 @@ PODS: | |||
- boost (1.76.0) | |||
- CocoaAsyncSocket (7.6.5) | |||
- DoubleConversion (1.1.6) | |||
- FBLazyVector (0.68.2) | |||
- FBReactNativeSpec (0.68.2): | |||
- RCT-Folly (= 2021.06.28.00-v2) | |||
- RCTRequired (= 0.68.2) | |||
- RCTTypeSafety (= 0.68.2) | |||
- React-Core (= 0.68.2) | |||
- React-jsi (= 0.68.2) | |||
- ReactCommon/turbomodule/core (= 0.68.2) | |||
- FBLazyVector (0.70.2) | |||
- FBReactNativeSpec (0.70.2): | |||
- RCT-Folly (= 2021.07.22.00) | |||
- RCTRequired (= 0.70.2) | |||
- RCTTypeSafety (= 0.70.2) | |||
- React-Core (= 0.70.2) | |||
- React-jsi (= 0.70.2) | |||
- ReactCommon/turbomodule/core (= 0.70.2) | |||
- Flipper (0.125.0): | |||
- Flipper-Folly (~> 2.6) | |||
- Flipper-RSocket (~> 1.4) | |||
- Flipper-Boost-iOSX (1.76.0.1.11) | |||
- Flipper-DoubleConversion (3.2.0) | |||
- Flipper-DoubleConversion (3.2.0.1) | |||
- Flipper-Fmt (7.1.7) | |||
- Flipper-Folly (2.6.10): | |||
- Flipper-Boost-iOSX | |||
@@ -23,7 +23,7 @@ PODS: | |||
- Flipper-Glog | |||
- libevent (~> 2.1.12) | |||
- OpenSSL-Universal (= 1.1.1100) | |||
- Flipper-Glog (0.5.0.4) | |||
- Flipper-Glog (0.5.0.5) | |||
- Flipper-PeerTalk (0.0.4) | |||
- Flipper-RSocket (1.4.3): | |||
- Flipper-Folly (~> 2.6) | |||
@@ -73,300 +73,317 @@ PODS: | |||
- FlipperKit/FlipperKitNetworkPlugin | |||
- fmt (6.2.1) | |||
- glog (0.3.5) | |||
- hermes-engine (0.70.2) | |||
- libevent (2.1.12) | |||
- OpenSSL-Universal (1.1.1100) | |||
- RCT-Folly (2021.06.28.00-v2): | |||
- RCT-Folly (2021.07.22.00): | |||
- boost | |||
- DoubleConversion | |||
- fmt (~> 6.2.1) | |||
- glog | |||
- RCT-Folly/Default (= 2021.06.28.00-v2) | |||
- RCT-Folly/Default (2021.06.28.00-v2): | |||
- RCT-Folly/Default (= 2021.07.22.00) | |||
- RCT-Folly/Default (2021.07.22.00): | |||
- boost | |||
- DoubleConversion | |||
- fmt (~> 6.2.1) | |||
- glog | |||
- RCTRequired (0.68.2) | |||
- RCTTypeSafety (0.68.2): | |||
- FBLazyVector (= 0.68.2) | |||
- RCT-Folly (= 2021.06.28.00-v2) | |||
- RCTRequired (= 0.68.2) | |||
- React-Core (= 0.68.2) | |||
- React (0.68.2): | |||
- React-Core (= 0.68.2) | |||
- React-Core/DevSupport (= 0.68.2) | |||
- React-Core/RCTWebSocket (= 0.68.2) | |||
- React-RCTActionSheet (= 0.68.2) | |||
- React-RCTAnimation (= 0.68.2) | |||
- React-RCTBlob (= 0.68.2) | |||
- React-RCTImage (= 0.68.2) | |||
- React-RCTLinking (= 0.68.2) | |||
- React-RCTNetwork (= 0.68.2) | |||
- React-RCTSettings (= 0.68.2) | |||
- React-RCTText (= 0.68.2) | |||
- React-RCTVibration (= 0.68.2) | |||
- React-callinvoker (0.68.2) | |||
- React-Codegen (0.68.2): | |||
- FBReactNativeSpec (= 0.68.2) | |||
- RCT-Folly (= 2021.06.28.00-v2) | |||
- RCTRequired (= 0.68.2) | |||
- RCTTypeSafety (= 0.68.2) | |||
- React-Core (= 0.68.2) | |||
- React-jsi (= 0.68.2) | |||
- React-jsiexecutor (= 0.68.2) | |||
- ReactCommon/turbomodule/core (= 0.68.2) | |||
- React-Core (0.68.2): | |||
- RCT-Folly/Futures (2021.07.22.00): | |||
- boost | |||
- DoubleConversion | |||
- fmt (~> 6.2.1) | |||
- glog | |||
- RCT-Folly (= 2021.06.28.00-v2) | |||
- React-Core/Default (= 0.68.2) | |||
- React-cxxreact (= 0.68.2) | |||
- React-jsi (= 0.68.2) | |||
- React-jsiexecutor (= 0.68.2) | |||
- React-perflogger (= 0.68.2) | |||
- libevent | |||
- RCTRequired (0.70.2) | |||
- RCTTypeSafety (0.70.2): | |||
- FBLazyVector (= 0.70.2) | |||
- RCTRequired (= 0.70.2) | |||
- React-Core (= 0.70.2) | |||
- React (0.70.2): | |||
- React-Core (= 0.70.2) | |||
- React-Core/DevSupport (= 0.70.2) | |||
- React-Core/RCTWebSocket (= 0.70.2) | |||
- React-RCTActionSheet (= 0.70.2) | |||
- React-RCTAnimation (= 0.70.2) | |||
- React-RCTBlob (= 0.70.2) | |||
- React-RCTImage (= 0.70.2) | |||
- React-RCTLinking (= 0.70.2) | |||
- React-RCTNetwork (= 0.70.2) | |||
- React-RCTSettings (= 0.70.2) | |||
- React-RCTText (= 0.70.2) | |||
- React-RCTVibration (= 0.70.2) | |||
- React-bridging (0.70.2): | |||
- RCT-Folly (= 2021.07.22.00) | |||
- React-jsi (= 0.70.2) | |||
- React-callinvoker (0.70.2) | |||
- React-Codegen (0.70.2): | |||
- FBReactNativeSpec (= 0.70.2) | |||
- RCT-Folly (= 2021.07.22.00) | |||
- RCTRequired (= 0.70.2) | |||
- RCTTypeSafety (= 0.70.2) | |||
- React-Core (= 0.70.2) | |||
- React-jsi (= 0.70.2) | |||
- React-jsiexecutor (= 0.70.2) | |||
- ReactCommon/turbomodule/core (= 0.70.2) | |||
- React-Core (0.70.2): | |||
- glog | |||
- RCT-Folly (= 2021.07.22.00) | |||
- React-Core/Default (= 0.70.2) | |||
- React-cxxreact (= 0.70.2) | |||
- React-jsi (= 0.70.2) | |||
- React-jsiexecutor (= 0.70.2) | |||
- React-perflogger (= 0.70.2) | |||
- Yoga | |||
- React-Core/CoreModulesHeaders (0.68.2): | |||
- React-Core/CoreModulesHeaders (0.70.2): | |||
- glog | |||
- RCT-Folly (= 2021.06.28.00-v2) | |||
- RCT-Folly (= 2021.07.22.00) | |||
- React-Core/Default | |||
- React-cxxreact (= 0.68.2) | |||
- React-jsi (= 0.68.2) | |||
- React-jsiexecutor (= 0.68.2) | |||
- React-perflogger (= 0.68.2) | |||
- React-cxxreact (= 0.70.2) | |||
- React-jsi (= 0.70.2) | |||
- React-jsiexecutor (= 0.70.2) | |||
- React-perflogger (= 0.70.2) | |||
- Yoga | |||
- React-Core/Default (0.68.2): | |||
- React-Core/Default (0.70.2): | |||
- glog | |||
- RCT-Folly (= 2021.06.28.00-v2) | |||
- React-cxxreact (= 0.68.2) | |||
- React-jsi (= 0.68.2) | |||
- React-jsiexecutor (= 0.68.2) | |||
- React-perflogger (= 0.68.2) | |||
- RCT-Folly (= 2021.07.22.00) | |||
- React-cxxreact (= 0.70.2) | |||
- React-jsi (= 0.70.2) | |||
- React-jsiexecutor (= 0.70.2) | |||
- React-perflogger (= 0.70.2) | |||
- Yoga | |||
- React-Core/DevSupport (0.68.2): | |||
- React-Core/DevSupport (0.70.2): | |||
- glog | |||
- RCT-Folly (= 2021.06.28.00-v2) | |||
- React-Core/Default (= 0.68.2) | |||
- React-Core/RCTWebSocket (= 0.68.2) | |||
- React-cxxreact (= 0.68.2) | |||
- React-jsi (= 0.68.2) | |||
- React-jsiexecutor (= 0.68.2) | |||
- React-jsinspector (= 0.68.2) | |||
- React-perflogger (= 0.68.2) | |||
- RCT-Folly (= 2021.07.22.00) | |||
- React-Core/Default (= 0.70.2) | |||
- React-Core/RCTWebSocket (= 0.70.2) | |||
- React-cxxreact (= 0.70.2) | |||
- React-jsi (= 0.70.2) | |||
- React-jsiexecutor (= 0.70.2) | |||
- React-jsinspector (= 0.70.2) | |||
- React-perflogger (= 0.70.2) | |||
- Yoga | |||
- React-Core/RCTActionSheetHeaders (0.68.2): | |||
- React-Core/RCTActionSheetHeaders (0.70.2): | |||
- glog | |||
- RCT-Folly (= 2021.06.28.00-v2) | |||
- RCT-Folly (= 2021.07.22.00) | |||
- React-Core/Default | |||
- React-cxxreact (= 0.68.2) | |||
- React-jsi (= 0.68.2) | |||
- React-jsiexecutor (= 0.68.2) | |||
- React-perflogger (= 0.68.2) | |||
- React-cxxreact (= 0.70.2) | |||
- React-jsi (= 0.70.2) | |||
- React-jsiexecutor (= 0.70.2) | |||
- React-perflogger (= 0.70.2) | |||
- Yoga | |||
- React-Core/RCTAnimationHeaders (0.68.2): | |||
- React-Core/RCTAnimationHeaders (0.70.2): | |||
- glog | |||
- RCT-Folly (= 2021.06.28.00-v2) | |||
- RCT-Folly (= 2021.07.22.00) | |||
- React-Core/Default | |||
- React-cxxreact (= 0.68.2) | |||
- React-jsi (= 0.68.2) | |||
- React-jsiexecutor (= 0.68.2) | |||
- React-perflogger (= 0.68.2) | |||
- React-cxxreact (= 0.70.2) | |||
- React-jsi (= 0.70.2) | |||
- React-jsiexecutor (= 0.70.2) | |||
- React-perflogger (= 0.70.2) | |||
- Yoga | |||
- React-Core/RCTBlobHeaders (0.68.2): | |||
- React-Core/RCTBlobHeaders (0.70.2): | |||
- glog | |||
- RCT-Folly (= 2021.06.28.00-v2) | |||
- RCT-Folly (= 2021.07.22.00) | |||
- React-Core/Default | |||
- React-cxxreact (= 0.68.2) | |||
- React-jsi (= 0.68.2) | |||
- React-jsiexecutor (= 0.68.2) | |||
- React-perflogger (= 0.68.2) | |||
- React-cxxreact (= 0.70.2) | |||
- React-jsi (= 0.70.2) | |||
- React-jsiexecutor (= 0.70.2) | |||
- React-perflogger (= 0.70.2) | |||
- Yoga | |||
- React-Core/RCTImageHeaders (0.68.2): | |||
- React-Core/RCTImageHeaders (0.70.2): | |||
- glog | |||
- RCT-Folly (= 2021.06.28.00-v2) | |||
- RCT-Folly (= 2021.07.22.00) | |||
- React-Core/Default | |||
- React-cxxreact (= 0.68.2) | |||
- React-jsi (= 0.68.2) | |||
- React-jsiexecutor (= 0.68.2) | |||
- React-perflogger (= 0.68.2) | |||
- React-cxxreact (= 0.70.2) | |||
- React-jsi (= 0.70.2) | |||
- React-jsiexecutor (= 0.70.2) | |||
- React-perflogger (= 0.70.2) | |||
- Yoga | |||
- React-Core/RCTLinkingHeaders (0.68.2): | |||
- React-Core/RCTLinkingHeaders (0.70.2): | |||
- glog | |||
- RCT-Folly (= 2021.06.28.00-v2) | |||
- RCT-Folly (= 2021.07.22.00) | |||
- React-Core/Default | |||
- React-cxxreact (= 0.68.2) | |||
- React-jsi (= 0.68.2) | |||
- React-jsiexecutor (= 0.68.2) | |||
- React-perflogger (= 0.68.2) | |||
- React-cxxreact (= 0.70.2) | |||
- React-jsi (= 0.70.2) | |||
- React-jsiexecutor (= 0.70.2) | |||
- React-perflogger (= 0.70.2) | |||
- Yoga | |||
- React-Core/RCTNetworkHeaders (0.68.2): | |||
- React-Core/RCTNetworkHeaders (0.70.2): | |||
- glog | |||
- RCT-Folly (= 2021.06.28.00-v2) | |||
- RCT-Folly (= 2021.07.22.00) | |||
- React-Core/Default | |||
- React-cxxreact (= 0.68.2) | |||
- React-jsi (= 0.68.2) | |||
- React-jsiexecutor (= 0.68.2) | |||
- React-perflogger (= 0.68.2) | |||
- React-cxxreact (= 0.70.2) | |||
- React-jsi (= 0.70.2) | |||
- React-jsiexecutor (= 0.70.2) | |||
- React-perflogger (= 0.70.2) | |||
- Yoga | |||
- React-Core/RCTSettingsHeaders (0.68.2): | |||
- React-Core/RCTSettingsHeaders (0.70.2): | |||
- glog | |||
- RCT-Folly (= 2021.06.28.00-v2) | |||
- RCT-Folly (= 2021.07.22.00) | |||
- React-Core/Default | |||
- React-cxxreact (= 0.68.2) | |||
- React-jsi (= 0.68.2) | |||
- React-jsiexecutor (= 0.68.2) | |||
- React-perflogger (= 0.68.2) | |||
- React-cxxreact (= 0.70.2) | |||
- React-jsi (= 0.70.2) | |||
- React-jsiexecutor (= 0.70.2) | |||
- React-perflogger (= 0.70.2) | |||
- Yoga | |||
- React-Core/RCTTextHeaders (0.68.2): | |||
- React-Core/RCTTextHeaders (0.70.2): | |||
- glog | |||
- RCT-Folly (= 2021.06.28.00-v2) | |||
- RCT-Folly (= 2021.07.22.00) | |||
- React-Core/Default | |||
- React-cxxreact (= 0.68.2) | |||
- React-jsi (= 0.68.2) | |||
- React-jsiexecutor (= 0.68.2) | |||
- React-perflogger (= 0.68.2) | |||
- React-cxxreact (= 0.70.2) | |||
- React-jsi (= 0.70.2) | |||
- React-jsiexecutor (= 0.70.2) | |||
- React-perflogger (= 0.70.2) | |||
- Yoga | |||
- React-Core/RCTVibrationHeaders (0.68.2): | |||
- React-Core/RCTVibrationHeaders (0.70.2): | |||
- glog | |||
- RCT-Folly (= 2021.06.28.00-v2) | |||
- RCT-Folly (= 2021.07.22.00) | |||
- React-Core/Default | |||
- React-cxxreact (= 0.68.2) | |||
- React-jsi (= 0.68.2) | |||
- React-jsiexecutor (= 0.68.2) | |||
- React-perflogger (= 0.68.2) | |||
- React-cxxreact (= 0.70.2) | |||
- React-jsi (= 0.70.2) | |||
- React-jsiexecutor (= 0.70.2) | |||
- React-perflogger (= 0.70.2) | |||
- Yoga | |||
- React-Core/RCTWebSocket (0.68.2): | |||
- React-Core/RCTWebSocket (0.70.2): | |||
- glog | |||
- RCT-Folly (= 2021.06.28.00-v2) | |||
- React-Core/Default (= 0.68.2) | |||
- React-cxxreact (= 0.68.2) | |||
- React-jsi (= 0.68.2) | |||
- React-jsiexecutor (= 0.68.2) | |||
- React-perflogger (= 0.68.2) | |||
- RCT-Folly (= 2021.07.22.00) | |||
- React-Core/Default (= 0.70.2) | |||
- React-cxxreact (= 0.70.2) | |||
- React-jsi (= 0.70.2) | |||
- React-jsiexecutor (= 0.70.2) | |||
- React-perflogger (= 0.70.2) | |||
- Yoga | |||
- React-CoreModules (0.68.2): | |||
- RCT-Folly (= 2021.06.28.00-v2) | |||
- RCTTypeSafety (= 0.68.2) | |||
- React-Codegen (= 0.68.2) | |||
- React-Core/CoreModulesHeaders (= 0.68.2) | |||
- React-jsi (= 0.68.2) | |||
- React-RCTImage (= 0.68.2) | |||
- ReactCommon/turbomodule/core (= 0.68.2) | |||
- React-cxxreact (0.68.2): | |||
- React-CoreModules (0.70.2): | |||
- RCT-Folly (= 2021.07.22.00) | |||
- RCTTypeSafety (= 0.70.2) | |||
- React-Codegen (= 0.70.2) | |||
- React-Core/CoreModulesHeaders (= 0.70.2) | |||
- React-jsi (= 0.70.2) | |||
- React-RCTImage (= 0.70.2) | |||
- ReactCommon/turbomodule/core (= 0.70.2) | |||
- React-cxxreact (0.70.2): | |||
- boost (= 1.76.0) | |||
- DoubleConversion | |||
- glog | |||
- RCT-Folly (= 2021.06.28.00-v2) | |||
- React-callinvoker (= 0.68.2) | |||
- React-jsi (= 0.68.2) | |||
- React-jsinspector (= 0.68.2) | |||
- React-logger (= 0.68.2) | |||
- React-perflogger (= 0.68.2) | |||
- React-runtimeexecutor (= 0.68.2) | |||
- React-jsi (0.68.2): | |||
- RCT-Folly (= 2021.07.22.00) | |||
- React-callinvoker (= 0.70.2) | |||
- React-jsi (= 0.70.2) | |||
- React-jsinspector (= 0.70.2) | |||
- React-logger (= 0.70.2) | |||
- React-perflogger (= 0.70.2) | |||
- React-runtimeexecutor (= 0.70.2) | |||
- React-hermes (0.70.2): | |||
- DoubleConversion | |||
- glog | |||
- hermes-engine | |||
- RCT-Folly (= 2021.07.22.00) | |||
- RCT-Folly/Futures (= 2021.07.22.00) | |||
- React-cxxreact (= 0.70.2) | |||
- React-jsi (= 0.70.2) | |||
- React-jsiexecutor (= 0.70.2) | |||
- React-jsinspector (= 0.70.2) | |||
- React-perflogger (= 0.70.2) | |||
- React-jsi (0.70.2): | |||
- boost (= 1.76.0) | |||
- DoubleConversion | |||
- glog | |||
- RCT-Folly (= 2021.06.28.00-v2) | |||
- React-jsi/Default (= 0.68.2) | |||
- React-jsi/Default (0.68.2): | |||
- RCT-Folly (= 2021.07.22.00) | |||
- React-jsi/Default (= 0.70.2) | |||
- React-jsi/Default (0.70.2): | |||
- boost (= 1.76.0) | |||
- DoubleConversion | |||
- glog | |||
- RCT-Folly (= 2021.06.28.00-v2) | |||
- React-jsiexecutor (0.68.2): | |||
- RCT-Folly (= 2021.07.22.00) | |||
- React-jsiexecutor (0.70.2): | |||
- DoubleConversion | |||
- glog | |||
- RCT-Folly (= 2021.06.28.00-v2) | |||
- React-cxxreact (= 0.68.2) | |||
- React-jsi (= 0.68.2) | |||
- React-perflogger (= 0.68.2) | |||
- React-jsinspector (0.68.2) | |||
- React-logger (0.68.2): | |||
- RCT-Folly (= 2021.07.22.00) | |||
- React-cxxreact (= 0.70.2) | |||
- React-jsi (= 0.70.2) | |||
- React-perflogger (= 0.70.2) | |||
- React-jsinspector (0.70.2) | |||
- React-logger (0.70.2): | |||
- glog | |||
- react-native-safe-area-context (4.2.5): | |||
- react-native-safe-area-context (4.4.1): | |||
- RCT-Folly | |||
- RCTRequired | |||
- RCTTypeSafety | |||
- React | |||
- React-Core | |||
- ReactCommon/turbomodule/core | |||
- React-perflogger (0.68.2) | |||
- React-RCTActionSheet (0.68.2): | |||
- React-Core/RCTActionSheetHeaders (= 0.68.2) | |||
- React-RCTAnimation (0.68.2): | |||
- RCT-Folly (= 2021.06.28.00-v2) | |||
- RCTTypeSafety (= 0.68.2) | |||
- React-Codegen (= 0.68.2) | |||
- React-Core/RCTAnimationHeaders (= 0.68.2) | |||
- React-jsi (= 0.68.2) | |||
- ReactCommon/turbomodule/core (= 0.68.2) | |||
- React-RCTBlob (0.68.2): | |||
- RCT-Folly (= 2021.06.28.00-v2) | |||
- React-Codegen (= 0.68.2) | |||
- React-Core/RCTBlobHeaders (= 0.68.2) | |||
- React-Core/RCTWebSocket (= 0.68.2) | |||
- React-jsi (= 0.68.2) | |||
- React-RCTNetwork (= 0.68.2) | |||
- ReactCommon/turbomodule/core (= 0.68.2) | |||
- React-RCTImage (0.68.2): | |||
- RCT-Folly (= 2021.06.28.00-v2) | |||
- RCTTypeSafety (= 0.68.2) | |||
- React-Codegen (= 0.68.2) | |||
- React-Core/RCTImageHeaders (= 0.68.2) | |||
- React-jsi (= 0.68.2) | |||
- React-RCTNetwork (= 0.68.2) | |||
- ReactCommon/turbomodule/core (= 0.68.2) | |||
- React-RCTLinking (0.68.2): | |||
- React-Codegen (= 0.68.2) | |||
- React-Core/RCTLinkingHeaders (= 0.68.2) | |||
- React-jsi (= 0.68.2) | |||
- ReactCommon/turbomodule/core (= 0.68.2) | |||
- React-RCTNetwork (0.68.2): | |||
- RCT-Folly (= 2021.06.28.00-v2) | |||
- RCTTypeSafety (= 0.68.2) | |||
- React-Codegen (= 0.68.2) | |||
- React-Core/RCTNetworkHeaders (= 0.68.2) | |||
- React-jsi (= 0.68.2) | |||
- ReactCommon/turbomodule/core (= 0.68.2) | |||
- React-RCTSettings (0.68.2): | |||
- RCT-Folly (= 2021.06.28.00-v2) | |||
- RCTTypeSafety (= 0.68.2) | |||
- React-Codegen (= 0.68.2) | |||
- React-Core/RCTSettingsHeaders (= 0.68.2) | |||
- React-jsi (= 0.68.2) | |||
- ReactCommon/turbomodule/core (= 0.68.2) | |||
- React-RCTText (0.68.2): | |||
- React-Core/RCTTextHeaders (= 0.68.2) | |||
- React-RCTVibration (0.68.2): | |||
- RCT-Folly (= 2021.06.28.00-v2) | |||
- React-Codegen (= 0.68.2) | |||
- React-Core/RCTVibrationHeaders (= 0.68.2) | |||
- React-jsi (= 0.68.2) | |||
- ReactCommon/turbomodule/core (= 0.68.2) | |||
- React-runtimeexecutor (0.68.2): | |||
- React-jsi (= 0.68.2) | |||
- ReactCommon/turbomodule/core (0.68.2): | |||
- React-perflogger (0.70.2) | |||
- React-RCTActionSheet (0.70.2): | |||
- React-Core/RCTActionSheetHeaders (= 0.70.2) | |||
- React-RCTAnimation (0.70.2): | |||
- RCT-Folly (= 2021.07.22.00) | |||
- RCTTypeSafety (= 0.70.2) | |||
- React-Codegen (= 0.70.2) | |||
- React-Core/RCTAnimationHeaders (= 0.70.2) | |||
- React-jsi (= 0.70.2) | |||
- ReactCommon/turbomodule/core (= 0.70.2) | |||
- React-RCTBlob (0.70.2): | |||
- RCT-Folly (= 2021.07.22.00) | |||
- React-Codegen (= 0.70.2) | |||
- React-Core/RCTBlobHeaders (= 0.70.2) | |||
- React-Core/RCTWebSocket (= 0.70.2) | |||
- React-jsi (= 0.70.2) | |||
- React-RCTNetwork (= 0.70.2) | |||
- ReactCommon/turbomodule/core (= 0.70.2) | |||
- React-RCTImage (0.70.2): | |||
- RCT-Folly (= 2021.07.22.00) | |||
- RCTTypeSafety (= 0.70.2) | |||
- React-Codegen (= 0.70.2) | |||
- React-Core/RCTImageHeaders (= 0.70.2) | |||
- React-jsi (= 0.70.2) | |||
- React-RCTNetwork (= 0.70.2) | |||
- ReactCommon/turbomodule/core (= 0.70.2) | |||
- React-RCTLinking (0.70.2): | |||
- React-Codegen (= 0.70.2) | |||
- React-Core/RCTLinkingHeaders (= 0.70.2) | |||
- React-jsi (= 0.70.2) | |||
- ReactCommon/turbomodule/core (= 0.70.2) | |||
- React-RCTNetwork (0.70.2): | |||
- RCT-Folly (= 2021.07.22.00) | |||
- RCTTypeSafety (= 0.70.2) | |||
- React-Codegen (= 0.70.2) | |||
- React-Core/RCTNetworkHeaders (= 0.70.2) | |||
- React-jsi (= 0.70.2) | |||
- ReactCommon/turbomodule/core (= 0.70.2) | |||
- React-RCTSettings (0.70.2): | |||
- RCT-Folly (= 2021.07.22.00) | |||
- RCTTypeSafety (= 0.70.2) | |||
- React-Codegen (= 0.70.2) | |||
- React-Core/RCTSettingsHeaders (= 0.70.2) | |||
- React-jsi (= 0.70.2) | |||
- ReactCommon/turbomodule/core (= 0.70.2) | |||
- React-RCTText (0.70.2): | |||
- React-Core/RCTTextHeaders (= 0.70.2) | |||
- React-RCTVibration (0.70.2): | |||
- RCT-Folly (= 2021.07.22.00) | |||
- React-Codegen (= 0.70.2) | |||
- React-Core/RCTVibrationHeaders (= 0.70.2) | |||
- React-jsi (= 0.70.2) | |||
- ReactCommon/turbomodule/core (= 0.70.2) | |||
- React-runtimeexecutor (0.70.2): | |||
- React-jsi (= 0.70.2) | |||
- ReactCommon/turbomodule/core (0.70.2): | |||
- DoubleConversion | |||
- glog | |||
- RCT-Folly (= 2021.06.28.00-v2) | |||
- React-callinvoker (= 0.68.2) | |||
- React-Core (= 0.68.2) | |||
- React-cxxreact (= 0.68.2) | |||
- React-jsi (= 0.68.2) | |||
- React-logger (= 0.68.2) | |||
- React-perflogger (= 0.68.2) | |||
- RCT-Folly (= 2021.07.22.00) | |||
- React-bridging (= 0.70.2) | |||
- React-callinvoker (= 0.70.2) | |||
- React-Core (= 0.70.2) | |||
- React-cxxreact (= 0.70.2) | |||
- React-jsi (= 0.70.2) | |||
- React-logger (= 0.70.2) | |||
- React-perflogger (= 0.70.2) | |||
- RNCAsyncStorage (1.12.1): | |||
- React-Core | |||
- RNCClipboard (1.5.1): | |||
- RNGestureHandler (2.7.0): | |||
- React-Core | |||
- RNCMaskedView (0.1.11): | |||
- React | |||
- RNGestureHandler (2.4.2): | |||
- React-Core | |||
- RNKeychain (8.0.0): | |||
- RNKeychain (8.1.1): | |||
- React-Core | |||
- RNScreens (3.13.1): | |||
- RNScreens (3.18.0): | |||
- React-Core | |||
- React-RCTImage | |||
- RNVectorIcons (9.1.0): | |||
- RNVectorIcons (9.2.0): | |||
- React-Core | |||
- SocketRocket (0.6.0) | |||
- TouchID (4.4.1): | |||
@@ -382,10 +399,10 @@ DEPENDENCIES: | |||
- FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`) | |||
- Flipper (= 0.125.0) | |||
- Flipper-Boost-iOSX (= 1.76.0.1.11) | |||
- Flipper-DoubleConversion (= 3.2.0) | |||
- Flipper-DoubleConversion (= 3.2.0.1) | |||
- Flipper-Fmt (= 7.1.7) | |||
- Flipper-Folly (= 2.6.10) | |||
- Flipper-Glog (= 0.5.0.4) | |||
- Flipper-Glog (= 0.5.0.5) | |||
- Flipper-PeerTalk (= 0.0.4) | |||
- Flipper-RSocket (= 1.4.3) | |||
- FlipperKit (= 0.125.0) | |||
@@ -402,11 +419,14 @@ DEPENDENCIES: | |||
- FlipperKit/FlipperKitUserDefaultsPlugin (= 0.125.0) | |||
- FlipperKit/SKIOSNetworkPlugin (= 0.125.0) | |||
- glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) | |||
- hermes-engine (from `../node_modules/react-native/sdks/hermes/hermes-engine.podspec`) | |||
- libevent (~> 2.1.12) | |||
- OpenSSL-Universal (= 1.1.1100) | |||
- RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) | |||
- RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`) | |||
- RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`) | |||
- React (from `../node_modules/react-native/`) | |||
- React-bridging (from `../node_modules/react-native/ReactCommon`) | |||
- React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`) | |||
- React-Codegen (from `build/generated/ios`) | |||
- React-Core (from `../node_modules/react-native/`) | |||
@@ -414,6 +434,7 @@ DEPENDENCIES: | |||
- React-Core/RCTWebSocket (from `../node_modules/react-native/`) | |||
- React-CoreModules (from `../node_modules/react-native/React/CoreModules`) | |||
- React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`) | |||
- React-hermes (from `../node_modules/react-native/ReactCommon/hermes`) | |||
- React-jsi (from `../node_modules/react-native/ReactCommon/jsi`) | |||
- React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`) | |||
- React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`) | |||
@@ -432,8 +453,6 @@ DEPENDENCIES: | |||
- React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`) | |||
- ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) | |||
- "RNCAsyncStorage (from `../node_modules/@react-native-community/async-storage`)" | |||
- "RNCClipboard (from `../node_modules/@react-native-community/clipboard`)" | |||
- "RNCMaskedView (from `../node_modules/@react-native-community/masked-view`)" | |||
- RNGestureHandler (from `../node_modules/react-native-gesture-handler`) | |||
- RNKeychain (from `../node_modules/react-native-keychain`) | |||
- RNScreens (from `../node_modules/react-native-screens`) | |||
@@ -470,6 +489,8 @@ EXTERNAL SOURCES: | |||
:path: "../node_modules/react-native/React/FBReactNativeSpec" | |||
glog: | |||
:podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" | |||
hermes-engine: | |||
:podspec: "../node_modules/react-native/sdks/hermes/hermes-engine.podspec" | |||
RCT-Folly: | |||
:podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec" | |||
RCTRequired: | |||
@@ -478,6 +499,8 @@ EXTERNAL SOURCES: | |||
:path: "../node_modules/react-native/Libraries/TypeSafety" | |||
React: | |||
:path: "../node_modules/react-native/" | |||
React-bridging: | |||
:path: "../node_modules/react-native/ReactCommon" | |||
React-callinvoker: | |||
:path: "../node_modules/react-native/ReactCommon/callinvoker" | |||
React-Codegen: | |||
@@ -488,6 +511,8 @@ EXTERNAL SOURCES: | |||
:path: "../node_modules/react-native/React/CoreModules" | |||
React-cxxreact: | |||
:path: "../node_modules/react-native/ReactCommon/cxxreact" | |||
React-hermes: | |||
:path: "../node_modules/react-native/ReactCommon/hermes" | |||
React-jsi: | |||
:path: "../node_modules/react-native/ReactCommon/jsi" | |||
React-jsiexecutor: | |||
@@ -524,10 +549,6 @@ EXTERNAL SOURCES: | |||
:path: "../node_modules/react-native/ReactCommon" | |||
RNCAsyncStorage: | |||
:path: "../node_modules/@react-native-community/async-storage" | |||
RNCClipboard: | |||
:path: "../node_modules/@react-native-community/clipboard" | |||
RNCMaskedView: | |||
:path: "../node_modules/@react-native-community/masked-view" | |||
RNGestureHandler: | |||
:path: "../node_modules/react-native-gesture-handler" | |||
RNKeychain: | |||
@@ -544,60 +565,61 @@ EXTERNAL SOURCES: | |||
SPEC CHECKSUMS: | |||
boost: a7c83b31436843459a1961bfd74b96033dc77234 | |||
CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99 | |||
DoubleConversion: 831926d9b8bf8166fd87886c4abab286c2422662 | |||
FBLazyVector: a7a655862f6b09625d11c772296b01cd5164b648 | |||
FBReactNativeSpec: 81ce99032d5b586fddd6a38d450f8595f7e04be4 | |||
DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54 | |||
FBLazyVector: 0507edc21c06f1650c591f0981c846445469373b | |||
FBReactNativeSpec: 698ef8604615cfa7ae2119e9ca4ed7687a6ae62e | |||
Flipper: 26fc4b7382499f1281eb8cb921e5c3ad6de91fe0 | |||
Flipper-Boost-iOSX: fd1e2b8cbef7e662a122412d7ac5f5bea715403c | |||
Flipper-DoubleConversion: 3d3d04a078d4f3a1b6c6916587f159dc11f232c4 | |||
Flipper-DoubleConversion: 2dc99b02f658daf147069aad9dbd29d8feb06d30 | |||
Flipper-Fmt: 60cbdd92fc254826e61d669a5d87ef7015396a9b | |||
Flipper-Folly: 584845625005ff068a6ebf41f857f468decd26b3 | |||
Flipper-Glog: 87bc98ff48de90cb5b0b5114ed3da79d85ee2dd4 | |||
Flipper-Glog: 70c50ce58ddaf67dc35180db05f191692570f446 | |||
Flipper-PeerTalk: 116d8f857dc6ef55c7a5a75ea3ceaafe878aadc9 | |||
Flipper-RSocket: d9d9ade67cbecf6ac10730304bf5607266dd2541 | |||
FlipperKit: cbdee19bdd4e7f05472a66ce290f1b729ba3cb86 | |||
fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 | |||
glog: 5337263514dd6f09803962437687240c5dc39aa4 | |||
glog: 04b94705f318337d7ead9e6d17c019bd9b1f6b1b | |||
hermes-engine: f9312a2ea8036d03b63568ebf392314f4fa8b474 | |||
libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 | |||
OpenSSL-Universal: ebc357f1e6bc71fa463ccb2fe676756aff50e88c | |||
RCT-Folly: a21c126816d8025b547704b777a2ba552f3d9fa9 | |||
RCTRequired: 3e917ea5377751094f38145fdece525aa90545a0 | |||
RCTTypeSafety: c43c072a4bd60feb49a9570b0517892b4305c45e | |||
React: 176dd882de001854ced260fad41bb68a31aa4bd0 | |||
React-callinvoker: c2864d1818d6e64928d2faf774a3800dfc38fe1f | |||
React-Codegen: 98b6f97f0a7abf7d67e4ce435c77c05b7a95cf05 | |||
React-Core: fdaa2916b1c893f39f02cff0476d1fb0cab1e352 | |||
React-CoreModules: fd8705b80699ec36c2cdd635c2ce9d874b9cfdfc | |||
React-cxxreact: 1832d971f7b0cb2c7b943dc0ec962762c90c906e | |||
React-jsi: 72af715135abe8c3f0dcf3b2548b71d048b69a7e | |||
React-jsiexecutor: b7b553412f2ec768fe6c8f27cd6bafdb9d8719e6 | |||
React-jsinspector: c5989c77cb89ae6a69561095a61cce56a44ae8e8 | |||
React-logger: a0833912d93b36b791b7a521672d8ee89107aff1 | |||
react-native-safe-area-context: ebf8c413eb8b5f7c392a036a315eb7b46b96845f | |||
React-perflogger: a18b4f0bd933b8b24ecf9f3c54f9bf65180f3fe6 | |||
React-RCTActionSheet: 547fe42fdb4b6089598d79f8e1d855d7c23e2162 | |||
React-RCTAnimation: bc9440a1c37b06ae9ebbb532d244f607805c6034 | |||
React-RCTBlob: a1295c8e183756d7ef30ba6e8f8144dfe8a19215 | |||
React-RCTImage: a30d1ee09b1334067fbb6f30789aae2d7ac150c9 | |||
React-RCTLinking: ffc6d5b88d1cb9aca13c54c2ec6507fbf07f2ac4 | |||
React-RCTNetwork: f807a2facab6cf5cf36d592e634611de9cf12d81 | |||
React-RCTSettings: 861806819226ed8332e6a8f90df2951a34bb3e7f | |||
React-RCTText: f3fb464cc41a50fc7a1aba4deeb76a9ad8282cb9 | |||
React-RCTVibration: 79040b92bfa9c3c2d2cb4f57e981164ec7ab9374 | |||
React-runtimeexecutor: b960b687d2dfef0d3761fbb187e01812ebab8b23 | |||
ReactCommon: 095366164a276d91ea704ce53cb03825c487a3f2 | |||
RCT-Folly: 0080d0a6ebf2577475bda044aa59e2ca1f909cda | |||
RCTRequired: d4033a367d0bfd1f23f67b501f8cdabf9afe617e | |||
RCTTypeSafety: b112b2ccc59309a65284280c0a53baf1ce4b5860 | |||
React: 04474547a4729eef1fb378ca42f302f4b3219eb8 | |||
React-bridging: 1c8695b292b4a9baaca3960f6166d9766e20492d | |||
React-callinvoker: 4d91e2db7773ee3fcea2d3a5c6beb52a5bfd4d71 | |||
React-Codegen: 33356335c6f3b0869cb4434055fdec219139f635 | |||
React-Core: 634b8aa20e1dad445425ee9581f4719bcfd1b19b | |||
React-CoreModules: 746825283de4b54dcb4fd88703ff516297a5f60d | |||
React-cxxreact: f8d2686d98b5ffed1b1de3aa62e1f81db4903153 | |||
React-hermes: 4e9f5f9cfff42a23e7d6d8083e6c8a3f6f4926ee | |||
React-jsi: 198b9b3e0a85e68cb6898265400fd8bf34cacda4 | |||
React-jsiexecutor: 53bd208e5c27939c6e6365528393445a596a9a2b | |||
React-jsinspector: 26c42646ab0bb69e29e837e23754fe7121eeaf94 | |||
React-logger: 1bfd109a0ffa4c0989bbfac0c2d8c4abe4637faa | |||
react-native-safe-area-context: 99b24a0c5acd0d5dcac2b1a7f18c49ea317be99a | |||
React-perflogger: 6009895616a455781293950bbd63d53cfc7ffbc5 | |||
React-RCTActionSheet: 5e90aa5712af18bfc86c2c6d97d4dbe0e5451c1d | |||
React-RCTAnimation: 50c44d6501f8bfb2fe885e544501f8798b4ff3d6 | |||
React-RCTBlob: 3cc08e7112dd7b77faf3fa481ba22ca2bba5f20a | |||
React-RCTImage: ca8335860b5f64c383ad27f52a28d85089d49b7a | |||
React-RCTLinking: 297cd91bdbf427efc861fc7943e6d683e61860fa | |||
React-RCTNetwork: 8a197bff6f1dc5353484507a4cdcd47e9356316f | |||
React-RCTSettings: d3db1f1e61a5ad8deb50f44f5cb6c7c3ef32b3ac | |||
React-RCTText: c2c05ab3dbfb1cf5855b14802f392148970e48da | |||
React-RCTVibration: 89e2cbea456ac5ec623943661d00e4dc45fe74b9 | |||
React-runtimeexecutor: 80065f60af4f4b05603661070c8622bb3740bf16 | |||
ReactCommon: 1209130f460e4aa9d255ddc75fa0a827ebf93dfb | |||
RNCAsyncStorage: b03032fdbdb725bea0bd9e5ec5a7272865ae7398 | |||
RNCClipboard: 41d8d918092ae8e676f18adada19104fa3e68495 | |||
RNCMaskedView: 0e1bc4bfa8365eba5fbbb71e07fbdc0555249489 | |||
RNGestureHandler: 61628a2c859172551aa2100d3e73d1e57878392f | |||
RNKeychain: 4f63aada75ebafd26f4bc2c670199461eab85d94 | |||
RNScreens: 40a2cb40a02a609938137a1e0acfbf8fc9eebf19 | |||
RNVectorIcons: 7923e585eaeb139b9f4531d25a125a1500162a0b | |||
RNGestureHandler: 7673697e7c0e9391adefae4faa087442bc04af33 | |||
RNKeychain: ff836453cba46938e0e9e4c22e43d43fa2c90333 | |||
RNScreens: f3230dd008a7d0ce5c0a8bc78ff12cf2315bda24 | |||
RNVectorIcons: fcc2f6cb32f5735b586e66d14103a74ce6ad61f8 | |||
SocketRocket: fccef3f9c5cedea1353a9ef6ada904fde10d6608 | |||
TouchID: ba4c656d849cceabc2e4eef722dea5e55959ecf4 | |||
Yoga: 99652481fcd320aefa4a7ef90095b95acd181952 | |||
Yoga: 043f8eb97345d0171f27fead4d1849cacf0472a5 | |||
YogaKit: f782866e155069a2cca2517aafea43200b01fd5a | |||
PODFILE CHECKSUM: c24b137748bd89423e90c29bc22ce8bb9d0f5e81 | |||
PODFILE CHECKSUM: 1b974f561b4f45461b3a0f2c067841edea501508 | |||
COCOAPODS: 1.11.2 |
@@ -1,6 +1,6 @@ | |||
{ | |||
"name": "lesspass-mobile", | |||
"version": "9.7.0", | |||
"version": "9.7.1", | |||
"description": "LessPass mobile application", | |||
"license": "(MPL-2.0 OR GPL-3.0)", | |||
"author": "Guillaume Vincent <guillaume@oslab.fr>", | |||
@@ -12,57 +12,67 @@ | |||
"ios": "react-native run-ios", | |||
"log:ios": "react-native log-ios", | |||
"clean:ios": "cd ios && xcodebuild clean && cd ../", | |||
"ios-pod-install": "pod install --project-directory=./ios", | |||
"start": "react-native start", | |||
"test": "jest", | |||
"test:watch": "jest --watch", | |||
"lint": "eslint .", | |||
"postinstall": "pod-install", | |||
"clean": "react-native-clean-project", | |||
"lint": "eslint . --ext .js,.jsx,.ts,.tsx", | |||
"postversion": "react-native-version --never-amend", | |||
"postinstall": "pod install --project-directory=./ios", | |||
"prettier": "prettier --write src" | |||
}, | |||
"dependencies": { | |||
"@react-native-community/async-storage": "^1.12.1", | |||
"@react-native-community/clipboard": "^1.5.1", | |||
"@react-native-community/masked-view": "^0.1.11", | |||
"@react-navigation/bottom-tabs": "^6.3.1", | |||
"@react-navigation/material-bottom-tabs": "^6.2.1", | |||
"@react-navigation/native": "^6.0.10", | |||
"@react-navigation/stack": "^6.2.1", | |||
"axios": "^0.27.2", | |||
"@react-navigation/bottom-tabs": "^6.4.0", | |||
"@react-navigation/native": "^6.0.13", | |||
"@react-navigation/native-stack": "^6.9.0", | |||
"@react-navigation/stack": "^6.3.2", | |||
"axios": "^1.1.2", | |||
"fuzzysort": "^2.0.1", | |||
"lesspass-fingerprint": "latest", | |||
"lesspass-render-password": "latest", | |||
"lesspass-fingerprint": "^9.1.9", | |||
"lesspass-render-password": "^9.1.9", | |||
"lodash": "^4.17.21", | |||
"memoize-one": "^6.0.0", | |||
"prettier": "^2.6.2", | |||
"react": "18.1.0", | |||
"react-native": "0.68.2", | |||
"react-native-gesture-handler": "^2.4.2", | |||
"react-native-keychain": "^8.0.0", | |||
"react-native-paper": "^4.12.1", | |||
"react-native-safe-area-context": "^4.2.5", | |||
"react-native-screens": "^3.13.1", | |||
"react-native-touch-id": "^4.1.0", | |||
"react-native-vector-icons": "^9.1.0", | |||
"react-redux": "^7.2.5", | |||
"redux": "^4.1.1", | |||
"react-native": "0.70.2", | |||
"react-native-gesture-handler": "^2.7.0", | |||
"react-native-keychain": "^8.1.1", | |||
"react-native-paper": "^4.12.5", | |||
"react-native-safe-area-context": "^4.4.1", | |||
"react-native-screens": "^3.18.0", | |||
"react-native-touch-id": "^4.4.1", | |||
"react-native-vector-icons": "^9.2.0", | |||
"react-redux": "^8.0.4", | |||
"redux": "^4.2.0", | |||
"redux-persist": "^6.0.0", | |||
"redux-thunk": "^2.3.0" | |||
"redux-thunk": "^2.4.1" | |||
}, | |||
"devDependencies": { | |||
"@babel/core": "^7.18.2", | |||
"@babel/runtime": "^7.18.3", | |||
"@react-native-community/eslint-config": "^3.0.2", | |||
"babel-jest": "^28.1.0", | |||
"@babel/core": "^7.12.9", | |||
"@babel/runtime": "^7.12.5", | |||
"@react-native-community/eslint-config": "^2.0.0", | |||
"@tsconfig/react-native": "^2.0.2", | |||
"@types/jest": "^26.0.23", | |||
"@types/react-native": "^0.70.4", | |||
"@types/react-test-renderer": "^18.0.0", | |||
"@typescript-eslint/eslint-plugin": "^5.37.0", | |||
"@typescript-eslint/parser": "^5.37.0", | |||
"babel-jest": "^26.6.3", | |||
"eslint": "^7.32.0", | |||
"jest": "^28.1.0", | |||
"metro-react-native-babel-preset": "^0.67.0", | |||
"pod-install": "^0.1.36", | |||
"react-native-clean-project": "^4.0.1", | |||
"react-test-renderer": "18.1.0" | |||
"jest": "^26.6.3", | |||
"metro-react-native-babel-preset": "0.72.3", | |||
"prettier": "^2.7.1", | |||
"react-native-version": "^4.0.0", | |||
"react-test-renderer": "18.1.0", | |||
"typescript": "^4.8.3" | |||
}, | |||
"jest": { | |||
"preset": "react-native" | |||
"preset": "react-native", | |||
"moduleFileExtensions": [ | |||
"ts", | |||
"tsx", | |||
"js", | |||
"jsx", | |||
"json", | |||
"node" | |||
] | |||
} | |||
} |
@@ -1,7 +0,0 @@ | |||
module.exports = { | |||
project: { | |||
ios: {}, | |||
android: {} | |||
}, | |||
assets: ["./assets/fonts/"] | |||
}; |
@@ -14,7 +14,7 @@ import Styles from "../ui/Styles"; | |||
import Counter from "./Counter"; | |||
import Options from "./Options"; | |||
import MasterPassword from "./MasterPassword"; | |||
import Clipboard from "@react-native-community/clipboard"; | |||
import { NativeModules } from "react-native"; | |||
import { savePasswordProfile, updatePasswordProfile } from "./profilesActions"; | |||
import { cleanPasswordProfile } from "../profiles/profileActions"; | |||
import { | |||
@@ -163,7 +163,7 @@ export default function PasswordGeneratorScreen() { | |||
passwordProfile | |||
); | |||
if (state.copyPasswordAfterGeneration) { | |||
Clipboard.setString(password); | |||
NativeModules.LessPassClipboard.copy(password); | |||
setCopied(true); | |||
} | |||
setState((state) => ({ ...state, password })); | |||
@@ -205,7 +205,7 @@ export default function PasswordGeneratorScreen() { | |||
<Button | |||
mode="outlined" | |||
onPress={() => { | |||
Clipboard.setString(state.password); | |||
NativeModules.LessPassClipboard.copy(state.password); | |||
setCopied(true); | |||
}} | |||
icon="clipboard" | |||
@@ -1,3 +1,3 @@ | |||
{ | |||
"version": "9.7.0" | |||
"version": "9.7.1" | |||
} |
@@ -0,0 +1,10 @@ | |||
// prettier-ignore | |||
{ | |||
"extends": "@tsconfig/react-native/tsconfig.json", /* Recommended React Native TSConfig base */ | |||
"compilerOptions": { | |||
/* Visit https://aka.ms/tsconfig.json to read more about this file */ | |||
/* Completeness */ | |||
"skipLibCheck": true /* Skip type checking all .d.ts files. */ | |||
} | |||
} |