This commit is contained in:
SheetJS 2023-07-02 21:37:07 -04:00
parent e2b66a7d76
commit c84acc334b
11 changed files with 2326 additions and 63 deletions

@ -1,3 +1,39 @@
# SheetJS + React Native Demo
Complete Reproduction of <https://docs.sheetjs.com/docs/demos/mobile/reactnative#demo>
Complete Reproduction of <https://docs.sheetjs.com/docs/demos/mobile/reactnative#demo>
This branch (`EXPO`) demonstrates `expo-file-system`.
## Installation
1) Install dependencies:
```bash
npm i
```
### iOS
2) (iOS only) link iOS project
```bash
cd ios; pod install; cd ..
```
3) run the development process:
```bash
npx react-native run-ios
```
### Android
4) ensure Java 11 is the current version
5) run the development process:
```bash
npx react-native run-android
```

@ -1,4 +1,5 @@
package com.sheetjsrn;
import expo.modules.ReactActivityDelegateWrapper;
import com.facebook.react.ReactActivity;
import com.facebook.react.ReactActivityDelegate;
@ -23,10 +24,10 @@ public class MainActivity extends ReactActivity {
*/
@Override
protected ReactActivityDelegate createReactActivityDelegate() {
return new DefaultReactActivityDelegate(
return new ReactActivityDelegateWrapper(this, BuildConfig.IS_NEW_ARCHITECTURE_ENABLED, new DefaultReactActivityDelegate(
this,
getMainComponentName(),
// If you opted-in for the New Architecture, we enable the Fabric Renderer.
DefaultNewArchitectureEntryPoint.getFabricEnabled());
DefaultNewArchitectureEntryPoint.getFabricEnabled()));
}
}

@ -1,4 +1,7 @@
package com.sheetjsrn;
import android.content.res.Configuration;
import expo.modules.ApplicationLifecycleDispatcher;
import expo.modules.ReactNativeHostWrapper;
import android.app.Application;
import com.facebook.react.PackageList;
@ -13,7 +16,7 @@ import java.util.List;
public class MainApplication extends Application implements ReactApplication {
private final ReactNativeHost mReactNativeHost =
new DefaultReactNativeHost(this) {
new ReactNativeHostWrapper(this, new DefaultReactNativeHost(this) {
@Override
public boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
@ -42,7 +45,7 @@ public class MainApplication extends Application implements ReactApplication {
protected Boolean isHermesEnabled() {
return BuildConfig.IS_HERMES_ENABLED;
}
};
});
@Override
public ReactNativeHost getReactNativeHost() {
@ -58,5 +61,12 @@ public class MainApplication extends Application implements ReactApplication {
DefaultNewArchitectureEntryPoint.load();
}
ReactNativeFlipper.initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
ApplicationLifecycleDispatcher.onApplicationCreate(this);
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig);
}
}

@ -2,3 +2,6 @@ rootProject.name = 'SheetJSRN'
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')
apply from: new File(["node", "--print", "require.resolve('expo/package.json')"].execute(null, rootDir).text.trim(), "../scripts/autolinking.gradle")
useExpoModules()

@ -4,6 +4,24 @@ import React, { Component } from 'react';
import { AppRegistry, StyleSheet, Text, Button, Alert, Image, ScrollView } from 'react-native';
import { Table, Row, Rows, TableWrapper } from 'react-native-table-component';
import { read, write } from 'xlsx';
import { getDocumentAsync } from 'expo-document-picker';
import { documentDirectory, readAsStringAsync, writeAsStringAsync } from 'expo-file-system';
async function pickAndParse() {
const result = await getDocumentAsync({copyToCacheDirectory: true});
const path = result.uri;
const res = await readAsStringAsync(path, { encoding: "base64" });
return read(res, {type: 'base64'});
}
async function writeWorkbook(wb) {
const wbout = write(wb, {type:'base64', bookType:"xlsx"});
const file = documentDirectory + "sheetjsw.xlsx";
await writeAsStringAsync(file, wbout, { encoding: "base64" });
return file;
};
const make_width = ws => {
const aoa = utils.sheet_to_json(ws, {header:1}), res = [];
aoa.forEach((r) => { r.forEach((c, C) => { res[C] = Math.max(res[C]||60, String(c).length * 10); }); });

@ -1,3 +1,4 @@
require File.join(File.dirname(`node --print "require.resolve('expo/package.json')"`), "scripts/autolinking")
# Resolve react_native_pods.rb with node to allow for hoisting
require Pod::Executable.execute_command('node', ['-p',
'require.resolve(
@ -5,7 +6,7 @@ require Pod::Executable.execute_command('node', ['-p',
{paths: [process.argv[1]]},
)', __dir__]).strip
platform :ios, min_ios_version_supported
platform :ios, '13.0'
prepare_react_native_project!
# If you are using a `react-native-flipper` your iOS build will fail when `NO_FLIPPER=1` is set.
@ -26,6 +27,14 @@ if linkage != nil
end
target 'SheetJSRN' do
use_expo_modules!
post_integrate do |installer|
begin
expo_patch_react_imports!(installer)
rescue => e
Pod::UI.warn e
end
end
config = use_native_modules!
# Flags change depending on the env values.

@ -2,6 +2,26 @@ PODS:
- boost (1.76.0)
- CocoaAsyncSocket (7.6.5)
- DoubleConversion (1.1.6)
- EXApplication (5.3.0):
- ExpoModulesCore
- EXConstants (14.4.2):
- ExpoModulesCore
- EXDocumentPicker (11.2.2):
- ExpoModulesCore
- EXFileSystem (15.4.2):
- ExpoModulesCore
- EXFont (11.4.0):
- ExpoModulesCore
- Expo (49.0.0-beta.4):
- ExpoModulesCore
- ExpoKeepAwake (12.3.0):
- ExpoModulesCore
- ExpoModulesCore (1.5.3):
- RCT-Folly (= 2021.07.22.00)
- React-Core
- React-NativeModulesApple
- React-RCTAppDelegate
- ReactCommon/turbomodule/core
- FBLazyVector (0.72.1)
- FBReactNativeSpec (0.72.1):
- RCT-Folly (= 2021.07.22.00)
@ -374,7 +394,7 @@ PODS:
- React-jsinspector (0.72.1)
- React-logger (0.72.1):
- glog
- react-native-document-picker (8.2.0):
- react-native-document-picker (8.2.1):
- React-Core
- React-NativeModulesApple (0.72.1):
- hermes-engine
@ -494,6 +514,14 @@ PODS:
DEPENDENCIES:
- boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`)
- DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
- EXApplication (from `../node_modules/expo-application/ios`)
- EXConstants (from `../node_modules/expo-constants/ios`)
- EXDocumentPicker (from `../node_modules/expo-document-picker/ios`)
- EXFileSystem (from `../node_modules/expo-file-system/ios`)
- EXFont (from `../node_modules/expo-font/ios`)
- Expo (from `../node_modules/expo`)
- ExpoKeepAwake (from `../node_modules/expo-keep-awake/ios`)
- ExpoModulesCore (from `../node_modules/expo-modules-core`)
- FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`)
- FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`)
- Flipper (= 0.182.0)
@ -579,6 +607,22 @@ EXTERNAL SOURCES:
:podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec"
DoubleConversion:
:podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec"
EXApplication:
:path: "../node_modules/expo-application/ios"
EXConstants:
:path: "../node_modules/expo-constants/ios"
EXDocumentPicker:
:path: "../node_modules/expo-document-picker/ios"
EXFileSystem:
:path: "../node_modules/expo-file-system/ios"
EXFont:
:path: "../node_modules/expo-font/ios"
Expo:
:path: "../node_modules/expo"
ExpoKeepAwake:
:path: "../node_modules/expo-keep-awake/ios"
ExpoModulesCore:
:path: "../node_modules/expo-modules-core"
FBLazyVector:
:path: "../node_modules/react-native/Libraries/FBLazyVector"
FBReactNativeSpec:
@ -661,6 +705,14 @@ SPEC CHECKSUMS:
boost: 57d2868c099736d80fcd648bf211b4431e51a558
CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99
DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54
EXApplication: 02655a251434d564bb0e73291f5a490c74b5b76f
EXConstants: ce5bbea779da8031ac818c36bea41b10e14d04e1
EXDocumentPicker: a2e52acbb3204af80b6e3ffd3deb2cb25d052593
EXFileSystem: d7f59869885cfeab3ac771e2a8d0f5ed98cd3fdb
EXFont: 738c44c390953ebcbab075a4848bfbef025fd9ee
Expo: b5379d701e3bb098ebfd0b2e22510acb2b8b1b81
ExpoKeepAwake: be4cbd52d9b177cde0fd66daa1913afa3161fc1d
ExpoModulesCore: c7fc9558697e1dc7efef2b4841096cd6ab2b760f
FBLazyVector: 55cd4593d570bd9e5e227488d637ce6a9581ce51
FBReactNativeSpec: 799b0e1a1561699cd0e424e24fe5624da38402f0
Flipper: 6edb735e6c3e332975d1b17956bcc584eccf5818
@ -691,7 +743,7 @@ SPEC CHECKSUMS:
React-jsiexecutor: 184eae1ecdedc7a083194bd9ff809c93f08fd34c
React-jsinspector: d0b5bfd1085599265f4212034321e829bdf83cc0
React-logger: b8103c9b04e707b50cdd2b1aeb382483900cbb37
react-native-document-picker: 495c444c0c773c6e83a5d91165890ecb1c0a399a
react-native-document-picker: 69ca2094d8780cfc1e7e613894d15290fdc54bba
React-NativeModulesApple: 4f31a812364443cee6ef768d256c594ad3b20f53
React-perflogger: 3d501f34c8d4b10cb75f348e43591765788525ad
React-RCTActionSheet: f5335572c979198c0c3daff67b07bd1ad8370c1d
@ -713,6 +765,6 @@ SPEC CHECKSUMS:
Yoga: 65286bb6a07edce5e4fe8c90774da977ae8fc009
YogaKit: f782866e155069a2cca2517aafea43200b01fd5a
PODFILE CHECKSUM: 2250de264ba5adbfd3fe13c5a448d934ea1d4b4d
PODFILE CHECKSUM: fc9f3ced418f87ee567915ec8ba237528f14886d
COCOAPODS: 1.11.3

@ -13,7 +13,9 @@
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
7699B88040F8A987B510C191 /* libPods-SheetJSRN-SheetJSRNTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 19F6CBCC0A4E27FBF8BF4A61 /* libPods-SheetJSRN-SheetJSRNTests.a */; };
80385DEC7FD1397F9AE7483F /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEDBEB6E1ED7AB2B765D6DF1 /* ExpoModulesProvider.swift */; };
81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; };
B9B3165EDFF0ADFC5CDAF3BC /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F648EB884CA937F37126C44 /* ExpoModulesProvider.swift */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@ -38,11 +40,13 @@
13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = SheetJSRN/main.m; sourceTree = "<group>"; };
19F6CBCC0A4E27FBF8BF4A61 /* libPods-SheetJSRN-SheetJSRNTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-SheetJSRN-SheetJSRNTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
3B4392A12AC88292D35C810B /* Pods-SheetJSRN.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SheetJSRN.debug.xcconfig"; path = "Target Support Files/Pods-SheetJSRN/Pods-SheetJSRN.debug.xcconfig"; sourceTree = "<group>"; };
3F648EB884CA937F37126C44 /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-SheetJSRN/ExpoModulesProvider.swift"; sourceTree = "<group>"; };
5709B34CF0A7D63546082F79 /* Pods-SheetJSRN.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SheetJSRN.release.xcconfig"; path = "Target Support Files/Pods-SheetJSRN/Pods-SheetJSRN.release.xcconfig"; sourceTree = "<group>"; };
5B7EB9410499542E8C5724F5 /* Pods-SheetJSRN-SheetJSRNTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SheetJSRN-SheetJSRNTests.debug.xcconfig"; path = "Target Support Files/Pods-SheetJSRN-SheetJSRNTests/Pods-SheetJSRN-SheetJSRNTests.debug.xcconfig"; sourceTree = "<group>"; };
5DCACB8F33CDC322A6C60F78 /* libPods-SheetJSRN.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-SheetJSRN.a"; sourceTree = BUILT_PRODUCTS_DIR; };
81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = SheetJSRN/LaunchScreen.storyboard; sourceTree = "<group>"; };
89C6BE57DB24E9ADA2F236DE /* Pods-SheetJSRN-SheetJSRNTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SheetJSRN-SheetJSRNTests.release.xcconfig"; path = "Target Support Files/Pods-SheetJSRN-SheetJSRNTests/Pods-SheetJSRN-SheetJSRNTests.release.xcconfig"; sourceTree = "<group>"; };
CEDBEB6E1ED7AB2B765D6DF1 /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-SheetJSRN-SheetJSRNTests/ExpoModulesProvider.swift"; sourceTree = "<group>"; };
ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
/* End PBXFileReference section */
@ -106,6 +110,14 @@
name = Frameworks;
sourceTree = "<group>";
};
61F28BC4BED71E2A777B928B /* SheetJSRN */ = {
isa = PBXGroup;
children = (
3F648EB884CA937F37126C44 /* ExpoModulesProvider.swift */,
);
name = SheetJSRN;
sourceTree = "<group>";
};
832341AE1AAA6A7D00B99B32 /* Libraries */ = {
isa = PBXGroup;
children = (
@ -122,6 +134,7 @@
83CBBA001A601CBA00E9B192 /* Products */,
2D16E6871FA4F8E400B85C8A /* Frameworks */,
BBD78D7AC51CEA395F1C20DB /* Pods */,
B98D924853E023DCF8A75BFB /* ExpoModulesProviders */,
);
indentWidth = 2;
sourceTree = "<group>";
@ -137,6 +150,15 @@
name = Products;
sourceTree = "<group>";
};
B98D924853E023DCF8A75BFB /* ExpoModulesProviders */ = {
isa = PBXGroup;
children = (
61F28BC4BED71E2A777B928B /* SheetJSRN */,
F212CD406C2CE08A17C8BBE3 /* SheetJSRNTests */,
);
name = ExpoModulesProviders;
sourceTree = "<group>";
};
BBD78D7AC51CEA395F1C20DB /* Pods */ = {
isa = PBXGroup;
children = (
@ -148,6 +170,14 @@
path = Pods;
sourceTree = "<group>";
};
F212CD406C2CE08A17C8BBE3 /* SheetJSRNTests */ = {
isa = PBXGroup;
children = (
CEDBEB6E1ED7AB2B765D6DF1 /* ExpoModulesProvider.swift */,
);
name = SheetJSRNTests;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
@ -156,6 +186,7 @@
buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "SheetJSRNTests" */;
buildPhases = (
A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */,
92D46CC94323B587ACA23319 /* [Expo] Configure project */,
00E356EA1AD99517003FC87E /* Sources */,
00E356EB1AD99517003FC87E /* Frameworks */,
00E356EC1AD99517003FC87E /* Resources */,
@ -178,6 +209,7 @@
buildPhases = (
C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */,
FD10A7F022414F080027D42C /* Start Packager */,
B2B272BD20744A4E63FC5740 /* [Expo] Configure project */,
13B07F871A680F5B00A75B9A /* Sources */,
13B07F8C1A680F5B00A75B9A /* Frameworks */,
13B07F8E1A680F5B00A75B9A /* Resources */,
@ -283,6 +315,25 @@
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-SheetJSRN/Pods-SheetJSRN-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
92D46CC94323B587ACA23319 /* [Expo] Configure project */ = {
isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
);
name = "[Expo] Configure project";
outputFileListPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "# This script configures Expo modules and generates the modules provider file.\nbash -l -c \"./Pods/Target\\ Support\\ Files/Pods-SheetJSRN-SheetJSRNTests/expo-configure-project.sh\"\n";
};
A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
@ -305,6 +356,25 @@
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;
};
B2B272BD20744A4E63FC5740 /* [Expo] Configure project */ = {
isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
);
name = "[Expo] Configure project";
outputFileListPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "# This script configures Expo modules and generates the modules provider file.\nbash -l -c \"./Pods/Target\\ Support\\ Files/Pods-SheetJSRN/expo-configure-project.sh\"\n";
};
C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
@ -405,6 +475,7 @@
buildActionMask = 2147483647;
files = (
00E356F31AD99517003FC87E /* SheetJSRNTests.m in Sources */,
80385DEC7FD1397F9AE7483F /* ExpoModulesProvider.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -414,6 +485,7 @@
files = (
13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */,
13B07FC11A68108700A75B9A /* main.m in Sources */,
B9B3165EDFF0ADFC5CDAF3BC /* ExpoModulesProvider.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -438,7 +510,7 @@
"$(inherited)",
);
INFOPLIST_FILE = SheetJSRNTests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 12.4;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
@ -449,6 +521,7 @@
"-lc++",
"$(inherited)",
);
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/SheetJSRN.app/SheetJSRN";
@ -462,7 +535,7 @@
BUNDLE_LOADER = "$(TEST_HOST)";
COPY_PHASE_STRIP = NO;
INFOPLIST_FILE = SheetJSRNTests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 12.4;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
@ -473,6 +546,7 @@
"-lc++",
"$(inherited)",
);
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/SheetJSRN.app/SheetJSRN";
@ -498,6 +572,7 @@
"-ObjC",
"-lc++",
);
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = SheetJSRN;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
@ -524,6 +599,7 @@
"-ObjC",
"-lc++",
);
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = SheetJSRN;
SWIFT_VERSION = 5.0;
@ -580,7 +656,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 12.4;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
LD_RUNPATH_SEARCH_PATHS = (
/usr/lib/swift,
"$(inherited)",
@ -646,7 +722,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 12.4;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
LD_RUNPATH_SEARCH_PATHS = (
/usr/lib/swift,
"$(inherited)",

@ -1,6 +1,7 @@
#import <RCTAppDelegate.h>
#import <Expo/Expo.h>
#import <UIKit/UIKit.h>
@interface AppDelegate : RCTAppDelegate
@interface AppDelegate : EXAppDelegateWrapper
@end

@ -10,6 +10,9 @@
"test": "jest"
},
"dependencies": {
"expo": ">=49.0.0-0 <50.0.0",
"expo-document-picker": "^11.2.2",
"expo-file-system": "^15.4.2",
"react": "18.2.0",
"react-native": "0.72.1",
"react-native-document-picker": "^8.2.0",

2152
yarn.lock

File diff suppressed because it is too large Load Diff