Expo 49系から51系へのバージョンアップメモ
あらすじ
- Expo 49系、Expo Router V3 で実装した 家庭用家計簿 iOSアプリがあった。
- Expo Goをローカルに落として、動作させていた。(iOSとしてリリースまではしてない)
- 5/11 にアプリバージョンアップ
- SDK51系じゃないとダメよと言われる
- SDK51系以外は、ダウンロードしてね。とめんどくさい運用になった。
- しゃーなし、51系に上げてみた。
- 動かない。
Expo SDK50 にしてみよう
こちらを参考に
まずは、50にします
- pnpm install expo@50
- npx expo install --fix
- rootは以下の、iosをgitignore
npx expo-doctor@latest
これで、そのバージョンに必要な条件を提示してくれるみたい
➜ expo git:(One-for-All-144_3) npx expo-doctor@latest
(node:13163) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
✔ Check Expo config for common issues
✔ Check package.json for common issues
✔ Check dependencies for packages that should not be installed directly
✔ Check for issues with metro config
✔ Check for common project setup issues
✔ Check npm/ yarn versions
✔ Check native tooling versions
✔ Check Expo config (app.json/ app.config.js) schema
✔ Check that native modules do not use incompatible support packages
✔ Check for legacy global CLI installed locally
✔ Check that packages match versions required by installed Expo SDK
✔ Check that native modules use compatible support package versions for installed Expo SDK
Didn't find any issues with the project!
➜
こんな感じで、チェックOKな状態に持ってきた。
pnpm expo start --ios してみると
TypeError: Cannot read property 'reduceRight' of undefined, js engine: hermes
urqlのところでエラー出てるみたい
これもあった
urql の解決
- pnpm install urql@4.0.0
- createClient にexchanges プロパティを追加する
export const datasource = createClient({
url: process.env.EXPO_PUBLIC_API_URL ?? "",
requestPolicy: "cache-and-network",
+ exchanges: [],
});
WARN No exchange has handled operations of kind "query". Check whether you've added an exchange responsible for these operations.
キャレットとチルダ
忘れたので貼っておく
react-native-reanimated の解決
- pnpm install react-native-reanimated@latest
3.11.0 にしたけれど
意味がよくわからない
おそらく別Libが依存しているんだろう
3.9.0
3.10.0
3.11.0
で試したがどうも上手くいかず
javascriptとnativeのバージョン差異ってことなので、ローカルにあるiosのファイルを削除してやり直す
rm -rf ios/Pods
rm ios/Podfile.lock
npx pod-install
undefined method `__apply_Xcode_12_5_M1_post_install_workaround' for an instance of Pod::Podfile
Podfileでもう使われてないものがあるそうなので、メソッド呼び出しを止める
post_install do |installer|
react_native_post_install(
installer,
config[:reactNativePath],
:mac_catalyst_enabled => false
)
- __apply_Xcode_12_5_M1_post_install_workaround(installer)
+ # __apply_Xcode_12_5_M1_post_install_workaround(installer)
# This is necessary for Xcode 14, because it signs resource bundles by default
# when building for devices.
installer.target_installation_results.pod_target_installation_results
.each do |pod_name, target_installation_result|
target_installation_result.resource_bundle_targets.each do |resource_bundle_target|
resource_bundle_target.build_configurations.each do |config|
config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO'
end
end
end
end
pnpm expo run:ios
すると
› 0 error(s), and 0 warning(s)
CommandError: Failed to build iOS project. "xcodebuild" exited with error code 70.
To view more error logs, try building the app with Xcode directly, by opening /Users/ryokageyama/Documents/Develop/One-for-All/apps/expo/ios/expo.xcworkspace.
Command line invocation:
/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -workspace /Users/ryokageyama/Documents/Develop/One-for-All/apps/expo/ios/expo.xcworkspace -configuration Debug -scheme expo -destination id=46761478-E213-4A18-BC90-709880D65753
User defaults from command line:
IDEPackageSupportUseBuiltinSCM = YES
2024-05-14 12:51:13.667 xcodebuild[25079:147062] Writing error result bundle to /var/folders/3d/46r6mtnx5yn548plfsgdmzv40000gn/T/ResultBundle_2024-14-05_12-51-0013.xcresult
xcodebuild: error: Unable to find a destination matching the provided destination specifier:
{ id:46761478-E213-4A18-BC90-709880D65753 }
Ineligible destinations for the "expo" scheme:
{ platform:iOS, id:dvtdevice-DVTiPhonePlaceholder-iphoneos:placeholder, name:Any iOS Device, error:iOS 17.4 is not installed. To use with Xcode, first download and install the platform }
Build logs written to /Users/ryokageyama/Documents/Develop/One-for-All/apps/expo/.expo/xcodebuild.log
➜ expo git:(One-for-All-144_3)
デバイスのバージョンがiOS17.4になってないそうなので、xcodeのバージョンを上げる
xcodebuild -workspace /Users/ryokageyama/Documents/Develop/One-for-All/apps/expo/ios/expo.xcworkspace -configuration Debug -scheme expo -destination generic/platform=iOS
xcodeでダウンロード
結構重い
➜ expo git:(One-for-All-144_3) pnpm expo run:ios
env: load .env
env: export EXPO_ROUTER_IMPORT_MODE EXPO_PUBLIC_API_URL EXPO_PUBLIC_MOCK_USER_ID EXPO_PUBLIC_MOCK_GROUP_ID NEXT_PUBLIC_POINT_UNIT NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY CLERK_SECRET_KEY NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL
(node:37416) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
› Planning build
› Executing react-native Pods/hermes-engine » [CP-User] [Hermes] Replace Hermes for the right configuration, if needed
› Compiling react-native Pods/DoubleConversion » bignum-dtoa.cc
› Compiling react-native Pods/DoubleConversion » double-conversion.cc
› Compiling react-native Pods/DoubleConversion » diy-fp.cc
› Compiling react-native Pods/DoubleConversion » strtod.cc
› Compiling react-native Pods/DoubleConversion » fixed-dtoa.cc
› Compiling react-native Pods/DoubleConversion » fast-dtoa.cc
› Compiling react-native Pods/DoubleConversion » cached-powers.cc
› Compiling expo-updates-interface Pods/EXUpdatesInterface » noop-file.m
› Compiling expo-updates-interface Pods/EXUpdatesInterface » EXUpdatesInterface-dummy.m
› Compiling expo-updates Pods/ReachabilitySwift » ReachabilitySwift-dummy.m
› Compiling expo-dev-menu-interface Pods/expo-dev-menu-interface » expo-dev-menu-interface-dummy.m
› Packaging react-native Pods/React-logger » libReact-logger.a
› Packaging react-native Pods/React-Mapbuffer » libReact-Mapbuffer.a
› Compiling react-native-reanimated Pods/RNReanimated » NativeProxy.mm
› Compiling react-native-reanimated Pods/RNReanimated » NativeReanimatedModule.cpp
› Compiling react-native-reanimated Pods/RNReanimated » EventHandlerRegistry.cpp
› Compiling react-native-reanimated Pods/RNReanimated » AnimatedSensorModule.cpp
› Compiling react-native-gesture-handler Pods/RNGestureHandler » RNNativeViewHandler.mm
› Compiling react-native-gesture-handler Pods/RNGestureHandler » RNGestureHandlerModule.mm
› Compiling react-native-gesture-handler Pods/RNGestureHandler » RNGestureHandlerRootViewComponentView.mm
› Compiling react-native-gesture-handler Pods/RNGestureHandler » RNGestureHandlerButtonComponentView.mm
› Compiling react-native-gesture-handler Pods/RNGestureHandler » RNGestureHandlerManager.mm
› Compiling @react-native-community/datetimepicker Pods/RNDateTimePicker » RNDateTimePickerShadowView.m
❌ (../../node_modules/@react-native-community/datetimepicker/ios/RNDateTimePickerShadowView.m:8:41)
6 | {
7 | if (self = [super init]) {
> 8 | YGNodeSetMeasureFunc(self.yogaNode, RNDateTimePickerShadowViewMeasure);
| ^ incompatible function pointer types passing 'YGSize ' (aka 'struct YGSize (struct YGNode *, float, enum YGMeasureMode, float, enum YGMeasureMode)') to parameter of type 'YGMeasureFunc' (aka 'struct YGSize (*)(const struct YGNode *, float, enum YGMeasureMode, float, enum YGMeasureMode)') [-Wincompatible-function-pointer-types]
9 | }
10 | return self;
11 | }
› Compiling @react-native-community/datetimepicker Pods/RNDateTimePicker » RNDateTimePickerManager.m
› Compiling @react-native-community/datetimepicker Pods/RNDateTimePicker » RNDateTimePicker.m
› Compiling @react-native-community/datetimepicker Pods/RNDateTimePicker » RNDateTimePicker-dummy.m
› Compiling @react-native-picker/picker Pods/RNCPicker » RNCPicker-dummy.m
› Packaging expo-updates-interface Pods/EXUpdatesInterface » libEXUpdatesInterface.a
› Packaging react-native Pods/DoubleConversion » libDoubleConversion.a
› Compiling @shopify/flash-list Pods/RNFlashList » RNFlashList-dummy.m
⚠️ Script has ambiguous dependencies causing it to run on every build.
To fix, go to: Xcode » expo/expo » Build Phases » 'Bundle React Native code and images'
Either: Uncheck "Based on dependency analysis", or select output files to trigger the script
⚠️ Script has ambiguous dependencies causing it to run on every build.
To fix, go to: Xcode » expo/expo » Build Phases » 'Start Packager'
Either: Uncheck "Based on dependency analysis", or select output files to trigger the script
› 1 error(s), and 2 warning(s)
CommandError: Failed to build iOS project. "xcodebuild" exited with error code 65.
➜ expo git:(One-for-All-144_3)
これかな?
バージョンが古かったそうなので
pnpm add @react-native-community/datetimepicker@7.6.3
エラー変わった
› Executing expo » Start Packager on http://localhost:8081
› Executing expo » [Expo] Configure project
› Copying ios/expo/Supporting/Expo.plist ➜ ./Expo.plist
› Compiling expo » SplashScreen.storyboard
❌ (ios/Pods/Target Support Files/Pods-expo/ExpoModulesProvider.swift:8:8)
6 | */
7 |
> 8 | import ExpoModulesCore
| ^ compiling for iOS 13.0, but module 'ExpoModulesCore' has a minimum deployment target of iOS 13.4: /Users/ryokageyama/Library/Developer/Xcode/DerivedData/expo-gfwfmwrdawwxydcqhxaywmbscczw/Build/Products/Debug-iphonesimulator/ExpoModulesCore/ExpoModulesCore.swiftmodule/arm64-apple-ios-simulator.swiftmodule
9 | import EXConstants
10 | import EASClient
11 | import ExpoFileSystem
› Preparing expo » Info.plist
⚠️ Script has ambiguous dependencies causing it to run on every build.
To fix, go to: Xcode » expo/expo » Build Phases » 'Start Packager'
Either: Uncheck "Based on dependency analysis", or select output files to trigger the script
⚠️ Script has ambiguous dependencies causing it to run on every build.
To fix, go to: Xcode » expo/expo » Build Phases » 'Bundle React Native code and images'
Either: Uncheck "Based on dependency analysis", or select output files to trigger the script
› 1 error(s), and 2 warning(s)
CommandError: Failed to build iOS project. "xcodebuild" exited with error code 65.
➜ expo git:(One-for-All-144_3)
これかな
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.4'
バージョンを変更する
ようやく動いた!!!
pnpm expo run:ios
本題 SDK51にしましょう
# /apps/expo
pnpm add expo@latest
# /
pnpm clean && pnpm install
# /apps/expo
rm -rf ios/Pods
rm ios/Podfile.lock
npx pod-install
[!] The following Swift pods cannot yet be integrated as static libraries:
The Swift pod `ExpoModulesCore` depends upon `React-jsinspector`, which does not define modules. To opt into those targets generating module maps (which is necessary to import them from Swift when building as static libraries), you may set `use_modular_headers!` globally in your Podfile, or specify `:modular_headers => true` for particular dependencies.
Couldn't install Pods. Updating the Pods project and trying again...
Command `pod install` failed.
└─ Cause: The following Swift pods cannot yet be integrated as static libraries:
The Swift pod `ExpoModulesCore` depends upon `React-jsinspector`, which does not define modules. To opt into those targets generating module maps (which is necessary to import them from Swift when building as static libraries), you may set `use_modular_headers!` globally in your Podfile, or specify `:modular_headers => true` for particular dependencies.
pod install --repo-update --ansi exited with non-zero code: 1
➜ expo git:(One-for-All-144_3) ✗
# ファイルの先頭に
use_modular_headers!
target 'Home-Helper' do
# Your existing pods
end
また、違うエラー
Updating local specs repositories
CocoaPods 1.15.0 is available.
To update use: `gem install cocoapods`
For more information, see https://blog.cocoapods.org and the CHANGELOG for this version at https://github.com/CocoaPods/CocoaPods/releases/tag/1.15.0
Analyzing dependencies
[!] Unable to find a target named `Home-Helper` in project `expo.xcodeproj`, did find `expo`.
Couldn't install Pods. Updating the Pods project and trying again...
Command `pod install` failed.
└─ Cause: Unable to find a target named `Home-Helper` in project `expo.xcodeproj`, did find `expo`.
pod install --repo-update --ansi exited with non-zero code: 1
➜ expo git:(One-for-All-144_3) ✗
違ったみたい
# ファイルの先頭に
use_modular_headers!
- target 'Home-Helper' do
+ target 'expo' do
# Your existing pods
end
違ったみたい
すでに宣言していた。。。
# ファイルの先頭に
use_modular_headers!
- target 'expo' do
- # Your existing pods
- end
npx pod-install
上手くいった
pnpm expo run:ios
› Compiling react-native Pods/React-CoreModules » RCTWebSocketExecutor.mm
❌ (ios/Pods/Headers/Public/ExpoModulesCore/ExpoModulesCore/EXReactRootViewFactory.h:18:37)
16 |
17 | NS_SWIFT_NAME(ExpoReactRootViewFactory)
> 18 | @interface EXReactRootViewFactory : RCTRootViewFactory
| ^ cannot find interface declaration for 'RCTRootViewFactory', superclass of 'EXReactRootViewFactory'
19 |
20 | @property (nonatomic, weak, nullable) EXReactDelegateWrapper *reactDelegate;
21 |
❌ (ios/Pods/Headers/Public/ExpoModulesCore/ExpoModulesCore/EXReactRootViewFactory.h:26:40)
24 | */
25 | - (instancetype)initWithReactDelegate:(nullable EXReactDelegateWrapper *)reactDelegate
> 26 | configuration:(RCTRootViewFactoryConfiguration *)configuration
| ^ expected a type
27 | turboModuleManagerDelegate:(id<RCTTurboModuleManagerDelegate>)turboModuleManagerDelegate;
28 |
29 | /**
❌ (ios/Pods/Headers/Public/ExpoModulesCore/ExpoModulesCore/EXReactRootViewFactory.h:27:43)
25 | - (instancetype)initWithReactDelegate:(nullable EXReactDelegateWrapper *)reactDelegate
26 | configuration:(RCTRootViewFactoryConfiguration *)configuration
> 27 | turboModuleManagerDelegate:(id<RCTTurboModuleManagerDelegate>)turboModuleManagerDelegate;
| ^ no type or protocol named 'RCTTurboModuleManagerDelegate'
28 |
29 | /**
30 | Calls super `viewWithModuleName:initialProperties:launchOptions:` from `RCTRootViewFactory`.
› Compiling react-native Pods/React-CoreModules » RCTTiming.mm
› Compiling react-native Pods/React-CoreModules » RCTStatusBarManager.mm
rm -rf ios/Pods
rm ios/Podfile.lock
npx pod-install
➜ expo git:(One-for-All-144_3) ✗ npx pod-install
Scanning for pods...
1.14.3
> pod install
[!] Invalid `Podfile` file: uninitialized constant Pod::Podfile::FlipperConfiguration.
# from /Users/ryokageyama/Documents/Develop/One-for-All/apps/expo/ios/Podfile:29
# -------------------------------------------
# # ```
> flipper_config = FlipperConfiguration.disabled
# if ENV['NO_FLIPPER'] == '1' then
# -------------------------------------------
Couldn't install Pods. Updating the Pods project and trying again...
> pod install --repo-update
[!] Invalid `Podfile` file: uninitialized constant Pod::Podfile::FlipperConfiguration.
# from /Users/ryokageyama/Documents/Develop/One-for-All/apps/expo/ios/Podfile:29
# -------------------------------------------
# # ```
> flipper_config = FlipperConfiguration.disabled
# if ENV['NO_FLIPPER'] == '1' then
# -------------------------------------------
Couldn't install Pods. Updating the Pods project and trying again...
Command `pod install` failed.
└─ Cause: Invalid `Podfile` file: uninitialized constant Pod::Podfile::FlipperConfiguration.
# from /Users/ryokageyama/Documents/Develop/One-for-All/apps/expo/ios/Podfile:29
# -------------------------------------------
# # ```
> flipper_config = FlipperConfiguration.disabled
# if ENV['NO_FLIPPER'] == '1' then
# -------------------------------------------
pod install --repo-update --ansi exited with non-zero code: 1
➜ expo git:(One-for-All-144_3) ✗
gem install flipper --user-install
Podfileの先頭に
require 'flipper'
use_flipper!
sudo gem install cocoapods --user-install
# /apps/expo/ios
pod install
[Privacy Manifest Aggregation] Reading .xcprivacy files to aggregate all used Required Reason APIs.
[!] An error occurred while processing the post-install hook of the Podfile.
no implicit conversion of nil into Array
/Users/ryokageyama/Documents/Develop/One-for-All/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:115:in `+'
/Users/ryokageyama/Documents/Develop/One-for-All/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:115:in `block (5 levels) in get_used_required_reason_apis'
/Users/ryokageyama/Documents/Develop/One-for-All/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:111:in `each'
/Users/ryokageyama/Documents/Develop/One-for-All/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:111:in `block (4 levels) in get_used_required_reason_apis'
/Users/ryokageyama/Documents/Develop/One-for-All/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:106:in `each'
/Users/ryokageyama/Documents/Develop/One-for-All/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:106:in `block (3 levels) in get_used_required_reason_apis'
/Users/ryokageyama/Documents/Develop/One-for-All/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:105:in `each'
/Users/ryokageyama/Documents/Develop/One-for-All/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:105:in `block (2 levels) in get_used_required_reason_apis'
/Users/ryokageyama/Documents/Develop/One-for-All/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:104:in `each'
/Users/ryokageyama/Documents/Develop/One-for-All/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:104:in `block in get_used_required_reason_apis'
/Users/ryokageyama/Documents/Develop/One-for-All/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:102:in `each'
/Users/ryokageyama/Documents/Develop/One-for-All/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:102:in `get_used_required_reason_apis'
/Users/ryokageyama/Documents/Develop/One-for-All/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:18:in `add_aggregated_privacy_manifest'
/Users/ryokageyama/Documents/Develop/One-for-All/node_modules/react-native/scripts/react_native_pods.rb:301:in `react_native_post_install'
/Users/ryokageyama/Documents/Develop/One-for-All/apps/expo/ios/Podfile:67:in `block (3 levels) in from_ruby'
/opt/homebrew/Cellar/cocoapods/1.14.3_1/libexec/gems/cocoapods-core-1.14.3/lib/cocoapods-core/podfile.rb:196:in `post_install!'
/opt/homebrew/Cellar/cocoapods/1.14.3_1/libexec/gems/cocoapods-1.14.3/lib/cocoapods/installer.rb:1013:in `run_podfile_post_install_hook'
/opt/homebrew/Cellar/cocoapods/1.14.3_1/libexec/gems/cocoapods-1.14.3/lib/cocoapods/installer.rb:1001:in `block in run_podfile_post_install_hooks'
/opt/homebrew/Cellar/cocoapods/1.14.3_1/libexec/gems/cocoapods-1.14.3/lib/cocoapods/user_interface.rb:149:in `message'
/opt/homebrew/Cellar/cocoapods/1.14.3_1/libexec/gems/cocoapods-1.14.3/lib/cocoapods/installer.rb:1000:in `run_podfile_post_install_hooks'
/opt/homebrew/Cellar/cocoapods/1.14.3_1/libexec/gems/cocoapods-1.14.3/lib/cocoapods/installer.rb:337:in `block (2 levels) in create_and_save_projects'
/opt/homebrew/Cellar/cocoapods/1.14.3_1/libexec/gems/cocoapods-1.14.3/lib/cocoapods/installer/xcode/pods_project_generator/pods_project_writer.rb:61:in `write!'
/opt/homebrew/Cellar/cocoapods/1.14.3_1/libexec/gems/cocoapods-1.14.3/lib/cocoapods/installer.rb:336:in `block in create_and_save_projects'
/opt/homebrew/Cellar/cocoapods/1.14.3_1/libexec/gems/cocoapods-1.14.3/lib/cocoapods/user_interface.rb:64:in `section'
/opt/homebrew/Cellar/cocoapods/1.14.3_1/libexec/gems/cocoapods-1.14.3/lib/cocoapods/installer.rb:315:in `create_and_save_projects'
/opt/homebrew/Cellar/cocoapods/1.14.3_1/libexec/gems/cocoapods-1.14.3/lib/cocoapods/installer.rb:307:in `generate_pods_project'
/opt/homebrew/Cellar/cocoapods/1.14.3_1/libexec/gems/cocoapods-1.14.3/lib/cocoapods/installer.rb:183:in `integrate'
/opt/homebrew/Cellar/cocoapods/1.14.3_1/libexec/gems/cocoapods-1.14.3/lib/cocoapods/installer.rb:170:in `install!'
/opt/homebrew/Cellar/cocoapods/1.14.3_1/libexec/gems/cocoapods-1.14.3/lib/cocoapods/command/install.rb:52:in `run'
/opt/homebrew/Cellar/cocoapods/1.14.3_1/libexec/gems/claide-1.1.0/lib/claide/command.rb:334:in `run'
/opt/homebrew/Cellar/cocoapods/1.14.3_1/libexec/gems/cocoapods-1.14.3/lib/cocoapods/command.rb:52:in `run'
/opt/homebrew/Cellar/cocoapods/1.14.3_1/libexec/gems/cocoapods-1.14.3/bin/pod:55:in `<top (required)>'
/opt/homebrew/Cellar/cocoapods/1.14.3_1/libexec/bin/pod:25:in `load'
/opt/homebrew/Cellar/cocoapods/1.14.3_1/libexec/bin/pod:25:in `<main>'
[!] [Codegen] warn: using experimental new codegen integration
[!] Can't merge pod_target_xcconfig for pod targets: ["expo-dev-menu", "Main", "ReactNativeCompatibles", "SafeAreaView", "Vendored"]. Singular build setting DEFINES_MODULE has different values.
[!] Can't merge pod_target_xcconfig for pod targets: ["expo-dev-menu", "Main", "ReactNativeCompatibles", "SafeAreaView", "Vendored"]. Singular build setting DEFINES_MODULE has different values.
➜ ios git:(One-for-All-144_3)
Podfile をgit管理しなくなって、消してもうた。。。
expo ejct
でやり直し
Executing expo-router Pods/ExpoHead » Copy generated compatibility header
❌ (../../node_modules/expo-dev-menu/ios/DevMenuAppInstance.swift:55:57)
53 | }
54 |
> 55 | override func extraModules(for bridge: RCTBridge!) -> [RCTBridgeModule]! {
| ^ cannot override instance method result type '[any RCTBridgeModule]' with optional type '[any RCTBridgeModule]?'
56 | var modules: [RCTBridgeModule] = [DevMenuLoadingView.init()]
57 | modules.append(DevMenuRCTDevSettings.init())
58 | return modules
❌ (../../node_modules/expo-dev-menu/ios/DevMenuAppInstance.swift:49:34)
47 | packagerHost: packagerHost,
48 | enableDev: true,
> 49 | enableMinification: false)
| ^ missing argument for parameter 'inlineSourceMap' in call
50 | }
51 | #endif
52 | return jsSourceUrl()
❌ (../../node_modules/expo-dev-menu/ios/ReactDelegateHandler/ExpoDevMenuReactDelegateHandler.swift:24:24)
22 | }()
23 |
> 24 | public override func createRootView(reactDelegate: ExpoReactDelegate, bridge: RCTBridge, moduleName: String, initialProperties: [AnyHashable : Any]?) -> RCTRootView? {
| ^ method does not override any method from its superclass
25 | if ExpoDevMenuReactDelegateHandler.shouldEnableAutoSetup {
26 | DevMenuManager.shared.currentBridge = bridge
27 | }
npm install expo-dev-menu@latest
rm -rf node_modules
rm -rf ios/Pods
npm install
cd ios && pod install
Generating Pods project
Setting USE_HERMES build settings
Setting REACT_NATIVE build settings
[Ccache]: Removing Ccache from CC, LD, CXX & LDPLUSPLUS build settings
Your app does not have a privacy manifest! A template has been generated containing Required Reasons API usage in the core React Native library. Please add the PrivacyInfo.xcprivacy file to your project and complete data use, tracking and any additional required reasons your app is using according to Apple's guidance: https://developer.apple.com/documentation/bundleresources/privacy_manifest_files. Then, you will need to manually add this file to your project in Xcode.
Setting CLANG_CXX_LANGUAGE_STANDARD to c++20 on /Users/ryokageyama/Documents/Develop/One-for-All/apps/expo/ios/HomeHelper.xcodeproj
Pod install took 21 [s] to run
Integrating client project
⚠️ Cannot resolve the path to "@v3/graphql" package.
expo_patch_react_imports! took 0.1051 seconds to transform files.
Pod installation complete! There are 83 dependencies from the Podfile and 84 total pods installed.
[!] [Codegen] warn: using experimental new codegen integration
[!] Can't merge pod_target_xcconfig for pod targets: ["expo-dev-menu", "Main", "ReactNativeCompatibles", "SafeAreaView", "Vendored"]. Singular build setting DEFINES_MODULE has different values.
[!] Can't merge pod_target_xcconfig for pod targets: ["expo-dev-menu", "Main", "ReactNativeCompatibles", "SafeAreaView", "Vendored"]. Singular build setting DEFINES_MODULE has different values.
[!] hermes-engine has added 1 script phase. Please inspect before executing a build. See `https://guides.cocoapods.org/syntax/podspec.html#script_phases` for more information.
➜ ios git:(One-for-All-144_3)
pnpm clean
pnpm expo run:ios
❌ error: Codegen did not run properly in your project. Please reinstall cocoapods with `bundle exec pod install`.
› 1 error(s), and 0 warning(s)
CommandError: Failed to build iOS project. "xcodebuild" exited with error code 65.
gem install bundler --user-install
pnpm expo run:ios
❌ (../../node_modules/expo-updates/ios/EXUpdates/ReactDelegateHandler/ExpoUpdatesReactDelegateHandler.swift:47:24)
45 | }()
46 |
> 47 | public override func createBridge(reactDelegate: ExpoReactDelegate, bridgeDelegate: RCTBridgeDelegate, launchOptions: [AnyHashable: Any]?) -> RCTBridge? {
| ^ method does not override any method from its superclass
48 | if EXAppDefines.APP_DEBUG && !UpdatesUtils.isNativeDebuggingEnabled() {
49 | // In development builds with expo-dev-client, completes the auto-setup for development
50 | // builds with the expo-updates integration by passing a reference to DevLauncherController
❌ (../../node_modules/expo-updates/ios/EXUpdates/ReactDelegateHandler/ExpoUpdatesReactDelegateHandler.swift:75:24)
73 | }
74 |
> 75 | public override func createRootView(reactDelegate: ExpoReactDelegate, bridge: RCTBridge, moduleName: String, initialProperties: [AnyHashable: Any]?) -> RCTRootView? {
| ^ method does not override any method from its superclass
76 | if !shouldEnableAutoSetup {
77 | return nil
78 | }
❌ (../../node_modules/expo-updates/ios/EXUpdates/ReactDelegateHandler/ExpoUpdatesReactDelegateHandler.swift:69:27)
67 | controller.start()
68 |
> 69 | self.bridgeDelegate = EXRCTBridgeDelegateInterceptor(bridgeDelegate: bridgeDelegate, interceptor: self)
| ^ cannot find 'EXRCTBridgeDelegateInterceptor' in scope
70 | self.launchOptions = launchOptions
71 |
72 | return EXDeferredRCTBridge(delegate: self.bridgeDelegate!, launchOptions: self.launchOptions)
❌ (../../node_modules/expo-updates/ios/EXUpdates/Logging/UpdatesLogger.swift:14:91)
12 | static let EXPO_UPDATES_LOG_CATEGORY = "expo-updates"
13 |
> 14 | private let logger = Logger(category: UpdatesLogger.EXPO_UPDATES_LOG_CATEGORY, options: [.logToOS, .logToFile])
| ^ extra argument 'options' in call
15 |
16 | // MARK: - Public logging functions
17 |
❌ (../../node_modules/expo-updates/ios/EXUpdates/Logging/UpdatesLogger.swift:14:31)
12 | static let EXPO_UPDATES_LOG_CATEGORY = "expo-updates"
13 |
> 14 | private let logger = Logger(category: UpdatesLogger.EXPO_UPDATES_LOG_CATEGORY, options: [.logToOS, .logToFile])
| ^ missing argument for parameter 'subsystem' in call
15 |
16 | // MARK: - Public logging functions
17 |
❌ (../../node_modules/expo-updates/ios/EXUpdates/Logging/UpdatesLogger.swift:14:93)
12 | static let EXPO_UPDATES_LOG_CATEGORY = "expo-updates"
13 |
> 14 | private let logger = Logger(category: UpdatesLogger.EXPO_UPDATES_LOG_CATEGORY, options: [.logToOS, .logToFile])
| ^ reference to member 'logToOS' cannot be resolved without a contextual type
15 |
16 | // MARK: - Public logging functions
17 |
❌ (../../node_modules/expo-updates/ios/EXUpdates/Logging/UpdatesLogger.swift:14:103)
12 | static let EXPO_UPDATES_LOG_CATEGORY = "expo-updates"
13 |
> 14 | private let logger = Logger(category: UpdatesLogger.EXPO_UPDATES_LOG_CATEGORY, options: [.logToOS, .logToFile])
| ^ reference to member 'logToFile' cannot be resolved without a contextual type
15 |
16 | // MARK: - Public logging functions
17 |
pnpm update expo-updates
pnpm run clean
pnpm run ios
❌ (../../node_modules/expo-dev-menu/ios/DevMenuAppInstance.swift:55:57)
53 | }
54 |
> 55 | override func extraModules(for bridge: RCTBridge!) -> [RCTBridgeModule]! {
| ^ cannot override instance method result type '[any RCTBridgeModule]' with optional type '[any RCTBridgeModule]?'
56 | var modules: [RCTBridgeModule] = [DevMenuLoadingView.init()]
57 | modules.append(DevMenuRCTDevSettings.init())
58 | return modules
❌ (../../node_modules/expo-dev-menu/ios/DevMenuAppInstance.swift:49:34)
47 | packagerHost: packagerHost,
48 | enableDev: true,
> 49 | enableMinification: false)
| ^ missing argument for parameter 'inlineSourceMap' in call
50 | }
51 | #endif
52 | return jsSourceUrl()
❌ (../../node_modules/expo-dev-menu/ios/ReactDelegateHandler/ExpoDevMenuReactDelegateHandler.swift:24:24)
22 | }()
23 |
> 24 | public override func createRootView(reactDelegate: ExpoReactDelegate, bridge: RCTBridge, moduleName: String, initialProperties: [AnyHashable : Any]?) -> RCTRootView? {
| ^ method does not override any method from its superclass
25 | if ExpoDevMenuReactDelegateHandler.shouldEnableAutoSetup {
26 | DevMenuManager.shared.currentBridge = bridge
27 | }
pnpm update expo-dev-menu
pnpm run clean
pnpm run ios
❌ (../../node_modules/expo-dev-menu/ios/DevMenuAppInstance.swift:55:57)
53 | }
54 |
> 55 | override func extraModules(for bridge: RCTBridge!) -> [RCTBridgeModule]! {
| ^ cannot override instance method result type '[any RCTBridgeModule]' with optional type '[any RCTBridgeModule]?'
56 | var modules: [RCTBridgeModule] = [DevMenuLoadingView.init()]
57 | modules.append(DevMenuRCTDevSettings.init())
58 | return modules
❌ (../../node_modules/expo-dev-menu/ios/DevMenuAppInstance.swift:49:34)
47 | packagerHost: packagerHost,
48 | enableDev: true,
> 49 | enableMinification: false)
| ^ missing argument for parameter 'inlineSourceMap' in call
50 | }
51 | #endif
52 | return jsSourceUrl()
❌ (../../node_modules/expo-dev-menu/ios/ReactDelegateHandler/ExpoDevMenuReactDelegateHandler.swift:24:24)
22 | }()
23 |
> 24 | public override func createRootView(reactDelegate: ExpoReactDelegate, bridge: RCTBridge, moduleName: String, initialProperties: [AnyHashable : Any]?) -> RCTRootView? {
| ^ method does not override any method from its superclass
25 | if ExpoDevMenuReactDelegateHandler.shouldEnableAutoSetup {
26 | DevMenuManager.shared.currentBridge = bridge
27 | }
› 3 error(s), and 0 warning(s)
CommandError: Failed to build iOS project. "xcodebuild" exited with error code 65.
ELIFECYCLE Command failed with exit code 1.
WARN Local package.json exists, but node_modules missing, did you mean to install?
➜
pnpm rm expo-dev-client
pnpm rm expo-dev-menu
pnpm add expo-updates@latest
うまくいったみたい
runは上手くいったけど、Expo Go落ちた。。。
また、バージョンアップ
The following packages should be updated for best compatibility with the installed expo version:
@expo/metro-config@0.17.7 - expected version: ~0.18.1
@react-native-community/datetimepicker@7.6.3 - expected version: 8.0.1
@shopify/flash-list@1.6.3 - expected version: 1.6.4
expo@51.0.5 - expected version: ~51.0.6
expo-constants@15.4.6 - expected version: ~16.0.1
expo-linking@6.2.2 - expected version: ~6.3.1
expo-router@3.4.10 - expected version: ~3.5.14
expo-status-bar@1.11.1 - expected version: ~1.12.1
expo-updates@0.25.11 - expected version: ~0.25.12
react-native-gesture-handler@2.14.1 - expected version: ~2.16.1
react-native-reanimated@3.6.3 - expected version: ~3.10.1
react-native-safe-area-context@4.8.2 - expected version: 4.10.1
react-native-screens@3.29.0 - expected version: 3.31.1
@expo/config-plugins@7.9.2 - expected version: ~8.0.0
@types/react@18.3.2 - expected version: ~18.2.79
typescript@5.4.5 - expected version: ~5.3.3
Your project may not work correctly until you install the expected versions of the packages.
› Opening exp://192.168.1.58:8081 on iPhone 15 Pro
片っ端に上げていく
TypeScriptを5.4.5から5.3.3に下げるのは、なんか解せない。。。
作り直した方が早そうなので、作り直すことにした。