diff --git a/CLAUDE.md b/CLAUDE.md
new file mode 100644
index 000000000..6cd30c73e
--- /dev/null
+++ b/CLAUDE.md
@@ -0,0 +1,76 @@
+# CLAUDE.md
+
+This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
+
+## Project Overview
+
+React Native CodePush is a native module that enables over-the-air updates for React Native apps. It consists of native implementations for iOS (Objective-C), Android (Java), and Windows (C++), unified through a JavaScript bridge layer.
+
+## Development Commands
+
+### Testing
+- `npm test` - Run all tests with TypeScript compilation
+- `npm run test:android` - Run Android-specific tests
+- `npm run test:ios` - Run iOS-specific tests
+- `npm run test:setup-android` - Set up Android emulator for testing
+- `npm run test:setup-ios` - Set up iOS simulator for testing
+
+### Build
+- `npm run build` - Build TypeScript tests to bin/ directory
+- `npm run tsc` - TypeScript compilation
+
+### Platform Testing
+- Tests run on actual emulators/simulators with real React Native apps
+- Test apps are created dynamically in `test/` directory
+- Both old and new React Native architecture testing supported
+
+## Architecture
+
+### Core Components
+- **JavaScript Bridge** (`CodePush.js`): Main API layer exposing update methods
+- **Native Modules**: Platform-specific implementations handling file operations, bundle management
+- **Update Manager**: Handles download, installation, and rollback logic
+- **Acquisition SDK**: Manages server communication and update metadata
+
+### Platform Structure
+- **iOS**: `ios/` - Objective-C implementation with CocoaPods integration
+- **Android**: `android/` - Java implementation with Gradle plugin
+- **Windows**: `windows/` - C++ implementation for Windows React Native
+- **JavaScript**: Root level - TypeScript definitions and bridge code
+
+### Key Patterns
+- **Higher-Order Component**: `codePush()` wrapper for automatic update management
+- **Promise-based Native Bridge**: All native operations return promises
+- **Platform Abstraction**: Unified JavaScript API with platform-specific implementations
+- **Error Handling**: Automatic rollback on failed updates with telemetry
+
+### Testing Framework
+- **Custom Test Runner**: TypeScript-based test framework in `test/`
+- **Emulator Management**: Automated setup and teardown of test environments
+- **Real App Testing**: Creates actual React Native apps for integration testing
+- **Scenario Testing**: Update, rollback, and error scenarios
+
+### Build Integration
+- **Android Gradle Plugin**: Automatically generates bundle hashes and processes assets
+- **iOS CocoaPods**: Manages native dependencies and build configuration
+- **Bundle Processing**: Automated zip creation and hash calculation for OTA updates
+
+## Development Workflow
+
+1. **Making Changes**: Edit native code or JavaScript bridge
+2. **Testing**: Run platform-specific tests with real emulators
+3. **Integration**: Test with actual React Native apps via test framework
+4. **Validation**: Ensure compatibility with both RN architectures
+
+## Key Files
+- `CodePush.js` - Main JavaScript API
+- `test/TestRunner.ts` - Test framework entry point
+- `android/build.gradle` - Android build configuration
+- `ios/CodePush.podspec` - iOS CocoaPods specification
+- `plugin.xml` - Cordova plugin configuration
+
+## Special Considerations
+- Native module requires platform-specific knowledge (iOS/Android/Windows)
+- Testing requires emulator setup and can be time-intensive
+- Updates must be backward compatible with existing app installations
+- Bundle hash calculation is critical for update integrity
\ No newline at end of file
diff --git a/Examples/CodePushDemoAppNewArch/.bundle/config b/Examples/CodePushDemo/.bundle/config
similarity index 100%
rename from Examples/CodePushDemoAppNewArch/.bundle/config
rename to Examples/CodePushDemo/.bundle/config
diff --git a/Examples/CodePushDemoAppNewArch/.eslintrc.js b/Examples/CodePushDemo/.eslintrc.js
similarity index 100%
rename from Examples/CodePushDemoAppNewArch/.eslintrc.js
rename to Examples/CodePushDemo/.eslintrc.js
diff --git a/Examples/CodePushDemoSwiftNewArch/.gitignore b/Examples/CodePushDemo/.gitignore
similarity index 99%
rename from Examples/CodePushDemoSwiftNewArch/.gitignore
rename to Examples/CodePushDemo/.gitignore
index d5ae45669..de9995595 100644
--- a/Examples/CodePushDemoSwiftNewArch/.gitignore
+++ b/Examples/CodePushDemo/.gitignore
@@ -33,6 +33,7 @@ local.properties
.cxx/
*.keystore
!debug.keystore
+.kotlin/
# node.js
#
diff --git a/Examples/CodePushDemoSwiftNewArch/.prettierrc.js b/Examples/CodePushDemo/.prettierrc.js
similarity index 64%
rename from Examples/CodePushDemoSwiftNewArch/.prettierrc.js
rename to Examples/CodePushDemo/.prettierrc.js
index 2b540746a..06860c8d1 100644
--- a/Examples/CodePushDemoSwiftNewArch/.prettierrc.js
+++ b/Examples/CodePushDemo/.prettierrc.js
@@ -1,7 +1,5 @@
module.exports = {
arrowParens: 'avoid',
- bracketSameLine: true,
- bracketSpacing: false,
singleQuote: true,
trailingComma: 'all',
};
diff --git a/Examples/CodePushDemoAppNewArch/.watchmanconfig b/Examples/CodePushDemo/.watchmanconfig
similarity index 100%
rename from Examples/CodePushDemoAppNewArch/.watchmanconfig
rename to Examples/CodePushDemo/.watchmanconfig
diff --git a/Examples/CodePushDemo/App.tsx b/Examples/CodePushDemo/App.tsx
new file mode 100644
index 000000000..5e963b129
--- /dev/null
+++ b/Examples/CodePushDemo/App.tsx
@@ -0,0 +1,45 @@
+/**
+ * Sample React Native App
+ * https://github.com/facebook/react-native
+ *
+ * @format
+ */
+
+import { NewAppScreen } from '@react-native/new-app-screen';
+import { StatusBar, StyleSheet, useColorScheme, View } from 'react-native';
+import {
+ SafeAreaProvider,
+ useSafeAreaInsets,
+} from 'react-native-safe-area-context';
+
+function App() {
+ const isDarkMode = useColorScheme() === 'dark';
+
+ return (
+
+
+
+
+ );
+}
+
+function AppContent() {
+ const safeAreaInsets = useSafeAreaInsets();
+
+ return (
+
+
+
+ );
+}
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ },
+});
+
+export default App;
diff --git a/Examples/CodePushDemoSwiftNewArch/Gemfile b/Examples/CodePushDemo/Gemfile
similarity index 74%
rename from Examples/CodePushDemoSwiftNewArch/Gemfile
rename to Examples/CodePushDemo/Gemfile
index 03278dd5e..6a4c5f171 100644
--- a/Examples/CodePushDemoSwiftNewArch/Gemfile
+++ b/Examples/CodePushDemo/Gemfile
@@ -8,3 +8,9 @@ gem 'cocoapods', '>= 1.13', '!= 1.15.0', '!= 1.15.1'
gem 'activesupport', '>= 6.1.7.5', '!= 7.1.0'
gem 'xcodeproj', '< 1.26.0'
gem 'concurrent-ruby', '< 1.3.4'
+
+# Ruby 3.4.0 has removed some libraries from the standard library.
+gem 'bigdecimal'
+gem 'logger'
+gem 'benchmark'
+gem 'mutex_m'
diff --git a/Examples/CodePushDemoSwiftNewArch/Gemfile.lock b/Examples/CodePushDemo/Gemfile.lock
similarity index 87%
rename from Examples/CodePushDemoSwiftNewArch/Gemfile.lock
rename to Examples/CodePushDemo/Gemfile.lock
index f123b222c..040b35d84 100644
--- a/Examples/CodePushDemoSwiftNewArch/Gemfile.lock
+++ b/Examples/CodePushDemo/Gemfile.lock
@@ -5,7 +5,7 @@ GEM
base64
nkf
rexml
- activesupport (7.2.2.1)
+ activesupport (7.2.2.2)
base64
benchmark (>= 0.3)
bigdecimal
@@ -23,9 +23,9 @@ GEM
httpclient (~> 2.8, >= 2.8.3)
json (>= 1.5.1)
atomos (0.1.3)
- base64 (0.2.0)
- benchmark (0.4.0)
- bigdecimal (3.1.9)
+ base64 (0.3.0)
+ benchmark (0.5.0)
+ bigdecimal (3.3.1)
claide (1.1.0)
cocoapods (1.15.2)
addressable (~> 2.8)
@@ -66,12 +66,12 @@ GEM
cocoapods-try (1.2.0)
colored2 (3.1.2)
concurrent-ruby (1.3.3)
- connection_pool (2.5.0)
- drb (2.2.1)
+ connection_pool (2.5.4)
+ drb (2.2.3)
escape (0.0.4)
- ethon (0.16.0)
+ ethon (0.15.0)
ffi (>= 1.15.0)
- ffi (1.17.1)
+ ffi (1.17.2)
fourflusher (2.3.1)
fuzzy_match (2.0.4)
gh_inspector (1.1.3)
@@ -79,9 +79,9 @@ GEM
mutex_m
i18n (1.14.7)
concurrent-ruby (~> 1.0)
- json (2.10.1)
- logger (1.6.6)
- minitest (5.25.4)
+ json (2.15.2)
+ logger (1.7.0)
+ minitest (5.26.0)
molinillo (0.8.0)
mutex_m (0.3.0)
nanaimo (0.3.0)
@@ -89,11 +89,11 @@ GEM
netrc (0.11.0)
nkf (0.2.0)
public_suffix (4.0.7)
- rexml (3.4.1)
+ rexml (3.4.4)
ruby-macho (2.5.1)
securerandom (0.4.1)
- typhoeus (1.4.1)
- ethon (>= 0.9.0)
+ typhoeus (1.5.0)
+ ethon (>= 0.9.0, < 0.16.0)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
xcodeproj (1.25.1)
@@ -109,12 +109,16 @@ PLATFORMS
DEPENDENCIES
activesupport (>= 6.1.7.5, != 7.1.0)
+ benchmark
+ bigdecimal
cocoapods (>= 1.13, != 1.15.1, != 1.15.0)
concurrent-ruby (< 1.3.4)
+ logger
+ mutex_m
xcodeproj (< 1.26.0)
RUBY VERSION
- ruby 3.3.6p108
+ ruby 3.1.6p260
BUNDLED WITH
- 2.6.2
+ 2.5.9
diff --git a/Examples/CodePushDemoSwiftNewArch/README.md b/Examples/CodePushDemo/README.md
similarity index 100%
rename from Examples/CodePushDemoSwiftNewArch/README.md
rename to Examples/CodePushDemo/README.md
diff --git a/Examples/CodePushDemoSwiftNewArch/__tests__/App.test.tsx b/Examples/CodePushDemo/__tests__/App.test.tsx
similarity index 100%
rename from Examples/CodePushDemoSwiftNewArch/__tests__/App.test.tsx
rename to Examples/CodePushDemo/__tests__/App.test.tsx
diff --git a/Examples/CodePushDemoSwiftNewArch/android/app/build.gradle b/Examples/CodePushDemo/android/app/build.gradle
similarity index 95%
rename from Examples/CodePushDemoSwiftNewArch/android/app/build.gradle
rename to Examples/CodePushDemo/android/app/build.gradle
index e961e490d..9950c6533 100644
--- a/Examples/CodePushDemoSwiftNewArch/android/app/build.gradle
+++ b/Examples/CodePushDemo/android/app/build.gradle
@@ -63,23 +63,23 @@ def enableProguardInReleaseBuilds = false
* The preferred build flavor of JavaScriptCore (JSC)
*
* For example, to use the international variant, you can use:
- * `def jscFlavor = 'org.webkit:android-jsc-intl:+'`
+ * `def jscFlavor = io.github.react-native-community:jsc-android-intl:2026004.+`
*
* The international variant includes ICU i18n library and necessary data
* allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that
* give correct results when using with locales other than en-US. Note that
* this variant is about 6MiB larger per architecture than default.
*/
-def jscFlavor = 'org.webkit:android-jsc:+'
+def jscFlavor = 'io.github.react-native-community:jsc-android:2026004.+'
android {
ndkVersion rootProject.ext.ndkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
compileSdk rootProject.ext.compileSdkVersion
- namespace "com.codepushdemoswiftnewarch"
+ namespace "com.codepushdemo"
defaultConfig {
- applicationId "com.codepushdemoswiftnewarch"
+ applicationId "com.codepushdemo"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1
diff --git a/Examples/CodePushDemoApp/android/app/debug.keystore b/Examples/CodePushDemo/android/app/debug.keystore
similarity index 100%
rename from Examples/CodePushDemoApp/android/app/debug.keystore
rename to Examples/CodePushDemo/android/app/debug.keystore
diff --git a/Examples/CodePushDemoApp/android/app/proguard-rules.pro b/Examples/CodePushDemo/android/app/proguard-rules.pro
similarity index 100%
rename from Examples/CodePushDemoApp/android/app/proguard-rules.pro
rename to Examples/CodePushDemo/android/app/proguard-rules.pro
diff --git a/Examples/CodePushDemoAppNewArch/android/app/src/main/AndroidManifest.xml b/Examples/CodePushDemo/android/app/src/main/AndroidManifest.xml
similarity index 94%
rename from Examples/CodePushDemoAppNewArch/android/app/src/main/AndroidManifest.xml
rename to Examples/CodePushDemo/android/app/src/main/AndroidManifest.xml
index e1892528b..fb78f3974 100644
--- a/Examples/CodePushDemoAppNewArch/android/app/src/main/AndroidManifest.xml
+++ b/Examples/CodePushDemo/android/app/src/main/AndroidManifest.xml
@@ -9,6 +9,7 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:allowBackup="false"
android:theme="@style/AppTheme"
+ android:usesCleartextTraffic="${usesCleartextTraffic}"
android:supportsRtl="true">
+ CodePushDemo
+ CodePushDeploymentKey
+
diff --git a/Examples/CodePushDemoAppNewArch/android/app/src/main/res/values/styles.xml b/Examples/CodePushDemo/android/app/src/main/res/values/styles.xml
similarity index 100%
rename from Examples/CodePushDemoAppNewArch/android/app/src/main/res/values/styles.xml
rename to Examples/CodePushDemo/android/app/src/main/res/values/styles.xml
diff --git a/Examples/CodePushDemoSwiftNewArch/android/build.gradle b/Examples/CodePushDemo/android/build.gradle
similarity index 76%
rename from Examples/CodePushDemoSwiftNewArch/android/build.gradle
rename to Examples/CodePushDemo/android/build.gradle
index a62d6daa4..dad99b022 100644
--- a/Examples/CodePushDemoSwiftNewArch/android/build.gradle
+++ b/Examples/CodePushDemo/android/build.gradle
@@ -1,11 +1,11 @@
buildscript {
ext {
- buildToolsVersion = "35.0.0"
+ buildToolsVersion = "36.0.0"
minSdkVersion = 24
- compileSdkVersion = 35
- targetSdkVersion = 34
+ compileSdkVersion = 36
+ targetSdkVersion = 36
ndkVersion = "27.1.12297006"
- kotlinVersion = "2.0.21"
+ kotlinVersion = "2.1.20"
}
repositories {
google()
diff --git a/Examples/CodePushDemoAppNewArch/android/gradle.properties b/Examples/CodePushDemo/android/gradle.properties
similarity index 87%
rename from Examples/CodePushDemoAppNewArch/android/gradle.properties
rename to Examples/CodePushDemo/android/gradle.properties
index 5e24e3aa8..9afe61598 100644
--- a/Examples/CodePushDemoAppNewArch/android/gradle.properties
+++ b/Examples/CodePushDemo/android/gradle.properties
@@ -37,3 +37,8 @@ newArchEnabled=true
# Use this property to enable or disable the Hermes JS engine.
# If set to false, you will be using JSC instead.
hermesEnabled=true
+
+# Use this property to enable edge-to-edge display support.
+# This allows your app to draw behind system bars for an immersive UI.
+# Note: Only works with ReactActivity and should not be used with custom Activity.
+edgeToEdgeEnabled=false
diff --git a/Examples/CodePushDemo/android/gradle/wrapper/gradle-wrapper.jar b/Examples/CodePushDemo/android/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 000000000..8bdaf60c7
Binary files /dev/null and b/Examples/CodePushDemo/android/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/Examples/CodePushDemoAppNewArch/android/gradle/wrapper/gradle-wrapper.properties b/Examples/CodePushDemo/android/gradle/wrapper/gradle-wrapper.properties
similarity index 93%
rename from Examples/CodePushDemoAppNewArch/android/gradle/wrapper/gradle-wrapper.properties
rename to Examples/CodePushDemo/android/gradle/wrapper/gradle-wrapper.properties
index 79eb9d003..2a84e188b 100644
--- a/Examples/CodePushDemoAppNewArch/android/gradle/wrapper/gradle-wrapper.properties
+++ b/Examples/CodePushDemo/android/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
diff --git a/Examples/CodePushDemoAppNewArch/android/gradlew b/Examples/CodePushDemo/android/gradlew
similarity index 96%
rename from Examples/CodePushDemoAppNewArch/android/gradlew
rename to Examples/CodePushDemo/android/gradlew
index f5feea6d6..ef07e0162 100755
--- a/Examples/CodePushDemoAppNewArch/android/gradlew
+++ b/Examples/CodePushDemo/android/gradlew
@@ -1,7 +1,7 @@
#!/bin/sh
#
-# Copyright © 2015-2021 the original authors.
+# Copyright © 2015 the original authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -86,8 +86,7 @@ done
# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
-APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s
-' "$PWD" ) || exit
+APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum
@@ -115,7 +114,7 @@ case "$( uname )" in #(
NONSTOP* ) nonstop=true ;;
esac
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+CLASSPATH="\\\"\\\""
# Determine the Java command to use to start the JVM.
@@ -206,7 +205,7 @@ fi
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Collect all arguments for the java command:
-# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
# and any embedded shellness will be escaped.
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
# treated as '${Hostname}' itself on the command line.
@@ -214,7 +213,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \
-classpath "$CLASSPATH" \
- org.gradle.wrapper.GradleWrapperMain \
+ -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
"$@"
# Stop when "xargs" is not available.
diff --git a/Examples/CodePushDemoAppNewArch/android/gradlew.bat b/Examples/CodePushDemo/android/gradlew.bat
similarity index 86%
rename from Examples/CodePushDemoAppNewArch/android/gradlew.bat
rename to Examples/CodePushDemo/android/gradlew.bat
index 9b42019c7..11bf18292 100644
--- a/Examples/CodePushDemoAppNewArch/android/gradlew.bat
+++ b/Examples/CodePushDemo/android/gradlew.bat
@@ -1,3 +1,8 @@
+@REM Copyright (c) Meta Platforms, Inc. and affiliates.
+@REM
+@REM This source code is licensed under the MIT license found in the
+@REM LICENSE file in the root directory of this source tree.
+
@rem
@rem Copyright 2015 the original author or authors.
@rem
@@ -70,11 +75,11 @@ goto fail
:execute
@rem Setup the command line
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+set CLASSPATH=
@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
:end
@rem End local scope for the variables with windows NT shell
diff --git a/Examples/CodePushDemoAppNewArch/android/settings.gradle b/Examples/CodePushDemo/android/settings.gradle
similarity index 87%
rename from Examples/CodePushDemoAppNewArch/android/settings.gradle
rename to Examples/CodePushDemo/android/settings.gradle
index 9ea964767..3fc13acd6 100644
--- a/Examples/CodePushDemoAppNewArch/android/settings.gradle
+++ b/Examples/CodePushDemo/android/settings.gradle
@@ -1,6 +1,6 @@
pluginManagement { includeBuild("../node_modules/@react-native/gradle-plugin") }
plugins { id("com.facebook.react.settings") }
extensions.configure(com.facebook.react.ReactSettingsExtension){ ex -> ex.autolinkLibrariesFromCommand() }
-rootProject.name = 'CodePushDemoAppNewArch'
+rootProject.name = 'CodePushDemo'
include ':app'
includeBuild('../node_modules/@react-native/gradle-plugin')
diff --git a/Examples/CodePushDemo/app.json b/Examples/CodePushDemo/app.json
new file mode 100644
index 000000000..05cc023ee
--- /dev/null
+++ b/Examples/CodePushDemo/app.json
@@ -0,0 +1,4 @@
+{
+ "name": "CodePushDemo",
+ "displayName": "CodePushDemo"
+}
diff --git a/Examples/CodePushDemoAppNewArch/babel.config.js b/Examples/CodePushDemo/babel.config.js
similarity index 100%
rename from Examples/CodePushDemoAppNewArch/babel.config.js
rename to Examples/CodePushDemo/babel.config.js
diff --git a/Examples/CodePushDemoAppNewArch/index.js b/Examples/CodePushDemo/index.js
similarity index 51%
rename from Examples/CodePushDemoAppNewArch/index.js
rename to Examples/CodePushDemo/index.js
index a850d031d..9b7393291 100644
--- a/Examples/CodePushDemoAppNewArch/index.js
+++ b/Examples/CodePushDemo/index.js
@@ -2,8 +2,8 @@
* @format
*/
-import {AppRegistry} from 'react-native';
+import { AppRegistry } from 'react-native';
import App from './App';
-import {name as appName} from './app.json';
+import { name as appName } from './app.json';
AppRegistry.registerComponent(appName, () => App);
diff --git a/Examples/CodePushDemoAppNewArch/ios/.xcode.env b/Examples/CodePushDemo/ios/.xcode.env
similarity index 100%
rename from Examples/CodePushDemoAppNewArch/ios/.xcode.env
rename to Examples/CodePushDemo/ios/.xcode.env
diff --git a/Examples/CodePushDemoSwiftNewArch/ios/CodePushDemoSwiftNewArch.xcodeproj/project.pbxproj b/Examples/CodePushDemo/ios/CodePushDemo.xcodeproj/project.pbxproj
similarity index 78%
rename from Examples/CodePushDemoSwiftNewArch/ios/CodePushDemoSwiftNewArch.xcodeproj/project.pbxproj
rename to Examples/CodePushDemo/ios/CodePushDemo.xcodeproj/project.pbxproj
index 4b7854612..ae39e1cad 100644
--- a/Examples/CodePushDemoSwiftNewArch/ios/CodePushDemoSwiftNewArch.xcodeproj/project.pbxproj
+++ b/Examples/CodePushDemo/ios/CodePushDemo.xcodeproj/project.pbxproj
@@ -7,23 +7,23 @@
objects = {
/* Begin PBXBuildFile section */
- 0C80B921A6F3F58F76C31292 /* libPods-CodePushDemoSwiftNewArch.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DCACB8F33CDC322A6C60F78 /* libPods-CodePushDemoSwiftNewArch.a */; };
+ 0C80B921A6F3F58F76C31292 /* libPods-CodePushDemo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DCACB8F33CDC322A6C60F78 /* libPods-CodePushDemo.a */; };
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
761780ED2CA45674006654EE /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 761780EC2CA45674006654EE /* AppDelegate.swift */; };
81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; };
- B980CFA8E17D5FE91125FA34 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */; };
+ C62567501685D39B5BA8EDC3 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
- 13B07F961A680F5B00A75B9A /* CodePushDemoSwiftNewArch.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CodePushDemoSwiftNewArch.app; sourceTree = BUILT_PRODUCTS_DIR; };
- 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = CodePushDemoSwiftNewArch/Images.xcassets; sourceTree = ""; };
- 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = CodePushDemoSwiftNewArch/Info.plist; sourceTree = ""; };
- 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = PrivacyInfo.xcprivacy; path = CodePushDemoSwiftNewArch/PrivacyInfo.xcprivacy; sourceTree = ""; };
- 3B4392A12AC88292D35C810B /* Pods-CodePushDemoSwiftNewArch.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CodePushDemoSwiftNewArch.debug.xcconfig"; path = "Target Support Files/Pods-CodePushDemoSwiftNewArch/Pods-CodePushDemoSwiftNewArch.debug.xcconfig"; sourceTree = ""; };
- 5709B34CF0A7D63546082F79 /* Pods-CodePushDemoSwiftNewArch.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CodePushDemoSwiftNewArch.release.xcconfig"; path = "Target Support Files/Pods-CodePushDemoSwiftNewArch/Pods-CodePushDemoSwiftNewArch.release.xcconfig"; sourceTree = ""; };
- 5DCACB8F33CDC322A6C60F78 /* libPods-CodePushDemoSwiftNewArch.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-CodePushDemoSwiftNewArch.a"; sourceTree = BUILT_PRODUCTS_DIR; };
- 761780EC2CA45674006654EE /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AppDelegate.swift; path = CodePushDemoSwiftNewArch/AppDelegate.swift; sourceTree = ""; };
- 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = CodePushDemoSwiftNewArch/LaunchScreen.storyboard; sourceTree = ""; };
+ 13B07F961A680F5B00A75B9A /* CodePushDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CodePushDemo.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = CodePushDemo/Images.xcassets; sourceTree = ""; };
+ 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = CodePushDemo/Info.plist; sourceTree = ""; };
+ 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = PrivacyInfo.xcprivacy; path = CodePushDemo/PrivacyInfo.xcprivacy; sourceTree = ""; };
+ 3B4392A12AC88292D35C810B /* Pods-CodePushDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CodePushDemo.debug.xcconfig"; path = "Target Support Files/Pods-CodePushDemo/Pods-CodePushDemo.debug.xcconfig"; sourceTree = ""; };
+ 5709B34CF0A7D63546082F79 /* Pods-CodePushDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CodePushDemo.release.xcconfig"; path = "Target Support Files/Pods-CodePushDemo/Pods-CodePushDemo.release.xcconfig"; sourceTree = ""; };
+ 5DCACB8F33CDC322A6C60F78 /* libPods-CodePushDemo.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-CodePushDemo.a"; sourceTree = BUILT_PRODUCTS_DIR; };
+ 761780EC2CA45674006654EE /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AppDelegate.swift; path = CodePushDemo/AppDelegate.swift; sourceTree = ""; };
+ 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = CodePushDemo/LaunchScreen.storyboard; sourceTree = ""; };
ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
/* End PBXFileReference section */
@@ -32,14 +32,14 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- 0C80B921A6F3F58F76C31292 /* libPods-CodePushDemoSwiftNewArch.a in Frameworks */,
+ 0C80B921A6F3F58F76C31292 /* libPods-CodePushDemo.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
- 13B07FAE1A68108700A75B9A /* CodePushDemoSwiftNewArch */ = {
+ 13B07FAE1A68108700A75B9A /* CodePushDemo */ = {
isa = PBXGroup;
children = (
13B07FB51A68108700A75B9A /* Images.xcassets */,
@@ -48,14 +48,14 @@
81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */,
13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */,
);
- name = CodePushDemoSwiftNewArch;
+ name = CodePushDemo;
sourceTree = "";
};
2D16E6871FA4F8E400B85C8A /* Frameworks */ = {
isa = PBXGroup;
children = (
ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
- 5DCACB8F33CDC322A6C60F78 /* libPods-CodePushDemoSwiftNewArch.a */,
+ 5DCACB8F33CDC322A6C60F78 /* libPods-CodePushDemo.a */,
);
name = Frameworks;
sourceTree = "";
@@ -70,7 +70,7 @@
83CBB9F61A601CBA00E9B192 = {
isa = PBXGroup;
children = (
- 13B07FAE1A68108700A75B9A /* CodePushDemoSwiftNewArch */,
+ 13B07FAE1A68108700A75B9A /* CodePushDemo */,
832341AE1AAA6A7D00B99B32 /* Libraries */,
83CBBA001A601CBA00E9B192 /* Products */,
2D16E6871FA4F8E400B85C8A /* Frameworks */,
@@ -84,7 +84,7 @@
83CBBA001A601CBA00E9B192 /* Products */ = {
isa = PBXGroup;
children = (
- 13B07F961A680F5B00A75B9A /* CodePushDemoSwiftNewArch.app */,
+ 13B07F961A680F5B00A75B9A /* CodePushDemo.app */,
);
name = Products;
sourceTree = "";
@@ -92,8 +92,8 @@
BBD78D7AC51CEA395F1C20DB /* Pods */ = {
isa = PBXGroup;
children = (
- 3B4392A12AC88292D35C810B /* Pods-CodePushDemoSwiftNewArch.debug.xcconfig */,
- 5709B34CF0A7D63546082F79 /* Pods-CodePushDemoSwiftNewArch.release.xcconfig */,
+ 3B4392A12AC88292D35C810B /* Pods-CodePushDemo.debug.xcconfig */,
+ 5709B34CF0A7D63546082F79 /* Pods-CodePushDemo.release.xcconfig */,
);
path = Pods;
sourceTree = "";
@@ -101,9 +101,9 @@
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
- 13B07F861A680F5B00A75B9A /* CodePushDemoSwiftNewArch */ = {
+ 13B07F861A680F5B00A75B9A /* CodePushDemo */ = {
isa = PBXNativeTarget;
- buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "CodePushDemoSwiftNewArch" */;
+ buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "CodePushDemo" */;
buildPhases = (
C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */,
13B07F871A680F5B00A75B9A /* Sources */,
@@ -117,9 +117,9 @@
);
dependencies = (
);
- name = CodePushDemoSwiftNewArch;
- productName = CodePushDemoSwiftNewArch;
- productReference = 13B07F961A680F5B00A75B9A /* CodePushDemoSwiftNewArch.app */;
+ name = CodePushDemo;
+ productName = CodePushDemo;
+ productReference = 13B07F961A680F5B00A75B9A /* CodePushDemo.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
@@ -135,7 +135,7 @@
};
};
};
- buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "CodePushDemoSwiftNewArch" */;
+ buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "CodePushDemo" */;
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 0;
@@ -148,7 +148,7 @@
projectDirPath = "";
projectRoot = "";
targets = (
- 13B07F861A680F5B00A75B9A /* CodePushDemoSwiftNewArch */,
+ 13B07F861A680F5B00A75B9A /* CodePushDemo */,
);
};
/* End PBXProject section */
@@ -160,7 +160,7 @@
files = (
81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */,
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */,
- B980CFA8E17D5FE91125FA34 /* PrivacyInfo.xcprivacy in Resources */,
+ C62567501685D39B5BA8EDC3 /* PrivacyInfo.xcprivacy in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -189,15 +189,15 @@
files = (
);
inputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-CodePushDemoSwiftNewArch/Pods-CodePushDemoSwiftNewArch-frameworks-${CONFIGURATION}-input-files.xcfilelist",
+ "${PODS_ROOT}/Target Support Files/Pods-CodePushDemo/Pods-CodePushDemo-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-CodePushDemoSwiftNewArch/Pods-CodePushDemoSwiftNewArch-frameworks-${CONFIGURATION}-output-files.xcfilelist",
+ "${PODS_ROOT}/Target Support Files/Pods-CodePushDemo/Pods-CodePushDemo-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-CodePushDemoSwiftNewArch/Pods-CodePushDemoSwiftNewArch-frameworks.sh\"\n";
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-CodePushDemo/Pods-CodePushDemo-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */ = {
@@ -215,7 +215,7 @@
outputFileListPaths = (
);
outputPaths = (
- "$(DERIVED_FILE_DIR)/Pods-CodePushDemoSwiftNewArch-checkManifestLockResult.txt",
+ "$(DERIVED_FILE_DIR)/Pods-CodePushDemo-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
@@ -228,15 +228,15 @@
files = (
);
inputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-CodePushDemoSwiftNewArch/Pods-CodePushDemoSwiftNewArch-resources-${CONFIGURATION}-input-files.xcfilelist",
+ "${PODS_ROOT}/Target Support Files/Pods-CodePushDemo/Pods-CodePushDemo-resources-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Copy Pods Resources";
outputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-CodePushDemoSwiftNewArch/Pods-CodePushDemoSwiftNewArch-resources-${CONFIGURATION}-output-files.xcfilelist",
+ "${PODS_ROOT}/Target Support Files/Pods-CodePushDemo/Pods-CodePushDemo-resources-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-CodePushDemoSwiftNewArch/Pods-CodePushDemoSwiftNewArch-resources.sh\"\n";
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-CodePushDemo/Pods-CodePushDemo-resources.sh\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
@@ -255,13 +255,13 @@
/* Begin XCBuildConfiguration section */
13B07F941A680F5B00A75B9A /* Debug */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = 3B4392A12AC88292D35C810B /* Pods-CodePushDemoSwiftNewArch.debug.xcconfig */;
+ baseConfigurationReference = 3B4392A12AC88292D35C810B /* Pods-CodePushDemo.debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = 1;
ENABLE_BITCODE = NO;
- INFOPLIST_FILE = CodePushDemoSwiftNewArch/Info.plist;
+ INFOPLIST_FILE = CodePushDemo/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 15.1;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
@@ -274,7 +274,7 @@
"-lc++",
);
PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
- PRODUCT_NAME = CodePushDemoSwiftNewArch;
+ PRODUCT_NAME = CodePushDemo;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
@@ -283,12 +283,12 @@
};
13B07F951A680F5B00A75B9A /* Release */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = 5709B34CF0A7D63546082F79 /* Pods-CodePushDemoSwiftNewArch.release.xcconfig */;
+ baseConfigurationReference = 5709B34CF0A7D63546082F79 /* Pods-CodePushDemo.release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = 1;
- INFOPLIST_FILE = CodePushDemoSwiftNewArch/Info.plist;
+ INFOPLIST_FILE = CodePushDemo/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 15.1;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
@@ -301,7 +301,7 @@
"-lc++",
);
PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
- PRODUCT_NAME = CodePushDemoSwiftNewArch;
+ PRODUCT_NAME = CodePushDemo;
SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
};
@@ -376,10 +376,6 @@
"-DFOLLY_CFG_NO_COROUTINES=1",
"-DFOLLY_HAVE_CLOCK_GETTIME=1",
);
- OTHER_LDFLAGS = (
- "$(inherited)",
- " ",
- );
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
SDKROOT = iphoneos;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG";
@@ -448,10 +444,6 @@
"-DFOLLY_CFG_NO_COROUTINES=1",
"-DFOLLY_HAVE_CLOCK_GETTIME=1",
);
- OTHER_LDFLAGS = (
- "$(inherited)",
- " ",
- );
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
SDKROOT = iphoneos;
USE_HERMES = true;
@@ -462,7 +454,7 @@
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
- 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "CodePushDemoSwiftNewArch" */ = {
+ 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "CodePushDemo" */ = {
isa = XCConfigurationList;
buildConfigurations = (
13B07F941A680F5B00A75B9A /* Debug */,
@@ -471,7 +463,7 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
- 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "CodePushDemoSwiftNewArch" */ = {
+ 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "CodePushDemo" */ = {
isa = XCConfigurationList;
buildConfigurations = (
83CBBA201A601CBA00E9B192 /* Debug */,
diff --git a/Examples/CodePushDemoApp/ios/CodePushDemoApp.xcodeproj/xcshareddata/xcschemes/CodePushDemoApp.xcscheme b/Examples/CodePushDemo/ios/CodePushDemo.xcodeproj/xcshareddata/xcschemes/CodePushDemo.xcscheme
similarity index 78%
rename from Examples/CodePushDemoApp/ios/CodePushDemoApp.xcodeproj/xcshareddata/xcschemes/CodePushDemoApp.xcscheme
rename to Examples/CodePushDemo/ios/CodePushDemo.xcodeproj/xcshareddata/xcschemes/CodePushDemo.xcscheme
index a77ee94e1..dcaf6ade0 100644
--- a/Examples/CodePushDemoApp/ios/CodePushDemoApp.xcodeproj/xcshareddata/xcschemes/CodePushDemoApp.xcscheme
+++ b/Examples/CodePushDemo/ios/CodePushDemo.xcodeproj/xcshareddata/xcschemes/CodePushDemo.xcscheme
@@ -15,9 +15,9 @@
+ BuildableName = "CodePushDemo.app"
+ BlueprintName = "CodePushDemo"
+ ReferencedContainer = "container:CodePushDemo.xcodeproj">
@@ -33,15 +33,15 @@
+ BuildableName = "CodePushDemoTests.xctest"
+ BlueprintName = "CodePushDemoTests"
+ ReferencedContainer = "container:CodePushDemo.xcodeproj">
+ BuildableName = "CodePushDemo.app"
+ BlueprintName = "CodePushDemo"
+ ReferencedContainer = "container:CodePushDemo.xcodeproj">
@@ -72,9 +72,9 @@
+ BuildableName = "CodePushDemo.app"
+ BlueprintName = "CodePushDemo"
+ ReferencedContainer = "container:CodePushDemo.xcodeproj">
diff --git a/Examples/CodePushDemoApp/ios/CodePushDemoApp.xcworkspace/contents.xcworkspacedata b/Examples/CodePushDemo/ios/CodePushDemo.xcworkspace/contents.xcworkspacedata
similarity index 77%
rename from Examples/CodePushDemoApp/ios/CodePushDemoApp.xcworkspace/contents.xcworkspacedata
rename to Examples/CodePushDemo/ios/CodePushDemo.xcworkspace/contents.xcworkspacedata
index 99bfe54cf..14a279e29 100644
--- a/Examples/CodePushDemoApp/ios/CodePushDemoApp.xcworkspace/contents.xcworkspacedata
+++ b/Examples/CodePushDemo/ios/CodePushDemo.xcworkspace/contents.xcworkspacedata
@@ -2,7 +2,7 @@
+ location = "group:CodePushDemo.xcodeproj">
diff --git a/Examples/CodePushDemo/ios/CodePushDemo/AppDelegate.swift b/Examples/CodePushDemo/ios/CodePushDemo/AppDelegate.swift
new file mode 100644
index 000000000..ccd7ba326
--- /dev/null
+++ b/Examples/CodePushDemo/ios/CodePushDemo/AppDelegate.swift
@@ -0,0 +1,49 @@
+import UIKit
+import React
+import React_RCTAppDelegate
+import ReactAppDependencyProvider
+import CodePush
+
+@main
+class AppDelegate: UIResponder, UIApplicationDelegate {
+ var window: UIWindow?
+
+ var reactNativeDelegate: ReactNativeDelegate?
+ var reactNativeFactory: RCTReactNativeFactory?
+
+ func application(
+ _ application: UIApplication,
+ didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil
+ ) -> Bool {
+ let delegate = ReactNativeDelegate()
+ let factory = RCTReactNativeFactory(delegate: delegate)
+ delegate.dependencyProvider = RCTAppDependencyProvider()
+
+ reactNativeDelegate = delegate
+ reactNativeFactory = factory
+
+ window = UIWindow(frame: UIScreen.main.bounds)
+
+ factory.startReactNative(
+ withModuleName: "CodePushDemo",
+ in: window,
+ launchOptions: launchOptions
+ )
+
+ return true
+ }
+}
+
+class ReactNativeDelegate: RCTDefaultReactNativeFactoryDelegate {
+ override func sourceURL(for bridge: RCTBridge) -> URL? {
+ self.bundleURL()
+ }
+
+ override func bundleURL() -> URL? {
+#if DEBUG
+ RCTBundleURLProvider.sharedSettings().jsBundleURL(forBundleRoot: "index")
+#else
+ CodePush.bundleURL()
+#endif
+ }
+}
diff --git a/Examples/CodePushDemoAppNewArch/ios/CodePushDemoAppNewArch/Images.xcassets/AppIcon.appiconset/Contents.json b/Examples/CodePushDemo/ios/CodePushDemo/Images.xcassets/AppIcon.appiconset/Contents.json
similarity index 100%
rename from Examples/CodePushDemoAppNewArch/ios/CodePushDemoAppNewArch/Images.xcassets/AppIcon.appiconset/Contents.json
rename to Examples/CodePushDemo/ios/CodePushDemo/Images.xcassets/AppIcon.appiconset/Contents.json
diff --git a/Examples/CodePushDemoApp/ios/CodePushDemoApp/Images.xcassets/Contents.json b/Examples/CodePushDemo/ios/CodePushDemo/Images.xcassets/Contents.json
similarity index 100%
rename from Examples/CodePushDemoApp/ios/CodePushDemoApp/Images.xcassets/Contents.json
rename to Examples/CodePushDemo/ios/CodePushDemo/Images.xcassets/Contents.json
diff --git a/Examples/CodePushDemoAppNewArch/ios/CodePushDemoAppNewArch/Info.plist b/Examples/CodePushDemo/ios/CodePushDemo/Info.plist
similarity index 91%
rename from Examples/CodePushDemoAppNewArch/ios/CodePushDemoAppNewArch/Info.plist
rename to Examples/CodePushDemo/ios/CodePushDemo/Info.plist
index cb6895fea..0a676036d 100644
--- a/Examples/CodePushDemoAppNewArch/ios/CodePushDemoAppNewArch/Info.plist
+++ b/Examples/CodePushDemo/ios/CodePushDemo/Info.plist
@@ -2,10 +2,12 @@
+ CADisableMinimumFrameDurationOnPhone
+
CFBundleDevelopmentRegion
en
CFBundleDisplayName
- CodePushDemoAppNewArch
+ CodePushDemo
CFBundleExecutable
$(EXECUTABLE_NAME)
CFBundleIdentifier
@@ -26,7 +28,6 @@
NSAppTransportSecurity
-
NSAllowsArbitraryLoads
NSAllowsLocalNetworking
@@ -34,6 +35,8 @@
NSLocationWhenInUseUsageDescription
+ RCTNewArchEnabled
+
UILaunchStoryboardName
LaunchScreen
UIRequiredDeviceCapabilities
diff --git a/Examples/CodePushDemoApp/ios/CodePushDemoApp/LaunchScreen.storyboard b/Examples/CodePushDemo/ios/CodePushDemo/LaunchScreen.storyboard
similarity index 95%
rename from Examples/CodePushDemoApp/ios/CodePushDemoApp/LaunchScreen.storyboard
rename to Examples/CodePushDemo/ios/CodePushDemo/LaunchScreen.storyboard
index eb6b120a5..c30b34cf9 100644
--- a/Examples/CodePushDemoApp/ios/CodePushDemoApp/LaunchScreen.storyboard
+++ b/Examples/CodePushDemo/ios/CodePushDemo/LaunchScreen.storyboard
@@ -16,7 +16,7 @@
- \n",
@@ -342,7 +336,7 @@ class RNProjectManager extends ProjectManager {
.then(TestUtil.getProcessOutput.bind(undefined, `npx expo prebuild --clean`, { cwd: path.join(projectDirectory, TestConfig.TestAppName) }))
.then(() => { return null; });
} else {
- return TestUtil.getProcessOutput("npx @react-native-community/cli init " + appName + " --version 0.81.5 --install-pods", { cwd: projectDirectory, timeout: 30 * 60 * 1000 })
+ return TestUtil.getProcessOutput("npx @react-native-community/cli init " + appName + " --version 0.82.1 --install-pods", { cwd: projectDirectory, timeout: 30 * 60 * 1000 })
.then((e) => { console.log(`"npx @react-native-community/cli init ${appName}" success. cwd=${projectDirectory}`); return e; })
.then(this.copyTemplate.bind(this, templatePath, projectDirectory))
.then(TestUtil.getProcessOutput.bind(undefined, TestConfig.thisPluginInstallString, { cwd: path.join(projectDirectory, TestConfig.TestAppName) }))