Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions .github/workflows/scripts/boot-simulator.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,17 @@ pushd "$(dirname "$0")/../../../tests" || exit 1
SIM="$(cat .detoxrc.js | grep iPhone | cut -d"'" -f2)"
echo "Attempting to boot iOS Simulator $SIM..."

# Clear up any existing attempts in case we are re-trying
killall Simulator || true

# Boot the simulator if not booted, make sure it is in the foreground
(xcrun simctl boot "$SIM" || true) && open -a Simulator.app

# Is it booted?
xcrun simctl list |grep -i "$SIM ("|grep -v 'Phone:'|grep -v 'unavailable'|grep -v CoreSimulator|grep Booted

# Are we a Debug or Release build?
BUILDDIR="$(ls -1 ios/build/Build/Products/)"
BUILDDIR="$( find ios/build/Build/Products -type d |grep 'testing.app$' | head -1)"

# Install our app (glob so Release or Debug works)
xcrun simctl install "$SIM" "ios/build/Build/Products/$BUILDDIR/testing.app"
xcrun simctl install "$SIM" "$BUILDDIR"
11 changes: 8 additions & 3 deletions .github/workflows/tests_e2e_ios.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,10 +86,10 @@ jobs:
# it will run unit tests on whatever OS combinations are desired
ios:
name: iOS (${{ matrix.buildmode }}, ${{ matrix.iteration }})
runs-on: macos-26
runs-on: macos-15
needs: matrix_prep
# TODO matrix across APIs, at least 11 and 15 (lowest to highest)
timeout-minutes: 60
timeout-minutes: 70
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
CCACHE_SLOPPINESS: clang_index_store,file_stat_matches,include_file_ctime,include_file_mtime,ivfsoverlay,pch_defines,modules,system_headers,time_macros
Expand Down Expand Up @@ -287,7 +287,12 @@ jobs:
- name: Pre-Boot Simulator
# The goal here is to separate Simulator boot from Detox run,
# So that Simulator boot issues we seem to have may be handled separately
run: ./.github/workflows/scripts/boot-simulator.sh
uses: nick-fields/retry@v3
with:
timeout_minutes: 5
retry_wait_seconds: 60
max_attempts: 3
command: ./.github/workflows/scripts/boot-simulator.sh

- name: Detox Test
if: contains(matrix.buildmode, 'debug')
Expand Down
18 changes: 9 additions & 9 deletions packages/app/ios_config.sh
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@ _PLIST_ENTRY_TYPES=()
_PLIST_ENTRY_VALUES=()

function setPlistValue {
echo "info: setting plist entry '$1' of type '$2' in file '$4'"
${_PLIST_BUDDY} -c "Add :$1 $2 '$3'" $4 || echo "info: '$1' already exists"
echo "note: setting plist entry '$1' of type '$2' in file '$4'"
${_PLIST_BUDDY} -c "Add :$1 $2 '$3'" $4 || echo "note: '$1' already exists"
}

function getFirebaseJsonKeyValue () {
Expand All @@ -67,8 +67,8 @@ function jsonBoolToYesNo () {
fi
}

echo "info: -> RNFB build script started"
echo "info: 1) Locating ${_JSON_FILE_NAME} file:"
echo "note: -> RNFB build script started"
echo "note: 1) Locating ${_JSON_FILE_NAME} file:"

if [[ -z ${_CURRENT_SEARCH_DIR} ]]; then
_CURRENT_SEARCH_DIR=$(pwd)
Expand All @@ -77,10 +77,10 @@ fi;
while true; do
_CURRENT_SEARCH_DIR=$(dirname "$_CURRENT_SEARCH_DIR")
if [[ "$_CURRENT_SEARCH_DIR" == "/" ]] || [[ ${_CURRENT_LOOKUPS} -gt ${_MAX_LOOKUPS} ]]; then break; fi;
echo "info: ($_CURRENT_LOOKUPS of $_MAX_LOOKUPS) Searching in '$_CURRENT_SEARCH_DIR' for a ${_JSON_FILE_NAME} file."
echo "note: ($_CURRENT_LOOKUPS of $_MAX_LOOKUPS) Searching in '$_CURRENT_SEARCH_DIR' for a ${_JSON_FILE_NAME} file."
_SEARCH_RESULT=$(find "$_CURRENT_SEARCH_DIR" -maxdepth 2 -name ${_JSON_FILE_NAME} -print | /usr/bin/head -n 1)
if [[ ${_SEARCH_RESULT} ]]; then
echo "info: ${_JSON_FILE_NAME} found at $_SEARCH_RESULT"
echo "note: ${_JSON_FILE_NAME} found at $_SEARCH_RESULT"
break;
fi;
_CURRENT_LOOKUPS=$((_CURRENT_LOOKUPS+1))
Expand All @@ -94,7 +94,7 @@ if [[ ${_SEARCH_RESULT} ]]; then
fi

if [[ ${_RN_ROOT_EXISTS} ]]; then
if ! python3 --version >/dev/null 2>&1; then echo "python3 not found, firebase.json file processing error." && exit 1; fi
if ! python3 --version >/dev/null 2>&1; then echo "error: python3 not found, firebase.json file processing error." && exit 1; fi
_JSON_OUTPUT_BASE64=$(python3 -c 'import json,sys,base64;print(base64.b64encode(bytes(json.dumps(json.loads(open('"'${_SEARCH_RESULT}'"', '"'rb'"').read())['${_JSON_ROOT}']), '"'utf-8'"')).decode())' || echo "e30=")
fi

Expand Down Expand Up @@ -238,7 +238,7 @@ else
echo "warning: A firebase.json file was not found, whilst this file is optional it is recommended to include it to configure firebase services in React Native Firebase."
fi;

echo "info: 2) Injecting Info.plist entries: "
echo "note: 2) Injecting Info.plist entries: "

# Log out the keys we're adding
for i in "${!_PLIST_ENTRY_KEYS[@]}"; do
Expand Down Expand Up @@ -266,4 +266,4 @@ for plist in "${_TARGET_PLIST}" "${_DSYM_PLIST}" ; do
fi
done

echo "info: <- RNFB build script finished"
echo "note: <- RNFB build script finished"
2 changes: 1 addition & 1 deletion packages/remote-config/e2e/config.e2e.js
Original file line number Diff line number Diff line change
Expand Up @@ -932,7 +932,7 @@ describe('remoteConfig()', function () {
});

// deprecated API prior to official web support
describe('onConfigUpdated', function () {
describe('onConfigUpdated (deprecated)', function () {
describe('onConfigUpdated parameter verification', function () {
it('throws an error if no callback provided', async function () {
const { getRemoteConfig, onConfigUpdated } = remoteConfigModular;
Expand Down
2 changes: 1 addition & 1 deletion tests/.detoxrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ module.exports = {
simulator: {
type: 'ios.simulator',
device: {
type: 'iPhone 17',
type: 'iPhone 16',
},
},
attached: {
Expand Down
2 changes: 1 addition & 1 deletion tests/.jetrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ module.exports = {
config: {
slow: 3000,
reporter: 'spec',
timeout: 300000, // 5 minutes
timeout: 420000, // 7 minutes - fetchAndActivate takes 5+ sometimes
exitOnError: true,
coverage: true,
},
Expand Down
2 changes: 1 addition & 1 deletion tests/e2e/jest.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
module.exports = {
rootDir: '..',
testMatch: ['<rootDir>/e2e/**/*.test.js'],
testTimeout: 1500000,
testTimeout: 2000000,
maxWorkers: 1,
globalSetup: 'detox/runners/jest/globalSetup',
globalTeardown: 'detox/runners/jest/globalTeardown',
Expand Down
68 changes: 34 additions & 34 deletions tests/ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@ PODS:
- GTMSessionFetcher/Core (< 6.0, >= 3.4)
- fmt (11.0.2)
- glog (0.3.5)
- GoogleAdsOnDeviceConversion (3.1.0):
- GoogleAdsOnDeviceConversion (3.2.0):
- GoogleUtilities/Environment (~> 8.1)
- GoogleUtilities/Logger (~> 8.1)
- GoogleUtilities/Network (~> 8.1)
Expand Down Expand Up @@ -1804,69 +1804,69 @@ PODS:
- Yoga
- RNDeviceInfo (14.0.4):
- React-Core
- RNFBAnalytics (23.4.0):
- RNFBAnalytics (23.4.1):
- FirebaseAnalytics/Core (= 12.4.0)
- FirebaseAnalytics/IdentitySupport (= 12.4.0)
- GoogleAdsOnDeviceConversion
- React-Core
- RNFBApp
- RNFBApp (23.4.0):
- RNFBApp (23.4.1):
- Firebase/CoreOnly (= 12.4.0)
- React-Core
- RNFBAppCheck (23.4.0):
- RNFBAppCheck (23.4.1):
- Firebase/AppCheck (= 12.4.0)
- React-Core
- RNFBApp
- RNFBAppDistribution (23.4.0):
- RNFBAppDistribution (23.4.1):
- Firebase/AppDistribution (= 12.4.0)
- React-Core
- RNFBApp
- RNFBAuth (23.4.0):
- RNFBAuth (23.4.1):
- Firebase/Auth (= 12.4.0)
- React-Core
- RNFBApp
- RNFBCrashlytics (23.4.0):
- RNFBCrashlytics (23.4.1):
- Firebase/Crashlytics (= 12.4.0)
- FirebaseCoreExtension
- React-Core
- RNFBApp
- RNFBDatabase (23.4.0):
- RNFBDatabase (23.4.1):
- Firebase/Database (= 12.4.0)
- React-Core
- RNFBApp
- RNFBFirestore (23.4.0):
- RNFBFirestore (23.4.1):
- Firebase/Firestore (= 12.4.0)
- React-Core
- RNFBApp
- RNFBFunctions (23.4.0):
- RNFBFunctions (23.4.1):
- Firebase/Functions (= 12.4.0)
- React-Core
- RNFBApp
- RNFBInAppMessaging (23.4.0):
- RNFBInAppMessaging (23.4.1):
- Firebase/InAppMessaging (= 12.4.0)
- React-Core
- RNFBApp
- RNFBInstallations (23.4.0):
- RNFBInstallations (23.4.1):
- Firebase/Installations (= 12.4.0)
- React-Core
- RNFBApp
- RNFBMessaging (23.4.0):
- RNFBMessaging (23.4.1):
- Firebase/Messaging (= 12.4.0)
- FirebaseCoreExtension
- React-Core
- RNFBApp
- RNFBML (23.4.0):
- RNFBML (23.4.1):
- React-Core
- RNFBApp
- RNFBPerf (23.4.0):
- RNFBPerf (23.4.1):
- Firebase/Performance (= 12.4.0)
- React-Core
- RNFBApp
- RNFBRemoteConfig (23.4.0):
- RNFBRemoteConfig (23.4.1):
- Firebase/RemoteConfig (= 12.4.0)
- React-Core
- RNFBApp
- RNFBStorage (23.4.0):
- RNFBStorage (23.4.1):
- Firebase/Storage (= 12.4.0)
- React-Core
- RNFBApp
Expand Down Expand Up @@ -2225,7 +2225,7 @@ SPEC CHECKSUMS:
FirebaseStorage: 20d6b56fb8a40ebaa03d6a2889fe33dac64adb73
fmt: a40bb5bd0294ea969aaaba240a927bd33d878cdd
glog: eb93e2f488219332457c3c4eafd2738ddc7e80b8
GoogleAdsOnDeviceConversion: e03a386840803ea7eef3fd22a061930142c039c1
GoogleAdsOnDeviceConversion: d68c69dd9581a0f5da02617b6f377e5be483970f
GoogleAppMeasurement: 1e718274b7e015cefd846ac1fcf7820c70dc017d
GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7
GoogleUtilities: 00c88b9a86066ef77f0da2fab05f65d7768ed8e1
Expand Down Expand Up @@ -2296,22 +2296,22 @@ SPEC CHECKSUMS:
RecaptchaInterop: 11e0b637842dfb48308d242afc3f448062325aba
RNCAsyncStorage: 6a8127b6987dc9fbce778669b252b14c8355c7ce
RNDeviceInfo: d863506092aef7e7af3a1c350c913d867d795047
RNFBAnalytics: 4de6508e78db735a735e1a03b7ff76c9b4b7e14e
RNFBApp: e4d6ab06d6136a5cd46efe4ce134ca822c2f7c6e
RNFBAppCheck: 327b77abfe24dd5ffc0ff5bca7b79985a0f2517e
RNFBAppDistribution: e318fb60520f318b430da920593228db0f5eb225
RNFBAuth: dbe1879cfe71960b559a1d891f4b59a58cd8b2e7
RNFBCrashlytics: d9136c20efbf17859d07191fce91ecb99454ccab
RNFBDatabase: 27201b28a01910391d9e52c55e9667e84beebae9
RNFBFirestore: a79285113fff78d66e9bab1e13d4d833c82f7645
RNFBFunctions: d22ce68f6bd053379da7d20e06ebd75a56e0cd91
RNFBInAppMessaging: 501dbd288dab0ece9009a403f170a18b5a7ec78a
RNFBInstallations: e031eba1afe9fc0495d55acff5149f745a4c211f
RNFBMessaging: d52edffeb2038d52c700e3b85ee118b811aa5ef0
RNFBML: 021beab0705c85106691830fc2dd3cf4c26351f0
RNFBPerf: d3cc694a36481745c9ec5b798da7b1d8728724e1
RNFBRemoteConfig: b59fffdcbf682c2041b0684134731186b10aef02
RNFBStorage: e86a8ab5a343b52d1873e18c68d85199898dc4f1
RNFBAnalytics: 0a6250f12db06bcada597e48ff9689a4085bf91a
RNFBApp: d1f587866b6e188d95c5f541abedd8e4ce167bbe
RNFBAppCheck: f9c3a246a0f62e2d669bd9208256f82a2502c61c
RNFBAppDistribution: 0b1e013e3effa86f2d4c945ce68428283702fdb3
RNFBAuth: b27ebeb2e99adaa2538b0660619381d0a3d3e72c
RNFBCrashlytics: cf29393ef5564bd3867faada89c1ea7b2d8401be
RNFBDatabase: a9468900d7e6d7d4bd4336b1a7d01a5adcec2093
RNFBFirestore: ecb7eb55606d2bf4be530f52a5fa280613919277
RNFBFunctions: 147fbfeedb4e689882da746f083d8721eb578fbd
RNFBInAppMessaging: 527cbb9c4d654efd21f145fcdb7a04e199faa20f
RNFBInstallations: 985180358e780506691e51353bbae9b29dd718cc
RNFBMessaging: 81842deb236bfd87d8e49f22ce7acf05d1eea04b
RNFBML: 92e5c2a7a29fd7e3f205aad6510ebfd76c99b3fe
RNFBPerf: 7eb417f202a3919af166f9f991010d3198635c92
RNFBRemoteConfig: 194adf6181b3044c03f7460113b22b48253f88a3
RNFBStorage: 9761059ade61d5162076bacc728152d79b0d050c
SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748
Yoga: 6eb60fc2c0eef63e7d2ef4a56e0a3353534143a2

Expand Down
Loading
Loading