Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
49254db
initial support for expo config plugins
thymikee Feb 16, 2025
247ae83
move around
thymikee Feb 16, 2025
1be8ae9
use platforms
thymikee Feb 16, 2025
0c14600
wip
thymikee Jul 21, 2025
ad81acd
add internal expo plugins
thymikee Jul 21, 2025
92893c6
feat: add test-app
thiagobrez Aug 12, 2025
da07f46
chore: add AppConfigPlugins test app
thiagobrez Aug 15, 2025
c9e44f5
feat: add expo-config-plugins-test-app and remove other apps
thiagobrez Aug 17, 2025
8dc3c59
test: add base test structure for Expo Config Plugins
thiagobrez Aug 17, 2025
8dbe4be
chore: remove console log
thiagobrez Aug 17, 2025
cf3ca77
chore: add apps to pnpm workspace settings
thiagobrez Aug 19, 2025
b85292f
test: fix race conditions
thiagobrez Aug 21, 2025
30a873f
test: get iosModFileProviders more reliably
thiagobrez Aug 22, 2025
3138790
test: add test for withProductName
thiagobrez Aug 22, 2025
3b05ada
test: add test for withOrientation
thiagobrez Aug 22, 2025
cd48ad8
test: add plist parser
thiagobrez Aug 23, 2025
0ce3b64
test: add test for withOrientation
thiagobrez Aug 23, 2025
40fa139
test: add test for withScheme
thiagobrez Aug 23, 2025
1fceb8c
test: add test for withUsesNonExemptEncryption
thiagobrez Aug 23, 2025
a0042f1
test: add test for withBuildNumber
thiagobrez Aug 24, 2025
6e38341
test: add test for withVersion
thiagobrez Aug 24, 2025
7a024ed
test: add test for withGoogleServicesFile
thiagobrez Aug 24, 2025
c01fc9e
test: add test for withJsEnginePodfileProps
thiagobrez Aug 25, 2025
691b533
chore: rebase and rename packages to Rock
thiagobrez Aug 25, 2025
84c3a68
chore: remove unneded vite.config.ts
thiagobrez Aug 25, 2025
4705312
test: add remaining tests for default iOS plugins
thiagobrez Aug 25, 2025
de12f36
chore: update lockfile
thiagobrez Aug 25, 2025
cbab8eb
test: rename tests
thiagobrez Aug 25, 2025
a37e47c
test: use path.join for paths
thiagobrez Aug 25, 2025
846b5ee
test: add default Android plugin tests
thiagobrez Aug 31, 2025
5cda90f
test: add missing Android internal plugins but skipped
thiagobrez Sep 5, 2025
2ea5e86
feat: read configs from Podfile.properties.json
thiagobrez Sep 5, 2025
cac1754
test: fix eslint errors
thiagobrez Sep 6, 2025
bfa3ff0
test: add test for third-party plugins
thiagobrez Sep 6, 2025
dbf8e48
chore: read ios bundle identifier and android package name
thiagobrez Sep 6, 2025
39777a3
feat: add regeneration of native folders
thiagobrez Sep 8, 2025
15cad53
feat: add git check to regen
thiagobrez Sep 10, 2025
7fcf3cf
chore: fix conflicts
thiagobrez Sep 14, 2025
c626cf6
chore: update lockfile
thiagobrez Sep 14, 2025
0796b6b
docs: simplify expo config plugins readme
thiagobrez Sep 16, 2025
3e69cf5
chore: import everything from the ExpoConfigPlugins wrapper
thiagobrez Sep 16, 2025
eaa395e
chore: fix file path providers TS errors
thiagobrez Sep 18, 2025
e4d5a97
chore: fix base mods paths
thiagobrez Sep 23, 2025
0f384f4
chore: small fixes
thiagobrez Sep 28, 2025
3bf1fba
chore: fix conflicts
thiagobrez Sep 28, 2025
860dfd5
test: fix test ts errors
thiagobrez Sep 28, 2025
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
2 changes: 2 additions & 0 deletions apps/expo-config-plugins-test-app/.bundle/config
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
BUNDLE_PATH: "vendor/bundle"
BUNDLE_FORCE_RUBY_PLATFORM: 1
4 changes: 4 additions & 0 deletions apps/expo-config-plugins-test-app/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
module.exports = {

Check failure on line 1 in apps/expo-config-plugins-test-app/.eslintrc.js

View workflow job for this annotation

GitHub Actions / Validate

'module' is not defined
root: true,
extends: '@react-native',
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: Remote Build Android

on:
push:
branches:
- main
pull_request:
branches:
- main

concurrency:
group: remote-build-android-${{ github.ref }}
cancel-in-progress: true

jobs:
build-release:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

- name: Setup Node
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: '20'
cache: 'npm'

- name: Install dependencies
run: npm install

- name: RNEF Remote Build - Android device
uses: callstackincubator/android@v2
with:
sign: true
variant: release
github-token: ${{ secrets.GITHUB_TOKEN }}
keystore-base64: ${{ secrets.KEYSTORE_BASE64 }}
keystore-store-file: ${{ secrets.RNEF_UPLOAD_STORE_FILE }}
keystore-store-password: ${{ secrets.RNEF_UPLOAD_STORE_PASSWORD }}
keystore-key-alias: ${{ secrets.RNEF_UPLOAD_KEY_ALIAS }}
keystore-key-password: ${{ secrets.RNEF_UPLOAD_KEY_PASSWORD }}

build-debug:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

- name: Setup Node
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: '20'
cache: 'npm'

- name: Install dependencies
run: npm install

- name: RNEF Remote Build - Android
uses: callstackincubator/android@v2
with:
variant: debug
github-token: ${{ secrets.GITHUB_TOKEN }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
name: Remote Build iOS

on:
push:
branches:
- main
pull_request:
branches:
- '**'

concurrency:
group: remote-build-ios-${{ github.ref }}
cancel-in-progress: true

jobs:
build-device:
runs-on: macos-latest

steps:
- name: Checkout repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

- name: Setup Node
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: '20'
cache: 'npm'

- name: Install dependencies
run: npm install

- name: RNEF Remote Build - iOS device
uses: callstackincubator/ios@v2
with:
destination: device
github-token: ${{ secrets.GITHUB_TOKEN }}
scheme: SCHEME_FOR_DEVICES # replace with preferred scheme
configuration: Release # replace with preferred configuration
certificate-base64: ${{ secrets.APPLE_BUILD_CERTIFICATE_BASE64 }}
certificate-password: ${{ secrets.APPLE_BUILD_CERTIFICATE_PASSWORD }}
provisioning-profile-base64: ${{ secrets.APPLE_BUILD_PROVISIONING_PROFILE_BASE64 }}
provisioning-profile-name: 'PROVISIONING_PROFILE_NAME' # replace with actual profile name
keychain-password: ${{ secrets.APPLE_KEYCHAIN_PASSWORD }}

build-simulator:
runs-on: macos-latest

steps:
- name: Checkout repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

- name: Setup Node
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: '20'
cache: 'npm'

- name: Install dependencies
run: npm install

- name: RNEF Remote Build - iOS simulator
uses: callstackincubator/ios@v2
with:
destination: simulator
github-token: ${{ secrets.GITHUB_TOKEN }}
scheme: SCHEME_FOR_SIMULATORS # replace with preferred scheme
configuration: Debug # replace with preferred configuration
78 changes: 78 additions & 0 deletions apps/expo-config-plugins-test-app/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
# OSX
#
.DS_Store

# Xcode
#
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcuserstate
**/.xcode.env.local

# Android/IntelliJ
#
build/
.idea
.gradle
local.properties
*.iml
*.hprof
.cxx/
*.keystore
!debug.keystore
.kotlin/

# node.js
#
node_modules/
npm-debug.log
yarn-error.log

# fastlane
#
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
# screenshots whenever they are needed.
# For more information about the recommended setup visit:
# https://docs.fastlane.tools/best-practices/source-control/

**/fastlane/report.xml
**/fastlane/Preview.html
**/fastlane/screenshots
**/fastlane/test_output

# Bundle artifact
*.jsbundle

# Ruby / CocoaPods
**/Pods/
/vendor/bundle/

# Temporary files created by Metro to check the health of the file watcher
.metro-health-check*

# testing
/coverage

# Yarn
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions

# RNEF
.rnef/
5 changes: 5 additions & 0 deletions apps/expo-config-plugins-test-app/.prettierrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
module.exports = {

Check failure on line 1 in apps/expo-config-plugins-test-app/.prettierrc.js

View workflow job for this annotation

GitHub Actions / Validate

'module' is not defined
arrowParens: 'avoid',
singleQuote: true,
trailingComma: 'all',
};
5 changes: 5 additions & 0 deletions apps/expo-config-plugins-test-app/App.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import WelcomeScreen from '@rnef/welcome-screen';

export default function App() {
return <WelcomeScreen />;
}
16 changes: 16 additions & 0 deletions apps/expo-config-plugins-test-app/Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
source 'https://rubygems.org'

# You may use http://rbenv.org/ or https://rvm.io/ to install and use this version
ruby ">= 2.6.10"

# Exclude problematic versions of cocoapods and activesupport that causes build failures.
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'
30 changes: 30 additions & 0 deletions apps/expo-config-plugins-test-app/GoogleService-Info.plist
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>API_KEY</key>
<string>test_api_key</string>
<key>TRACKING_ID</key>
<string>test_tracking_id</string>
<key>CLIENT_ID</key>
<string>test_client_id</string>
<key>REVERSED_CLIENT_ID</key>
<string>test_reversed_client_id</string>
<key>ANDROID_CLIENT_ID</key>
<string>test_android_client_id</string>
<key>GOOGLE_APP_ID</key>
<string>1:123:ios:123abc</string>
<key>GCM_SENDER_ID</key>
<string>test_gcm_sender_id</string>
<key>PLIST_VERSION</key>
<string>1</string>
<key>BUNDLE_ID</key>
<string>dev.rockjs.expo-config-plugins-test-app</string>
<key>PROJECT_ID</key>
<string>expo-config-plugins-test-app</string>
<key>DATABASE_URL</key>
<string>https://expo-config-plugins-test-app.firebaseio.com</string>
<key>STORAGE_BUCKET</key>
<string>expo-config-plugins-test-app.storage.firebase.com</string>
</dict>
</plist>
Empty file.
19 changes: 19 additions & 0 deletions apps/expo-config-plugins-test-app/__tests__/App.test.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/**
* @format
*/

import 'react-native';

Check failure on line 5 in apps/expo-config-plugins-test-app/__tests__/App.test.tsx

View workflow job for this annotation

GitHub Actions / Validate

Run autofix to sort these imports!
import React from 'react';
import App from '../App';

// Note: import explicitly to use the types shipped with jest.
import { it } from '@jest/globals';

// Note: test renderer must be required after react-native.
import ReactTestRenderer from 'react-test-renderer';

it('renders correctly', async () => {
await ReactTestRenderer.act(() => {
ReactTestRenderer.create(<App />);
});
});
Loading
Loading