- Managed Workflow
-
eas-cli
version is0.60.0
Goal: embed third-party native library as npm
package to a managed Expo project.
What I have: the library provided by vendor as a .xcframework
for iOS (Swift) and .aab
file for Android.
What I did:
- generated a template for custom React Native library using
npx create-react-native-library
command. - added
.aab
and.xcframework
files to appropriate folders. - provided implementation in
Java
andSwift
for both platforms. - built library locally.
- prior to publish my RN package to a private GH repo I tested library in
example
app which was generated bycreate-react-native-library
, to ensure that everything works right. - example app works as expected.
- published RN package to a repo and installed it into my Expo project.
-
STUCK ON THIS STEP: I try to build custom dev client using
eas build
command. And the build fails.
❌ (/Users/expo/workingdir/build/app/node_modules/@bridgemoney/react-native-sardine/ios/ReactNativeSardine.swift:2:8)
1 | import Foundation
> 2 | import MobileIntelligence
| ^ error extracting version from module interface
3 |
4 | @objc(ReactNativeSardine)
5 | class ReactNativeSardine: RCTEventEmitter {
❌ (/Users/expo/Library/Developer/Xcode/DerivedData/BridgeGo-cyholdfvmztnmecppglqrfgqcshq/Build/Intermediates.noindex/ArchiveIntermediates/BridgeGo/BuildProductsPath/Debug-iphoneos/XCFrameworkIntermediates/bridgemoney-react-native-sardine/MobileIntelligence.framework/Modules/MobileIntelligence.swiftmodule/arm64-apple-ios.swiftinterface:1:1)
> 1 | // swift-interface-format-version: 1.0
| ^ error extracting version from module interface
2 | // swift-compiler-version: Apple Swift version 5.5.2 (swiftlang-1300.0.47.5 clang-1300.0.29.30)
3 | // swift-module-flags: -target arm64-apple-ios11.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name MobileIntelligence
4 | import AdSupport
▸ ** ARCHIVE FAILED **
▸ The following build commands failed:
▸ CompileSwift normal arm64 /Users/expo/workingdir/build/app/node_modules/@bridgemoney/react-native-sardine/ios/ReactNativeSardine.swift (in target 'bridgemoney-react-native-sardine' from project 'Pods')
▸ EmitSwiftModule normal arm64 (in target 'bridgemoney-react-native-sardine' from project 'Pods')
▸ CompileSwiftSources normal arm64 com.apple.xcode.tools.swift.compiler (in target 'bridgemoney-react-native-sardine' from project 'Pods')
▸ (3 failures)
Do anyone know what does this mean and how to fix this?
More context:
- I use
latest
image for iOS ineas.json
file with XCode 13.4 and Swift 5.6.1 - example RN app compiles and works as expected with my custom library. On my local Mac I use XCode 13.4.1 and Swift 5.6.1 as well.