Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add fabric on iOS #400

Merged
merged 33 commits into from
Aug 2, 2022
Merged
Show file tree
Hide file tree
Changes from 28 commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
1ed4402
Update podspec file for fabric
okwasniewski Jul 19, 2022
51ca37e
Define codegen spec & move import to separate file
okwasniewski Jul 19, 2022
b86cf6c
Add codegenConfig in package.json
okwasniewski Jul 19, 2022
4f8671d
Update podspec to detect .mm files
okwasniewski Jul 20, 2022
00d9a79
Change spec types to floats
okwasniewski Jul 20, 2022
1c40598
Implement fabric component with props updating
okwasniewski Jul 20, 2022
c7a4e23
Re-order functions, add accessibilityIncrements prop
okwasniewski Jul 20, 2022
8dfb795
Clean up imports, remove comment
okwasniewski Jul 21, 2022
8946e51
Sort out props updating, remove unused functions
okwasniewski Jul 21, 2022
5e6f348
Add event handling
okwasniewski Jul 21, 2022
c93b119
Add tapToSeek implementation
okwasniewski Jul 21, 2022
1ae3f1d
Fix tapToSeek
okwasniewski Jul 21, 2022
3ab0013
Handle images using bridge
okwasniewski Jul 21, 2022
8195867
Add missing typedef
okwasniewski Jul 22, 2022
e647c95
Verify the build for new arch with GH Actions
BartoszKlonowski Jul 25, 2022
bc90c77
Save new-arch Pods under new-arch cache key
BartoszKlonowski Jul 26, 2022
e8b2a6c
Use Podfile.lock with old arch and regenerate for new one
BartoszKlonowski Jul 26, 2022
c5c2b80
Correct path for new arch Podfile.lock creation
BartoszKlonowski Jul 26, 2022
d258a90
Disable flipper in Podfile
okwasniewski Jul 26, 2022
dc0988a
Install pods with new arch flag
okwasniewski Jul 26, 2022
8574ae6
Fix tapToSeek on iOS
okwasniewski Jul 26, 2022
62e5e46
Allow value property to be controlled
okwasniewski Jul 26, 2022
9a35cb8
Generate project.pbxproj for new arch
okwasniewski Jul 28, 2022
ad2f640
Separate npm & pods step in CI
okwasniewski Jul 28, 2022
e6531fc
Change step names, fix cache keys
okwasniewski Jul 28, 2022
190454a
Remove pods cache
okwasniewski Jul 28, 2022
22aa190
Run npm install if cache was not found
okwasniewski Jul 28, 2022
e2d87ec
Run build using xcodebuild
okwasniewski Jul 28, 2022
9bfb6eb
Fix: Pods-related error after using Pods from cache (#407)
BartoszKlonowski Jul 28, 2022
4193daf
Remove explicit folly version, default to old arch
okwasniewski Jul 29, 2022
9af9061
Add clean scripts in example for codegen cleanup
okwasniewski Jul 29, 2022
1ae1cda
Change CI step names
okwasniewski Jul 29, 2022
629d526
Remove isFabricEnabled
okwasniewski Jul 29, 2022
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
66 changes: 54 additions & 12 deletions .github/workflows/ReactNativeSlider-CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ jobs:


build-android-app:
name: Verify the package and example app builds for Android platform
name: Verify example Android
BartoszKlonowski marked this conversation as resolved.
Show resolved Hide resolved
runs-on: ubuntu-latest
needs: [verify]

Expand All @@ -95,7 +95,7 @@ jobs:


build-iOS-app:
name: Verify the package and example app builds for iOS platform
name: Verify example iOS
BartoszKlonowski marked this conversation as resolved.
Show resolved Hide resolved
runs-on: macos-latest
needs: [verify]
steps:
Expand All @@ -109,29 +109,71 @@ jobs:
with:
path: |
example/node_modules
example/ios/Pods
key: ${{ hashFiles('./example/package-lock.json') }}-${{ hashFiles('./package/package-lock.json') }}-${{ hashFiles('./example/ios/Podfile.lock') }}
key: ${{ hashFiles('./example/package-lock.json') }}-${{ hashFiles('./package/package-lock.json') }}

- name: Install required dependencies on cache miss
- name: Install required dependencies on cache miss (npm)
if: steps.cache-npm.outputs.cache-hit != 'true'
run: |
npm install
cd example/ios && pod install --verbose
BartoszKlonowski marked this conversation as resolved.
Show resolved Hide resolved

- name: Install pods
run: pod install --verbose
working-directory: example/ios

- name: Use the current package sources in build
run: cd example && npm run refresh-package

- name: Opening Simulator app
uses: futureware-tech/simulator-action@v1
- name: Build iOS
run: |
device_name='iPhone 13'
device=$(xcrun simctl list devices "${device_name}" available | grep "${device_name} (")
BartoszKlonowski marked this conversation as resolved.
Show resolved Hide resolved
re='\(([-0-9A-Fa-f]+)\)'
[[ $device =~ $re ]] || exit 1
xcodebuild -workspace example.xcworkspace -scheme example -destination "platform=iOS Simulator,id=${BASH_REMATCH[1]}" CODE_SIGNING_ALLOWED=NO COMPILER_INDEX_STORE_ENABLE=NO build
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just wondering: Don't we have COMPILER_INDEX_STORE_ENABLED set to NO by default?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

working-directory: example/ios


build-iOS-new-arch-app:
name: Verify example iOS - Fabric
BartoszKlonowski marked this conversation as resolved.
Show resolved Hide resolved
runs-on: macos-latest
needs: [build-iOS-app]
steps:
- uses: actions/checkout@v3

- name: Cache node modules
id: cache-npm
uses: actions/cache@v3
env:
cache-name: cached-ios-deps
with:
model: 'iPhone 12 mini'
path: |
example/node_modules
key: ${{ hashFiles('./example/package-lock.json') }}-${{ hashFiles('./package/package-lock.json') }}

- name: Install required dependencies on cache miss (npm)
if: steps.cache-npm.outputs.cache-hit != 'true'
run: |
npm install

- name: Install pods
run: RCT_NEW_ARCH_ENABLED=1 pod install
working-directory: example/ios

- name: Use the current package sources in build
run: cd example && npm run refresh-package

- name: Builds the iOS app
run: cd example && npx react-native run-ios
- name: Build iOS - Fabric
run: |
device_name='iPhone 13'
device=$(xcrun simctl list devices "${device_name}" available | grep "${device_name} (")
re='\(([-0-9A-Fa-f]+)\)'
[[ $device =~ $re ]] || exit 1
xcodebuild -workspace example.xcworkspace -scheme example -destination "platform=iOS Simulator,id=${BASH_REMATCH[1]}" CODE_SIGNING_ALLOWED=NO COMPILER_INDEX_STORE_ENABLE=NO build
working-directory: example/ios


build-Windows-app:
name: Verify the package and example app builds for Windows platform
name: Verify example Windows
BartoszKlonowski marked this conversation as resolved.
Show resolved Hide resolved
runs-on: windows-latest
needs: [verify]
steps:
Expand Down
2 changes: 1 addition & 1 deletion example/ios/Podfile
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ target 'example' do
#
# Note that if you have use_frameworks! enabled, Flipper will not work and
# you should disable the next line.
use_flipper!()
# use_flipper!()

post_install do |installer|
react_native_post_install(installer)
Expand Down
Loading