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 all 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
100 changes: 84 additions & 16 deletions .github/workflows/ReactNativeSlider-CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ jobs:


verify:
name: Verify the Example app sources
name: Verify example app sources
runs-on: ubuntu-latest

steps:
Expand All @@ -75,7 +75,7 @@ jobs:


build-android-app:
name: Verify the package and example app builds for Android platform
name: Build example app Android
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: Build example app iOS
runs-on: macos-latest
needs: [verify]
steps:
Expand All @@ -105,33 +105,101 @@ jobs:
id: cache-npm
uses: actions/cache@v3
env:
cache-name: cached-ios-deps
cache-name: cached-ios-npm-deps
with:
path: |
example/node_modules
example/ios/Pods
key: ${{ hashFiles('./example/package-lock.json') }}-${{ hashFiles('./package/package-lock.json') }}-${{ hashFiles('./example/ios/Podfile.lock') }}
path: example/node_modules
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: Cache Pods
id: cache-pods
uses: actions/cache@v3
env:
cache-name: cached-ios-pods-deps
with:
path: example/ios/Pods
key: ${{ hashFiles('./example/ios/Podfile.lock') }}

- name: Install required dependencies on cache miss (Pods)
if: steps.cache-pods.outputs.cache-hit != 'true'
run: |
cd example/ios && pod install

- name: Reinstall Pods only if using cached ones
if: steps.cache-pods.outputs.cache-hit == 'true'
run: cd example/ios && pod install

- 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: Build example app iOS (Fabric)
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-npm-deps
with:
path: example/node_modules
key: new-arch-${{ 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: Cache Pods
id: cache-pods
uses: actions/cache@v3
env:
cache-name: cached-ios-pods-deps
with:
model: 'iPhone 12 mini'
path: example/ios/Pods
key: new-arch-${{ hashFiles('./example/ios/Podfile.lock') }}

- name: Install required dependencies on cache miss (Pods)
if: steps.cache-pods.outputs.cache-hit != 'true'
run: |
cd example/ios && RCT_NEW_ARCH_ENABLED=1 pod install

- name: Reinstall Pods only if using cached ones
if: steps.cache-pods.outputs.cache-hit == 'true'
run: cd example/ios && RCT_NEW_ARCH_ENABLED=1 pod install

- name: Builds the iOS app
run: cd example && npx react-native run-ios
- name: Use the current package sources in build
run: cd example && npm run refresh-package

- 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: Build example app Windows
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
121 changes: 2 additions & 119 deletions example/ios/Podfile.lock
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
PODS:
- boost (1.76.0)
- CocoaAsyncSocket (7.6.5)
- DoubleConversion (1.1.6)
- FBLazyVector (0.69.1)
- FBReactNativeSpec (0.69.1):
Expand All @@ -10,71 +9,8 @@ PODS:
- React-Core (= 0.69.1)
- React-jsi (= 0.69.1)
- ReactCommon/turbomodule/core (= 0.69.1)
- Flipper (0.125.0):
- Flipper-Folly (~> 2.6)
- Flipper-RSocket (~> 1.4)
- Flipper-Boost-iOSX (1.76.0.1.11)
- Flipper-DoubleConversion (3.2.0.1)
- Flipper-Fmt (7.1.7)
- Flipper-Folly (2.6.10):
- Flipper-Boost-iOSX
- Flipper-DoubleConversion
- Flipper-Fmt (= 7.1.7)
- Flipper-Glog
- libevent (~> 2.1.12)
- OpenSSL-Universal (= 1.1.1100)
- Flipper-Glog (0.5.0.5)
- Flipper-PeerTalk (0.0.4)
- Flipper-RSocket (1.4.3):
- Flipper-Folly (~> 2.6)
- FlipperKit (0.125.0):
- FlipperKit/Core (= 0.125.0)
- FlipperKit/Core (0.125.0):
- Flipper (~> 0.125.0)
- FlipperKit/CppBridge
- FlipperKit/FBCxxFollyDynamicConvert
- FlipperKit/FBDefines
- FlipperKit/FKPortForwarding
- SocketRocket (~> 0.6.0)
- FlipperKit/CppBridge (0.125.0):
- Flipper (~> 0.125.0)
- FlipperKit/FBCxxFollyDynamicConvert (0.125.0):
- Flipper-Folly (~> 2.6)
- FlipperKit/FBDefines (0.125.0)
- FlipperKit/FKPortForwarding (0.125.0):
- CocoaAsyncSocket (~> 7.6)
- Flipper-PeerTalk (~> 0.0.4)
- FlipperKit/FlipperKitHighlightOverlay (0.125.0)
- FlipperKit/FlipperKitLayoutHelpers (0.125.0):
- FlipperKit/Core
- FlipperKit/FlipperKitHighlightOverlay
- FlipperKit/FlipperKitLayoutTextSearchable
- FlipperKit/FlipperKitLayoutIOSDescriptors (0.125.0):
- FlipperKit/Core
- FlipperKit/FlipperKitHighlightOverlay
- FlipperKit/FlipperKitLayoutHelpers
- YogaKit (~> 1.18)
- FlipperKit/FlipperKitLayoutPlugin (0.125.0):
- FlipperKit/Core
- FlipperKit/FlipperKitHighlightOverlay
- FlipperKit/FlipperKitLayoutHelpers
- FlipperKit/FlipperKitLayoutIOSDescriptors
- FlipperKit/FlipperKitLayoutTextSearchable
- YogaKit (~> 1.18)
- FlipperKit/FlipperKitLayoutTextSearchable (0.125.0)
- FlipperKit/FlipperKitNetworkPlugin (0.125.0):
- FlipperKit/Core
- FlipperKit/FlipperKitReactPlugin (0.125.0):
- FlipperKit/Core
- FlipperKit/FlipperKitUserDefaultsPlugin (0.125.0):
- FlipperKit/Core
- FlipperKit/SKIOSNetworkPlugin (0.125.0):
- FlipperKit/Core
- FlipperKit/FlipperKitNetworkPlugin
- fmt (6.2.1)
- glog (0.3.5)
- libevent (2.1.12)
- OpenSSL-Universal (1.1.1100)
- RCT-Folly (2021.06.28.00-v2):
- boost
- DoubleConversion
Expand Down Expand Up @@ -352,39 +288,14 @@ PODS:
- React-jsi (= 0.69.1)
- React-logger (= 0.69.1)
- React-perflogger (= 0.69.1)
- SocketRocket (0.6.0)
- Yoga (1.14.0)
- YogaKit (1.18.1):
- Yoga (~> 1.14)

DEPENDENCIES:
- boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`)
- DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
- FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`)
- FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`)
- Flipper (= 0.125.0)
- Flipper-Boost-iOSX (= 1.76.0.1.11)
- Flipper-DoubleConversion (= 3.2.0.1)
- Flipper-Fmt (= 7.1.7)
- Flipper-Folly (= 2.6.10)
- Flipper-Glog (= 0.5.0.5)
- Flipper-PeerTalk (= 0.0.4)
- Flipper-RSocket (= 1.4.3)
- FlipperKit (= 0.125.0)
- FlipperKit/Core (= 0.125.0)
- FlipperKit/CppBridge (= 0.125.0)
- FlipperKit/FBCxxFollyDynamicConvert (= 0.125.0)
- FlipperKit/FBDefines (= 0.125.0)
- FlipperKit/FKPortForwarding (= 0.125.0)
- FlipperKit/FlipperKitHighlightOverlay (= 0.125.0)
- FlipperKit/FlipperKitLayoutPlugin (= 0.125.0)
- FlipperKit/FlipperKitLayoutTextSearchable (= 0.125.0)
- FlipperKit/FlipperKitNetworkPlugin (= 0.125.0)
- FlipperKit/FlipperKitReactPlugin (= 0.125.0)
- FlipperKit/FlipperKitUserDefaultsPlugin (= 0.125.0)
- FlipperKit/SKIOSNetworkPlugin (= 0.125.0)
- glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
- OpenSSL-Universal (= 1.1.1100)
- RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
- RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`)
- RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`)
Expand Down Expand Up @@ -418,21 +329,7 @@ DEPENDENCIES:

SPEC REPOS:
trunk:
- CocoaAsyncSocket
- Flipper
- Flipper-Boost-iOSX
- Flipper-DoubleConversion
- Flipper-Fmt
- Flipper-Folly
- Flipper-Glog
- Flipper-PeerTalk
- Flipper-RSocket
- FlipperKit
- fmt
- libevent
- OpenSSL-Universal
- SocketRocket
- YogaKit

EXTERNAL SOURCES:
boost:
Expand Down Expand Up @@ -504,23 +401,11 @@ EXTERNAL SOURCES:

SPEC CHECKSUMS:
boost: a7c83b31436843459a1961bfd74b96033dc77234
CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99
DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54
FBLazyVector: 068141206af867f72854753423d0117c4bf53419
FBReactNativeSpec: 546a637adc797fa436dd51d1c63c580f820de31c
Flipper: 26fc4b7382499f1281eb8cb921e5c3ad6de91fe0
Flipper-Boost-iOSX: fd1e2b8cbef7e662a122412d7ac5f5bea715403c
Flipper-DoubleConversion: 2dc99b02f658daf147069aad9dbd29d8feb06d30
Flipper-Fmt: 60cbdd92fc254826e61d669a5d87ef7015396a9b
Flipper-Folly: 584845625005ff068a6ebf41f857f468decd26b3
Flipper-Glog: 70c50ce58ddaf67dc35180db05f191692570f446
Flipper-PeerTalk: 116d8f857dc6ef55c7a5a75ea3ceaafe878aadc9
Flipper-RSocket: d9d9ade67cbecf6ac10730304bf5607266dd2541
FlipperKit: cbdee19bdd4e7f05472a66ce290f1b729ba3cb86
fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9
glog: 3d02b25ca00c2d456734d0bcff864cbc62f6ae1a
libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913
OpenSSL-Universal: ebc357f1e6bc71fa463ccb2fe676756aff50e88c
RCT-Folly: b9d9fe1fc70114b751c076104e52f3b1b5e5a95a
RCTRequired: ae07282b2ec9c90d7eb98251603bc3f82403d239
RCTTypeSafety: a04dc1339af2e1da759ccd093bf11c310dce1ef6
Expand All @@ -535,7 +420,7 @@ SPEC CHECKSUMS:
React-jsiexecutor: 758e70947c232828a66b5ddc42d02b4d010fa26e
React-jsinspector: 55605caf04e02f9b0e05842b786f1c12dde08f4b
React-logger: ca970551cb7eea2fd814d0d5f6fc1a471eb53b76
react-native-slider: 8a61f3dfa62c859e67f545ed707e9438ada8be6c
react-native-slider: 541c8579b23211cc985ac44023dd0f0d46c9f497
React-perflogger: c9161ff0f1c769993cd11d2751e4331ff4ceb7cd
React-RCTActionSheet: 2d885b0bea76a5254ef852939273edd8de116180
React-RCTAnimation: 353fa4fc3c19060068832dd32e555182ec07be45
Expand All @@ -548,10 +433,8 @@ SPEC CHECKSUMS:
React-RCTVibration: e8b7dd6635cc95689b5db643b5a3848f1e05b30b
React-runtimeexecutor: 27f468c5576eaf05ffb7a907528e44c75a3fcbae
ReactCommon: e30ec17dfb1d4c4f3419eac254350d6abca6d5a2
SocketRocket: fccef3f9c5cedea1353a9ef6ada904fde10d6608
Yoga: 7ab6e3ee4ce47d7b789d1cb520163833e515f452
YogaKit: f782866e155069a2cca2517aafea43200b01fd5a

PODFILE CHECKSUM: ea17b1731971e714550ad4c057f8c9e4dd544466
PODFILE CHECKSUM: 2bee2bd5d60bce023442613522baa9154a69716b

COCOAPODS: 1.11.3
Loading