Skip to content

Commit

Permalink
Merge branch 'main' into @evanbacon/cli/fix-fast-resolver
Browse files Browse the repository at this point in the history
  • Loading branch information
EvanBacon committed Mar 15, 2024
2 parents 32b2972 + 9a623ef commit 8b9a938
Show file tree
Hide file tree
Showing 201 changed files with 1,424 additions and 627 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/client-android-eas.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ on:
- apps/eas-expo-go/**
- apps/expo-go/android/**
schedule:
- cron: '20 5 * * 1,3,5' # 5:20 AM UTC time on every Monday, Wednesday and Friday
- cron: '20 5 * * *' # 5:20 AM UTC time every day

concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/client-ios-eas.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ on:
- fastlane/**
- Gemfile.lock
schedule:
- cron: '20 5 * * 1,3,5' # 5:20 AM UTC time on every Monday, Wednesday and Friday
- cron: '20 5 * * *' # 5:20 AM UTC time every day

concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
Expand Down
11 changes: 6 additions & 5 deletions .github/workflows/test-suite-nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -79,14 +79,15 @@ jobs:

ios-test:
needs: ios-build
runs-on: macos-14
runs-on: macos-12
# runs-on: macos-14
steps:
- name: 👀 Checkout
uses: actions/checkout@v4
with:
submodules: true
- name: 🔨 Switch to Xcode 15.2
run: sudo xcode-select --switch /Applications/Xcode_15.2.app
# - name: 🔨 Switch to Xcode 15.2
# run: sudo xcode-select --switch /Applications/Xcode_15.2.app
- name: ➕ Add `bin` to GITHUB_PATH
run: echo "$(pwd)/bin" >> $GITHUB_PATH
- name: 🌠 Download builds
Expand All @@ -100,8 +101,8 @@ jobs:
brew tap facebook/fb
brew install facebook/fb/idb-companion
echo "${HOME}/.maestro/bin" >> $GITHUB_PATH
env:
MAESTRO_VERSION: '1.33.1'
# env:
# MAESTRO_VERSION: '1.33.1'
- name: ♻️ Restore caches
uses: ./.github/actions/expo-caches
id: expo-caches
Expand Down
11 changes: 6 additions & 5 deletions .github/workflows/test-suite.yml
Original file line number Diff line number Diff line change
Expand Up @@ -94,14 +94,15 @@ jobs:

ios-test:
needs: ios-build
runs-on: macos-14
runs-on: macos-12
# runs-on: macos-14
steps:
- name: 👀 Checkout
uses: actions/checkout@v4
with:
submodules: true
- name: 🔨 Switch to Xcode 15.2
run: sudo xcode-select --switch /Applications/Xcode_15.2.app
# - name: 🔨 Switch to Xcode 15.2
# run: sudo xcode-select --switch /Applications/Xcode_15.2.app
- name: ➕ Add `bin` to GITHUB_PATH
run: echo "$(pwd)/bin" >> $GITHUB_PATH
- name: 🌠 Download builds
Expand All @@ -115,8 +116,8 @@ jobs:
brew tap facebook/fb
brew install facebook/fb/idb-companion
echo "${HOME}/.maestro/bin" >> $GITHUB_PATH
env:
MAESTRO_VERSION: '1.33.1'
# env:
# MAESTRO_VERSION: '1.33.1'
- name: ♻️ Restore caches
uses: ./.github/actions/expo-caches
id: expo-caches
Expand Down
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,6 @@ templates/**/android/app/build
templates/**/Pods/**
templates/**/Podfile.lock
templates/**/yarn.lock
templates/**/*.tgz

# Codemod
.codemod.bookmark
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,20 @@ package dev.expo.payments

import android.app.Application
import android.content.res.Configuration
import androidx.annotation.NonNull

import com.facebook.react.PackageList
import com.facebook.react.ReactApplication
import com.facebook.react.ReactNativeHost
import com.facebook.react.ReactPackage
import com.facebook.react.ReactHost
import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load
import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost
import com.facebook.react.defaults.DefaultReactNativeHost
import com.facebook.soloader.SoLoader

import expo.modules.ApplicationLifecycleDispatcher
import expo.modules.ReactNativeHostWrapper
import expo.modules.devlauncher.DevLauncherPackageDelegate
import expo.modules.devmenu.DevMenuPackageDelegate
import expo.modules.ReactNativeHostWrapper

class MainApplication : Application(), ReactApplication {

Expand All @@ -40,7 +38,7 @@ class MainApplication : Application(), ReactApplication {
)

override val reactHost: ReactHost
get() = getDefaultReactHost(applicationContext, reactNativeHost)
get() = ReactNativeHostWrapper.createReactHost(applicationContext, reactNativeHost)

override fun onCreate() {
super.onCreate()
Expand Down
6 changes: 4 additions & 2 deletions apps/bare-expo/scripts/start-ios-e2e-test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,10 @@ import spawnAsync from '@expo/spawn-async';
import fs from 'fs/promises';
import path from 'path';

const TARGET_DEVICE = 'iPhone 15';
const TARGET_DEVICE_IOS_VERSION = 17;
const TARGET_DEVICE = 'iPhone 14';
const TARGET_DEVICE_IOS_VERSION = 16;
// const TARGET_DEVICE = 'iPhone 15';
// const TARGET_DEVICE_IOS_VERSION = 17;
const MAESTRO_GENERATED_FLOW = 'e2e/maestro-generated.yaml';
const OUTPUT_APP_PATH = 'ios/build/BareExpo.app';
const MAESTRO_DRIVER_STARTUP_TIMEOUT = '120000'; // Wait 2 minutes for Maestro driver to start
Expand Down
4 changes: 0 additions & 4 deletions apps/expo-go/src/screens/HomeScreen/HomeScreenView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@ import { HomeStackRoutes } from '../../navigation/Navigation.types';
import HistoryActions from '../../redux/HistoryActions';
import { DevSession, HistoryList } from '../../types';
import addListenerWithNativeCallback from '../../utils/addListenerWithNativeCallback';
import getSnackId from '../../utils/getSnackId';

const PROJECT_UPDATE_INTERVAL = 10000;

Expand Down Expand Up @@ -247,9 +246,6 @@ export class HomeScreenView extends React.Component<Props, State> {
const [projects, graphQLResponse] = await Promise.all([
api.sendAuthenticatedApiV2Request<DevSession[]>('development-sessions', {
method: 'GET',
searchParams: {
deviceId: getSnackId(),
},
}),
accountName
? ApolloClient.query<HomeScreenDataQuery, HomeScreenDataQueryVariables>({
Expand Down
10 changes: 0 additions & 10 deletions apps/expo-go/src/screens/SettingsScreen/ConstantsSection.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,8 @@ import { Clipboard, Alert } from 'react-native';
import { ConstantItem } from '../../components/ConstantItem';
import { SectionHeader } from '../../components/SectionHeader';
import Environment from '../../utils/Environment';
import getSnackId from '../../utils/getSnackId';

export function ConstantsSection() {
const copySnackIdToClipboard = () => {
Clipboard.setString(getSnackId());

// Should have some integrated alert banner
Alert.alert('Clipboard', 'The device ID has been copied to your clipboard');
};

const copyClientVersionToClipboard = () => {
if (Constants.expoVersion) {
Clipboard.setString(Constants.expoVersion);
Expand All @@ -30,8 +22,6 @@ export function ConstantsSection() {
<View>
<SectionHeader header="App Info" />
<View bg="default" border="default" overflow="hidden" rounded="large">
<ConstantItem title="Device ID" value={getSnackId()} onPress={copySnackIdToClipboard} />
<Divider style={{ height: 1 }} />
{Constants.expoVersion ? (
<>
<ConstantItem
Expand Down
12 changes: 0 additions & 12 deletions apps/expo-go/src/utils/getSnackId.ts

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
</queries>
<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">
<meta-data android:name="expo.modules.updates.ENABLED" android:value="true"/>
<meta-data android:name="expo.modules.updates.EXPO_SDK_VERSION" android:value="49.0.0"/>
<meta-data android:name="expo.modules.updates.EXPO_RUNTIME_VERSION" android:value="1.0.0"/>
<meta-data android:name="expo.modules.updates.EXPO_UPDATES_CHECK_ON_LAUNCH" android:value="ALWAYS"/>
<meta-data android:name="expo.modules.updates.EXPO_UPDATES_LAUNCH_WAIT_MS" android:value="0"/>
<meta-data android:name="expo.modules.updates.EXPO_UPDATE_URL" android:value="https://exp.host/@community/fabric-tester"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,13 @@ package com.community.fabrictester

import android.app.Application
import android.content.res.Configuration
import androidx.annotation.NonNull

import com.facebook.react.PackageList
import com.facebook.react.ReactApplication
import com.facebook.react.ReactNativeHost
import com.facebook.react.ReactPackage
import com.facebook.react.ReactHost
import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load
import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost
import com.facebook.react.defaults.DefaultReactNativeHost
import com.facebook.soloader.SoLoader

Expand Down Expand Up @@ -38,7 +36,7 @@ class MainApplication : Application(), ReactApplication {
)

override val reactHost: ReactHost
get() = getDefaultReactHost(applicationContext, reactNativeHost)
get() = ReactNativeHostWrapper.createReactHost(applicationContext, reactNativeHost)

override fun onCreate() {
super.onCreate()
Expand Down
4 changes: 2 additions & 2 deletions apps/fabric-tester/ios/fabrictester/Supporting/Expo.plist
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
<true/>
<key>EXUpdatesLaunchWaitMs</key>
<integer>0</integer>
<key>EXUpdatesSDKVersion</key>
<string>49.0.0</string>
<key>EXUpdatesRuntimeVersion</key>
<string>1.0.0</string>
<key>EXUpdatesURL</key>
<string>https://exp.host/@community/fabric-tester</string>
</dict>
Expand Down
14 changes: 3 additions & 11 deletions docs/pages/eas-update/codepush.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -59,14 +59,6 @@ If the command fails, refer to the ["Installing Expo modules" guide](/bare/insta
</Step>

<Step label="4">
## Turn off resource bundle signing (Xcode 14+ only)

In Xcode 14 and higher, resource bundles are signed by default, which requires setting the development team for each resource bundle target.
To resolve this issue, downgrade to an older Xcode version using the `image` field in **eas.json**, or turn off signing resource bundles in your Podfile. See the ["disable bundle resource signing" example](https://expo.fyi/r/disable-bundle-resource-signing).

</Step>

<Step label="5">
## Install the latest EAS CLI

EAS CLI is the command-line app that you will use to interact with EAS services from your terminal. To install it, run the command:
Expand All @@ -79,7 +71,7 @@ You can also use the above command to check if a new version of EAS CLI is avail
</Step>

<Step label="6">
<Step label="5">
## Log in to your Expo account

If you are already signed in to an Expo account using Expo CLI, you can skip the steps described in this section. If you are not, run the following command to log in:
Expand All @@ -90,7 +82,7 @@ You can check whether you are logged in by running `eas whoami`.

</Step>

<Step label="7">
<Step label="6">
## Configure project, deploy builds and publish updates

We have finished all the steps tailored for a CodePush-enabled bare React Native project. To proceed with the configuration of your project, please begin with Step 4 in [the main guide](/eas-update/getting-started/#create-a-build-for-the-project) and follow it through to completion.
Expand All @@ -99,7 +91,7 @@ We have finished all the steps tailored for a CodePush-enabled bare React Native
</Step>

<Step label="8">
<Step label="7">
## Verifying the migration and resubmitting your app

After completing the migration and setting up your project with EAS Update, you should test your app to ensure that over-the-air updates are working correctly. To do this:
Expand Down
61 changes: 58 additions & 3 deletions docs/pages/push-notifications/fcm-credentials.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -79,11 +79,38 @@ Here are the steps to configure a new Google Service Account Key in EAS for send
</Step>

<Step label="5">
Configure the **google-services.json** file in your project. Download it from the Firebase Console and place it at the root of your project directory. If you're using version control, add it to your ignore file (for example, **.gitignore**) as it contains sensitive data.

**Note**: You can skip this step if **google-services.json** has already been set up.

<ImageSpotlight
alt="Download google-services.json from Firebase Cloud Console"
src="/static/images/creating-google-service-account/fcm-v1/new-service-account/05-setup-google-services-json.png"
style={{ maxWidth: 800 }}
/>

Then, in **app.json**, add [`expo.android.googleServicesFile`](/versions/latest/config/app/#googleservicesfile) with its value as the path of the **google-services.json**.

```json app.json
{
"expo": {
/* @hide ...*/ /* @end */
"android": {
/* @hide ...*/ /* @end */
"googleServicesFile": "./path/to/google-services.json"
},
}
}
```

</Step>

<Step label="6">
You're all set! You can now send notifications to Android devices via Expo Push Notifications using the FCM V1 protocol.

<ImageSpotlight
alt="Service account key successfully uploaded"
src="/static/images/creating-google-service-account/fcm-v1/new-service-account/05-upload-credential-complete.png"
src="/static/images/creating-google-service-account/fcm-v1/new-service-account/06-upload-credential-complete.png"
style={{ maxWidth: 800 }}
/>
</Step>
Expand Down Expand Up @@ -157,11 +184,39 @@ Here are the steps to configure a new Google Service Account Key in EAS for send
</Step>

<Step label="4">
Configure the **google-services.json** file in your project. Download it from the Firebase Console and place it at the root of your project directory. If you're using version control, add it to your ignore file (for example, **.gitignore**) as it contains sensitive data.

**Note**: You can skip this step if **google-services.json** has already been set up.

<ImageSpotlight
alt="Download google-services.json from Firebase Cloud Console"
src="/static/images/creating-google-service-account/fcm-v1/existing-service-account/04-setup-google-services-json.png"
style={{ maxWidth: 800 }}
/>

Then, in **app.json**, add [`expo.android.googleServicesFile`](/versions/latest/config/app/#googleservicesfile) with its value as the path of the **google-services.json**.

```json app.json
{
"expo": {
/* @hide ...*/ /* @end */
"android": {
/* @hide ...*/ /* @end */
"googleServicesFile": "./path/to/google-services.json"
},
}
}
```


</Step>

<Step label="5">
You're all set! You can now send notifications to Android devices via Expo Push Notifications using the FCM V1 protocol.

<ImageSpotlight
alt="Service account key successfully uploaded"
src="/static/images/creating-google-service-account/fcm-v1/existing-service-account/04-upload-credential-complete.png"
src="/static/images/creating-google-service-account/fcm-v1/existing-service-account/05-upload-credential-complete.png"
style={{ maxWidth: 800 }}
/>
</Step>
</Step>
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 3 additions & 3 deletions docs/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -4480,9 +4480,9 @@ flatted@^3.1.0:
integrity sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==

follow-redirects@^1.0.0, follow-redirects@^1.15.0:
version "1.15.4"
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.4.tgz#cdc7d308bf6493126b17ea2191ea0ccf3e535adf"
integrity sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==
version "1.15.6"
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b"
integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==

for-each@^0.3.3:
version "0.3.3"
Expand Down
3 changes: 3 additions & 0 deletions packages/@expo/fingerprint/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,16 @@

- Add silent option. ([#27325](https://github.com/expo/expo/pull/27325) by [@wschurman](https://github.com/wschurman))
- Add debug option to enable verbose debug output. ([#27457](https://github.com/expo/expo/pull/27457) by [@wschurman](https://github.com/wschurman))
- Added sourcer for `patch-project` patches support. ([#27653](https://github.com/expo/expo/pull/27653) by [@kudo](https://github.com/kudo))
- [CLI] Enable debug info when `process.env.DEBUG` is defined. ([#27662](https://github.com/expo/expo/pull/27662) by [@kudo](https://github.com/kudo))

### 🐛 Bug fixes

- Fix fingerprint of ios (xcode projects). ([#26901](https://github.com/expo/expo/pull/26901) by [@wschurman](https://github.com/wschurman))
- Fix inconsistent hashes for autolinking. ([#27390](https://github.com/expo/expo/pull/27390) by [@wschurman](https://github.com/wschurman))
- Fixed expo-modules-autolinking sourcer missing some packages on iOS. ([#27442](https://github.com/expo/expo/pull/27442) by [@kudo](https://github.com/kudo))
- Add more default android ignores that differ per machine. ([#27577](https://github.com/expo/expo/pull/27577) by [@wschurman](https://github.com/wschurman))
- Added `react-native` package.json to fingerprint. **This will typically introduce fingerprint result breaking changes**. ([#27657](https://github.com/expo/expo/pull/27657) by [@kudo](https://github.com/kudo))

### 💡 Others

Expand Down

0 comments on commit 8b9a938

Please sign in to comment.