Bluesky app fork with some witchin' additions 💫

[DRAFT] Android (#424)

* add android & ios folders to .gitignore

* delete android and ios dirs

* fix android build errors

* fix status bar color

* fix top cutoff on composer in android

* fix weird whitespace issue in post

* fix greyed out header android

* fix main feed getting cut off android

* fix swiping on main feed

* fix profile tabs switching on android

* A few app.json config items for iOS

* Update app.json for bgfetch

* make swiping work on android

* make splash screen cover

* add eas.json

* fix image container on android

* fix android status bar color

* use expo-splash-screen instead of react-native-splash-screen

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>

authored by

Ansh
Paul Frazee
and committed by
GitHub
14c84732 362ea724

+180 -3395
+5
.gitignore
··· 85 85 # gitignore and github actions 86 86 !.gitignore 87 87 !.github 88 + 89 + 90 + # Android & iOS folders 91 + android/ 92 + ios/
-236
android/app/build.gradle
··· 1 - apply plugin: "com.android.application" 2 - apply plugin: "com.facebook.react" 3 - 4 - import com.android.build.OutputFile 5 - 6 - def projectRoot = rootDir.getAbsoluteFile().getParentFile().getAbsolutePath() 7 - def expoDebuggableVariants = ['debug'] 8 - // Override `debuggableVariants` for expo-updates debugging 9 - if (System.getenv('EX_UPDATES_NATIVE_DEBUG') == "1") { 10 - react { 11 - expoDebuggableVariants = [] 12 - } 13 - } 14 - 15 - 16 - /** 17 - * This is the configuration block to customize your React Native Android app. 18 - * By default you don't need to apply any configuration, just uncomment the lines you need. 19 - */ 20 - react { 21 - entryFile = file(["node", "-e", "require('expo/scripts/resolveAppEntry')", projectRoot, "android", "absolute"].execute(null, rootDir).text.trim()) 22 - reactNativeDir = new File(["node", "--print", "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim()).getParentFile().getAbsoluteFile() 23 - hermesCommand = new File(["node", "--print", "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + "/sdks/hermesc/%OS-BIN%/hermesc" 24 - debuggableVariants = expoDebuggableVariants 25 - 26 - /* Folders */ 27 - // The root of your project, i.e. where "package.json" lives. Default is '..' 28 - // root = file("../") 29 - // The folder where the react-native NPM package is. Default is ../node_modules/react-native 30 - // reactNativeDir = file("../node_modules/react-native") 31 - // The folder where the react-native Codegen package is. Default is ../node_modules/react-native-codegen 32 - // codegenDir = file("../node_modules/react-native-codegen") 33 - // The cli.js file which is the React Native CLI entrypoint. Default is ../node_modules/react-native/cli.js 34 - // cliFile = file("../node_modules/react-native/cli.js") 35 - 36 - /* Variants */ 37 - // The list of variants to that are debuggable. For those we're going to 38 - // skip the bundling of the JS bundle and the assets. By default is just 'debug'. 39 - // If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants. 40 - // debuggableVariants = ["liteDebug", "prodDebug"] 41 - 42 - /* Bundling */ 43 - // A list containing the node command and its flags. Default is just 'node'. 44 - // nodeExecutableAndArgs = ["node"] 45 - // 46 - // The command to run when bundling. By default is 'bundle' 47 - // bundleCommand = "ram-bundle" 48 - // 49 - // The path to the CLI configuration file. Default is empty. 50 - // bundleConfig = file(../rn-cli.config.js) 51 - // 52 - // The name of the generated asset file containing your JS bundle 53 - // bundleAssetName = "MyApplication.android.bundle" 54 - // 55 - // The entry file for bundle generation. Default is 'index.android.js' or 'index.js' 56 - // entryFile = file("../js/MyApplication.android.js") 57 - // 58 - // A list of extra flags to pass to the 'bundle' commands. 59 - // See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle 60 - // extraPackagerArgs = [] 61 - 62 - /* Hermes Commands */ 63 - // The hermes compiler command to run. By default it is 'hermesc' 64 - // hermesCommand = "$rootDir/my-custom-hermesc/bin/hermesc" 65 - // 66 - // The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map" 67 - // hermesFlags = ["-O", "-output-source-map"] 68 - } 69 - 70 - // Override `hermesEnabled` by `expo.jsEngine` 71 - ext { 72 - hermesEnabled = (findProperty('expo.jsEngine') ?: "hermes") == "hermes" 73 - } 74 - 75 - /** 76 - * Set this to true to create four separate APKs instead of one, 77 - * one for each native architecture. This is useful if you don't 78 - * use App Bundles (https://developer.android.com/guide/app-bundle/) 79 - * and want to have separate APKs to upload to the Play Store. 80 - */ 81 - def enableSeparateBuildPerCPUArchitecture = false 82 - 83 - /** 84 - * Set this to true to Run Proguard on Release builds to minify the Java bytecode. 85 - */ 86 - def enableProguardInReleaseBuilds = (findProperty('android.enableProguardInReleaseBuilds') ?: false).toBoolean() 87 - 88 - /** 89 - * The preferred build flavor of JavaScriptCore (JSC) 90 - * 91 - * For example, to use the international variant, you can use: 92 - * `def jscFlavor = 'org.webkit:android-jsc-intl:+'` 93 - * 94 - * The international variant includes ICU i18n library and necessary data 95 - * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that 96 - * give correct results when using with locales other than en-US. Note that 97 - * this variant is about 6MiB larger per architecture than default. 98 - */ 99 - def jscFlavor = 'org.webkit:android-jsc:+' 100 - 101 - /** 102 - * Private function to get the list of Native Architectures you want to build. 103 - * This reads the value from reactNativeArchitectures in your gradle.properties 104 - * file and works together with the --active-arch-only flag of react-native run-android. 105 - */ 106 - def reactNativeArchitectures() { 107 - def value = project.getProperties().get("reactNativeArchitectures") 108 - return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"] 109 - } 110 - 111 - android { 112 - ndkVersion rootProject.ext.ndkVersion 113 - 114 - compileSdkVersion rootProject.ext.compileSdkVersion 115 - 116 - namespace 'xyz.blueskyweb.app' 117 - defaultConfig { 118 - applicationId 'xyz.blueskyweb.app' 119 - minSdkVersion rootProject.ext.minSdkVersion 120 - targetSdkVersion rootProject.ext.targetSdkVersion 121 - versionCode 1 122 - versionName "1.0.0" 123 - } 124 - 125 - splits { 126 - abi { 127 - reset() 128 - enable enableSeparateBuildPerCPUArchitecture 129 - universalApk false // If true, also generate a universal APK 130 - include (*reactNativeArchitectures()) 131 - } 132 - } 133 - signingConfigs { 134 - debug { 135 - storeFile file('debug.keystore') 136 - storePassword 'android' 137 - keyAlias 'androiddebugkey' 138 - keyPassword 'android' 139 - } 140 - } 141 - buildTypes { 142 - debug { 143 - signingConfig signingConfigs.debug 144 - } 145 - release { 146 - // Caution! In production, you need to generate your own keystore file. 147 - // see https://reactnative.dev/docs/signed-apk-android. 148 - signingConfig signingConfigs.debug 149 - minifyEnabled enableProguardInReleaseBuilds 150 - proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" 151 - } 152 - } 153 - 154 - // applicationVariants are e.g. debug, release 155 - applicationVariants.all { variant -> 156 - variant.outputs.each { output -> 157 - // For each separate APK per architecture, set a unique version code as described here: 158 - // https://developer.android.com/studio/build/configure-apk-splits.html 159 - // Example: versionCode 1 will generate 1001 for armeabi-v7a, 1002 for x86, etc. 160 - def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4] 161 - def abi = output.getFilter(OutputFile.ABI) 162 - if (abi != null) { // null for the universal-debug, universal-release variants 163 - output.versionCodeOverride = 164 - defaultConfig.versionCode * 1000 + versionCodes.get(abi) 165 - } 166 - 167 - } 168 - } 169 - } 170 - 171 - // Apply static values from `gradle.properties` to the `android.packagingOptions` 172 - // Accepts values in comma delimited lists, example: 173 - // android.packagingOptions.pickFirsts=/LICENSE,**/picasa.ini 174 - ["pickFirsts", "excludes", "merges", "doNotStrip"].each { prop -> 175 - // Split option: 'foo,bar' -> ['foo', 'bar'] 176 - def options = (findProperty("android.packagingOptions.$prop") ?: "").split(","); 177 - // Trim all elements in place. 178 - for (i in 0..<options.size()) options[i] = options[i].trim(); 179 - // `[] - ""` is essentially `[""].filter(Boolean)` removing all empty strings. 180 - options -= "" 181 - 182 - if (options.length > 0) { 183 - println "android.packagingOptions.$prop += $options ($options.length)" 184 - // Ex: android.packagingOptions.pickFirsts += '**/SCCS/**' 185 - options.each { 186 - android.packagingOptions[prop] += it 187 - } 188 - } 189 - } 190 - 191 - dependencies { 192 - // The version of react-native is set by the React Native Gradle Plugin 193 - implementation("com.facebook.react:react-android") 194 - 195 - def isGifEnabled = (findProperty('expo.gif.enabled') ?: "") == "true"; 196 - def isWebpEnabled = (findProperty('expo.webp.enabled') ?: "") == "true"; 197 - def isWebpAnimatedEnabled = (findProperty('expo.webp.animated') ?: "") == "true"; 198 - def frescoVersion = rootProject.ext.frescoVersion 199 - 200 - // If your app supports Android versions before Ice Cream Sandwich (API level 14) 201 - if (isGifEnabled || isWebpEnabled) { 202 - implementation("com.facebook.fresco:fresco:${frescoVersion}") 203 - implementation("com.facebook.fresco:imagepipeline-okhttp3:${frescoVersion}") 204 - } 205 - 206 - if (isGifEnabled) { 207 - // For animated gif support 208 - implementation("com.facebook.fresco:animated-gif:${frescoVersion}") 209 - } 210 - 211 - if (isWebpEnabled) { 212 - // For webp support 213 - implementation("com.facebook.fresco:webpsupport:${frescoVersion}") 214 - if (isWebpAnimatedEnabled) { 215 - // Animated webp support 216 - implementation("com.facebook.fresco:animated-webp:${frescoVersion}") 217 - } 218 - } 219 - 220 - implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.0.0") 221 - 222 - debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") 223 - debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") { 224 - exclude group:'com.squareup.okhttp3', module:'okhttp' 225 - } 226 - debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") 227 - 228 - if (hermesEnabled.toBoolean()) { 229 - implementation("com.facebook.react:hermes-android") 230 - } else { 231 - implementation jscFlavor 232 - } 233 - } 234 - 235 - apply from: new File(["node", "--print", "require.resolve('@react-native-community/cli-platform-android/package.json')"].execute(null, rootDir).text.trim(), "../native_modules.gradle"); 236 - applyNativeModulesAppBuildGradle(project)
android/app/debug.keystore

This is a binary file and will not be displayed.

-14
android/app/proguard-rules.pro
··· 1 - # Add project specific ProGuard rules here. 2 - # By default, the flags in this file are appended to flags specified 3 - # in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt 4 - # You can edit the include path and order by changing the proguardFiles 5 - # directive in build.gradle. 6 - # 7 - # For more details, see 8 - # http://developer.android.com/guide/developing/tools/proguard.html 9 - 10 - # Add any project specific keep options here: 11 - 12 - # react-native-reanimated 13 - -keep class com.swmansion.reanimated.** { *; } 14 - -keep class com.facebook.react.turbomodule.** { *; }
-7
android/app/src/debug/AndroidManifest.xml
··· 1 - <manifest xmlns:android="http://schemas.android.com/apk/res/android" 2 - xmlns:tools="http://schemas.android.com/tools"> 3 - 4 - <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> 5 - 6 - <application android:usesCleartextTraffic="true" tools:targetApi="28" tools:ignore="GoogleAppIndexingWarning" /> 7 - </manifest>
-75
android/app/src/debug/java/xyz/blueskyweb/app/ReactNativeFlipper.java
··· 1 - /** 2 - * Copyright (c) Meta Platforms, Inc. and affiliates. 3 - * 4 - * <p>This source code is licensed under the MIT license found in the LICENSE file in the root 5 - * directory of this source tree. 6 - */ 7 - package xyz.blueskyweb.app; 8 - 9 - import android.content.Context; 10 - import com.facebook.flipper.android.AndroidFlipperClient; 11 - import com.facebook.flipper.android.utils.FlipperUtils; 12 - import com.facebook.flipper.core.FlipperClient; 13 - import com.facebook.flipper.plugins.crashreporter.CrashReporterPlugin; 14 - import com.facebook.flipper.plugins.databases.DatabasesFlipperPlugin; 15 - import com.facebook.flipper.plugins.fresco.FrescoFlipperPlugin; 16 - import com.facebook.flipper.plugins.inspector.DescriptorMapping; 17 - import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin; 18 - import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor; 19 - import com.facebook.flipper.plugins.network.NetworkFlipperPlugin; 20 - import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin; 21 - import com.facebook.react.ReactInstanceEventListener; 22 - import com.facebook.react.ReactInstanceManager; 23 - import com.facebook.react.bridge.ReactContext; 24 - import com.facebook.react.modules.network.NetworkingModule; 25 - import okhttp3.OkHttpClient; 26 - 27 - /** 28 - * Class responsible of loading Flipper inside your React Native application. This is the debug 29 - * flavor of it. Here you can add your own plugins and customize the Flipper setup. 30 - */ 31 - public class ReactNativeFlipper { 32 - public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) { 33 - if (FlipperUtils.shouldEnableFlipper(context)) { 34 - final FlipperClient client = AndroidFlipperClient.getInstance(context); 35 - 36 - client.addPlugin(new InspectorFlipperPlugin(context, DescriptorMapping.withDefaults())); 37 - client.addPlugin(new DatabasesFlipperPlugin(context)); 38 - client.addPlugin(new SharedPreferencesFlipperPlugin(context)); 39 - client.addPlugin(CrashReporterPlugin.getInstance()); 40 - 41 - NetworkFlipperPlugin networkFlipperPlugin = new NetworkFlipperPlugin(); 42 - NetworkingModule.setCustomClientBuilder( 43 - new NetworkingModule.CustomClientBuilder() { 44 - @Override 45 - public void apply(OkHttpClient.Builder builder) { 46 - builder.addNetworkInterceptor(new FlipperOkhttpInterceptor(networkFlipperPlugin)); 47 - } 48 - }); 49 - client.addPlugin(networkFlipperPlugin); 50 - client.start(); 51 - 52 - // Fresco Plugin needs to ensure that ImagePipelineFactory is initialized 53 - // Hence we run if after all native modules have been initialized 54 - ReactContext reactContext = reactInstanceManager.getCurrentReactContext(); 55 - if (reactContext == null) { 56 - reactInstanceManager.addReactInstanceEventListener( 57 - new ReactInstanceEventListener() { 58 - @Override 59 - public void onReactContextInitialized(ReactContext reactContext) { 60 - reactInstanceManager.removeReactInstanceEventListener(this); 61 - reactContext.runOnNativeModulesQueueThread( 62 - new Runnable() { 63 - @Override 64 - public void run() { 65 - client.addPlugin(new FrescoFlipperPlugin()); 66 - } 67 - }); 68 - } 69 - }); 70 - } else { 71 - client.addPlugin(new FrescoFlipperPlugin()); 72 - } 73 - } 74 - } 75 - }
-35
android/app/src/main/AndroidManifest.xml
··· 1 - <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="xyz.blueskyweb.app"> 2 - <uses-permission android:name="android.permission.INTERNET"/> 3 - <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 4 - <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> 5 - <uses-permission android:name="android.permission.VIBRATE"/> 6 - <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 7 - <queries> 8 - <intent> 9 - <action android:name="android.intent.action.VIEW"/> 10 - <category android:name="android.intent.category.BROWSABLE"/> 11 - <data android:scheme="https"/> 12 - </intent> 13 - </queries> 14 - <application android:name=".MainApplication" android:label="@string/app_name" android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" android:allowBackup="true" android:theme="@style/AppTheme" android:usesCleartextTraffic="true"> 15 - <meta-data android:name="expo.modules.updates.ENABLED" android:value="true"/> 16 - <meta-data android:name="expo.modules.updates.EXPO_SDK_VERSION" android:value="48.0.0"/> 17 - <meta-data android:name="expo.modules.updates.EXPO_UPDATES_CHECK_ON_LAUNCH" android:value="ALWAYS"/> 18 - <meta-data android:name="expo.modules.updates.EXPO_UPDATES_LAUNCH_WAIT_MS" android:value="0"/> 19 - <meta-data android:name="expo.modules.updates.EXPO_UPDATE_URL" android:value="https://exp.host/@arrygoo/bluesky"/> <!-- TODO --> 20 - <activity android:name=".MainActivity" android:label="@string/app_name" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode" android:launchMode="singleTask" android:windowSoftInputMode="adjustResize" android:theme="@style/Theme.App.SplashScreen" android:exported="true" android:screenOrientation="portrait"> 21 - <intent-filter> 22 - <action android:name="android.intent.action.MAIN"/> 23 - <category android:name="android.intent.category.LAUNCHER"/> 24 - </intent-filter> 25 - <intent-filter> 26 - <action android:name="android.intent.action.VIEW"/> 27 - <category android:name="android.intent.category.DEFAULT"/> 28 - <category android:name="android.intent.category.BROWSABLE"/> 29 - <data android:scheme="xyz.blueskyweb.app"/> 30 - <data android:scheme="exp+bluesky"/> 31 - </intent-filter> 32 - </activity> 33 - <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" android:exported="false"/> 34 - </application> 35 - </manifest>
-68
android/app/src/main/java/xyz/blueskyweb/app/MainActivity.java
··· 1 - package xyz.blueskyweb.app; 2 - 3 - import android.os.Build; 4 - import android.os.Bundle; 5 - 6 - import com.facebook.react.ReactActivity; 7 - import com.facebook.react.ReactActivityDelegate; 8 - import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint; 9 - import com.facebook.react.defaults.DefaultReactActivityDelegate; 10 - 11 - import expo.modules.ReactActivityDelegateWrapper; 12 - 13 - public class MainActivity extends ReactActivity { 14 - @Override 15 - protected void onCreate(Bundle savedInstanceState) { 16 - // Set the theme to AppTheme BEFORE onCreate to support 17 - // coloring the background, status bar, and navigation bar. 18 - // This is required for expo-splash-screen. 19 - setTheme(R.style.AppTheme); 20 - super.onCreate(null); 21 - } 22 - 23 - /** 24 - * Returns the name of the main component registered from JavaScript. 25 - * This is used to schedule rendering of the component. 26 - */ 27 - @Override 28 - protected String getMainComponentName() { 29 - return "main"; 30 - } 31 - 32 - /** 33 - * Returns the instance of the {@link ReactActivityDelegate}. Here we use a util class {@link 34 - * DefaultReactActivityDelegate} which allows you to easily enable Fabric and Concurrent React 35 - * (aka React 18) with two boolean flags. 36 - */ 37 - @Override 38 - protected ReactActivityDelegate createReactActivityDelegate() { 39 - return new ReactActivityDelegateWrapper(this, BuildConfig.IS_NEW_ARCHITECTURE_ENABLED, new DefaultReactActivityDelegate( 40 - this, 41 - getMainComponentName(), 42 - // If you opted-in for the New Architecture, we enable the Fabric Renderer. 43 - DefaultNewArchitectureEntryPoint.getFabricEnabled(), // fabricEnabled 44 - // If you opted-in for the New Architecture, we enable Concurrent React (i.e. React 18). 45 - DefaultNewArchitectureEntryPoint.getConcurrentReactEnabled() // concurrentRootEnabled 46 - )); 47 - } 48 - 49 - /** 50 - * Align the back button behavior with Android S 51 - * where moving root activities to background instead of finishing activities. 52 - * @see <a href="https://developer.android.com/reference/android/app/Activity#onBackPressed()">onBackPressed</a> 53 - */ 54 - @Override 55 - public void invokeDefaultOnBackPressed() { 56 - if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) { 57 - if (!moveTaskToBack(false)) { 58 - // For non-root activities, use the default implementation to finish them. 59 - super.invokeDefaultOnBackPressed(); 60 - } 61 - return; 62 - } 63 - 64 - // Use the default back button implementation on Android S 65 - // because it's doing more than {@link Activity#moveTaskToBack} in fact. 66 - super.invokeDefaultOnBackPressed(); 67 - } 68 - }
-76
android/app/src/main/java/xyz/blueskyweb/app/MainApplication.java
··· 1 - package xyz.blueskyweb.app; 2 - 3 - import android.app.Application; 4 - import android.content.res.Configuration; 5 - import androidx.annotation.NonNull; 6 - 7 - import com.facebook.react.PackageList; 8 - import com.facebook.react.ReactApplication; 9 - import com.facebook.react.ReactNativeHost; 10 - import com.facebook.react.ReactPackage; 11 - import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint; 12 - import com.facebook.react.defaults.DefaultReactNativeHost; 13 - import com.facebook.soloader.SoLoader; 14 - 15 - import expo.modules.ApplicationLifecycleDispatcher; 16 - import expo.modules.ReactNativeHostWrapper; 17 - 18 - import java.util.List; 19 - 20 - public class MainApplication extends Application implements ReactApplication { 21 - 22 - private final ReactNativeHost mReactNativeHost = 23 - new ReactNativeHostWrapper(this, new DefaultReactNativeHost(this) { 24 - @Override 25 - public boolean getUseDeveloperSupport() { 26 - return BuildConfig.DEBUG; 27 - } 28 - 29 - @Override 30 - protected List<ReactPackage> getPackages() { 31 - @SuppressWarnings("UnnecessaryLocalVariable") 32 - List<ReactPackage> packages = new PackageList(this).getPackages(); 33 - // Packages that cannot be autolinked yet can be added manually here, for example: 34 - // packages.add(new MyReactNativePackage()); 35 - return packages; 36 - } 37 - 38 - @Override 39 - protected String getJSMainModuleName() { 40 - return "index"; 41 - } 42 - 43 - @Override 44 - protected boolean isNewArchEnabled() { 45 - return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED; 46 - } 47 - 48 - @Override 49 - protected Boolean isHermesEnabled() { 50 - return BuildConfig.IS_HERMES_ENABLED; 51 - } 52 - }); 53 - 54 - @Override 55 - public ReactNativeHost getReactNativeHost() { 56 - return mReactNativeHost; 57 - } 58 - 59 - @Override 60 - public void onCreate() { 61 - super.onCreate(); 62 - SoLoader.init(this, /* native exopackage */ false); 63 - if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { 64 - // If you opted-in for the New Architecture, we load the native entry point for this app. 65 - DefaultNewArchitectureEntryPoint.load(); 66 - } 67 - ReactNativeFlipper.initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); 68 - ApplicationLifecycleDispatcher.onApplicationCreate(this); 69 - } 70 - 71 - @Override 72 - public void onConfigurationChanged(@NonNull Configuration newConfig) { 73 - super.onConfigurationChanged(newConfig); 74 - ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig); 75 - } 76 - }
-36
android/app/src/main/res/drawable/rn_edit_text_material.xml
··· 1 - <?xml version="1.0" encoding="utf-8"?> 2 - <!-- Copyright (C) 2014 The Android Open Source Project 3 - 4 - Licensed under the Apache License, Version 2.0 (the "License"); 5 - you may not use this file except in compliance with the License. 6 - You may obtain a copy of the License at 7 - 8 - http://www.apache.org/licenses/LICENSE-2.0 9 - 10 - Unless required by applicable law or agreed to in writing, software 11 - distributed under the License is distributed on an "AS IS" BASIS, 12 - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 - See the License for the specific language governing permissions and 14 - limitations under the License. 15 - --> 16 - <inset xmlns:android="http://schemas.android.com/apk/res/android" 17 - android:insetLeft="@dimen/abc_edit_text_inset_horizontal_material" 18 - android:insetRight="@dimen/abc_edit_text_inset_horizontal_material" 19 - android:insetTop="@dimen/abc_edit_text_inset_top_material" 20 - android:insetBottom="@dimen/abc_edit_text_inset_bottom_material"> 21 - 22 - <selector> 23 - <!-- 24 - This file is a copy of abc_edit_text_material (https://bit.ly/3k8fX7I). 25 - The item below with state_pressed="false" and state_focused="false" causes a NullPointerException. 26 - NullPointerException:tempt to invoke virtual method 'android.graphics.drawable.Drawable android.graphics.drawable.Drawable$ConstantState.newDrawable(android.content.res.Resources)' 27 - 28 - <item android:state_pressed="false" android:state_focused="false" android:drawable="@drawable/abc_textfield_default_mtrl_alpha"/> 29 - 30 - For more info, see https://bit.ly/3CdLStv (react-native/pull/29452) and https://bit.ly/3nxOMoR. 31 - --> 32 - <item android:state_enabled="false" android:drawable="@drawable/abc_textfield_default_mtrl_alpha"/> 33 - <item android:drawable="@drawable/abc_textfield_activated_mtrl_alpha"/> 34 - </selector> 35 - 36 - </inset>
android/app/src/main/res/mipmap-hdpi/ic_launcher.png

This is a binary file and will not be displayed.

android/app/src/main/res/mipmap-mdpi/ic_launcher.png

This is a binary file and will not be displayed.

android/app/src/main/res/mipmap-xhdpi/ic_launcher.png

This is a binary file and will not be displayed.

android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png

This is a binary file and will not be displayed.

android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png

This is a binary file and will not be displayed.

-3
android/app/src/main/res/values/strings.xml
··· 1 - <resources> 2 - <string name="app_name">bsky</string> 3 - </resources>
-9
android/app/src/main/res/values/styles.xml
··· 1 - <resources> 2 - 3 - <!-- Base application theme. --> 4 - <style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar"> 5 - <!-- Customize your theme here. --> 6 - <item name="android:editTextBackground">@drawable/rn_edit_text_material</item> 7 - </style> 8 - 9 - </resources>
-18
android/app/src/release/java/xyz/blueskyweb/app/ReactNativeFlipper.java
··· 1 - /** 2 - * Copyright (c) Meta Platforms, Inc. and affiliates. 3 - * 4 - * <p>This source code is licensed under the MIT license found in the LICENSE file in the root 5 - * directory of this source tree. 6 - */ 7 - package xyz.blueskyweb.app; 8 - import android.content.Context; 9 - import com.facebook.react.ReactInstanceManager; 10 - /** 11 - * Class responsible of loading Flipper inside your React Native application. This is the release 12 - * flavor of it so it's empty as we don't want to load Flipper. 13 - */ 14 - public class ReactNativeFlipper { 15 - public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) { 16 - // Do nothing as we don't want to initialize Flipper on Release. 17 - } 18 - }
-42
android/build.gradle
··· 1 - // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 - 3 - buildscript { 4 - ext { 5 - buildToolsVersion = findProperty('android.buildToolsVersion') ?: '33.0.0' 6 - minSdkVersion = Integer.parseInt(findProperty('android.minSdkVersion') ?: '21') 7 - compileSdkVersion = Integer.parseInt(findProperty('android.compileSdkVersion') ?: '33') 8 - targetSdkVersion = Integer.parseInt(findProperty('android.targetSdkVersion') ?: '33') 9 - if (findProperty('android.kotlinVersion')) { 10 - kotlinVersion = findProperty('android.kotlinVersion') 11 - } 12 - frescoVersion = findProperty('expo.frescoVersion') ?: '2.5.0' 13 - 14 - // We use NDK 23 which has both M1 support and is the side-by-side NDK version from AGP. 15 - ndkVersion = "23.1.7779620" 16 - } 17 - repositories { 18 - google() 19 - mavenCentral() 20 - } 21 - dependencies { 22 - classpath('com.android.tools.build:gradle:7.3.1') 23 - classpath('com.facebook.react:react-native-gradle-plugin') 24 - } 25 - } 26 - 27 - allprojects { 28 - repositories { 29 - maven { 30 - // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm 31 - url(new File(['node', '--print', "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim(), '../android')) 32 - } 33 - maven { 34 - // Android JSC is installed from npm 35 - url(new File(['node', '--print', "require.resolve('jsc-android/package.json')"].execute(null, rootDir).text.trim(), '../dist')) 36 - } 37 - 38 - google() 39 - mavenCentral() 40 - maven { url 'https://www.jitpack.io' } 41 - } 42 - }
-53
android/gradle.properties
··· 1 - # Project-wide Gradle settings. 2 - 3 - # IDE (e.g. Android Studio) users: 4 - # Gradle settings configured through the IDE *will override* 5 - # any settings specified in this file. 6 - 7 - # For more details on how to configure your build environment visit 8 - # http://www.gradle.org/docs/current/userguide/build_environment.html 9 - 10 - # Specifies the JVM arguments used for the daemon process. 11 - # The setting is particularly useful for tweaking memory settings. 12 - # Default value: -Xmx512m -XX:MaxMetaspaceSize=256m 13 - org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m 14 - 15 - # When configured, Gradle will run in incubating parallel mode. 16 - # This option should only be used with decoupled projects. More details, visit 17 - # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 - # org.gradle.parallel=true 19 - 20 - # AndroidX package structure to make it clearer which packages are bundled with the 21 - # Android operating system, and which are packaged with your app's APK 22 - # https://developer.android.com/topic/libraries/support-library/androidx-rn 23 - android.useAndroidX=true 24 - 25 - # Automatically convert third-party libraries to use AndroidX 26 - android.enableJetifier=true 27 - 28 - # Version of flipper SDK to use with React Native 29 - FLIPPER_VERSION=0.125.0 30 - 31 - # Use this property to specify which architecture you want to build. 32 - # You can also override it from the CLI using 33 - # ./gradlew <task> -PreactNativeArchitectures=x86_64 34 - reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64 35 - 36 - # Use this property to enable support to the new architecture. 37 - # This will allow you to use TurboModules and the Fabric render in 38 - # your application. You should enable this flag either if you want 39 - # to write custom TurboModules/Fabric components OR use libraries that 40 - # are providing them. 41 - newArchEnabled=false 42 - 43 - # The hosted JavaScript engine 44 - # Supported values: expo.jsEngine = "hermes" | "jsc" 45 - expo.jsEngine=hermes 46 - 47 - # Enable GIF support in React Native images (~200 B increase) 48 - expo.gif.enabled=true 49 - # Enable webp support in React Native images (~85 KB increase) 50 - expo.webp.enabled=true 51 - # Enable animated webp support (~3.4 MB increase) 52 - # Disabled by default because iOS doesn't support animated webp 53 - expo.webp.animated=false
android/gradle/wrapper/gradle-wrapper.jar

This is a binary file and will not be displayed.

-5
android/gradle/wrapper/gradle-wrapper.properties
··· 1 - distributionBase=GRADLE_USER_HOME 2 - distributionPath=wrapper/dists 3 - distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip 4 - zipStoreBase=GRADLE_USER_HOME 5 - zipStorePath=wrapper/dists
-240
android/gradlew
··· 1 - #!/bin/sh 2 - 3 - # 4 - # Copyright © 2015-2021 the original authors. 5 - # 6 - # Licensed under the Apache License, Version 2.0 (the "License"); 7 - # you may not use this file except in compliance with the License. 8 - # You may obtain a copy of the License at 9 - # 10 - # https://www.apache.org/licenses/LICENSE-2.0 11 - # 12 - # Unless required by applicable law or agreed to in writing, software 13 - # distributed under the License is distributed on an "AS IS" BASIS, 14 - # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 - # See the License for the specific language governing permissions and 16 - # limitations under the License. 17 - # 18 - 19 - ############################################################################## 20 - # 21 - # Gradle start up script for POSIX generated by Gradle. 22 - # 23 - # Important for running: 24 - # 25 - # (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is 26 - # noncompliant, but you have some other compliant shell such as ksh or 27 - # bash, then to run this script, type that shell name before the whole 28 - # command line, like: 29 - # 30 - # ksh Gradle 31 - # 32 - # Busybox and similar reduced shells will NOT work, because this script 33 - # requires all of these POSIX shell features: 34 - # * functions; 35 - # * expansions «$var», «${var}», «${var:-default}», «${var+SET}», 36 - # «${var#prefix}», «${var%suffix}», and «$( cmd )»; 37 - # * compound commands having a testable exit status, especially «case»; 38 - # * various built-in commands including «command», «set», and «ulimit». 39 - # 40 - # Important for patching: 41 - # 42 - # (2) This script targets any POSIX shell, so it avoids extensions provided 43 - # by Bash, Ksh, etc; in particular arrays are avoided. 44 - # 45 - # The "traditional" practice of packing multiple parameters into a 46 - # space-separated string is a well documented source of bugs and security 47 - # problems, so this is (mostly) avoided, by progressively accumulating 48 - # options in "$@", and eventually passing that to Java. 49 - # 50 - # Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, 51 - # and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; 52 - # see the in-line comments for details. 53 - # 54 - # There are tweaks for specific operating systems such as AIX, CygWin, 55 - # Darwin, MinGW, and NonStop. 56 - # 57 - # (3) This script is generated from the Groovy template 58 - # https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt 59 - # within the Gradle project. 60 - # 61 - # You can find Gradle at https://github.com/gradle/gradle/. 62 - # 63 - ############################################################################## 64 - 65 - # Attempt to set APP_HOME 66 - 67 - # Resolve links: $0 may be a link 68 - app_path=$0 69 - 70 - # Need this for daisy-chained symlinks. 71 - while 72 - APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path 73 - [ -h "$app_path" ] 74 - do 75 - ls=$( ls -ld "$app_path" ) 76 - link=${ls#*' -> '} 77 - case $link in #( 78 - /*) app_path=$link ;; #( 79 - *) app_path=$APP_HOME$link ;; 80 - esac 81 - done 82 - 83 - APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit 84 - 85 - APP_NAME="Gradle" 86 - APP_BASE_NAME=${0##*/} 87 - 88 - # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 89 - DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' 90 - 91 - # Use the maximum available, or set MAX_FD != -1 to use that value. 92 - MAX_FD=maximum 93 - 94 - warn () { 95 - echo "$*" 96 - } >&2 97 - 98 - die () { 99 - echo 100 - echo "$*" 101 - echo 102 - exit 1 103 - } >&2 104 - 105 - # OS specific support (must be 'true' or 'false'). 106 - cygwin=false 107 - msys=false 108 - darwin=false 109 - nonstop=false 110 - case "$( uname )" in #( 111 - CYGWIN* ) cygwin=true ;; #( 112 - Darwin* ) darwin=true ;; #( 113 - MSYS* | MINGW* ) msys=true ;; #( 114 - NONSTOP* ) nonstop=true ;; 115 - esac 116 - 117 - CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 118 - 119 - 120 - # Determine the Java command to use to start the JVM. 121 - if [ -n "$JAVA_HOME" ] ; then 122 - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 123 - # IBM's JDK on AIX uses strange locations for the executables 124 - JAVACMD=$JAVA_HOME/jre/sh/java 125 - else 126 - JAVACMD=$JAVA_HOME/bin/java 127 - fi 128 - if [ ! -x "$JAVACMD" ] ; then 129 - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 130 - 131 - Please set the JAVA_HOME variable in your environment to match the 132 - location of your Java installation." 133 - fi 134 - else 135 - JAVACMD=java 136 - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 137 - 138 - Please set the JAVA_HOME variable in your environment to match the 139 - location of your Java installation." 140 - fi 141 - 142 - # Increase the maximum file descriptors if we can. 143 - if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then 144 - case $MAX_FD in #( 145 - max*) 146 - MAX_FD=$( ulimit -H -n ) || 147 - warn "Could not query maximum file descriptor limit" 148 - esac 149 - case $MAX_FD in #( 150 - '' | soft) :;; #( 151 - *) 152 - ulimit -n "$MAX_FD" || 153 - warn "Could not set maximum file descriptor limit to $MAX_FD" 154 - esac 155 - fi 156 - 157 - # Collect all arguments for the java command, stacking in reverse order: 158 - # * args from the command line 159 - # * the main class name 160 - # * -classpath 161 - # * -D...appname settings 162 - # * --module-path (only if needed) 163 - # * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. 164 - 165 - # For Cygwin or MSYS, switch paths to Windows format before running java 166 - if "$cygwin" || "$msys" ; then 167 - APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) 168 - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) 169 - 170 - JAVACMD=$( cygpath --unix "$JAVACMD" ) 171 - 172 - # Now convert the arguments - kludge to limit ourselves to /bin/sh 173 - for arg do 174 - if 175 - case $arg in #( 176 - -*) false ;; # don't mess with options #( 177 - /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath 178 - [ -e "$t" ] ;; #( 179 - *) false ;; 180 - esac 181 - then 182 - arg=$( cygpath --path --ignore --mixed "$arg" ) 183 - fi 184 - # Roll the args list around exactly as many times as the number of 185 - # args, so each arg winds up back in the position where it started, but 186 - # possibly modified. 187 - # 188 - # NB: a `for` loop captures its iteration list before it begins, so 189 - # changing the positional parameters here affects neither the number of 190 - # iterations, nor the values presented in `arg`. 191 - shift # remove old arg 192 - set -- "$@" "$arg" # push replacement arg 193 - done 194 - fi 195 - 196 - # Collect all arguments for the java command; 197 - # * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of 198 - # shell script including quotes and variable substitutions, so put them in 199 - # double quotes to make sure that they get re-expanded; and 200 - # * put everything else in single quotes, so that it's not re-expanded. 201 - 202 - set -- \ 203 - "-Dorg.gradle.appname=$APP_BASE_NAME" \ 204 - -classpath "$CLASSPATH" \ 205 - org.gradle.wrapper.GradleWrapperMain \ 206 - "$@" 207 - 208 - # Stop when "xargs" is not available. 209 - if ! command -v xargs >/dev/null 2>&1 210 - then 211 - die "xargs is not available" 212 - fi 213 - 214 - # Use "xargs" to parse quoted args. 215 - # 216 - # With -n1 it outputs one arg per line, with the quotes and backslashes removed. 217 - # 218 - # In Bash we could simply go: 219 - # 220 - # readarray ARGS < <( xargs -n1 <<<"$var" ) && 221 - # set -- "${ARGS[@]}" "$@" 222 - # 223 - # but POSIX shell has neither arrays nor command substitution, so instead we 224 - # post-process each arg (as a line of input to sed) to backslash-escape any 225 - # character that might be a shell metacharacter, then use eval to reverse 226 - # that process (while maintaining the separation between arguments), and wrap 227 - # the whole thing up as a single "set" statement. 228 - # 229 - # This will of course break if any of these variables contains a newline or 230 - # an unmatched quote. 231 - # 232 - 233 - eval "set -- $( 234 - printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | 235 - xargs -n1 | 236 - sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | 237 - tr '\n' ' ' 238 - )" '"$@"' 239 - 240 - exec "$JAVACMD" "$@"
-91
android/gradlew.bat
··· 1 - @rem 2 - @rem Copyright 2015 the original author or authors. 3 - @rem 4 - @rem Licensed under the Apache License, Version 2.0 (the "License"); 5 - @rem you may not use this file except in compliance with the License. 6 - @rem You may obtain a copy of the License at 7 - @rem 8 - @rem https://www.apache.org/licenses/LICENSE-2.0 9 - @rem 10 - @rem Unless required by applicable law or agreed to in writing, software 11 - @rem distributed under the License is distributed on an "AS IS" BASIS, 12 - @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 - @rem See the License for the specific language governing permissions and 14 - @rem limitations under the License. 15 - @rem 16 - 17 - @if "%DEBUG%"=="" @echo off 18 - @rem ########################################################################## 19 - @rem 20 - @rem Gradle startup script for Windows 21 - @rem 22 - @rem ########################################################################## 23 - 24 - @rem Set local scope for the variables with windows NT shell 25 - if "%OS%"=="Windows_NT" setlocal 26 - 27 - set DIRNAME=%~dp0 28 - if "%DIRNAME%"=="" set DIRNAME=. 29 - set APP_BASE_NAME=%~n0 30 - set APP_HOME=%DIRNAME% 31 - 32 - @rem Resolve any "." and ".." in APP_HOME to make it shorter. 33 - for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi 34 - 35 - @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 36 - set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" 37 - 38 - @rem Find java.exe 39 - if defined JAVA_HOME goto findJavaFromJavaHome 40 - 41 - set JAVA_EXE=java.exe 42 - %JAVA_EXE% -version >NUL 2>&1 43 - if %ERRORLEVEL% equ 0 goto execute 44 - 45 - echo. 46 - echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 47 - echo. 48 - echo Please set the JAVA_HOME variable in your environment to match the 49 - echo location of your Java installation. 50 - 51 - goto fail 52 - 53 - :findJavaFromJavaHome 54 - set JAVA_HOME=%JAVA_HOME:"=% 55 - set JAVA_EXE=%JAVA_HOME%/bin/java.exe 56 - 57 - if exist "%JAVA_EXE%" goto execute 58 - 59 - echo. 60 - echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 61 - echo. 62 - echo Please set the JAVA_HOME variable in your environment to match the 63 - echo location of your Java installation. 64 - 65 - goto fail 66 - 67 - :execute 68 - @rem Setup the command line 69 - 70 - set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 71 - 72 - 73 - @rem Execute Gradle 74 - "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* 75 - 76 - :end 77 - @rem End local scope for the variables with windows NT shell 78 - if %ERRORLEVEL% equ 0 goto mainEnd 79 - 80 - :fail 81 - rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 82 - rem the _cmd.exe /c_ return code! 83 - set EXIT_CODE=%ERRORLEVEL% 84 - if %EXIT_CODE% equ 0 set EXIT_CODE=1 85 - if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% 86 - exit /b %EXIT_CODE% 87 - 88 - :mainEnd 89 - if "%OS%"=="Windows_NT" endlocal 90 - 91 - :omega
-10
android/settings.gradle
··· 1 - rootProject.name = 'bluesky' 2 - 3 - apply from: new File(["node", "--print", "require.resolve('expo/package.json')"].execute(null, rootDir).text.trim(), "../scripts/autolinking.gradle"); 4 - useExpoModules() 5 - 6 - apply from: new File(["node", "--print", "require.resolve('@react-native-community/cli-platform-android/package.json')"].execute(null, rootDir).text.trim(), "../native_modules.gradle"); 7 - applyNativeModulesSettingsGradle(settings) 8 - 9 - include ':app' 10 - includeBuild(new File(["node", "--print", "require.resolve('react-native-gradle-plugin/package.json')"].execute(null, rootDir).text.trim()).getParentFile())
+36 -5
app.json
··· 1 1 { 2 2 "expo": { 3 - "name": "bluesky", 3 + "name": "Bluesky", 4 4 "slug": "bluesky", 5 + "owner": "blueskysocial", 5 6 "version": "1.15.0", 6 7 "orientation": "portrait", 7 8 "icon": "./assets/icon.png", 8 9 "userInterfaceStyle": "light", 9 10 "splash": { 10 11 "image": "./assets/cloud-splash.png", 11 - "resizeMode": "contain", 12 + "resizeMode": "cover", 12 13 "backgroundColor": "#ffffff" 13 14 }, 14 15 "ios": { 15 16 "supportsTablet": false, 16 - "bundleIdentifier": "xyz.blueskyweb.app" 17 + "bundleIdentifier": "xyz.blueskyweb.app", 18 + "config": { 19 + "usesNonExemptEncryption": false 20 + }, 21 + "infoPlist": { 22 + "UIBackgroundModes": [ 23 + "fetch", 24 + "processing" 25 + ], 26 + "BGTaskSchedulerPermittedIdentifiers": [ 27 + "com.transistorsoft.fetch" 28 + ] 29 + } 30 + }, 31 + "androidStatusBar": { 32 + "barStyle": "dark-content", 33 + "backgroundColor": "#ffffff" 17 34 }, 18 35 "android": { 19 36 "adaptiveIcon": { ··· 26 43 "favicon": "./assets/favicon.png" 27 44 }, 28 45 "plugins": [ 29 - "expo-localization" 30 - ] 46 + "expo-localization", 47 + "react-native-background-fetch", 48 + [ 49 + "expo-build-properties", 50 + { 51 + "android": { 52 + "kotlinVersion": "1.8.0" 53 + } 54 + } 55 + ] 56 + ], 57 + "extra": { 58 + "eas": { 59 + "projectId": "55bd077a-d905-4184-9c7f-94789ba0f302" 60 + } 61 + } 31 62 } 32 63 }
+28
eas.json
··· 1 + { 2 + "cli": { 3 + "version": ">= 3.8.1" 4 + }, 5 + "build": { 6 + "development": { 7 + "developmentClient": true, 8 + "distribution": "internal", 9 + "ios": { 10 + "resourceClass": "m-medium" 11 + } 12 + }, 13 + "preview": { 14 + "distribution": "internal", 15 + "ios": { 16 + "resourceClass": "m-medium" 17 + } 18 + }, 19 + "production": { 20 + "ios": { 21 + "resourceClass": "m-medium" 22 + } 23 + } 24 + }, 25 + "submit": { 26 + "production": {} 27 + } 28 + }
-10
ios/.xcode.env
··· 1 - # This `.xcode.env` file is versioned and is used to source the environment 2 - # used when running script phases inside Xcode. 3 - # To customize your local environment, you can create an `.xcode.env.local` 4 - # file that is not versioned. 5 - # NODE_BINARY variable contains the PATH to the node executable. 6 - # 7 - # Customize the NODE_BINARY variable here. 8 - # For example, to use nvm with brew, add the following line 9 - # . "$(brew --prefix nvm)/nvm.sh" --no-use 10 - export NODE_BINARY=$(command -v node)
-1
ios/.xcode.env.local
··· 1 - export NODE_BINARY="/Users/paulfrazee/.nvm/versions/node/v18.8.0/bin/node"
-100
ios/Podfile
··· 1 - require File.join(File.dirname(`node --print "require.resolve('expo/package.json')"`), "scripts/autolinking") 2 - require File.join(File.dirname(`node --print "require.resolve('react-native/package.json')"`), "scripts/react_native_pods") 3 - require File.join(File.dirname(`node --print "require.resolve('@react-native-community/cli-platform-ios/package.json')"`), "native_modules") 4 - 5 - require 'json' 6 - podfile_properties = JSON.parse(File.read(File.join(__dir__, 'Podfile.properties.json'))) rescue {} 7 - 8 - ENV['RCT_NEW_ARCH_ENABLED'] = podfile_properties['newArchEnabled'] == 'true' ? '1' : '0' 9 - 10 - platform :ios, podfile_properties['ios.deploymentTarget'] || '13.0' 11 - install! 'cocoapods', 12 - :deterministic_uuids => false 13 - 14 - prepare_react_native_project! 15 - 16 - # If you are using a `react-native-flipper` your iOS build will fail when `NO_FLIPPER=1` is set. 17 - # because `react-native-flipper` depends on (FlipperKit,...), which will be excluded. To fix this, 18 - # you can also exclude `react-native-flipper` in `react-native.config.js` 19 - # 20 - # ```js 21 - # module.exports = { 22 - # dependencies: { 23 - # ...(process.env.NO_FLIPPER ? { 'react-native-flipper': { platforms: { ios: null } } } : {}), 24 - # } 25 - # } 26 - # ``` 27 - flipper_config = FlipperConfiguration.disabled 28 - if ENV['NO_FLIPPER'] == "1" || ENV['CI'] then 29 - # Explicitly disabled through environment variables 30 - flipper_config = FlipperConfiguration.disabled 31 - elsif podfile_properties.key?('ios.flipper') then 32 - # Configure Flipper in Podfile.properties.json 33 - if podfile_properties['ios.flipper'] == 'true' then 34 - flipper_config = FlipperConfiguration.enabled(["Debug", "Release"]) 35 - elsif ppodfile_properties['ios.flipper'] != 'false' then 36 - flipper_config = FlipperConfiguration.enabled(["Debug", "Release"], { 'Flipper' => podfile_properties['ios.flipper'] }) 37 - end 38 - end 39 - 40 - 41 - 42 - target 'bluesky' do 43 - use_expo_modules! 44 - config = use_native_modules! 45 - 46 - use_frameworks! :linkage => podfile_properties['ios.useFrameworks'].to_sym if podfile_properties['ios.useFrameworks'] 47 - use_frameworks! :linkage => ENV['USE_FRAMEWORKS'].to_sym if ENV['USE_FRAMEWORKS'] 48 - 49 - # Flags change depending on the env values. 50 - flags = get_default_flags() 51 - 52 - use_react_native!( 53 - :path => config[:reactNativePath], 54 - :hermes_enabled => podfile_properties['expo.jsEngine'] == nil || podfile_properties['expo.jsEngine'] == 'hermes', 55 - :fabric_enabled => flags[:fabric_enabled], 56 - # An absolute path to your application root. 57 - :app_path => "#{Pod::Config.instance.installation_root}/..", 58 - # Note that if you have use_frameworks! enabled, Flipper will not work if enabled 59 - :flipper_configuration => flipper_config 60 - ) 61 - 62 - post_install do |installer| 63 - react_native_post_install( 64 - installer, 65 - config[:reactNativePath], 66 - # Set `mac_catalyst_enabled` to `true` in order to apply patches 67 - # necessary for Mac Catalyst builds 68 - :mac_catalyst_enabled => false 69 - ) 70 - __apply_Xcode_12_5_M1_post_install_workaround(installer) 71 - 72 - # Required to force the pods to use the correct deploy version 73 - # See https://github.com/facebook/react-native/issues/34106 74 - installer.pods_project.targets.each do |target| 75 - target.build_configurations.each do |config| 76 - config.build_settings['SWIFT_VERSION'] = '5.0' 77 - config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0' 78 - end 79 - end 80 - 81 - # This is necessary for Xcode 14, because it signs resource bundles by default 82 - # when building for devices. 83 - installer.target_installation_results.pod_target_installation_results 84 - .each do |pod_name, target_installation_result| 85 - target_installation_result.resource_bundle_targets.each do |resource_bundle_target| 86 - resource_bundle_target.build_configurations.each do |config| 87 - config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO' 88 - end 89 - end 90 - end 91 - end 92 - 93 - post_integrate do |installer| 94 - begin 95 - expo_patch_react_imports!(installer) 96 - rescue => e 97 - Pod::UI.warn e 98 - end 99 - end 100 - end
-922
ios/Podfile.lock
··· 1 - PODS: 2 - - boost (1.76.0) 3 - - BVLinearGradient (2.6.2): 4 - - React-Core 5 - - DoubleConversion (1.1.6) 6 - - EXApplication (5.1.1): 7 - - ExpoModulesCore 8 - - EXCamera (13.2.1): 9 - - ExpoModulesCore 10 - - EXConstants (14.2.1): 11 - - ExpoModulesCore 12 - - EXFileSystem (15.2.2): 13 - - ExpoModulesCore 14 - - EXFont (11.1.1): 15 - - ExpoModulesCore 16 - - EXImageLoader (4.1.1): 17 - - ExpoModulesCore 18 - - React-Core 19 - - EXJSONUtils (0.5.1) 20 - - EXManifests (0.5.2): 21 - - EXJSONUtils 22 - - EXMediaLibrary (15.2.3): 23 - - ExpoModulesCore 24 - - React-Core 25 - - Expo (48.0.9): 26 - - ExpoModulesCore 27 - - expo-dev-client (2.1.5): 28 - - EXManifests 29 - - expo-dev-launcher 30 - - expo-dev-menu 31 - - expo-dev-menu-interface 32 - - EXUpdatesInterface 33 - - expo-dev-launcher (2.1.5): 34 - - EXManifests 35 - - expo-dev-launcher/Main (= 2.1.5) 36 - - expo-dev-menu 37 - - expo-dev-menu-interface 38 - - ExpoModulesCore 39 - - EXUpdatesInterface 40 - - React-Core 41 - - expo-dev-launcher/Main (2.1.5): 42 - - EXManifests 43 - - expo-dev-launcher/Unsafe 44 - - expo-dev-menu 45 - - expo-dev-menu-interface 46 - - ExpoModulesCore 47 - - EXUpdatesInterface 48 - - React-Core 49 - - expo-dev-launcher/Unsafe (2.1.5): 50 - - EXManifests 51 - - expo-dev-menu 52 - - expo-dev-menu-interface 53 - - ExpoModulesCore 54 - - EXUpdatesInterface 55 - - React-Core 56 - - expo-dev-menu (2.1.3): 57 - - expo-dev-menu/Main (= 2.1.3) 58 - - expo-dev-menu-interface (1.1.1) 59 - - expo-dev-menu/GestureHandler (2.1.3) 60 - - expo-dev-menu/Main (2.1.3): 61 - - EXManifests 62 - - expo-dev-menu-interface 63 - - expo-dev-menu/Vendored 64 - - ExpoModulesCore 65 - - React-Core 66 - - expo-dev-menu/Reanimated (2.1.3): 67 - - DoubleConversion 68 - - FBLazyVector 69 - - FBReactNativeSpec 70 - - glog 71 - - RCT-Folly 72 - - RCTRequired 73 - - RCTTypeSafety 74 - - React-callinvoker 75 - - React-Core 76 - - React-Core/DevSupport 77 - - React-Core/RCTWebSocket 78 - - React-CoreModules 79 - - React-cxxreact 80 - - React-jsi 81 - - React-jsiexecutor 82 - - React-jsinspector 83 - - React-RCTActionSheet 84 - - React-RCTAnimation 85 - - React-RCTBlob 86 - - React-RCTImage 87 - - React-RCTLinking 88 - - React-RCTNetwork 89 - - React-RCTSettings 90 - - React-RCTText 91 - - React-RCTVibration 92 - - ReactCommon/turbomodule/core 93 - - Yoga 94 - - expo-dev-menu/SafeAreaView (2.1.3) 95 - - expo-dev-menu/Vendored (2.1.3): 96 - - expo-dev-menu/GestureHandler 97 - - expo-dev-menu/Reanimated 98 - - expo-dev-menu/SafeAreaView 99 - - ExpoImagePicker (14.1.1): 100 - - ExpoModulesCore 101 - - ExpoKeepAwake (12.0.1): 102 - - ExpoModulesCore 103 - - ExpoLocalization (14.1.1): 104 - - ExpoModulesCore 105 - - ExpoModulesCore (1.2.6): 106 - - React-Core 107 - - React-RCTAppDelegate 108 - - ReactCommon/turbomodule/core 109 - - EXSplashScreen (0.18.1): 110 - - ExpoModulesCore 111 - - React-Core 112 - - EXUpdatesInterface (0.9.1) 113 - - FBLazyVector (0.71.4) 114 - - FBReactNativeSpec (0.71.4): 115 - - RCT-Folly (= 2021.07.22.00) 116 - - RCTRequired (= 0.71.4) 117 - - RCTTypeSafety (= 0.71.4) 118 - - React-Core (= 0.71.4) 119 - - React-jsi (= 0.71.4) 120 - - ReactCommon/turbomodule/core (= 0.71.4) 121 - - fmt (6.2.1) 122 - - glog (0.3.5) 123 - - hermes-engine (0.71.4): 124 - - hermes-engine/Pre-built (= 0.71.4) 125 - - hermes-engine/Pre-built (0.71.4) 126 - - libevent (2.1.12) 127 - - libwebp (1.2.4): 128 - - libwebp/demux (= 1.2.4) 129 - - libwebp/mux (= 1.2.4) 130 - - libwebp/webp (= 1.2.4) 131 - - libwebp/demux (1.2.4): 132 - - libwebp/webp 133 - - libwebp/mux (1.2.4): 134 - - libwebp/demux 135 - - libwebp/webp (1.2.4) 136 - - RCT-Folly (2021.07.22.00): 137 - - boost 138 - - DoubleConversion 139 - - fmt (~> 6.2.1) 140 - - glog 141 - - RCT-Folly/Default (= 2021.07.22.00) 142 - - RCT-Folly/Default (2021.07.22.00): 143 - - boost 144 - - DoubleConversion 145 - - fmt (~> 6.2.1) 146 - - glog 147 - - RCT-Folly/Futures (2021.07.22.00): 148 - - boost 149 - - DoubleConversion 150 - - fmt (~> 6.2.1) 151 - - glog 152 - - libevent 153 - - RCTRequired (0.71.4) 154 - - RCTTypeSafety (0.71.4): 155 - - FBLazyVector (= 0.71.4) 156 - - RCTRequired (= 0.71.4) 157 - - React-Core (= 0.71.4) 158 - - React (0.71.4): 159 - - React-Core (= 0.71.4) 160 - - React-Core/DevSupport (= 0.71.4) 161 - - React-Core/RCTWebSocket (= 0.71.4) 162 - - React-RCTActionSheet (= 0.71.4) 163 - - React-RCTAnimation (= 0.71.4) 164 - - React-RCTBlob (= 0.71.4) 165 - - React-RCTImage (= 0.71.4) 166 - - React-RCTLinking (= 0.71.4) 167 - - React-RCTNetwork (= 0.71.4) 168 - - React-RCTSettings (= 0.71.4) 169 - - React-RCTText (= 0.71.4) 170 - - React-RCTVibration (= 0.71.4) 171 - - React-callinvoker (0.71.4) 172 - - React-Codegen (0.71.4): 173 - - FBReactNativeSpec 174 - - hermes-engine 175 - - RCT-Folly 176 - - RCTRequired 177 - - RCTTypeSafety 178 - - React-Core 179 - - React-jsi 180 - - React-jsiexecutor 181 - - ReactCommon/turbomodule/bridging 182 - - ReactCommon/turbomodule/core 183 - - React-Core (0.71.4): 184 - - glog 185 - - hermes-engine 186 - - RCT-Folly (= 2021.07.22.00) 187 - - React-Core/Default (= 0.71.4) 188 - - React-cxxreact (= 0.71.4) 189 - - React-hermes 190 - - React-jsi (= 0.71.4) 191 - - React-jsiexecutor (= 0.71.4) 192 - - React-perflogger (= 0.71.4) 193 - - Yoga 194 - - React-Core/CoreModulesHeaders (0.71.4): 195 - - glog 196 - - hermes-engine 197 - - RCT-Folly (= 2021.07.22.00) 198 - - React-Core/Default 199 - - React-cxxreact (= 0.71.4) 200 - - React-hermes 201 - - React-jsi (= 0.71.4) 202 - - React-jsiexecutor (= 0.71.4) 203 - - React-perflogger (= 0.71.4) 204 - - Yoga 205 - - React-Core/Default (0.71.4): 206 - - glog 207 - - hermes-engine 208 - - RCT-Folly (= 2021.07.22.00) 209 - - React-cxxreact (= 0.71.4) 210 - - React-hermes 211 - - React-jsi (= 0.71.4) 212 - - React-jsiexecutor (= 0.71.4) 213 - - React-perflogger (= 0.71.4) 214 - - Yoga 215 - - React-Core/DevSupport (0.71.4): 216 - - glog 217 - - hermes-engine 218 - - RCT-Folly (= 2021.07.22.00) 219 - - React-Core/Default (= 0.71.4) 220 - - React-Core/RCTWebSocket (= 0.71.4) 221 - - React-cxxreact (= 0.71.4) 222 - - React-hermes 223 - - React-jsi (= 0.71.4) 224 - - React-jsiexecutor (= 0.71.4) 225 - - React-jsinspector (= 0.71.4) 226 - - React-perflogger (= 0.71.4) 227 - - Yoga 228 - - React-Core/RCTActionSheetHeaders (0.71.4): 229 - - glog 230 - - hermes-engine 231 - - RCT-Folly (= 2021.07.22.00) 232 - - React-Core/Default 233 - - React-cxxreact (= 0.71.4) 234 - - React-hermes 235 - - React-jsi (= 0.71.4) 236 - - React-jsiexecutor (= 0.71.4) 237 - - React-perflogger (= 0.71.4) 238 - - Yoga 239 - - React-Core/RCTAnimationHeaders (0.71.4): 240 - - glog 241 - - hermes-engine 242 - - RCT-Folly (= 2021.07.22.00) 243 - - React-Core/Default 244 - - React-cxxreact (= 0.71.4) 245 - - React-hermes 246 - - React-jsi (= 0.71.4) 247 - - React-jsiexecutor (= 0.71.4) 248 - - React-perflogger (= 0.71.4) 249 - - Yoga 250 - - React-Core/RCTBlobHeaders (0.71.4): 251 - - glog 252 - - hermes-engine 253 - - RCT-Folly (= 2021.07.22.00) 254 - - React-Core/Default 255 - - React-cxxreact (= 0.71.4) 256 - - React-hermes 257 - - React-jsi (= 0.71.4) 258 - - React-jsiexecutor (= 0.71.4) 259 - - React-perflogger (= 0.71.4) 260 - - Yoga 261 - - React-Core/RCTImageHeaders (0.71.4): 262 - - glog 263 - - hermes-engine 264 - - RCT-Folly (= 2021.07.22.00) 265 - - React-Core/Default 266 - - React-cxxreact (= 0.71.4) 267 - - React-hermes 268 - - React-jsi (= 0.71.4) 269 - - React-jsiexecutor (= 0.71.4) 270 - - React-perflogger (= 0.71.4) 271 - - Yoga 272 - - React-Core/RCTLinkingHeaders (0.71.4): 273 - - glog 274 - - hermes-engine 275 - - RCT-Folly (= 2021.07.22.00) 276 - - React-Core/Default 277 - - React-cxxreact (= 0.71.4) 278 - - React-hermes 279 - - React-jsi (= 0.71.4) 280 - - React-jsiexecutor (= 0.71.4) 281 - - React-perflogger (= 0.71.4) 282 - - Yoga 283 - - React-Core/RCTNetworkHeaders (0.71.4): 284 - - glog 285 - - hermes-engine 286 - - RCT-Folly (= 2021.07.22.00) 287 - - React-Core/Default 288 - - React-cxxreact (= 0.71.4) 289 - - React-hermes 290 - - React-jsi (= 0.71.4) 291 - - React-jsiexecutor (= 0.71.4) 292 - - React-perflogger (= 0.71.4) 293 - - Yoga 294 - - React-Core/RCTSettingsHeaders (0.71.4): 295 - - glog 296 - - hermes-engine 297 - - RCT-Folly (= 2021.07.22.00) 298 - - React-Core/Default 299 - - React-cxxreact (= 0.71.4) 300 - - React-hermes 301 - - React-jsi (= 0.71.4) 302 - - React-jsiexecutor (= 0.71.4) 303 - - React-perflogger (= 0.71.4) 304 - - Yoga 305 - - React-Core/RCTTextHeaders (0.71.4): 306 - - glog 307 - - hermes-engine 308 - - RCT-Folly (= 2021.07.22.00) 309 - - React-Core/Default 310 - - React-cxxreact (= 0.71.4) 311 - - React-hermes 312 - - React-jsi (= 0.71.4) 313 - - React-jsiexecutor (= 0.71.4) 314 - - React-perflogger (= 0.71.4) 315 - - Yoga 316 - - React-Core/RCTVibrationHeaders (0.71.4): 317 - - glog 318 - - hermes-engine 319 - - RCT-Folly (= 2021.07.22.00) 320 - - React-Core/Default 321 - - React-cxxreact (= 0.71.4) 322 - - React-hermes 323 - - React-jsi (= 0.71.4) 324 - - React-jsiexecutor (= 0.71.4) 325 - - React-perflogger (= 0.71.4) 326 - - Yoga 327 - - React-Core/RCTWebSocket (0.71.4): 328 - - glog 329 - - hermes-engine 330 - - RCT-Folly (= 2021.07.22.00) 331 - - React-Core/Default (= 0.71.4) 332 - - React-cxxreact (= 0.71.4) 333 - - React-hermes 334 - - React-jsi (= 0.71.4) 335 - - React-jsiexecutor (= 0.71.4) 336 - - React-perflogger (= 0.71.4) 337 - - Yoga 338 - - React-CoreModules (0.71.4): 339 - - RCT-Folly (= 2021.07.22.00) 340 - - RCTTypeSafety (= 0.71.4) 341 - - React-Codegen (= 0.71.4) 342 - - React-Core/CoreModulesHeaders (= 0.71.4) 343 - - React-jsi (= 0.71.4) 344 - - React-RCTBlob 345 - - React-RCTImage (= 0.71.4) 346 - - ReactCommon/turbomodule/core (= 0.71.4) 347 - - React-cxxreact (0.71.4): 348 - - boost (= 1.76.0) 349 - - DoubleConversion 350 - - glog 351 - - hermes-engine 352 - - RCT-Folly (= 2021.07.22.00) 353 - - React-callinvoker (= 0.71.4) 354 - - React-jsi (= 0.71.4) 355 - - React-jsinspector (= 0.71.4) 356 - - React-logger (= 0.71.4) 357 - - React-perflogger (= 0.71.4) 358 - - React-runtimeexecutor (= 0.71.4) 359 - - React-hermes (0.71.4): 360 - - DoubleConversion 361 - - glog 362 - - hermes-engine 363 - - RCT-Folly (= 2021.07.22.00) 364 - - RCT-Folly/Futures (= 2021.07.22.00) 365 - - React-cxxreact (= 0.71.4) 366 - - React-jsi 367 - - React-jsiexecutor (= 0.71.4) 368 - - React-jsinspector (= 0.71.4) 369 - - React-perflogger (= 0.71.4) 370 - - React-jsi (0.71.4): 371 - - boost (= 1.76.0) 372 - - DoubleConversion 373 - - glog 374 - - hermes-engine 375 - - RCT-Folly (= 2021.07.22.00) 376 - - React-jsiexecutor (0.71.4): 377 - - DoubleConversion 378 - - glog 379 - - hermes-engine 380 - - RCT-Folly (= 2021.07.22.00) 381 - - React-cxxreact (= 0.71.4) 382 - - React-jsi (= 0.71.4) 383 - - React-perflogger (= 0.71.4) 384 - - React-jsinspector (0.71.4) 385 - - React-logger (0.71.4): 386 - - glog 387 - - react-native-blur (4.3.0): 388 - - React-Core 389 - - react-native-cameraroll (5.3.1): 390 - - React-Core 391 - - react-native-get-random-values (1.8.0): 392 - - React-Core 393 - - react-native-image-resizer (3.0.5): 394 - - React-Core 395 - - react-native-pager-view (6.1.2): 396 - - React-Core 397 - - react-native-paste-input (0.6.2): 398 - - React-Core 399 - - Swime (= 3.0.6) 400 - - react-native-safe-area-context (4.5.0): 401 - - RCT-Folly 402 - - RCTRequired 403 - - RCTTypeSafety 404 - - React-Core 405 - - ReactCommon/turbomodule/core 406 - - react-native-splash-screen (3.3.0): 407 - - React-Core 408 - - react-native-version-number (0.3.6): 409 - - React 410 - - React-perflogger (0.71.4) 411 - - React-RCTActionSheet (0.71.4): 412 - - React-Core/RCTActionSheetHeaders (= 0.71.4) 413 - - React-RCTAnimation (0.71.4): 414 - - RCT-Folly (= 2021.07.22.00) 415 - - RCTTypeSafety (= 0.71.4) 416 - - React-Codegen (= 0.71.4) 417 - - React-Core/RCTAnimationHeaders (= 0.71.4) 418 - - React-jsi (= 0.71.4) 419 - - ReactCommon/turbomodule/core (= 0.71.4) 420 - - React-RCTAppDelegate (0.71.4): 421 - - RCT-Folly 422 - - RCTRequired 423 - - RCTTypeSafety 424 - - React-Core 425 - - ReactCommon/turbomodule/core 426 - - React-RCTBlob (0.71.4): 427 - - hermes-engine 428 - - RCT-Folly (= 2021.07.22.00) 429 - - React-Codegen (= 0.71.4) 430 - - React-Core/RCTBlobHeaders (= 0.71.4) 431 - - React-Core/RCTWebSocket (= 0.71.4) 432 - - React-jsi (= 0.71.4) 433 - - React-RCTNetwork (= 0.71.4) 434 - - ReactCommon/turbomodule/core (= 0.71.4) 435 - - React-RCTImage (0.71.4): 436 - - RCT-Folly (= 2021.07.22.00) 437 - - RCTTypeSafety (= 0.71.4) 438 - - React-Codegen (= 0.71.4) 439 - - React-Core/RCTImageHeaders (= 0.71.4) 440 - - React-jsi (= 0.71.4) 441 - - React-RCTNetwork (= 0.71.4) 442 - - ReactCommon/turbomodule/core (= 0.71.4) 443 - - React-RCTLinking (0.71.4): 444 - - React-Codegen (= 0.71.4) 445 - - React-Core/RCTLinkingHeaders (= 0.71.4) 446 - - React-jsi (= 0.71.4) 447 - - ReactCommon/turbomodule/core (= 0.71.4) 448 - - React-RCTNetwork (0.71.4): 449 - - RCT-Folly (= 2021.07.22.00) 450 - - RCTTypeSafety (= 0.71.4) 451 - - React-Codegen (= 0.71.4) 452 - - React-Core/RCTNetworkHeaders (= 0.71.4) 453 - - React-jsi (= 0.71.4) 454 - - ReactCommon/turbomodule/core (= 0.71.4) 455 - - React-RCTSettings (0.71.4): 456 - - RCT-Folly (= 2021.07.22.00) 457 - - RCTTypeSafety (= 0.71.4) 458 - - React-Codegen (= 0.71.4) 459 - - React-Core/RCTSettingsHeaders (= 0.71.4) 460 - - React-jsi (= 0.71.4) 461 - - ReactCommon/turbomodule/core (= 0.71.4) 462 - - React-RCTText (0.71.4): 463 - - React-Core/RCTTextHeaders (= 0.71.4) 464 - - React-RCTVibration (0.71.4): 465 - - RCT-Folly (= 2021.07.22.00) 466 - - React-Codegen (= 0.71.4) 467 - - React-Core/RCTVibrationHeaders (= 0.71.4) 468 - - React-jsi (= 0.71.4) 469 - - ReactCommon/turbomodule/core (= 0.71.4) 470 - - React-runtimeexecutor (0.71.4): 471 - - React-jsi (= 0.71.4) 472 - - ReactCommon/turbomodule/bridging (0.71.4): 473 - - DoubleConversion 474 - - glog 475 - - hermes-engine 476 - - RCT-Folly (= 2021.07.22.00) 477 - - React-callinvoker (= 0.71.4) 478 - - React-Core (= 0.71.4) 479 - - React-cxxreact (= 0.71.4) 480 - - React-jsi (= 0.71.4) 481 - - React-logger (= 0.71.4) 482 - - React-perflogger (= 0.71.4) 483 - - ReactCommon/turbomodule/core (0.71.4): 484 - - DoubleConversion 485 - - glog 486 - - hermes-engine 487 - - RCT-Folly (= 2021.07.22.00) 488 - - React-callinvoker (= 0.71.4) 489 - - React-Core (= 0.71.4) 490 - - React-cxxreact (= 0.71.4) 491 - - React-jsi (= 0.71.4) 492 - - React-logger (= 0.71.4) 493 - - React-perflogger (= 0.71.4) 494 - - rn-fetch-blob (0.12.0): 495 - - React-Core 496 - - RNBackgroundFetch (4.1.9): 497 - - React-Core 498 - - RNCAsyncStorage (1.17.12): 499 - - React-Core 500 - - RNCClipboard (1.11.2): 501 - - React-Core 502 - - RNFastImage (8.6.3): 503 - - React-Core 504 - - SDWebImage (~> 5.11.1) 505 - - SDWebImageWebPCoder (~> 0.8.4) 506 - - RNFS (2.20.0): 507 - - React-Core 508 - - RNGestureHandler (2.9.0): 509 - - React-Core 510 - - RNImageCropPicker (0.38.1): 511 - - React-Core 512 - - React-RCTImage 513 - - RNImageCropPicker/QBImagePickerController (= 0.38.1) 514 - - TOCropViewController 515 - - RNImageCropPicker/QBImagePickerController (0.38.1): 516 - - React-Core 517 - - React-RCTImage 518 - - TOCropViewController 519 - - RNInAppBrowser (3.7.0): 520 - - React-Core 521 - - RNNotifee (7.6.1): 522 - - React-Core 523 - - RNNotifee/NotifeeCore (= 7.6.1) 524 - - RNNotifee/NotifeeCore (7.6.1): 525 - - React-Core 526 - - RNReactNativeHapticFeedback (1.14.0): 527 - - React-Core 528 - - RNReanimated (2.14.4): 529 - - DoubleConversion 530 - - FBLazyVector 531 - - FBReactNativeSpec 532 - - glog 533 - - RCT-Folly 534 - - RCTRequired 535 - - RCTTypeSafety 536 - - React-callinvoker 537 - - React-Core 538 - - React-Core/DevSupport 539 - - React-Core/RCTWebSocket 540 - - React-CoreModules 541 - - React-cxxreact 542 - - React-jsi 543 - - React-jsiexecutor 544 - - React-jsinspector 545 - - React-RCTActionSheet 546 - - React-RCTAnimation 547 - - React-RCTBlob 548 - - React-RCTImage 549 - - React-RCTLinking 550 - - React-RCTNetwork 551 - - React-RCTSettings 552 - - React-RCTText 553 - - ReactCommon/turbomodule/core 554 - - Yoga 555 - - RNScreens (3.20.0): 556 - - React-Core 557 - - React-RCTImage 558 - - RNSVG (13.4.0): 559 - - React-Core 560 - - SDWebImage (5.11.1): 561 - - SDWebImage/Core (= 5.11.1) 562 - - SDWebImage/Core (5.11.1) 563 - - SDWebImageWebPCoder (0.8.5): 564 - - libwebp (~> 1.0) 565 - - SDWebImage/Core (~> 5.10) 566 - - segment-analytics-react-native (2.13.4): 567 - - React-Core 568 - - sovran-react-native 569 - - sovran-react-native (0.4.5): 570 - - React-Core 571 - - Swime (3.0.6) 572 - - TOCropViewController (2.6.1) 573 - - Yoga (1.14.0) 574 - 575 - DEPENDENCIES: 576 - - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`) 577 - - BVLinearGradient (from `../node_modules/react-native-linear-gradient`) 578 - - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) 579 - - EXApplication (from `../node_modules/expo-application/ios`) 580 - - EXCamera (from `../node_modules/expo-camera/ios`) 581 - - EXConstants (from `../node_modules/expo-constants/ios`) 582 - - EXFileSystem (from `../node_modules/expo-file-system/ios`) 583 - - EXFont (from `../node_modules/expo-font/ios`) 584 - - EXImageLoader (from `../node_modules/expo-image-loader/ios`) 585 - - EXJSONUtils (from `../node_modules/expo-json-utils/ios`) 586 - - EXManifests (from `../node_modules/expo-manifests/ios`) 587 - - EXMediaLibrary (from `../node_modules/expo-media-library/ios`) 588 - - Expo (from `../node_modules/expo`) 589 - - expo-dev-client (from `../node_modules/expo-dev-client/ios`) 590 - - expo-dev-launcher (from `../node_modules/expo-dev-launcher`) 591 - - expo-dev-menu (from `../node_modules/expo-dev-menu`) 592 - - expo-dev-menu-interface (from `../node_modules/expo-dev-menu-interface/ios`) 593 - - ExpoImagePicker (from `../node_modules/expo-image-picker/ios`) 594 - - ExpoKeepAwake (from `../node_modules/expo-keep-awake/ios`) 595 - - ExpoLocalization (from `../node_modules/expo-localization/ios`) 596 - - ExpoModulesCore (from `../node_modules/expo-modules-core`) 597 - - EXSplashScreen (from `../node_modules/expo-splash-screen/ios`) 598 - - EXUpdatesInterface (from `../node_modules/expo-updates-interface/ios`) 599 - - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) 600 - - FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`) 601 - - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) 602 - - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`) 603 - - libevent (~> 2.1.12) 604 - - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) 605 - - RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`) 606 - - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`) 607 - - React (from `../node_modules/react-native/`) 608 - - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`) 609 - - React-Codegen (from `build/generated/ios`) 610 - - React-Core (from `../node_modules/react-native/`) 611 - - React-Core/RCTWebSocket (from `../node_modules/react-native/`) 612 - - React-CoreModules (from `../node_modules/react-native/React/CoreModules`) 613 - - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`) 614 - - React-hermes (from `../node_modules/react-native/ReactCommon/hermes`) 615 - - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`) 616 - - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`) 617 - - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`) 618 - - React-logger (from `../node_modules/react-native/ReactCommon/logger`) 619 - - "react-native-blur (from `../node_modules/@react-native-community/blur`)" 620 - - "react-native-cameraroll (from `../node_modules/@react-native-camera-roll/camera-roll`)" 621 - - react-native-get-random-values (from `../node_modules/react-native-get-random-values`) 622 - - "react-native-image-resizer (from `../node_modules/@bam.tech/react-native-image-resizer`)" 623 - - react-native-pager-view (from `../node_modules/react-native-pager-view`) 624 - - "react-native-paste-input (from `../node_modules/@mattermost/react-native-paste-input`)" 625 - - react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`) 626 - - react-native-splash-screen (from `../node_modules/react-native-splash-screen`) 627 - - react-native-version-number (from `../node_modules/react-native-version-number`) 628 - - React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`) 629 - - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`) 630 - - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`) 631 - - React-RCTAppDelegate (from `../node_modules/react-native/Libraries/AppDelegate`) 632 - - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`) 633 - - React-RCTImage (from `../node_modules/react-native/Libraries/Image`) 634 - - React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`) 635 - - React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`) 636 - - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`) 637 - - React-RCTText (from `../node_modules/react-native/Libraries/Text`) 638 - - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`) 639 - - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`) 640 - - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) 641 - - rn-fetch-blob (from `../node_modules/rn-fetch-blob`) 642 - - RNBackgroundFetch (from `../node_modules/react-native-background-fetch`) 643 - - "RNCAsyncStorage (from `../node_modules/@react-native-async-storage/async-storage`)" 644 - - "RNCClipboard (from `../node_modules/@react-native-clipboard/clipboard`)" 645 - - RNFastImage (from `../node_modules/react-native-fast-image`) 646 - - RNFS (from `../node_modules/react-native-fs`) 647 - - RNGestureHandler (from `../node_modules/react-native-gesture-handler`) 648 - - RNImageCropPicker (from `../node_modules/react-native-image-crop-picker`) 649 - - RNInAppBrowser (from `../node_modules/react-native-inappbrowser-reborn`) 650 - - "RNNotifee (from `../node_modules/@notifee/react-native`)" 651 - - RNReactNativeHapticFeedback (from `../node_modules/react-native-haptic-feedback`) 652 - - RNReanimated (from `../node_modules/react-native-reanimated`) 653 - - RNScreens (from `../node_modules/react-native-screens`) 654 - - RNSVG (from `../node_modules/react-native-svg`) 655 - - "segment-analytics-react-native (from `../node_modules/@segment/analytics-react-native`)" 656 - - "sovran-react-native (from `../node_modules/@segment/sovran-react-native`)" 657 - - Yoga (from `../node_modules/react-native/ReactCommon/yoga`) 658 - 659 - SPEC REPOS: 660 - trunk: 661 - - fmt 662 - - libevent 663 - - libwebp 664 - - SDWebImage 665 - - SDWebImageWebPCoder 666 - - Swime 667 - - TOCropViewController 668 - 669 - EXTERNAL SOURCES: 670 - boost: 671 - :podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec" 672 - BVLinearGradient: 673 - :path: "../node_modules/react-native-linear-gradient" 674 - DoubleConversion: 675 - :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" 676 - EXApplication: 677 - :path: "../node_modules/expo-application/ios" 678 - EXCamera: 679 - :path: "../node_modules/expo-camera/ios" 680 - EXConstants: 681 - :path: "../node_modules/expo-constants/ios" 682 - EXFileSystem: 683 - :path: "../node_modules/expo-file-system/ios" 684 - EXFont: 685 - :path: "../node_modules/expo-font/ios" 686 - EXImageLoader: 687 - :path: "../node_modules/expo-image-loader/ios" 688 - EXJSONUtils: 689 - :path: "../node_modules/expo-json-utils/ios" 690 - EXManifests: 691 - :path: "../node_modules/expo-manifests/ios" 692 - EXMediaLibrary: 693 - :path: "../node_modules/expo-media-library/ios" 694 - Expo: 695 - :path: "../node_modules/expo" 696 - expo-dev-client: 697 - :path: "../node_modules/expo-dev-client/ios" 698 - expo-dev-launcher: 699 - :path: "../node_modules/expo-dev-launcher" 700 - expo-dev-menu: 701 - :path: "../node_modules/expo-dev-menu" 702 - expo-dev-menu-interface: 703 - :path: "../node_modules/expo-dev-menu-interface/ios" 704 - ExpoImagePicker: 705 - :path: "../node_modules/expo-image-picker/ios" 706 - ExpoKeepAwake: 707 - :path: "../node_modules/expo-keep-awake/ios" 708 - ExpoLocalization: 709 - :path: "../node_modules/expo-localization/ios" 710 - ExpoModulesCore: 711 - :path: "../node_modules/expo-modules-core" 712 - EXSplashScreen: 713 - :path: "../node_modules/expo-splash-screen/ios" 714 - EXUpdatesInterface: 715 - :path: "../node_modules/expo-updates-interface/ios" 716 - FBLazyVector: 717 - :path: "../node_modules/react-native/Libraries/FBLazyVector" 718 - FBReactNativeSpec: 719 - :path: "../node_modules/react-native/React/FBReactNativeSpec" 720 - glog: 721 - :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" 722 - hermes-engine: 723 - :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec" 724 - RCT-Folly: 725 - :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec" 726 - RCTRequired: 727 - :path: "../node_modules/react-native/Libraries/RCTRequired" 728 - RCTTypeSafety: 729 - :path: "../node_modules/react-native/Libraries/TypeSafety" 730 - React: 731 - :path: "../node_modules/react-native/" 732 - React-callinvoker: 733 - :path: "../node_modules/react-native/ReactCommon/callinvoker" 734 - React-Codegen: 735 - :path: build/generated/ios 736 - React-Core: 737 - :path: "../node_modules/react-native/" 738 - React-CoreModules: 739 - :path: "../node_modules/react-native/React/CoreModules" 740 - React-cxxreact: 741 - :path: "../node_modules/react-native/ReactCommon/cxxreact" 742 - React-hermes: 743 - :path: "../node_modules/react-native/ReactCommon/hermes" 744 - React-jsi: 745 - :path: "../node_modules/react-native/ReactCommon/jsi" 746 - React-jsiexecutor: 747 - :path: "../node_modules/react-native/ReactCommon/jsiexecutor" 748 - React-jsinspector: 749 - :path: "../node_modules/react-native/ReactCommon/jsinspector" 750 - React-logger: 751 - :path: "../node_modules/react-native/ReactCommon/logger" 752 - react-native-blur: 753 - :path: "../node_modules/@react-native-community/blur" 754 - react-native-cameraroll: 755 - :path: "../node_modules/@react-native-camera-roll/camera-roll" 756 - react-native-get-random-values: 757 - :path: "../node_modules/react-native-get-random-values" 758 - react-native-image-resizer: 759 - :path: "../node_modules/@bam.tech/react-native-image-resizer" 760 - react-native-pager-view: 761 - :path: "../node_modules/react-native-pager-view" 762 - react-native-paste-input: 763 - :path: "../node_modules/@mattermost/react-native-paste-input" 764 - react-native-safe-area-context: 765 - :path: "../node_modules/react-native-safe-area-context" 766 - react-native-splash-screen: 767 - :path: "../node_modules/react-native-splash-screen" 768 - react-native-version-number: 769 - :path: "../node_modules/react-native-version-number" 770 - React-perflogger: 771 - :path: "../node_modules/react-native/ReactCommon/reactperflogger" 772 - React-RCTActionSheet: 773 - :path: "../node_modules/react-native/Libraries/ActionSheetIOS" 774 - React-RCTAnimation: 775 - :path: "../node_modules/react-native/Libraries/NativeAnimation" 776 - React-RCTAppDelegate: 777 - :path: "../node_modules/react-native/Libraries/AppDelegate" 778 - React-RCTBlob: 779 - :path: "../node_modules/react-native/Libraries/Blob" 780 - React-RCTImage: 781 - :path: "../node_modules/react-native/Libraries/Image" 782 - React-RCTLinking: 783 - :path: "../node_modules/react-native/Libraries/LinkingIOS" 784 - React-RCTNetwork: 785 - :path: "../node_modules/react-native/Libraries/Network" 786 - React-RCTSettings: 787 - :path: "../node_modules/react-native/Libraries/Settings" 788 - React-RCTText: 789 - :path: "../node_modules/react-native/Libraries/Text" 790 - React-RCTVibration: 791 - :path: "../node_modules/react-native/Libraries/Vibration" 792 - React-runtimeexecutor: 793 - :path: "../node_modules/react-native/ReactCommon/runtimeexecutor" 794 - ReactCommon: 795 - :path: "../node_modules/react-native/ReactCommon" 796 - rn-fetch-blob: 797 - :path: "../node_modules/rn-fetch-blob" 798 - RNBackgroundFetch: 799 - :path: "../node_modules/react-native-background-fetch" 800 - RNCAsyncStorage: 801 - :path: "../node_modules/@react-native-async-storage/async-storage" 802 - RNCClipboard: 803 - :path: "../node_modules/@react-native-clipboard/clipboard" 804 - RNFastImage: 805 - :path: "../node_modules/react-native-fast-image" 806 - RNFS: 807 - :path: "../node_modules/react-native-fs" 808 - RNGestureHandler: 809 - :path: "../node_modules/react-native-gesture-handler" 810 - RNImageCropPicker: 811 - :path: "../node_modules/react-native-image-crop-picker" 812 - RNInAppBrowser: 813 - :path: "../node_modules/react-native-inappbrowser-reborn" 814 - RNNotifee: 815 - :path: "../node_modules/@notifee/react-native" 816 - RNReactNativeHapticFeedback: 817 - :path: "../node_modules/react-native-haptic-feedback" 818 - RNReanimated: 819 - :path: "../node_modules/react-native-reanimated" 820 - RNScreens: 821 - :path: "../node_modules/react-native-screens" 822 - RNSVG: 823 - :path: "../node_modules/react-native-svg" 824 - segment-analytics-react-native: 825 - :path: "../node_modules/@segment/analytics-react-native" 826 - sovran-react-native: 827 - :path: "../node_modules/@segment/sovran-react-native" 828 - Yoga: 829 - :path: "../node_modules/react-native/ReactCommon/yoga" 830 - 831 - SPEC CHECKSUMS: 832 - boost: 57d2868c099736d80fcd648bf211b4431e51a558 833 - BVLinearGradient: 34a999fda29036898a09c6a6b728b0b4189e1a44 834 - DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54 835 - EXApplication: d8f53a7eee90a870a75656280e8d4b85726ea903 836 - EXCamera: a323a5942b5e7fc8349e17d728e91c18840ad561 837 - EXConstants: f348da07e21b23d2b085e270d7b74f282df1a7d9 838 - EXFileSystem: 844e86ca9b5375486ecc4ef06d3838d5597d895d 839 - EXFont: 6ea3800df746be7233208d80fe379b8ed74f4272 840 - EXImageLoader: fd053169a8ee932dd83bf1fe5487a50c26d27c2b 841 - EXJSONUtils: 48b1e764ac35160e6f54d21ab60d7d9501f3e473 842 - EXManifests: 500666d48e8dd7ca5a482c9e729e4a7a6c34081b 843 - EXMediaLibrary: 587cd8aad27a6fc8d7c38b950bc75bc1845a7480 844 - Expo: 863488a600a4565698a79577117c70b170054d08 845 - expo-dev-client: 7c1ef51516853465f4d448c14ddf365167d20361 846 - expo-dev-launcher: 90de99d9e5d1a883d81355ca10e87c2f3c81d46e 847 - expo-dev-menu: 4f54ef98df59d9d625677cb18ad4582de92b4a7d 848 - expo-dev-menu-interface: 6c82ae323c4b8724dead4763ce3ff24a2108bdb1 849 - ExpoImagePicker: 270dea232b3a072d981dd564e2cafc63a864edb1 850 - ExpoKeepAwake: 69f5f627670d62318410392d03e0b5db0f85759a 851 - ExpoLocalization: f26cd431ad9ea3533c5b08c4fabd879176a794bb 852 - ExpoModulesCore: 6e0259511f4c4341b6b8357db393624df2280828 853 - EXSplashScreen: cd7fb052dff5ba8311d5c2455ecbebffe1b7a8ca 854 - EXUpdatesInterface: dd699d1930e28639dcbd70a402caea98e86364ca 855 - FBLazyVector: 446e84642979fff0ba57f3c804c2228a473aeac2 856 - FBReactNativeSpec: 241709e132e3bf1526c1c4f00bc5384dd39dfba9 857 - fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 858 - glog: 04b94705f318337d7ead9e6d17c019bd9b1f6b1b 859 - hermes-engine: a1f157c49ea579c28b0296bda8530e980c45bdb3 860 - libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 861 - libwebp: f62cb61d0a484ba548448a4bd52aabf150ff6eef 862 - RCT-Folly: 424b8c9a7a0b9ab2886ffe9c3b041ef628fd4fb1 863 - RCTRequired: 5a024fdf458fa8c0d82fc262e76f982d4dcdecdd 864 - RCTTypeSafety: b6c253064466411c6810b45f66bc1e43ce0c54ba 865 - React: 715292db5bd46989419445a5547954b25d2090f0 866 - React-callinvoker: 105392d1179058585b564d35b4592fe1c46d6fba 867 - React-Codegen: b75333b93d835afce84b73472927cccaef2c9f8c 868 - React-Core: 88838ed1724c64905fc6c0811d752828a92e395b 869 - React-CoreModules: cd238b4bb8dc8529ccc8b34ceae7267b04ce1882 870 - React-cxxreact: 291bfab79d8098dc5ebab98f62e6bdfe81b3955a 871 - React-hermes: b1e67e9a81c71745704950516f40ee804349641c 872 - React-jsi: c9d5b563a6af6bb57034a82c2b0d39d0a7483bdc 873 - React-jsiexecutor: d6b7fa9260aa3cb40afee0507e3bc1d17ecaa6f2 874 - React-jsinspector: 1f51e775819199d3fe9410e69ee8d4c4161c7b06 875 - React-logger: 0d58569ec51d30d1792c5e86a8e3b78d24b582c6 876 - react-native-blur: 50c9feabacbc5f49b61337ebc32192c6be7ec3c3 877 - react-native-cameraroll: f3050460fe1708378698c16686bfaa5f34099be2 878 - react-native-get-random-values: a6ea6a8a65dc93e96e24a11105b1a9c8cfe1d72a 879 - react-native-image-resizer: 00ceb0e05586c7aadf061eea676957a6c2ec60fa 880 - react-native-pager-view: 54bed894cecebe28cede54c01038d9d1e122de43 881 - react-native-paste-input: 3392800944a47c00dddbff23c31c281482209679 882 - react-native-safe-area-context: 39c2d8be3328df5d437ac1700f4f3a4f75716acc 883 - react-native-splash-screen: 4312f786b13a81b5169ef346d76d33bc0c6dc457 884 - react-native-version-number: b415bbec6a13f2df62bf978e85bc0d699462f37f 885 - React-perflogger: 0bb0522a12e058f6eb69d888bc16f40c16c4b907 886 - React-RCTActionSheet: bfd675a10f06a18728ea15d82082d48f228a213a 887 - React-RCTAnimation: 2fa220b2052ec75b733112aca39143d34546a941 888 - React-RCTAppDelegate: 8564f93c1d9274e95e3b0c746d08a87ff5a621b2 889 - React-RCTBlob: d0336111f46301ae8aba2e161817e451aad72dd6 890 - React-RCTImage: fec592c46edb7c12a9cde08780bdb4a688416c62 891 - React-RCTLinking: 14eccac5d2a3b34b89dbfa29e8ef6219a153fe2d 892 - React-RCTNetwork: 1fbce92e772e39ca3687a2ebb854501ff6226dd7 893 - React-RCTSettings: 1abea36c9bb16d9979df6c4b42e2ea281b4bbcc5 894 - React-RCTText: 15355c41561a9f43dfd23616d0a0dd40ba05ed61 895 - React-RCTVibration: ad17efcfb2fa8f6bfd8ac0cf48d96668b8b28e0b 896 - React-runtimeexecutor: 8fa50b38df6b992c76537993a2b0553d3b088004 897 - ReactCommon: b49a4b00ca6d181ff74b17c12b2d59ac4add0bde 898 - rn-fetch-blob: f065bb7ab7fb48dd002629f8bdcb0336602d3cba 899 - RNBackgroundFetch: 642777e4e76435773c149d565a043d66f1781237 900 - RNCAsyncStorage: 09fc8595e6d6f6d5abf16b23a56b257d9c6b7c5b 901 - RNCClipboard: 3f0451a8100393908bea5c5c5b16f96d45f30bfc 902 - RNFastImage: 5c9c9fed9c076e521b3f509fe79e790418a544e8 903 - RNFS: 4ac0f0ea233904cb798630b3c077808c06931688 904 - RNGestureHandler: 071d7a9ad81e8b83fe7663b303d132406a7d8f39 905 - RNImageCropPicker: 648356d68fbf9911a1016b3e3723885d28373eda 906 - RNInAppBrowser: e36d6935517101ccba0e875bac8ad7b0cb655364 907 - RNNotifee: bdc064c29f4d558046f51f0c3ae02bab4fd3cd85 908 - RNReactNativeHapticFeedback: 1e3efeca9628ff9876ee7cdd9edec1b336913f8c 909 - RNReanimated: cc5e3aa479cb9170bcccf8204291a6950a3be128 910 - RNScreens: 218801c16a2782546d30bd2026bb625c0302d70f 911 - RNSVG: 07dbd870b0dcdecc99b3a202fa37c8ca163caec2 912 - SDWebImage: a7f831e1a65eb5e285e3fb046a23fcfbf08e696d 913 - SDWebImageWebPCoder: 908b83b6adda48effe7667cd2b7f78c897e5111d 914 - segment-analytics-react-native: cc12d9422f7ce863ee57c1b650ab48eec4b6d5bd 915 - sovran-react-native: fd3dc8f1a4b14acdc4ad25fc6b4ac4f52a2a2a15 916 - Swime: d7b2c277503b6cea317774aedc2dce05613f8b0b 917 - TOCropViewController: edfd4f25713d56905ad1e0b9f5be3fbe0f59c863 918 - Yoga: 79dd7410de6f8ad73a77c868d3d368843f0c93e0 919 - 920 - PODFILE CHECKSUM: a70ccad2941a86bea1bc3ed0f6cb08a564cf7910 921 - 922 - COCOAPODS: 1.11.3
-3
ios/Podfile.properties.json
··· 1 - { 2 - "expo.jsEngine": "hermes" 3 - }
-24
ios/appTests/Info.plist
··· 1 - <?xml version="1.0" encoding="UTF-8"?> 2 - <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 - <plist version="1.0"> 4 - <dict> 5 - <key>CFBundleDevelopmentRegion</key> 6 - <string>en</string> 7 - <key>CFBundleExecutable</key> 8 - <string>$(EXECUTABLE_NAME)</string> 9 - <key>CFBundleIdentifier</key> 10 - <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> 11 - <key>CFBundleInfoDictionaryVersion</key> 12 - <string>6.0</string> 13 - <key>CFBundleName</key> 14 - <string>$(PRODUCT_NAME)</string> 15 - <key>CFBundlePackageType</key> 16 - <string>BNDL</string> 17 - <key>CFBundleShortVersionString</key> 18 - <string>1.0</string> 19 - <key>CFBundleSignature</key> 20 - <string>????</string> 21 - <key>CFBundleVersion</key> 22 - <string>1</string> 23 - </dict> 24 - </plist>
-66
ios/appTests/appTests.m
··· 1 - #import <UIKit/UIKit.h> 2 - #import <XCTest/XCTest.h> 3 - 4 - #import <React/RCTLog.h> 5 - #import <React/RCTRootView.h> 6 - 7 - #define TIMEOUT_SECONDS 600 8 - #define TEXT_TO_LOOK_FOR @"Welcome to React" 9 - 10 - @interface appTests : XCTestCase 11 - 12 - @end 13 - 14 - @implementation appTests 15 - 16 - - (BOOL)findSubviewInView:(UIView *)view matching:(BOOL (^)(UIView *view))test 17 - { 18 - if (test(view)) { 19 - return YES; 20 - } 21 - for (UIView *subview in [view subviews]) { 22 - if ([self findSubviewInView:subview matching:test]) { 23 - return YES; 24 - } 25 - } 26 - return NO; 27 - } 28 - 29 - - (void)testRendersWelcomeScreen 30 - { 31 - UIViewController *vc = [[[RCTSharedApplication() delegate] window] rootViewController]; 32 - NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS]; 33 - BOOL foundElement = NO; 34 - 35 - __block NSString *redboxError = nil; 36 - #ifdef DEBUG 37 - RCTSetLogFunction( 38 - ^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) { 39 - if (level >= RCTLogLevelError) { 40 - redboxError = message; 41 - } 42 - }); 43 - #endif 44 - 45 - while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) { 46 - [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; 47 - [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; 48 - 49 - foundElement = [self findSubviewInView:vc.view 50 - matching:^BOOL(UIView *view) { 51 - if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) { 52 - return YES; 53 - } 54 - return NO; 55 - }]; 56 - } 57 - 58 - #ifdef DEBUG 59 - RCTSetLogFunction(RCTDefaultLogFunction); 60 - #endif 61 - 62 - XCTAssertNil(redboxError, @"RedBox error: %@", redboxError); 63 - XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS); 64 - } 65 - 66 - @end
-543
ios/bluesky.xcodeproj/project.pbxproj
··· 1 - // !$*UTF8*$! 2 - { 3 - archiveVersion = 1; 4 - classes = { 5 - }; 6 - objectVersion = 53; 7 - objects = { 8 - 9 - /* Begin PBXBuildFile section */ 10 - 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; }; 11 - 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 12 - 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; 13 - 14F1D8D19D7FBF5995C9B32D /* libPods-bluesky.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5B74BD82B16D3B7F19E5ADDA /* libPods-bluesky.a */; }; 14 - 3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */; }; 15 - B18059E884C0ABDD17F3DC3D /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */; }; 16 - B6BE37E812824A869C1E16F6 /* noop-file.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4FECE0FEBF1E4D88B437323C /* noop-file.swift */; }; 17 - BB2F792D24A3F905000567C9 /* Expo.plist in Resources */ = {isa = PBXBuildFile; fileRef = BB2F792C24A3F905000567C9 /* Expo.plist */; }; 18 - /* End PBXBuildFile section */ 19 - 20 - /* Begin PBXFileReference section */ 21 - 008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = "<group>"; }; 22 - 11FD9D89D32941D7ECE26520 /* Pods-bluesky.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-bluesky.debug.xcconfig"; path = "Target Support Files/Pods-bluesky/Pods-bluesky.debug.xcconfig"; sourceTree = "<group>"; }; 23 - 13B07F961A680F5B00A75B9A /* bluesky.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = bluesky.app; sourceTree = BUILT_PRODUCTS_DIR; }; 24 - 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = bluesky/AppDelegate.h; sourceTree = "<group>"; }; 25 - 13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = bluesky/AppDelegate.mm; sourceTree = "<group>"; }; 26 - 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = bluesky/Images.xcassets; sourceTree = "<group>"; }; 27 - 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = bluesky/Info.plist; sourceTree = "<group>"; }; 28 - 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = bluesky/main.m; sourceTree = "<group>"; }; 29 - 4FECE0FEBF1E4D88B437323C /* noop-file.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = "noop-file.swift"; path = "bluesky/noop-file.swift"; sourceTree = "<group>"; }; 30 - 5B74BD82B16D3B7F19E5ADDA /* libPods-bluesky.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-bluesky.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 31 - AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = SplashScreen.storyboard; path = bluesky/SplashScreen.storyboard; sourceTree = "<group>"; }; 32 - BB2F792C24A3F905000567C9 /* Expo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Expo.plist; sourceTree = "<group>"; }; 33 - C92ECE114C152498B9DF0C14 /* Pods-bluesky.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-bluesky.release.xcconfig"; path = "Target Support Files/Pods-bluesky/Pods-bluesky.release.xcconfig"; sourceTree = "<group>"; }; 34 - ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; 35 - FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-bluesky/ExpoModulesProvider.swift"; sourceTree = "<group>"; }; 36 - /* End PBXFileReference section */ 37 - 38 - /* Begin PBXFrameworksBuildPhase section */ 39 - 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { 40 - isa = PBXFrameworksBuildPhase; 41 - buildActionMask = 2147483647; 42 - files = ( 43 - 14F1D8D19D7FBF5995C9B32D /* libPods-bluesky.a in Frameworks */, 44 - ); 45 - runOnlyForDeploymentPostprocessing = 0; 46 - }; 47 - /* End PBXFrameworksBuildPhase section */ 48 - 49 - /* Begin PBXGroup section */ 50 - 13B07FAE1A68108700A75B9A /* bluesky */ = { 51 - isa = PBXGroup; 52 - children = ( 53 - BB2F792B24A3F905000567C9 /* Supporting */, 54 - 008F07F21AC5B25A0029DE68 /* main.jsbundle */, 55 - 13B07FAF1A68108700A75B9A /* AppDelegate.h */, 56 - 13B07FB01A68108700A75B9A /* AppDelegate.mm */, 57 - 13B07FB51A68108700A75B9A /* Images.xcassets */, 58 - 13B07FB61A68108700A75B9A /* Info.plist */, 59 - 13B07FB71A68108700A75B9A /* main.m */, 60 - AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */, 61 - 4FECE0FEBF1E4D88B437323C /* noop-file.swift */, 62 - ); 63 - name = bluesky; 64 - sourceTree = "<group>"; 65 - }; 66 - 2D16E6871FA4F8E400B85C8A /* Frameworks */ = { 67 - isa = PBXGroup; 68 - children = ( 69 - ED297162215061F000B7C4FE /* JavaScriptCore.framework */, 70 - 5B74BD82B16D3B7F19E5ADDA /* libPods-bluesky.a */, 71 - ); 72 - name = Frameworks; 73 - sourceTree = "<group>"; 74 - }; 75 - 832341AE1AAA6A7D00B99B32 /* Libraries */ = { 76 - isa = PBXGroup; 77 - children = ( 78 - ); 79 - name = Libraries; 80 - sourceTree = "<group>"; 81 - }; 82 - 83CBB9F61A601CBA00E9B192 = { 83 - isa = PBXGroup; 84 - children = ( 85 - 13B07FAE1A68108700A75B9A /* bluesky */, 86 - 832341AE1AAA6A7D00B99B32 /* Libraries */, 87 - 83CBBA001A601CBA00E9B192 /* Products */, 88 - 2D16E6871FA4F8E400B85C8A /* Frameworks */, 89 - D65327D7A22EEC0BE12398D9 /* Pods */, 90 - D7E4C46ADA2E9064B798F356 /* ExpoModulesProviders */, 91 - ); 92 - indentWidth = 2; 93 - sourceTree = "<group>"; 94 - tabWidth = 2; 95 - usesTabs = 0; 96 - }; 97 - 83CBBA001A601CBA00E9B192 /* Products */ = { 98 - isa = PBXGroup; 99 - children = ( 100 - 13B07F961A680F5B00A75B9A /* bluesky.app */, 101 - ); 102 - name = Products; 103 - sourceTree = "<group>"; 104 - }; 105 - 92DBD88DE9BF7D494EA9DA96 /* bluesky */ = { 106 - isa = PBXGroup; 107 - children = ( 108 - FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */, 109 - ); 110 - name = bluesky; 111 - sourceTree = "<group>"; 112 - }; 113 - BB2F792B24A3F905000567C9 /* Supporting */ = { 114 - isa = PBXGroup; 115 - children = ( 116 - BB2F792C24A3F905000567C9 /* Expo.plist */, 117 - ); 118 - name = Supporting; 119 - path = bluesky/Supporting; 120 - sourceTree = "<group>"; 121 - }; 122 - D65327D7A22EEC0BE12398D9 /* Pods */ = { 123 - isa = PBXGroup; 124 - children = ( 125 - 11FD9D89D32941D7ECE26520 /* Pods-bluesky.debug.xcconfig */, 126 - C92ECE114C152498B9DF0C14 /* Pods-bluesky.release.xcconfig */, 127 - ); 128 - path = Pods; 129 - sourceTree = "<group>"; 130 - }; 131 - D7E4C46ADA2E9064B798F356 /* ExpoModulesProviders */ = { 132 - isa = PBXGroup; 133 - children = ( 134 - 92DBD88DE9BF7D494EA9DA96 /* bluesky */, 135 - ); 136 - name = ExpoModulesProviders; 137 - sourceTree = "<group>"; 138 - }; 139 - /* End PBXGroup section */ 140 - 141 - /* Begin PBXNativeTarget section */ 142 - 13B07F861A680F5B00A75B9A /* bluesky */ = { 143 - isa = PBXNativeTarget; 144 - buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "bluesky" */; 145 - buildPhases = ( 146 - AA58FC21F429DA1C08D4849A /* [CP] Check Pods Manifest.lock */, 147 - FD10A7F022414F080027D42C /* Start Packager */, 148 - 13B07F871A680F5B00A75B9A /* Sources */, 149 - 13B07F8C1A680F5B00A75B9A /* Frameworks */, 150 - 13B07F8E1A680F5B00A75B9A /* Resources */, 151 - 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, 152 - 5555462490F6788D569DDAFD /* [CP] Embed Pods Frameworks */, 153 - D9DEAD65B781F987C1B90893 /* [CP] Copy Pods Resources */, 154 - ); 155 - buildRules = ( 156 - ); 157 - dependencies = ( 158 - ); 159 - name = bluesky; 160 - productName = bluesky; 161 - productReference = 13B07F961A680F5B00A75B9A /* bluesky.app */; 162 - productType = "com.apple.product-type.application"; 163 - }; 164 - /* End PBXNativeTarget section */ 165 - 166 - /* Begin PBXProject section */ 167 - 83CBB9F71A601CBA00E9B192 /* Project object */ = { 168 - isa = PBXProject; 169 - attributes = { 170 - BuildIndependentTargetsInParallel = YES; 171 - LastUpgradeCheck = 1430; 172 - TargetAttributes = { 173 - 13B07F861A680F5B00A75B9A = { 174 - DevelopmentTeam = B3LX46C5HS; 175 - LastSwiftMigration = 1250; 176 - }; 177 - }; 178 - }; 179 - buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "bluesky" */; 180 - compatibilityVersion = "Xcode 3.2"; 181 - developmentRegion = en; 182 - hasScannedForEncodings = 0; 183 - knownRegions = ( 184 - en, 185 - Base, 186 - ); 187 - mainGroup = 83CBB9F61A601CBA00E9B192; 188 - productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; 189 - projectDirPath = ""; 190 - projectRoot = ""; 191 - targets = ( 192 - 13B07F861A680F5B00A75B9A /* bluesky */, 193 - ); 194 - }; 195 - /* End PBXProject section */ 196 - 197 - /* Begin PBXResourcesBuildPhase section */ 198 - 13B07F8E1A680F5B00A75B9A /* Resources */ = { 199 - isa = PBXResourcesBuildPhase; 200 - buildActionMask = 2147483647; 201 - files = ( 202 - BB2F792D24A3F905000567C9 /* Expo.plist in Resources */, 203 - 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, 204 - 3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */, 205 - ); 206 - runOnlyForDeploymentPostprocessing = 0; 207 - }; 208 - /* End PBXResourcesBuildPhase section */ 209 - 210 - /* Begin PBXShellScriptBuildPhase section */ 211 - 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = { 212 - isa = PBXShellScriptBuildPhase; 213 - buildActionMask = 2147483647; 214 - files = ( 215 - ); 216 - inputPaths = ( 217 - ); 218 - name = "Bundle React Native code and images"; 219 - outputPaths = ( 220 - ); 221 - runOnlyForDeploymentPostprocessing = 0; 222 - shellPath = /bin/sh; 223 - shellScript = "if [[ -f \"$PODS_ROOT/../.xcode.env\" ]]; then\n source \"$PODS_ROOT/../.xcode.env\"\nfi\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\n# The project root by default is one level up from the ios directory\nexport PROJECT_ROOT=\"$PROJECT_DIR\"/..\n\nif [[ \"$CONFIGURATION\" = *Debug* ]]; then\n export SKIP_BUNDLING=1\nfi\nif [[ -z \"$ENTRY_FILE\" ]]; then\n # Set the entry JS file using the bundler's entry resolution.\n export ENTRY_FILE=\"$(\"$NODE_BINARY\" -e \"require('expo/scripts/resolveAppEntry')\" $PROJECT_ROOT ios relative | tail -n 1)\"\nfi\n\n`\"$NODE_BINARY\" --print \"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/react-native-xcode.sh'\"`\n\n"; 224 - }; 225 - 5555462490F6788D569DDAFD /* [CP] Embed Pods Frameworks */ = { 226 - isa = PBXShellScriptBuildPhase; 227 - buildActionMask = 2147483647; 228 - files = ( 229 - ); 230 - inputPaths = ( 231 - "${PODS_ROOT}/Target Support Files/Pods-bluesky/Pods-bluesky-frameworks.sh", 232 - "${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes", 233 - ); 234 - name = "[CP] Embed Pods Frameworks"; 235 - outputPaths = ( 236 - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", 237 - ); 238 - runOnlyForDeploymentPostprocessing = 0; 239 - shellPath = /bin/sh; 240 - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-bluesky/Pods-bluesky-frameworks.sh\"\n"; 241 - showEnvVarsInLog = 0; 242 - }; 243 - AA58FC21F429DA1C08D4849A /* [CP] Check Pods Manifest.lock */ = { 244 - isa = PBXShellScriptBuildPhase; 245 - buildActionMask = 2147483647; 246 - files = ( 247 - ); 248 - inputFileListPaths = ( 249 - ); 250 - inputPaths = ( 251 - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", 252 - "${PODS_ROOT}/Manifest.lock", 253 - ); 254 - name = "[CP] Check Pods Manifest.lock"; 255 - outputFileListPaths = ( 256 - ); 257 - outputPaths = ( 258 - "$(DERIVED_FILE_DIR)/Pods-bluesky-checkManifestLockResult.txt", 259 - ); 260 - runOnlyForDeploymentPostprocessing = 0; 261 - shellPath = /bin/sh; 262 - 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"; 263 - showEnvVarsInLog = 0; 264 - }; 265 - D9DEAD65B781F987C1B90893 /* [CP] Copy Pods Resources */ = { 266 - isa = PBXShellScriptBuildPhase; 267 - buildActionMask = 2147483647; 268 - files = ( 269 - ); 270 - inputPaths = ( 271 - "${PODS_ROOT}/Target Support Files/Pods-bluesky/Pods-bluesky-resources.sh", 272 - "${PODS_CONFIGURATION_BUILD_DIR}/EXConstants/EXConstants.bundle", 273 - "${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker/QBImagePicker.bundle", 274 - "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/AccessibilityResources.bundle", 275 - "${PODS_CONFIGURATION_BUILD_DIR}/TOCropViewController/TOCropViewControllerBundle.bundle", 276 - "${PODS_CONFIGURATION_BUILD_DIR}/expo-dev-launcher/EXDevLauncher.bundle", 277 - "${PODS_CONFIGURATION_BUILD_DIR}/expo-dev-menu/EXDevMenu.bundle", 278 - ); 279 - name = "[CP] Copy Pods Resources"; 280 - outputPaths = ( 281 - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EXConstants.bundle", 282 - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/QBImagePicker.bundle", 283 - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AccessibilityResources.bundle", 284 - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/TOCropViewControllerBundle.bundle", 285 - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EXDevLauncher.bundle", 286 - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EXDevMenu.bundle", 287 - ); 288 - runOnlyForDeploymentPostprocessing = 0; 289 - shellPath = /bin/sh; 290 - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-bluesky/Pods-bluesky-resources.sh\"\n"; 291 - showEnvVarsInLog = 0; 292 - }; 293 - FD10A7F022414F080027D42C /* Start Packager */ = { 294 - isa = PBXShellScriptBuildPhase; 295 - buildActionMask = 2147483647; 296 - files = ( 297 - ); 298 - inputFileListPaths = ( 299 - ); 300 - inputPaths = ( 301 - ); 302 - name = "Start Packager"; 303 - outputFileListPaths = ( 304 - ); 305 - outputPaths = ( 306 - ); 307 - runOnlyForDeploymentPostprocessing = 0; 308 - shellPath = /bin/sh; 309 - shellScript = "if [[ -f \"$PODS_ROOT/../.xcode.env\" ]]; then\n source \"$PODS_ROOT/../.xcode.env\"\nfi\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\nexport RCT_METRO_PORT=\"${RCT_METRO_PORT:=8081}\"\necho \"export RCT_METRO_PORT=${RCT_METRO_PORT}\" > `$NODE_BINARY --print \"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/.packager.env'\"`\nif [ -z \"${RCT_NO_LAUNCH_PACKAGER+xxx}\" ] ; then\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\n if ! curl -s \"http://localhost:${RCT_METRO_PORT}/status\" | grep -q \"packager-status:running\" ; then\n echo \"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\"\n exit 2\n fi\n else\n open `$NODE_BINARY --print \"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/launchPackager.command'\"` || echo \"Can't start packager automatically\"\n fi\nfi\n"; 310 - showEnvVarsInLog = 0; 311 - }; 312 - /* End PBXShellScriptBuildPhase section */ 313 - 314 - /* Begin PBXSourcesBuildPhase section */ 315 - 13B07F871A680F5B00A75B9A /* Sources */ = { 316 - isa = PBXSourcesBuildPhase; 317 - buildActionMask = 2147483647; 318 - files = ( 319 - 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */, 320 - 13B07FC11A68108700A75B9A /* main.m in Sources */, 321 - B18059E884C0ABDD17F3DC3D /* ExpoModulesProvider.swift in Sources */, 322 - B6BE37E812824A869C1E16F6 /* noop-file.swift in Sources */, 323 - ); 324 - runOnlyForDeploymentPostprocessing = 0; 325 - }; 326 - /* End PBXSourcesBuildPhase section */ 327 - 328 - /* Begin XCBuildConfiguration section */ 329 - 13B07F941A680F5B00A75B9A /* Debug */ = { 330 - isa = XCBuildConfiguration; 331 - baseConfigurationReference = 11FD9D89D32941D7ECE26520 /* Pods-bluesky.debug.xcconfig */; 332 - buildSettings = { 333 - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 334 - CLANG_ENABLE_MODULES = YES; 335 - CODE_SIGN_ENTITLEMENTS = bluesky/bluesky.entitlements; 336 - CURRENT_PROJECT_VERSION = 1; 337 - DEVELOPMENT_TEAM = B3LX46C5HS; 338 - ENABLE_BITCODE = NO; 339 - GCC_PREPROCESSOR_DEFINITIONS = ( 340 - "$(inherited)", 341 - "FB_SONARKIT_ENABLED=1", 342 - ); 343 - INFOPLIST_FILE = bluesky/Info.plist; 344 - IPHONEOS_DEPLOYMENT_TARGET = 13.0; 345 - LD_RUNPATH_SEARCH_PATHS = ( 346 - "$(inherited)", 347 - "@executable_path/Frameworks", 348 - ); 349 - MARKETING_VERSION = 1.0; 350 - OTHER_LDFLAGS = ( 351 - "$(inherited)", 352 - "-ObjC", 353 - "-lc++", 354 - ); 355 - OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG"; 356 - PRODUCT_BUNDLE_IDENTIFIER = xyz.blueskyweb.app; 357 - PRODUCT_NAME = bluesky; 358 - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; 359 - SUPPORTS_MACCATALYST = NO; 360 - SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; 361 - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 362 - SWIFT_VERSION = 5.0; 363 - TARGETED_DEVICE_FAMILY = 1; 364 - VERSIONING_SYSTEM = "apple-generic"; 365 - }; 366 - name = Debug; 367 - }; 368 - 13B07F951A680F5B00A75B9A /* Release */ = { 369 - isa = XCBuildConfiguration; 370 - baseConfigurationReference = C92ECE114C152498B9DF0C14 /* Pods-bluesky.release.xcconfig */; 371 - buildSettings = { 372 - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 373 - CLANG_ENABLE_MODULES = YES; 374 - CODE_SIGN_ENTITLEMENTS = bluesky/bluesky.entitlements; 375 - CURRENT_PROJECT_VERSION = 1; 376 - DEVELOPMENT_TEAM = B3LX46C5HS; 377 - INFOPLIST_FILE = bluesky/Info.plist; 378 - IPHONEOS_DEPLOYMENT_TARGET = 13.0; 379 - LD_RUNPATH_SEARCH_PATHS = ( 380 - "$(inherited)", 381 - "@executable_path/Frameworks", 382 - ); 383 - MARKETING_VERSION = 1.0; 384 - OTHER_LDFLAGS = ( 385 - "$(inherited)", 386 - "-ObjC", 387 - "-lc++", 388 - ); 389 - OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; 390 - PRODUCT_BUNDLE_IDENTIFIER = xyz.blueskyweb.app; 391 - PRODUCT_NAME = bluesky; 392 - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; 393 - SUPPORTS_MACCATALYST = NO; 394 - SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; 395 - SWIFT_VERSION = 5.0; 396 - TARGETED_DEVICE_FAMILY = 1; 397 - VERSIONING_SYSTEM = "apple-generic"; 398 - }; 399 - name = Release; 400 - }; 401 - 83CBBA201A601CBA00E9B192 /* Debug */ = { 402 - isa = XCBuildConfiguration; 403 - buildSettings = { 404 - ALWAYS_SEARCH_USER_PATHS = NO; 405 - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; 406 - CLANG_CXX_LANGUAGE_STANDARD = "c++17"; 407 - CLANG_CXX_LIBRARY = "libc++"; 408 - CLANG_ENABLE_MODULES = YES; 409 - CLANG_ENABLE_OBJC_ARC = YES; 410 - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 411 - CLANG_WARN_BOOL_CONVERSION = YES; 412 - CLANG_WARN_COMMA = YES; 413 - CLANG_WARN_CONSTANT_CONVERSION = YES; 414 - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 415 - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 416 - CLANG_WARN_EMPTY_BODY = YES; 417 - CLANG_WARN_ENUM_CONVERSION = YES; 418 - CLANG_WARN_INFINITE_RECURSION = YES; 419 - CLANG_WARN_INT_CONVERSION = YES; 420 - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 421 - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 422 - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 423 - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 424 - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 425 - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 426 - CLANG_WARN_STRICT_PROTOTYPES = YES; 427 - CLANG_WARN_SUSPICIOUS_MOVE = YES; 428 - CLANG_WARN_UNREACHABLE_CODE = YES; 429 - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 430 - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 431 - COPY_PHASE_STRIP = NO; 432 - ENABLE_STRICT_OBJC_MSGSEND = YES; 433 - ENABLE_TESTABILITY = YES; 434 - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; 435 - GCC_C_LANGUAGE_STANDARD = gnu99; 436 - GCC_DYNAMIC_NO_PIC = NO; 437 - GCC_NO_COMMON_BLOCKS = YES; 438 - GCC_OPTIMIZATION_LEVEL = 0; 439 - GCC_PREPROCESSOR_DEFINITIONS = ( 440 - "DEBUG=1", 441 - "$(inherited)", 442 - ); 443 - GCC_SYMBOLS_PRIVATE_EXTERN = NO; 444 - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 445 - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 446 - GCC_WARN_UNDECLARED_SELECTOR = YES; 447 - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 448 - GCC_WARN_UNUSED_FUNCTION = YES; 449 - GCC_WARN_UNUSED_VARIABLE = YES; 450 - IPHONEOS_DEPLOYMENT_TARGET = 13.0; 451 - LD_RUNPATH_SEARCH_PATHS = ( 452 - /usr/lib/swift, 453 - "$(inherited)", 454 - ); 455 - LIBRARY_SEARCH_PATHS = "$(SDKROOT)/usr/lib/swift\"$(inherited)\""; 456 - MTL_ENABLE_DEBUG_INFO = YES; 457 - ONLY_ACTIVE_ARCH = YES; 458 - REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; 459 - SDKROOT = iphoneos; 460 - }; 461 - name = Debug; 462 - }; 463 - 83CBBA211A601CBA00E9B192 /* Release */ = { 464 - isa = XCBuildConfiguration; 465 - buildSettings = { 466 - ALWAYS_SEARCH_USER_PATHS = NO; 467 - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; 468 - CLANG_CXX_LANGUAGE_STANDARD = "c++17"; 469 - CLANG_CXX_LIBRARY = "libc++"; 470 - CLANG_ENABLE_MODULES = YES; 471 - CLANG_ENABLE_OBJC_ARC = YES; 472 - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 473 - CLANG_WARN_BOOL_CONVERSION = YES; 474 - CLANG_WARN_COMMA = YES; 475 - CLANG_WARN_CONSTANT_CONVERSION = YES; 476 - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 477 - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 478 - CLANG_WARN_EMPTY_BODY = YES; 479 - CLANG_WARN_ENUM_CONVERSION = YES; 480 - CLANG_WARN_INFINITE_RECURSION = YES; 481 - CLANG_WARN_INT_CONVERSION = YES; 482 - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 483 - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 484 - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 485 - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 486 - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 487 - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 488 - CLANG_WARN_STRICT_PROTOTYPES = YES; 489 - CLANG_WARN_SUSPICIOUS_MOVE = YES; 490 - CLANG_WARN_UNREACHABLE_CODE = YES; 491 - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 492 - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 493 - COPY_PHASE_STRIP = YES; 494 - ENABLE_NS_ASSERTIONS = NO; 495 - ENABLE_STRICT_OBJC_MSGSEND = YES; 496 - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; 497 - GCC_C_LANGUAGE_STANDARD = gnu99; 498 - GCC_NO_COMMON_BLOCKS = YES; 499 - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 500 - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 501 - GCC_WARN_UNDECLARED_SELECTOR = YES; 502 - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 503 - GCC_WARN_UNUSED_FUNCTION = YES; 504 - GCC_WARN_UNUSED_VARIABLE = YES; 505 - IPHONEOS_DEPLOYMENT_TARGET = 13.0; 506 - LD_RUNPATH_SEARCH_PATHS = ( 507 - /usr/lib/swift, 508 - "$(inherited)", 509 - ); 510 - LIBRARY_SEARCH_PATHS = "$(SDKROOT)/usr/lib/swift\"$(inherited)\""; 511 - MTL_ENABLE_DEBUG_INFO = NO; 512 - REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; 513 - SDKROOT = iphoneos; 514 - SWIFT_COMPILATION_MODE = wholemodule; 515 - VALIDATE_PRODUCT = YES; 516 - }; 517 - name = Release; 518 - }; 519 - /* End XCBuildConfiguration section */ 520 - 521 - /* Begin XCConfigurationList section */ 522 - 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "bluesky" */ = { 523 - isa = XCConfigurationList; 524 - buildConfigurations = ( 525 - 13B07F941A680F5B00A75B9A /* Debug */, 526 - 13B07F951A680F5B00A75B9A /* Release */, 527 - ); 528 - defaultConfigurationIsVisible = 0; 529 - defaultConfigurationName = Release; 530 - }; 531 - 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "bluesky" */ = { 532 - isa = XCConfigurationList; 533 - buildConfigurations = ( 534 - 83CBBA201A601CBA00E9B192 /* Debug */, 535 - 83CBBA211A601CBA00E9B192 /* Release */, 536 - ); 537 - defaultConfigurationIsVisible = 0; 538 - defaultConfigurationName = Release; 539 - }; 540 - /* End XCConfigurationList section */ 541 - }; 542 - rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; 543 - }
-7
ios/bluesky.xcodeproj/project.xcworkspace/contents.xcworkspacedata
··· 1 - <?xml version="1.0" encoding="UTF-8"?> 2 - <Workspace 3 - version = "1.0"> 4 - <FileRef 5 - location = "self:"> 6 - </FileRef> 7 - </Workspace>
-8
ios/bluesky.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
··· 1 - <?xml version="1.0" encoding="UTF-8"?> 2 - <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 - <plist version="1.0"> 4 - <dict> 5 - <key>IDEDidComputeMac32BitWarning</key> 6 - <true/> 7 - </dict> 8 - </plist>
-88
ios/bluesky.xcodeproj/xcshareddata/xcschemes/bluesky.xcscheme
··· 1 - <?xml version="1.0" encoding="UTF-8"?> 2 - <Scheme 3 - LastUpgradeVersion = "1430" 4 - version = "1.3"> 5 - <BuildAction 6 - parallelizeBuildables = "YES" 7 - buildImplicitDependencies = "YES"> 8 - <BuildActionEntries> 9 - <BuildActionEntry 10 - buildForTesting = "YES" 11 - buildForRunning = "YES" 12 - buildForProfiling = "YES" 13 - buildForArchiving = "YES" 14 - buildForAnalyzing = "YES"> 15 - <BuildableReference 16 - BuildableIdentifier = "primary" 17 - BlueprintIdentifier = "13B07F861A680F5B00A75B9A" 18 - BuildableName = "bluesky.app" 19 - BlueprintName = "bluesky" 20 - ReferencedContainer = "container:bluesky.xcodeproj"> 21 - </BuildableReference> 22 - </BuildActionEntry> 23 - </BuildActionEntries> 24 - </BuildAction> 25 - <TestAction 26 - buildConfiguration = "Debug" 27 - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" 28 - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" 29 - shouldUseLaunchSchemeArgsEnv = "YES"> 30 - <Testables> 31 - <TestableReference 32 - skipped = "NO"> 33 - <BuildableReference 34 - BuildableIdentifier = "primary" 35 - BlueprintIdentifier = "00E356ED1AD99517003FC87E" 36 - BuildableName = "blueskyTests.xctest" 37 - BlueprintName = "blueskyTests" 38 - ReferencedContainer = "container:bluesky.xcodeproj"> 39 - </BuildableReference> 40 - </TestableReference> 41 - </Testables> 42 - </TestAction> 43 - <LaunchAction 44 - buildConfiguration = "Debug" 45 - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" 46 - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" 47 - launchStyle = "0" 48 - useCustomWorkingDirectory = "NO" 49 - ignoresPersistentStateOnLaunch = "NO" 50 - debugDocumentVersioning = "YES" 51 - debugServiceExtension = "internal" 52 - allowLocationSimulation = "YES"> 53 - <BuildableProductRunnable 54 - runnableDebuggingMode = "0"> 55 - <BuildableReference 56 - BuildableIdentifier = "primary" 57 - BlueprintIdentifier = "13B07F861A680F5B00A75B9A" 58 - BuildableName = "bluesky.app" 59 - BlueprintName = "bluesky" 60 - ReferencedContainer = "container:bluesky.xcodeproj"> 61 - </BuildableReference> 62 - </BuildableProductRunnable> 63 - </LaunchAction> 64 - <ProfileAction 65 - buildConfiguration = "Release" 66 - shouldUseLaunchSchemeArgsEnv = "YES" 67 - savedToolIdentifier = "" 68 - useCustomWorkingDirectory = "NO" 69 - debugDocumentVersioning = "YES"> 70 - <BuildableProductRunnable 71 - runnableDebuggingMode = "0"> 72 - <BuildableReference 73 - BuildableIdentifier = "primary" 74 - BlueprintIdentifier = "13B07F861A680F5B00A75B9A" 75 - BuildableName = "bluesky.app" 76 - BlueprintName = "bluesky" 77 - ReferencedContainer = "container:bluesky.xcodeproj"> 78 - </BuildableReference> 79 - </BuildableProductRunnable> 80 - </ProfileAction> 81 - <AnalyzeAction 82 - buildConfiguration = "Debug"> 83 - </AnalyzeAction> 84 - <ArchiveAction 85 - buildConfiguration = "Release" 86 - revealArchiveInOrganizer = "YES"> 87 - </ArchiveAction> 88 - </Scheme>
-10
ios/bluesky.xcworkspace/contents.xcworkspacedata
··· 1 - <?xml version="1.0" encoding="UTF-8"?> 2 - <Workspace 3 - version = "1.0"> 4 - <FileRef 5 - location = "group:bluesky.xcodeproj"> 6 - </FileRef> 7 - <FileRef 8 - location = "group:Pods/Pods.xcodeproj"> 9 - </FileRef> 10 - </Workspace>
-8
ios/bluesky.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
··· 1 - <?xml version="1.0" encoding="UTF-8"?> 2 - <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 - <plist version="1.0"> 4 - <dict> 5 - <key>IDEDidComputeMac32BitWarning</key> 6 - <true/> 7 - </dict> 8 - </plist>
-7
ios/bluesky/AppDelegate.h
··· 1 - #import <RCTAppDelegate.h> 2 - #import <UIKit/UIKit.h> 3 - #import <Expo/Expo.h> 4 - 5 - @interface AppDelegate : EXAppDelegateWrapper 6 - 7 - @end
-72
ios/bluesky/AppDelegate.mm
··· 1 - #import "AppDelegate.h" 2 - 3 - #import <React/RCTBundleURLProvider.h> 4 - #import <React/RCTLinkingManager.h> 5 - 6 - #import <TSBackgroundFetch/TSBackgroundFetch.h> 7 - 8 - @implementation AppDelegate 9 - 10 - - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 11 - { 12 - self.moduleName = @"main"; 13 - 14 - // You can add your custom initial props in the dictionary below. 15 - // They will be passed down to the ViewController used by React Native. 16 - self.initialProps = @{}; 17 - 18 - // Register BackgroundFetch 19 - [[TSBackgroundFetch sharedInstance] didFinishLaunching]; 20 - 21 - return [super application:application didFinishLaunchingWithOptions:launchOptions]; 22 - } 23 - 24 - - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge 25 - { 26 - #if DEBUG 27 - return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"]; 28 - #else 29 - return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; 30 - #endif 31 - } 32 - 33 - /// This method controls whether the `concurrentRoot`feature of React18 is turned on or off. 34 - /// 35 - /// @see: https://reactjs.org/blog/2022/03/29/react-v18.html 36 - /// @note: This requires to be rendering on Fabric (i.e. on the New Architecture). 37 - /// @return: `true` if the `concurrentRoot` feature is enabled. Otherwise, it returns `false`. 38 - - (BOOL)concurrentRootEnabled 39 - { 40 - return true; 41 - } 42 - 43 - // Linking API 44 - - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options { 45 - return [super application:application openURL:url options:options] || [RCTLinkingManager application:application openURL:url options:options]; 46 - } 47 - 48 - // Universal Links 49 - - (BOOL)application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler { 50 - BOOL result = [RCTLinkingManager application:application continueUserActivity:userActivity restorationHandler:restorationHandler]; 51 - return [super application:application continueUserActivity:userActivity restorationHandler:restorationHandler] || result; 52 - } 53 - 54 - // Explicitly define remote notification delegates to ensure compatibility with some third-party libraries 55 - - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken 56 - { 57 - return [super application:application didRegisterForRemoteNotificationsWithDeviceToken:deviceToken]; 58 - } 59 - 60 - // Explicitly define remote notification delegates to ensure compatibility with some third-party libraries 61 - - (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error 62 - { 63 - return [super application:application didFailToRegisterForRemoteNotificationsWithError:error]; 64 - } 65 - 66 - // Explicitly define remote notification delegates to ensure compatibility with some third-party libraries 67 - - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler 68 - { 69 - return [super application:application didReceiveRemoteNotification:userInfo fetchCompletionHandler:completionHandler]; 70 - } 71 - 72 - @end
ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-20x20@1x.png

This is a binary file and will not be displayed.

ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-20x20@2x.png

This is a binary file and will not be displayed.

ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-20x20@3x.png

This is a binary file and will not be displayed.

ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-29x29@1x.png

This is a binary file and will not be displayed.

ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-29x29@2x.png

This is a binary file and will not be displayed.

ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-29x29@3x.png

This is a binary file and will not be displayed.

ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-40x40@1x.png

This is a binary file and will not be displayed.

ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-40x40@2x.png

This is a binary file and will not be displayed.

ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-40x40@3x.png

This is a binary file and will not be displayed.

ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-60x60@2x.png

This is a binary file and will not be displayed.

ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-60x60@3x.png

This is a binary file and will not be displayed.

ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-76x76@1x.png

This is a binary file and will not be displayed.

ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-76x76@2x.png

This is a binary file and will not be displayed.

ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-83.5x83.5@2x.png

This is a binary file and will not be displayed.

-122
ios/bluesky/Images.xcassets/AppIcon.appiconset/Contents.json
··· 1 - { 2 - "images": [ 3 - { 4 - "idiom": "iphone", 5 - "size": "20x20", 6 - "scale": "2x", 7 - "filename": "App-Icon-20x20@2x.png" 8 - }, 9 - { 10 - "idiom": "iphone", 11 - "size": "20x20", 12 - "scale": "3x", 13 - "filename": "App-Icon-20x20@3x.png" 14 - }, 15 - { 16 - "idiom": "iphone", 17 - "size": "29x29", 18 - "scale": "1x", 19 - "filename": "App-Icon-29x29@1x.png" 20 - }, 21 - { 22 - "idiom": "iphone", 23 - "size": "29x29", 24 - "scale": "2x", 25 - "filename": "App-Icon-29x29@2x.png" 26 - }, 27 - { 28 - "idiom": "iphone", 29 - "size": "29x29", 30 - "scale": "3x", 31 - "filename": "App-Icon-29x29@3x.png" 32 - }, 33 - { 34 - "idiom": "iphone", 35 - "size": "40x40", 36 - "scale": "2x", 37 - "filename": "App-Icon-40x40@2x.png" 38 - }, 39 - { 40 - "idiom": "iphone", 41 - "size": "40x40", 42 - "scale": "3x", 43 - "filename": "App-Icon-40x40@3x.png" 44 - }, 45 - { 46 - "idiom": "iphone", 47 - "size": "60x60", 48 - "scale": "2x", 49 - "filename": "App-Icon-60x60@2x.png" 50 - }, 51 - { 52 - "idiom": "iphone", 53 - "size": "60x60", 54 - "scale": "3x", 55 - "filename": "App-Icon-60x60@3x.png" 56 - }, 57 - { 58 - "idiom": "ipad", 59 - "size": "20x20", 60 - "scale": "1x", 61 - "filename": "App-Icon-20x20@1x.png" 62 - }, 63 - { 64 - "idiom": "ipad", 65 - "size": "20x20", 66 - "scale": "2x", 67 - "filename": "App-Icon-20x20@2x.png" 68 - }, 69 - { 70 - "idiom": "ipad", 71 - "size": "29x29", 72 - "scale": "1x", 73 - "filename": "App-Icon-29x29@1x.png" 74 - }, 75 - { 76 - "idiom": "ipad", 77 - "size": "29x29", 78 - "scale": "2x", 79 - "filename": "App-Icon-29x29@2x.png" 80 - }, 81 - { 82 - "idiom": "ipad", 83 - "size": "40x40", 84 - "scale": "1x", 85 - "filename": "App-Icon-40x40@1x.png" 86 - }, 87 - { 88 - "idiom": "ipad", 89 - "size": "40x40", 90 - "scale": "2x", 91 - "filename": "App-Icon-40x40@2x.png" 92 - }, 93 - { 94 - "idiom": "ipad", 95 - "size": "76x76", 96 - "scale": "1x", 97 - "filename": "App-Icon-76x76@1x.png" 98 - }, 99 - { 100 - "idiom": "ipad", 101 - "size": "76x76", 102 - "scale": "2x", 103 - "filename": "App-Icon-76x76@2x.png" 104 - }, 105 - { 106 - "idiom": "ipad", 107 - "size": "83.5x83.5", 108 - "scale": "2x", 109 - "filename": "App-Icon-83.5x83.5@2x.png" 110 - }, 111 - { 112 - "idiom": "ios-marketing", 113 - "size": "1024x1024", 114 - "scale": "1x", 115 - "filename": "ItunesArtwork@2x.png" 116 - } 117 - ], 118 - "info": { 119 - "version": 1, 120 - "author": "expo" 121 - } 122 - }
ios/bluesky/Images.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png

This is a binary file and will not be displayed.

-6
ios/bluesky/Images.xcassets/Contents.json
··· 1 - { 2 - "info" : { 3 - "version" : 1, 4 - "author" : "expo" 5 - } 6 - }
-21
ios/bluesky/Images.xcassets/SplashScreen.imageset/Contents.json
··· 1 - { 2 - "images": [ 3 - { 4 - "idiom": "universal", 5 - "filename": "image.png", 6 - "scale": "1x" 7 - }, 8 - { 9 - "idiom": "universal", 10 - "scale": "2x" 11 - }, 12 - { 13 - "idiom": "universal", 14 - "scale": "3x" 15 - } 16 - ], 17 - "info": { 18 - "version": 1, 19 - "author": "expo" 20 - } 21 - }
ios/bluesky/Images.xcassets/SplashScreen.imageset/image.png

This is a binary file and will not be displayed.

-23
ios/bluesky/Images.xcassets/SplashScreenBackground.imageset/Contents.json
··· 1 - { 2 - "images" : [ 3 - { 4 - "filename" : "icon 2.png", 5 - "idiom" : "universal", 6 - "scale" : "1x" 7 - }, 8 - { 9 - "filename" : "icon.png", 10 - "idiom" : "universal", 11 - "scale" : "2x" 12 - }, 13 - { 14 - "filename" : "icon 1.png", 15 - "idiom" : "universal", 16 - "scale" : "3x" 17 - } 18 - ], 19 - "info" : { 20 - "author" : "xcode", 21 - "version" : 1 22 - } 23 - }
ios/bluesky/Images.xcassets/SplashScreenBackground.imageset/icon 1.png

This is a binary file and will not be displayed.

ios/bluesky/Images.xcassets/SplashScreenBackground.imageset/icon 2.png

This is a binary file and will not be displayed.

ios/bluesky/Images.xcassets/SplashScreenBackground.imageset/icon.png

This is a binary file and will not be displayed.

-92
ios/bluesky/Info.plist
··· 1 - <?xml version="1.0" encoding="UTF-8"?> 2 - <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 - <plist version="1.0"> 4 - <dict> 5 - <key>BGTaskSchedulerPermittedIdentifiers</key> 6 - <array> 7 - <string>com.transistorsoft.fetch</string> 8 - </array> 9 - <key>CFBundleDevelopmentRegion</key> 10 - <string>$(DEVELOPMENT_LANGUAGE)</string> 11 - <key>CFBundleDisplayName</key> 12 - <string>Bluesky</string> 13 - <key>CFBundleExecutable</key> 14 - <string>$(EXECUTABLE_NAME)</string> 15 - <key>CFBundleIdentifier</key> 16 - <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> 17 - <key>CFBundleInfoDictionaryVersion</key> 18 - <string>6.0</string> 19 - <key>CFBundleName</key> 20 - <string>$(PRODUCT_NAME)</string> 21 - <key>CFBundlePackageType</key> 22 - <string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string> 23 - <key>CFBundleShortVersionString</key> 24 - <string>1.15</string> 25 - <key>CFBundleSignature</key> 26 - <string>????</string> 27 - <key>CFBundleURLTypes</key> 28 - <array> 29 - <dict> 30 - <key>CFBundleURLSchemes</key> 31 - <array> 32 - <string>xyz.blueskyweb.app</string> 33 - </array> 34 - </dict> 35 - <dict> 36 - <key>CFBundleURLSchemes</key> 37 - <array> 38 - <string>exp+bluesky</string> 39 - </array> 40 - </dict> 41 - </array> 42 - <key>CFBundleVersion</key> 43 - <string>1</string> 44 - <key>ITSAppUsesNonExemptEncryption</key> 45 - <false/> 46 - <key>LSRequiresIPhoneOS</key> 47 - <true/> 48 - <key>NSAppTransportSecurity</key> 49 - <dict> 50 - <key>NSAllowsArbitraryLoads</key> 51 - <true/> 52 - <key>NSExceptionDomains</key> 53 - <dict> 54 - <key>localhost</key> 55 - <dict> 56 - <key>NSExceptionAllowsInsecureHTTPLoads</key> 57 - <true/> 58 - </dict> 59 - </dict> 60 - </dict> 61 - <key>NSCameraUsageDescription</key> 62 - <string>Used to take pictures and videos when composing posts, choosing avatars, and so on.</string> 63 - <key>NSLocationWhenInUseUsageDescription</key> 64 - <string></string> 65 - <key>NSMicrophoneUsageDescription</key> 66 - <string>Used to take videos when composing posts.</string> 67 - <key>NSPhotoLibraryUsageDescription</key> 68 - <string>Used to upload pictures and videos when composing posts, choosing avatars, and so on.</string> 69 - <key>UIBackgroundModes</key> 70 - <array> 71 - <string>fetch</string> 72 - </array> 73 - <key>UILaunchStoryboardName</key> 74 - <string>SplashScreen</string> 75 - <key>UIRequiredDeviceCapabilities</key> 76 - <array> 77 - <string>armv7</string> 78 - </array> 79 - <key>UIRequiresFullScreen</key> 80 - <true/> 81 - <key>UIStatusBarStyle</key> 82 - <string>UIStatusBarStyleDefault</string> 83 - <key>UISupportedInterfaceOrientations</key> 84 - <array> 85 - <string>UIInterfaceOrientationPortrait</string> 86 - </array> 87 - <key>UIUserInterfaceStyle</key> 88 - <string>Light</string> 89 - <key>UIViewControllerBasedStatusBarAppearance</key> 90 - <false/> 91 - </dict> 92 - </plist>
-52
ios/bluesky/SplashScreen.storyboard
··· 1 - <?xml version="1.0" encoding="UTF-8"?> 2 - <document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="21507" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="EXPO-VIEWCONTROLLER-1"> 3 - <device id="retina5_5" orientation="portrait" appearance="light"/> 4 - <dependencies> 5 - <deployment identifier="iOS"/> 6 - <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21505"/> 7 - <capability name="Safe area layout guides" minToolsVersion="9.0"/> 8 - <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> 9 - </dependencies> 10 - <scenes> 11 - <!--View Controller--> 12 - <scene sceneID="EXPO-SCENE-1"> 13 - <objects> 14 - <viewController storyboardIdentifier="SplashScreenViewController" id="EXPO-VIEWCONTROLLER-1" sceneMemberID="viewController"> 15 - <view key="view" userInteractionEnabled="NO" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" id="EXPO-ContainerView" userLabel="ContainerView"> 16 - <rect key="frame" x="0.0" y="0.0" width="414" height="736"/> 17 - <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> 18 - <subviews> 19 - <imageView userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" insetsLayoutMarginsFromSafeArea="NO" image="SplashScreenBackground" translatesAutoresizingMaskIntoConstraints="NO" id="EXPO-SplashScreenBackground" userLabel="SplashScreenBackground"> 20 - <rect key="frame" x="0.0" y="0.0" width="414" height="736"/> 21 - </imageView> 22 - <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="SplashScreen" translatesAutoresizingMaskIntoConstraints="NO" id="EXPO-SplashScreen" userLabel="SplashScreen"> 23 - <rect key="frame" x="0.0" y="0.0" width="414" height="736"/> 24 - </imageView> 25 - </subviews> 26 - <viewLayoutGuide key="safeArea" id="Rmq-lb-GrQ"/> 27 - <constraints> 28 - <constraint firstItem="EXPO-SplashScreenBackground" firstAttribute="top" secondItem="EXPO-ContainerView" secondAttribute="top" id="1gX-mQ-vu6"/> 29 - <constraint firstItem="EXPO-SplashScreen" firstAttribute="top" secondItem="EXPO-ContainerView" secondAttribute="top" id="2VS-Uz-0LU"/> 30 - <constraint firstItem="EXPO-SplashScreen" firstAttribute="leading" secondItem="EXPO-ContainerView" secondAttribute="leading" id="61d16215e44b98e39d0a2c74fdbfaaa22601b12c"/> 31 - <constraint firstItem="EXPO-SplashScreenBackground" firstAttribute="leading" secondItem="EXPO-ContainerView" secondAttribute="leading" id="6tX-OG-Sck"/> 32 - <constraint firstItem="EXPO-SplashScreen" firstAttribute="top" secondItem="EXPO-ContainerView" secondAttribute="top" id="83fcb9b545b870ba44c24f0feeb116490c499c52"/> 33 - <constraint firstItem="EXPO-SplashScreenBackground" firstAttribute="trailing" secondItem="EXPO-ContainerView" secondAttribute="trailing" id="ABX-8g-7v4"/> 34 - <constraint firstItem="EXPO-SplashScreen" firstAttribute="trailing" secondItem="EXPO-ContainerView" secondAttribute="trailing" id="I6l-TP-6fn"/> 35 - <constraint firstItem="EXPO-SplashScreen" firstAttribute="leading" secondItem="EXPO-ContainerView" secondAttribute="leading" id="LhH-Ei-DKo"/> 36 - <constraint firstItem="EXPO-SplashScreen" firstAttribute="bottom" secondItem="EXPO-ContainerView" secondAttribute="bottom" id="d6a0be88096b36fb132659aa90203d39139deda9"/> 37 - <constraint firstItem="EXPO-SplashScreen" firstAttribute="trailing" secondItem="EXPO-ContainerView" secondAttribute="trailing" id="f934da460e9ab5acae3ad9987d5b676a108796c1"/> 38 - <constraint firstItem="EXPO-SplashScreenBackground" firstAttribute="bottom" secondItem="EXPO-ContainerView" secondAttribute="bottom" id="jkI-2V-eW5"/> 39 - <constraint firstItem="EXPO-SplashScreen" firstAttribute="bottom" secondItem="EXPO-ContainerView" secondAttribute="bottom" id="nbp-HC-eaG"/> 40 - </constraints> 41 - </view> 42 - </viewController> 43 - <placeholder placeholderIdentifier="IBFirstResponder" id="EXPO-PLACEHOLDER-1" userLabel="First Responder" sceneMemberID="firstResponder"/> 44 - </objects> 45 - <point key="canvasLocation" x="140.625" y="129.4921875"/> 46 - </scene> 47 - </scenes> 48 - <resources> 49 - <image name="SplashScreen" width="600" height="900"/> 50 - <image name="SplashScreenBackground" width="1" height="1"/> 51 - </resources> 52 - </document>
-16
ios/bluesky/Supporting/Expo.plist
··· 1 - <?xml version="1.0" encoding="UTF-8"?> 2 - <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 - <plist version="1.0"> 4 - <dict> 5 - <key>EXUpdatesCheckOnLaunch</key> 6 - <string>ALWAYS</string> 7 - <key>EXUpdatesEnabled</key> 8 - <true/> 9 - <key>EXUpdatesLaunchWaitMs</key> 10 - <integer>0</integer> 11 - <key>EXUpdatesSDKVersion</key> 12 - <string>48.0.0</string> 13 - <key>EXUpdatesURL</key> 14 - <string>https://exp.host/@arrygoo/bluesky</string> 15 - </dict> 16 - </plist>
-12
ios/bluesky/bluesky.entitlements
··· 1 - <?xml version="1.0" encoding="UTF-8"?> 2 - <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 - <plist version="1.0"> 4 - <dict> 5 - <key>aps-environment</key> 6 - <string>development</string> 7 - <key>com.apple.developer.associated-domains</key> 8 - <array> 9 - <string>applinks:bsky.app</string> 10 - </array> 11 - </dict> 12 - </plist>
-9
ios/bluesky/main.m
··· 1 - #import <UIKit/UIKit.h> 2 - 3 - #import "AppDelegate.h" 4 - 5 - int main(int argc, char * argv[]) { 6 - @autoreleasepool { 7 - return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 8 - } 9 - }
-4
ios/bluesky/noop-file.swift
··· 1 - // 2 - // @generated 3 - // A blank Swift file must be created for native modules with Swift files to work correctly. 4 - //
+5 -3
package.json
··· 58 58 "await-lock": "^2.2.2", 59 59 "base64-js": "^1.5.1", 60 60 "email-validator": "^2.0.4", 61 - "expo": "~48.0.9", 61 + "expo": "~48.0.10", 62 + "expo-build-properties": "~0.5.1", 62 63 "expo-camera": "~13.2.1", 63 64 "expo-dev-client": "~2.1.1", 64 65 "expo-image-picker": "~14.1.1", ··· 66 67 "expo-media-library": "~15.2.3", 67 68 "expo-splash-screen": "~0.18.1", 68 69 "expo-status-bar": "~1.4.4", 70 + "expo-system-ui": "~2.2.1", 69 71 "fast-text-encoding": "^1.0.6", 70 72 "graphemer": "^1.4.0", 71 73 "he": "^1.2.0", ··· 89 91 "react-avatar-editor": "^13.0.0", 90 92 "react-circular-progressbar": "^2.1.0", 91 93 "react-dom": "^18.2.0", 92 - "react-native": "0.71.4", 94 + "react-native": "0.71.6", 93 95 "react-native-appstate-hook": "^1.0.6", 94 96 "react-native-background-fetch": "^4.1.8", 95 97 "react-native-drawer-layout": "^3.2.0", ··· 101 103 "react-native-image-crop-picker": "^0.38.1", 102 104 "react-native-inappbrowser-reborn": "^3.6.3", 103 105 "react-native-linear-gradient": "^2.6.2", 104 - "react-native-pager-view": "6.1.2", 106 + "react-native-pager-view": "6.1.4", 105 107 "react-native-progress": "bluesky-social/react-native-progress", 106 108 "react-native-reanimated": "~2.14.4", 107 109 "react-native-root-siblings": "^4.1.1",
+2 -2
src/App.native.tsx
··· 2 2 import React, {useState, useEffect} from 'react' 3 3 import {Linking} from 'react-native' 4 4 import {RootSiblingParent} from 'react-native-root-siblings' 5 - import SplashScreen from 'react-native-splash-screen' 5 + import * as SplashScreen from 'expo-splash-screen' 6 6 import {SafeAreaProvider} from 'react-native-safe-area-context' 7 7 import {GestureHandlerRootView} from 'react-native-gesture-handler' 8 8 import {observer} from 'mobx-react-lite' ··· 28 28 setRootStore(store) 29 29 analytics.init(store) 30 30 notifee.init(store) 31 - SplashScreen.hide() 31 + SplashScreen.hideAsync() 32 32 Linking.getInitialURL().then((url: string | null) => { 33 33 if (url) { 34 34 handleLink(url)
+2 -2
src/view/com/composer/Composer.tsx
··· 4 4 ActivityIndicator, 5 5 KeyboardAvoidingView, 6 6 Platform, 7 - SafeAreaView, 8 7 ScrollView, 9 8 StyleSheet, 10 9 TouchableOpacity, 11 10 TouchableWithoutFeedback, 12 11 View, 13 12 } from 'react-native' 13 + import {SafeAreaView} from 'react-native-safe-area-context' 14 14 import LinearGradient from 'react-native-linear-gradient' 15 15 import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' 16 16 import {RichText} from '@atproto/api' ··· 209 209 behavior={Platform.OS === 'ios' ? 'padding' : 'height'} 210 210 style={styles.outer}> 211 211 <TouchableWithoutFeedback onPressIn={onPressContainer}> 212 - <SafeAreaView style={s.flex1}> 212 + <SafeAreaView style={[s.flex1]}> 213 213 <View style={styles.topbar}> 214 214 <TouchableOpacity 215 215 testID="composerCancelButton"
+3 -2
src/view/com/lightbox/ImageViewing/index.tsx
··· 26 26 import useImageIndexChange from './hooks/useImageIndexChange' 27 27 import useRequestClose from './hooks/useRequestClose' 28 28 import {ImageSource} from './@types' 29 + import {SafeAreaView} from 'react-native-safe-area-context' 29 30 30 31 type Props = { 31 32 images: ImageSource[] ··· 97 98 } 98 99 99 100 return ( 100 - <View style={styles.screen} onLayout={onLayout}> 101 + <SafeAreaView style={styles.screen} onLayout={onLayout}> 101 102 <ModalsContainer /> 102 103 <View style={[styles.container, {opacity, backgroundColor}]}> 103 104 <Animated.View style={[styles.header, {transform: headerTransform}]}> ··· 152 153 </Animated.View> 153 154 )} 154 155 </View> 155 - </View> 156 + </SafeAreaView> 156 157 ) 157 158 } 158 159
+13 -3
src/view/com/pager/TabBar.tsx
··· 1 - import React, {createRef, useState, useMemo} from 'react' 1 + import React, {createRef, useState, useMemo, useRef} from 'react' 2 2 import { 3 3 Animated, 4 4 StyleSheet, ··· 46 46 [items.length], 47 47 ) 48 48 const panX = Animated.add(position, offset) 49 + const containerRef = useRef<View>(null) 49 50 50 51 const indicatorStyle = { 51 52 backgroundColor: indicatorColor || pal.colors.link, ··· 73 74 for (let i = 0; i < items.length; i++) { 74 75 promises.push( 75 76 new Promise<Layout>(resolve => { 76 - itemRefs[i].current?.measure( 77 + if (!containerRef.current || !itemRefs[i].current) { 78 + return resolve({x: 0, width: 0}) 79 + } 80 + 81 + itemRefs[i].current?.measureLayout( 82 + containerRef.current, 77 83 (x: number, _y: number, width: number) => { 78 84 resolve({x, width}) 79 85 }, ··· 94 100 } 95 101 96 102 return ( 97 - <View testID={testID} style={[pal.view, styles.outer]} onLayout={onLayout}> 103 + <View 104 + testID={testID} 105 + style={[pal.view, styles.outer]} 106 + onLayout={onLayout} 107 + ref={containerRef}> 98 108 <Animated.View style={[styles.indicator, indicatorStyle]} /> 99 109 {items.map((item, i) => { 100 110 const selected = i === selectedPage
+1 -1
src/view/com/posts/Feed.tsx
··· 173 173 /> 174 174 } 175 175 contentContainerStyle={s.contentContainer} 176 + style={{paddingTop: headerOffset}} 176 177 onScroll={onScroll} 177 178 onEndReached={onEndReached} 178 179 onEndReachedThreshold={0.6} 179 180 removeClippedSubviews={true} 180 - contentInset={{top: headerOffset}} 181 181 contentOffset={{x: 0, y: headerOffset * -1}} 182 182 /> 183 183 )}
+2
src/view/com/profile/ProfileHeader.tsx
··· 366 366 left: 10, 367 367 width: 30, 368 368 height: 30, 369 + overflow: 'hidden', 370 + borderRadius: 15, 369 371 }, 370 372 backBtn: { 371 373 width: 30,
+6 -3
src/view/com/util/PostMeta.tsx
··· 105 105 text={ 106 106 <> 107 107 {sanitizeDisplayName(displayName)} 108 - <Text type="md" style={[pal.textLight]}> 109 - &nbsp;{handle} 108 + <Text 109 + type="md" 110 + style={[pal.textLight]} 111 + numberOfLines={1} 112 + lineHeight={1.2}> 113 + &nbsp;@{handle} 110 114 </Text> 111 115 </> 112 116 } ··· 130 134 const styles = StyleSheet.create({ 131 135 meta: { 132 136 flexDirection: 'row', 133 - alignItems: 'baseline', 134 137 paddingBottom: 2, 135 138 }, 136 139 metaTwoLine: {
+11 -3
src/view/com/util/Selector.tsx
··· 1 - import React, {createRef, useState, useMemo} from 'react' 1 + import React, {createRef, useState, useMemo, useRef} from 'react' 2 2 import { 3 3 Animated, 4 4 StyleSheet, ··· 24 24 panX: Animated.Value 25 25 onSelect?: (index: number) => void 26 26 }) { 27 + const containerRef = useRef<View>(null) 27 28 const pal = usePalette('default') 28 29 const [itemLayouts, setItemLayouts] = useState<undefined | Layout[]>( 29 30 undefined, ··· 68 69 for (let i = 0; i < items.length; i++) { 69 70 promises.push( 70 71 new Promise<Layout>(resolve => { 71 - itemRefs[i].current?.measure( 72 + if (!containerRef.current || !itemRefs[i].current) { 73 + return resolve({x: 0, width: 0}) 74 + } 75 + itemRefs[i].current?.measureLayout( 76 + containerRef.current, 72 77 (x: number, _y: number, width: number) => { 73 78 resolve({x, width}) 74 79 }, ··· 86 91 } 87 92 88 93 return ( 89 - <View style={[pal.view, styles.outer]} onLayout={onLayout}> 94 + <View 95 + style={[pal.view, styles.outer]} 96 + onLayout={onLayout} 97 + ref={containerRef}> 90 98 <Animated.View style={[styles.underline, underlineStyle]} /> 91 99 {items.map((item, i) => { 92 100 const selected = i === selectedIndex
+4 -7
src/view/shell/index.tsx
··· 1 1 import React from 'react' 2 2 import {observer} from 'mobx-react-lite' 3 - import {StatusBar, StyleSheet, useWindowDimensions, View} from 'react-native' 3 + import {StatusBar} from 'expo-status-bar' 4 + import {StyleSheet, useWindowDimensions, View} from 'react-native' 4 5 import {useSafeAreaInsets} from 'react-native-safe-area-context' 5 6 import {Drawer} from 'react-native-drawer-layout' 6 7 import {useNavigationState} from '@react-navigation/native' ··· 43 44 open={store.shell.isDrawerOpen} 44 45 onOpen={onOpenDrawer} 45 46 onClose={onCloseDrawer} 46 - swipeEdgeWidth={winDim.width} 47 + swipeEdgeWidth={winDim.width / 2} 47 48 swipeEnabled={ 48 49 !canGoBack && 49 50 store.session.hasSession && ··· 72 73 const pal = usePalette('default') 73 74 return ( 74 75 <View testID="mobileShellView" style={[styles.outerContainer, pal.view]}> 75 - <StatusBar 76 - barStyle={ 77 - theme.colorScheme === 'dark' ? 'light-content' : 'dark-content' 78 - } 79 - /> 76 + <StatusBar style={theme.colorScheme === 'dark' ? 'light' : 'dark'} /> 80 77 <RoutesContainer> 81 78 <ShellInner /> 82 79 </RoutesContainer>
+62 -120
yarn.lock
··· 2709 2709 dependencies: 2710 2710 serve-static "^1.13.1" 2711 2711 2712 - "@react-native-community/cli-doctor@^10.2.0": 2712 + "@react-native-community/cli-doctor@^10.2.2": 2713 2713 version "10.2.2" 2714 2714 resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-10.2.2.tgz#b1893604fa9fc8971064e7c00042350f96868bfe" 2715 2715 integrity sha512-49Ep2aQOF0PkbAR/TcyMjOm9XwBa8VQr+/Zzf4SJeYwiYLCT1NZRAVAVjYRXl0xqvq5S5mAGZZShS4AQl4WsZw== ··· 2753 2753 glob "^7.1.3" 2754 2754 logkitty "^0.7.1" 2755 2755 2756 - "@react-native-community/cli-platform-ios@10.2.0": 2757 - version "10.2.0" 2758 - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-10.2.0.tgz#be21c0e3bbf17358d540cc23e5556bf679f6322e" 2759 - integrity sha512-hIPK3iL/mL+0ChXmQ9uqqzNOKA48H+TAzg+hrxQLll/6dNMxDeK9/wZpktcsh8w+CyhqzKqVernGcQs7tPeKGw== 2760 - dependencies: 2761 - "@react-native-community/cli-tools" "^10.1.1" 2762 - chalk "^4.1.2" 2763 - execa "^1.0.0" 2764 - fast-xml-parser "^4.0.12" 2765 - glob "^7.1.3" 2766 - ora "^5.4.1" 2767 - 2768 - "@react-native-community/cli-platform-ios@^10.2.1": 2756 + "@react-native-community/cli-platform-ios@10.2.1", "@react-native-community/cli-platform-ios@^10.2.1": 2769 2757 version "10.2.1" 2770 2758 resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-10.2.1.tgz#2e6bd2cb6d48cbb8720d7b7265bb1bab80745f72" 2771 2759 integrity sha512-hz4zu4Y6eyj7D0lnZx8Mf2c2si8y+zh/zUTgCTaPPLzQD8jSZNNBtUUiA1cARm2razpe8marCZ1QbTMAGbf3mg== ··· 2777 2765 glob "^7.1.3" 2778 2766 ora "^5.4.1" 2779 2767 2780 - "@react-native-community/cli-plugin-metro@^10.2.0": 2768 + "@react-native-community/cli-plugin-metro@^10.2.2": 2781 2769 version "10.2.2" 2782 2770 resolved "https://registry.yarnpkg.com/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-10.2.2.tgz#766914e3c8007dfe52b253544c4f6cd8549919ac" 2783 2771 integrity sha512-sTGjZlD3OGqbF9v1ajwUIXhGmjw9NyJ/14Lo0sg7xH8Pv4qUd5ZvQ6+DWYrQn3IKFUMfGFWYyL81ovLuPylrpw== ··· 2831 2819 dependencies: 2832 2820 joi "^17.2.1" 2833 2821 2834 - "@react-native-community/cli@10.2.0": 2835 - version "10.2.0" 2836 - resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-10.2.0.tgz#bcb65bb3dcb03b0fc4e49619d51e12d23396b301" 2837 - integrity sha512-QH7AFBz5FX2zTZRH/o3XehHrZ0aZZEL5Sh+23nSEFgSj3bLFfvjjZhuoiRSAo7iiBdvAoXrfxQ8TXgg4Xf/7fw== 2822 + "@react-native-community/cli@10.2.2": 2823 + version "10.2.2" 2824 + resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-10.2.2.tgz#3fa438ba7f19f83e07bc337765fc1cabdcf2cac2" 2825 + integrity sha512-aZVcVIqj+OG6CrliR/Yn8wHxrvyzbFBY9cj7n0MvRw/P54QUru2nNqUTSSbqv0Qaa297yHJbe6kFDojDMSTM8Q== 2838 2826 dependencies: 2839 2827 "@react-native-community/cli-clean" "^10.1.1" 2840 2828 "@react-native-community/cli-config" "^10.1.1" 2841 2829 "@react-native-community/cli-debugger-ui" "^10.0.0" 2842 - "@react-native-community/cli-doctor" "^10.2.0" 2830 + "@react-native-community/cli-doctor" "^10.2.2" 2843 2831 "@react-native-community/cli-hermes" "^10.2.0" 2844 - "@react-native-community/cli-plugin-metro" "^10.2.0" 2832 + "@react-native-community/cli-plugin-metro" "^10.2.2" 2845 2833 "@react-native-community/cli-server-api" "^10.1.1" 2846 2834 "@react-native-community/cli-tools" "^10.1.1" 2847 2835 "@react-native-community/cli-types" "^10.0.0" ··· 5158 5146 json-schema-traverse "^0.4.1" 5159 5147 uri-js "^4.2.2" 5160 5148 5161 - ajv@^8.0.0, ajv@^8.6.0, ajv@^8.6.3, ajv@^8.8.0: 5149 + ajv@^8.0.0, ajv@^8.11.0, ajv@^8.6.0, ajv@^8.6.3, ajv@^8.8.0: 5162 5150 version "8.12.0" 5163 5151 resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" 5164 5152 integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== ··· 5691 5679 "@babel/plugin-syntax-optional-chaining" "^7.8.3" 5692 5680 "@babel/plugin-syntax-top-level-await" "^7.8.3" 5693 5681 5694 - babel-preset-expo@~9.3.1: 5695 - version "9.3.1" 5696 - resolved "https://registry.yarnpkg.com/babel-preset-expo/-/babel-preset-expo-9.3.1.tgz#b31ddfce0d7ed1d848705e7178c1eb4ae4be9db0" 5697 - integrity sha512-1JL4T7q3uXu9FeJhLXDAKhFbWs75Qj2pixA60eR2ROzE9LnrKxm2g42OfcArS4vJcPj2NzcOdPpMI9/ZgF8i8Q== 5682 + babel-preset-expo@~9.3.2: 5683 + version "9.3.2" 5684 + resolved "https://registry.yarnpkg.com/babel-preset-expo/-/babel-preset-expo-9.3.2.tgz#0fe408d8d816a3e10fde2e1d1f7aa51b112baf3a" 5685 + integrity sha512-BjyvjwjJG0MaaDBLP/esbXRrAItM76po9L9zfnLxeqgFsHCIPmD+6ir45coDLGAXwR8m9It3G1yqYM9JPyemsQ== 5698 5686 dependencies: 5699 5687 "@babel/plugin-proposal-decorators" "^7.12.9" 5700 5688 "@babel/plugin-proposal-object-rest-spread" "^7.12.13" ··· 5702 5690 "@babel/preset-env" "^7.20.0" 5703 5691 babel-plugin-module-resolver "^4.1.0" 5704 5692 babel-plugin-react-native-web "~0.18.10" 5705 - metro-react-native-babel-preset "0.73.8" 5693 + metro-react-native-babel-preset "0.73.9" 5706 5694 5707 5695 babel-preset-fbjs@^3.4.0: 5708 5696 version "3.4.0" ··· 8262 8250 path-browserify "^1.0.0" 8263 8251 url-parse "^1.5.9" 8264 8252 8253 + expo-build-properties@~0.5.1: 8254 + version "0.5.2" 8255 + resolved "https://registry.yarnpkg.com/expo-build-properties/-/expo-build-properties-0.5.2.tgz#332bb033b9d1d76f4892d6a7862a7fe0b23da6f5" 8256 + integrity sha512-YLrXNzXLjcwgChO58j74CLexhsSUdY/voGYH8pA9tZ2rkOcjZuOI2IkIVZqYUtkwrO0H4n3QXYc5TyP/Y6ohmg== 8257 + dependencies: 8258 + ajv "^8.11.0" 8259 + semver "^7.3.5" 8260 + 8265 8261 expo-camera@~13.2.1: 8266 8262 version "13.2.1" 8267 8263 resolved "https://registry.yarnpkg.com/expo-camera/-/expo-camera-13.2.1.tgz#bfd1e2248d10a5da43d43a4cc77e378e5acf25bb" ··· 8408 8404 resolved "https://registry.yarnpkg.com/expo-status-bar/-/expo-status-bar-1.4.4.tgz#6874ccfda5a270d66f123a9f220735a76692d114" 8409 8405 integrity sha512-5DV0hIEWgatSC3UgQuAZBoQeaS9CqeWRZ3vzBR9R/+IUD87Adbi4FGhU10nymRqFXOizGsureButGZIXPs7zEA== 8410 8406 8407 + expo-system-ui@~2.2.1: 8408 + version "2.2.1" 8409 + resolved "https://registry.yarnpkg.com/expo-system-ui/-/expo-system-ui-2.2.1.tgz#d955d2fcb93e196e183ed79e5da1b4427f1d4896" 8410 + integrity sha512-a//8woMYFz5k4lSm8Mt84kueuQRv4TEU1ESwZQl0cEZcKlxw5e4t4Z/68KGVzCLWOMUFoCN67BgFwxpwHBbrMw== 8411 + dependencies: 8412 + "@react-native/normalize-color" "^2.0.0" 8413 + debug "^4.3.2" 8414 + 8411 8415 expo-updates-interface@~0.9.0: 8412 8416 version "0.9.1" 8413 8417 resolved "https://registry.yarnpkg.com/expo-updates-interface/-/expo-updates-interface-0.9.1.tgz#e81308d551ed5a4c35c8770ac61434f6ca749610" 8414 8418 integrity sha512-wk88LLhseQ7LJvxdN7BTKiryyqALxnrvr+lyHK3/prg76Yy0EGi2Q/oE/rtFyyZ1JmQDRbO/5pdX0EE6QqVQXQ== 8415 8419 8416 - expo@~48.0.9: 8417 - version "48.0.9" 8418 - resolved "https://registry.yarnpkg.com/expo/-/expo-48.0.9.tgz#7beaecc09e0c364a2c152a0b8bd71060b2d37186" 8419 - integrity sha512-RlYpJSny4g3G2sqAfx1taaT7QFEw2cIfYLlZWmguA6EQSCviaeaQU1m4tvVXU1jIXb/w8jqer18XIq56VuECfg== 8420 + expo@~48.0.10: 8421 + version "48.0.10" 8422 + resolved "https://registry.yarnpkg.com/expo/-/expo-48.0.10.tgz#c1218f6a0ca9ca8209d6f833dc6911743870dfaf" 8423 + integrity sha512-8YXG6um3ld36nu/ONEC0NNkMatdj4k/HwR7OUd3dKUt3PJSkZHsCeLXIu8za7WSWpgPAU/xAj35noPFEFnjO1w== 8420 8424 dependencies: 8421 8425 "@babel/runtime" "^7.20.0" 8422 8426 "@expo/cli" "0.6.2" 8423 8427 "@expo/config" "8.0.2" 8424 8428 "@expo/config-plugins" "6.0.1" 8425 8429 "@expo/vector-icons" "^13.0.0" 8426 - babel-preset-expo "~9.3.1" 8430 + babel-preset-expo "~9.3.2" 8427 8431 cross-spawn "^6.0.5" 8428 8432 expo-application "~5.1.1" 8429 8433 expo-asset "~8.9.1" ··· 11953 11957 resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 11954 11958 integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== 11955 11959 11956 - metro-babel-transformer@0.73.8: 11957 - version "0.73.8" 11958 - resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.73.8.tgz#521374cb9234ba126f3f8d63588db5901308b4ed" 11959 - integrity sha512-GO6H/W2RjZ0/gm1pIvdO9EP34s3XN6kzoeyxqmfqKfYhJmYZf1SzXbyiIHyMbJNwJVrsKuHqu32+GopTlKscWw== 11960 - dependencies: 11961 - "@babel/core" "^7.20.0" 11962 - hermes-parser "0.8.0" 11963 - metro-source-map "0.73.8" 11964 - nullthrows "^1.1.1" 11965 - 11966 11960 metro-babel-transformer@0.73.9: 11967 11961 version "0.73.9" 11968 11962 resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.73.9.tgz#bec8aaaf1bbdc2e469fde586fde455f8b2a83073" ··· 12056 12050 dependencies: 12057 12051 uglify-es "^3.1.9" 12058 12052 12059 - metro-react-native-babel-preset@0.73.8, metro-react-native-babel-preset@^0.73.7: 12060 - version "0.73.8" 12061 - resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.73.8.tgz#04908f264f5d99c944ae20b5b11f659431328431" 12062 - integrity sha512-spNrcQJTbQntEIqJnCA6yL4S+dzV9fXCk7U+Rm7yJasZ4o4Frn7jP23isu7FlZIp1Azx1+6SbP7SgQM+IP5JgQ== 12053 + metro-react-native-babel-preset@0.73.9: 12054 + version "0.73.9" 12055 + resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.73.9.tgz#ef54637dd20f025197beb49e71309a9c539e73e2" 12056 + integrity sha512-AoD7v132iYDV4K78yN2OLgTPwtAKn0XlD2pOhzyBxiI8PeXzozhbKyPV7zUOJUPETj+pcEVfuYj5ZN/8+bhbCw== 12063 12057 dependencies: 12064 12058 "@babel/core" "^7.20.0" 12065 12059 "@babel/plugin-proposal-async-generator-functions" "^7.0.0" ··· 12100 12094 "@babel/template" "^7.0.0" 12101 12095 react-refresh "^0.4.0" 12102 12096 12103 - metro-react-native-babel-preset@0.73.9: 12104 - version "0.73.9" 12105 - resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.73.9.tgz#ef54637dd20f025197beb49e71309a9c539e73e2" 12106 - integrity sha512-AoD7v132iYDV4K78yN2OLgTPwtAKn0XlD2pOhzyBxiI8PeXzozhbKyPV7zUOJUPETj+pcEVfuYj5ZN/8+bhbCw== 12097 + metro-react-native-babel-preset@^0.73.7: 12098 + version "0.73.8" 12099 + resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.73.8.tgz#04908f264f5d99c944ae20b5b11f659431328431" 12100 + integrity sha512-spNrcQJTbQntEIqJnCA6yL4S+dzV9fXCk7U+Rm7yJasZ4o4Frn7jP23isu7FlZIp1Azx1+6SbP7SgQM+IP5JgQ== 12107 12101 dependencies: 12108 12102 "@babel/core" "^7.20.0" 12109 12103 "@babel/plugin-proposal-async-generator-functions" "^7.0.0" ··· 12144 12138 "@babel/template" "^7.0.0" 12145 12139 react-refresh "^0.4.0" 12146 12140 12147 - metro-react-native-babel-transformer@0.73.8: 12148 - version "0.73.8" 12149 - resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.73.8.tgz#cbcd4b243216878431dc4311ce46f02a928e3991" 12150 - integrity sha512-oH/LCCJPauteAE28c0KJAiSrkV+1VJbU0PwA9UwaWnle+qevs/clpKQ8LrIr33YbBj4CiI1kFoVRuNRt5h4NFg== 12151 - dependencies: 12152 - "@babel/core" "^7.20.0" 12153 - babel-preset-fbjs "^3.4.0" 12154 - hermes-parser "0.8.0" 12155 - metro-babel-transformer "0.73.8" 12156 - metro-react-native-babel-preset "0.73.8" 12157 - metro-source-map "0.73.8" 12158 - nullthrows "^1.1.1" 12159 - 12160 12141 metro-react-native-babel-transformer@0.73.9: 12161 12142 version "0.73.9" 12162 12143 resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.73.9.tgz#4f4f0cfa5119bab8b53e722fabaf90687d0cbff0" ··· 12177 12158 dependencies: 12178 12159 absolute-path "^0.0.0" 12179 12160 12180 - metro-runtime@0.73.8: 12181 - version "0.73.8" 12182 - resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.73.8.tgz#dadae7c154fbbde24390cf7f7e7d934a2768cd18" 12183 - integrity sha512-M+Bg9M4EN5AEpJ8NkiUsawD75ifYvYfHi05w6QzHXaqOrsTeaRbbeLuOGCYxU2f/tPg17wQV97/rqUQzs9qEtA== 12184 - dependencies: 12185 - "@babel/runtime" "^7.0.0" 12186 - react-refresh "^0.4.0" 12187 - 12188 12161 metro-runtime@0.73.9: 12189 12162 version "0.73.9" 12190 12163 resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.73.9.tgz#0b24c0b066b8629ee855a6e5035b65061fef60d5" ··· 12193 12166 "@babel/runtime" "^7.0.0" 12194 12167 react-refresh "^0.4.0" 12195 12168 12196 - metro-source-map@0.73.8: 12197 - version "0.73.8" 12198 - resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.73.8.tgz#5134174e3d43de26ad331b95f637944c6547d441" 12199 - integrity sha512-wozFXuBYMAy7b8BCYwC+qoXsvayVJBHWtSTlSLva99t+CoUSG9JO9kg1umzbOz28YYPxKmvb/wbnLMkHdas2cA== 12200 - dependencies: 12201 - "@babel/traverse" "^7.20.0" 12202 - "@babel/types" "^7.20.0" 12203 - invariant "^2.2.4" 12204 - metro-symbolicate "0.73.8" 12205 - nullthrows "^1.1.1" 12206 - ob1 "0.73.8" 12207 - source-map "^0.5.6" 12208 - vlq "^1.0.0" 12209 - 12210 12169 metro-source-map@0.73.9: 12211 12170 version "0.73.9" 12212 12171 resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.73.9.tgz#89ca41f6346aeb12f7f23496fa363e520adafebe" ··· 12219 12178 nullthrows "^1.1.1" 12220 12179 ob1 "0.73.9" 12221 12180 source-map "^0.5.6" 12222 - vlq "^1.0.0" 12223 - 12224 - metro-symbolicate@0.73.8: 12225 - version "0.73.8" 12226 - resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.73.8.tgz#96920f607bce484283d822ee5fe18d932f69c03d" 12227 - integrity sha512-xkBAcceYYp0GGdCCuMzkCF1ejHsd0lYlbKBkjSRgM0Nlj80VapPaSwumYoAvSaDxcbkvS7/sCjURGp5DsSFgRQ== 12228 - dependencies: 12229 - invariant "^2.2.4" 12230 - metro-source-map "0.73.8" 12231 - nullthrows "^1.1.1" 12232 - source-map "^0.5.6" 12233 - through2 "^2.0.1" 12234 12181 vlq "^1.0.0" 12235 12182 12236 12183 metro-symbolicate@0.73.9: ··· 12824 12771 version "2.2.2" 12825 12772 resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.2.tgz#e5418863e7905df67d51ec95938d67bf801f0bb0" 12826 12773 integrity sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw== 12827 - 12828 - ob1@0.73.8: 12829 - version "0.73.8" 12830 - resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.73.8.tgz#c569f1a15ce2d04da6fd70293ad44b5a93b11978" 12831 - integrity sha512-1F7j+jzD+edS6ohQP7Vg5f3yiIk5i3x1uLrNIHOmLHWzWK1t3zrDpjnoXghccdVlsU+UjbyURnDynm4p0GgXeA== 12832 12774 12833 12775 ob1@0.73.9: 12834 12776 version "0.73.9" ··· 14731 14673 dependencies: 14732 14674 fast-base64-decode "^1.0.0" 14733 14675 14734 - react-native-gradle-plugin@^0.71.16: 14735 - version "0.71.16" 14736 - resolved "https://registry.yarnpkg.com/react-native-gradle-plugin/-/react-native-gradle-plugin-0.71.16.tgz#822bb0c680e03b5df5aa65f2e5ffc2bc2930854a" 14737 - integrity sha512-H2BjG2zk7B7Wii9sXvd9qhCVRQYDAHSWdMw9tscmZBqSP62DkIWEQSk4/B2GhQ4aK9ydVXgtqR6tBeg3yy8TSA== 14676 + react-native-gradle-plugin@^0.71.17: 14677 + version "0.71.17" 14678 + resolved "https://registry.yarnpkg.com/react-native-gradle-plugin/-/react-native-gradle-plugin-0.71.17.tgz#cf780a27270f0a32dca8184eff91555d7627dd00" 14679 + integrity sha512-OXXYgpISEqERwjSlaCiaQY6cTY5CH6j73gdkWpK0hedxtiWMWgH+i5TOi4hIGYitm9kQBeyDu+wim9fA8ROFJA== 14738 14680 14739 14681 react-native-haptic-feedback@^1.14.0: 14740 14682 version "1.14.0" ··· 14759 14701 resolved "https://registry.yarnpkg.com/react-native-linear-gradient/-/react-native-linear-gradient-2.6.2.tgz#56598a76832724b2afa7889747635b5c80948f38" 14760 14702 integrity sha512-Z8Xxvupsex+9BBFoSYS87bilNPWcRfRsGC0cpJk72Nxb5p2nEkGSBv73xZbEHnW2mUFvP+huYxrVvjZkr/gRjQ== 14761 14703 14762 - react-native-pager-view@6.1.2: 14763 - version "6.1.2" 14764 - resolved "https://registry.yarnpkg.com/react-native-pager-view/-/react-native-pager-view-6.1.2.tgz#3522079b9a9d6634ca5e8d153bc0b4d660254552" 14765 - integrity sha512-qs2KSFc+7N7B+UZ6SG2sTvCkppagm5fVyRclv1KFKc7lDtrhXLzN59tXJw575LDP/dRJoXsNwqUAhZJdws6ABQ== 14704 + react-native-pager-view@6.1.4: 14705 + version "6.1.4" 14706 + resolved "https://registry.yarnpkg.com/react-native-pager-view/-/react-native-pager-view-6.1.4.tgz#3a63ebd1b72f81991157ea552bb9c887e529bc8c" 14707 + integrity sha512-fmTwgGwPxGCBusKAq7gHzm+s1Yp0qh5rKPoQszaCuxrb+76KgK4Qe82jJNPUp2xTZOKSw+FbJU2QahF8ncTl+w== 14766 14708 14767 14709 react-native-progress@bluesky-social/react-native-progress: 14768 14710 version "5.0.0" ··· 14849 14791 postcss-value-parser "^4.2.0" 14850 14792 styleq "^0.1.2" 14851 14793 14852 - react-native@0.71.4: 14853 - version "0.71.4" 14854 - resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.71.4.tgz#f03f600efe68f745d19454ab17f9c1a9ef304790" 14855 - integrity sha512-3hSYqvWrOdKhpV3HpEKp1/CkWx8Sr/N/miCrmUIAsVTSJUR7JW0VvIsrV9urDhUj/s6v2WF4n7qIEEJsmTCrPw== 14794 + react-native@0.71.6: 14795 + version "0.71.6" 14796 + resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.71.6.tgz#e8f07baf55abd1015eaa7040ceaa4aa632c2c04f" 14797 + integrity sha512-gHrDj7qaAaiE41JwaFCh3AtvOqOLuRgZtHKzNiwxakG/wvPAYmG73ECfWHGxjxIx/QT17Hp37Da3ipCei/CayQ== 14856 14798 dependencies: 14857 14799 "@jest/create-cache-key-function" "^29.2.1" 14858 - "@react-native-community/cli" "10.2.0" 14800 + "@react-native-community/cli" "10.2.2" 14859 14801 "@react-native-community/cli-platform-android" "10.2.0" 14860 - "@react-native-community/cli-platform-ios" "10.2.0" 14802 + "@react-native-community/cli-platform-ios" "10.2.1" 14861 14803 "@react-native/assets" "1.0.0" 14862 14804 "@react-native/normalize-color" "2.1.0" 14863 14805 "@react-native/polyfills" "2.0.0" ··· 14870 14812 jest-environment-node "^29.2.1" 14871 14813 jsc-android "^250231.0.0" 14872 14814 memoize-one "^5.0.0" 14873 - metro-react-native-babel-transformer "0.73.8" 14874 - metro-runtime "0.73.8" 14875 - metro-source-map "0.73.8" 14815 + metro-react-native-babel-transformer "0.73.9" 14816 + metro-runtime "0.73.9" 14817 + metro-source-map "0.73.9" 14876 14818 mkdirp "^0.5.1" 14877 14819 nullthrows "^1.1.1" 14878 14820 pretty-format "^26.5.2" 14879 14821 promise "^8.3.0" 14880 14822 react-devtools-core "^4.26.1" 14881 14823 react-native-codegen "^0.71.5" 14882 - react-native-gradle-plugin "^0.71.16" 14824 + react-native-gradle-plugin "^0.71.17" 14883 14825 react-refresh "^0.4.0" 14884 14826 react-shallow-renderer "^16.15.0" 14885 14827 regenerator-runtime "^0.13.2"