From 29106370fdc3f797cf6a4dfe206a0c517f9c84ef Mon Sep 17 00:00:00 2001 From: sravan Date: Sat, 1 Aug 2026 18:48:57 +0530 Subject: [PATCH] =?UTF-8?q?Capacitor=208=20upgrade=20=E2=80=94=20Step=20A?= =?UTF-8?q?=20(keep=20CocoaPods)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bump to Capacitor 8 while staying on CocoaPods (decouples the major-version bump from the SPM switch, per the verified plan). Changes: - mobile/package.json: all @capacitor/* + @capacitor-community/safe-area + cli → ^8.0.0 (safe-area 8.0.1 verified Cap 8 compatible; @capacitor/assets stays 3.x, version-agnostic). - 4 local plugins: @capacitor/core peer/dev dep → ^8.0.0; podspec ios deployment_target 14→15. - codemagic.yaml: node 20→22 (Cap 8 requires Node 22+); `cap add ios --packagemanager Cocoapods` (Cap 8 defaults to SPM — force CocoaPods); fail loudly if no Podfile is generated. - add-share-extension.rb: fallback deployment target 14→15. Requirements per the Cap 7→8 guide: Node 22+, Xcode 26+, iOS 15 min. capacitor.config has no adjustMarginsForEdgeToEdge to remove. LiveKit git-pins + native calling unchanged. Co-Authored-By: Claude Opus 4.8 --- codemagic.yaml | 9 +++++-- mobile/package.json | 26 +++++++++---------- mobile/plugins/audio-route/AudioRoute.podspec | 2 +- mobile/plugins/audio-route/package.json | 4 +-- .../media-library/MediaLibrary.podspec | 2 +- mobile/plugins/media-library/package.json | 4 +-- mobile/plugins/native-call/NativeCall.podspec | 2 +- mobile/plugins/native-call/package.json | 4 +-- mobile/plugins/share-inbox/ShareInbox.podspec | 2 +- mobile/plugins/share-inbox/package.json | 4 +-- mobile/scripts/add-share-extension.rb | 2 +- 11 files changed, 33 insertions(+), 28 deletions(-) diff --git a/codemagic.yaml b/codemagic.yaml index f17a334..c059582 100644 --- a/codemagic.yaml +++ b/codemagic.yaml @@ -29,7 +29,7 @@ workflows: BUNDLE_ID: "com.bizgaze.connect" XCODE_WORKSPACE: "mobile/ios/App/App.xcworkspace" XCODE_SCHEME: "App" - node: 20 + node: 22 xcode: latest cocoapods: default scripts: @@ -44,8 +44,13 @@ workflows: script: | cd mobile # `cap add ios` scaffolds ios/App; safe to re-run — it no-ops if it already exists. - if [ ! -d "ios" ]; then npx cap add ios; fi + # Capacitor 8 DEFAULTS to Swift Package Manager, but our whole iOS pipeline (LiveKit Podfile pins, + # share-extension injection, AppDelegate patches) is CocoaPods-based — so force CocoaPods. + if [ ! -d "ios" ]; then npx cap add ios --packagemanager Cocoapods; fi npx cap sync ios + # Fail LOUDLY if no Podfile was generated (flag ignored / SPM project) rather than fail later with a + # confusing error — the CocoaPods pipeline downstream needs ios/App/Podfile to exist. + test -f ios/App/Podfile || { echo "ERROR: no ios/App/Podfile — 'cap add' did not use CocoaPods"; exit 1; } # App icon + splash from resources/icon.png & resources/splash*.png (1024x1024 icon, 2732² splash). npx capacitor-assets generate --ios || echo "asset generation skipped" diff --git a/mobile/package.json b/mobile/package.json index b6ac992..8154014 100644 --- a/mobile/package.json +++ b/mobile/package.json @@ -14,21 +14,21 @@ "media-library": "file:plugins/media-library", "native-call": "file:plugins/native-call", "share-inbox": "file:plugins/share-inbox", - "@capacitor-community/safe-area": "^7.0.0", - "@capacitor/android": "^7.0.0", - "@capacitor/app": "^7.0.0", - "@capacitor/camera": "^7.0.0", - "@capacitor/core": "^7.0.0", - "@capacitor/filesystem": "^7.0.0", - "@capacitor/ios": "^7.0.0", - "@capacitor/keyboard": "^7.0.0", - "@capacitor/share": "^7.0.0", - "@capacitor/push-notifications": "^7.0.0", - "@capacitor/splash-screen": "^7.0.0", - "@capacitor/status-bar": "^7.0.0" + "@capacitor-community/safe-area": "^8.0.0", + "@capacitor/android": "^8.0.0", + "@capacitor/app": "^8.0.0", + "@capacitor/camera": "^8.0.0", + "@capacitor/core": "^8.0.0", + "@capacitor/filesystem": "^8.0.0", + "@capacitor/ios": "^8.0.0", + "@capacitor/keyboard": "^8.0.0", + "@capacitor/share": "^8.0.0", + "@capacitor/push-notifications": "^8.0.0", + "@capacitor/splash-screen": "^8.0.0", + "@capacitor/status-bar": "^8.0.0" }, "devDependencies": { "@capacitor/assets": "^3.0.5", - "@capacitor/cli": "^7.0.0" + "@capacitor/cli": "^8.0.0" } } diff --git a/mobile/plugins/audio-route/AudioRoute.podspec b/mobile/plugins/audio-route/AudioRoute.podspec index 90a0f6c..4665773 100644 --- a/mobile/plugins/audio-route/AudioRoute.podspec +++ b/mobile/plugins/audio-route/AudioRoute.podspec @@ -15,7 +15,7 @@ Pod::Spec.new do |s| s.author = 'BizGaze' s.source = { :git => 'https://bizgaze.com/audio-route.git', :tag => s.version.to_s } s.source_files = 'ios/Sources/**/*.{swift,h,m}' - s.ios.deployment_target = '14.0' + s.ios.deployment_target = '15.0' s.dependency 'Capacitor' s.swift_version = '5.1' end diff --git a/mobile/plugins/audio-route/package.json b/mobile/plugins/audio-route/package.json index eef4102..4549131 100644 --- a/mobile/plugins/audio-route/package.json +++ b/mobile/plugins/audio-route/package.json @@ -18,9 +18,9 @@ } }, "devDependencies": { - "@capacitor/core": "^7.0.0" + "@capacitor/core": "^8.0.0" }, "peerDependencies": { - "@capacitor/core": "^7.0.0" + "@capacitor/core": "^8.0.0" } } diff --git a/mobile/plugins/media-library/MediaLibrary.podspec b/mobile/plugins/media-library/MediaLibrary.podspec index c6aebef..6d214c2 100644 --- a/mobile/plugins/media-library/MediaLibrary.podspec +++ b/mobile/plugins/media-library/MediaLibrary.podspec @@ -16,7 +16,7 @@ Pod::Spec.new do |s| s.author = 'BizGaze' s.source = { :git => 'https://bizgaze.com/media-library.git', :tag => s.version.to_s } s.source_files = 'ios/Sources/**/*.{swift,h,m}' - s.ios.deployment_target = '14.0' + s.ios.deployment_target = '15.0' s.dependency 'Capacitor' s.swift_version = '5.1' end diff --git a/mobile/plugins/media-library/package.json b/mobile/plugins/media-library/package.json index dd0fc74..1454379 100644 --- a/mobile/plugins/media-library/package.json +++ b/mobile/plugins/media-library/package.json @@ -18,9 +18,9 @@ } }, "devDependencies": { - "@capacitor/core": "^7.0.0" + "@capacitor/core": "^8.0.0" }, "peerDependencies": { - "@capacitor/core": "^7.0.0" + "@capacitor/core": "^8.0.0" } } diff --git a/mobile/plugins/native-call/NativeCall.podspec b/mobile/plugins/native-call/NativeCall.podspec index 8a86edb..2530347 100644 --- a/mobile/plugins/native-call/NativeCall.podspec +++ b/mobile/plugins/native-call/NativeCall.podspec @@ -15,7 +15,7 @@ Pod::Spec.new do |s| s.author = 'BizGaze' s.source = { :git => 'https://bizgaze.com/native-call.git', :tag => s.version.to_s } s.source_files = 'ios/Sources/**/*.{swift,h,m}' - s.ios.deployment_target = '14.0' + s.ios.deployment_target = '15.0' s.dependency 'Capacitor' # LiveKit iOS SDK — carries the call media NATIVELY so audio survives backgrounding AND coordinates with # CallKit's audio session (auto-config OFF via AudioManager.shared.audioSession.isAutomaticConfigurationEnabled diff --git a/mobile/plugins/native-call/package.json b/mobile/plugins/native-call/package.json index 9b32ef9..77eb617 100644 --- a/mobile/plugins/native-call/package.json +++ b/mobile/plugins/native-call/package.json @@ -18,9 +18,9 @@ } }, "devDependencies": { - "@capacitor/core": "^7.0.0" + "@capacitor/core": "^8.0.0" }, "peerDependencies": { - "@capacitor/core": "^7.0.0" + "@capacitor/core": "^8.0.0" } } diff --git a/mobile/plugins/share-inbox/ShareInbox.podspec b/mobile/plugins/share-inbox/ShareInbox.podspec index 95acbcf..1879938 100644 --- a/mobile/plugins/share-inbox/ShareInbox.podspec +++ b/mobile/plugins/share-inbox/ShareInbox.podspec @@ -13,7 +13,7 @@ Pod::Spec.new do |s| s.author = 'BizGaze' s.source = { :git => 'https://bizgaze.com/share-inbox.git', :tag => s.version.to_s } s.source_files = 'ios/Sources/**/*.{swift,h,m}' - s.ios.deployment_target = '14.0' + s.ios.deployment_target = '15.0' s.dependency 'Capacitor' s.swift_version = '5.1' end diff --git a/mobile/plugins/share-inbox/package.json b/mobile/plugins/share-inbox/package.json index a47ba41..a913633 100644 --- a/mobile/plugins/share-inbox/package.json +++ b/mobile/plugins/share-inbox/package.json @@ -18,9 +18,9 @@ } }, "devDependencies": { - "@capacitor/core": "^7.0.0" + "@capacitor/core": "^8.0.0" }, "peerDependencies": { - "@capacitor/core": "^7.0.0" + "@capacitor/core": "^8.0.0" } } diff --git a/mobile/scripts/add-share-extension.rb b/mobile/scripts/add-share-extension.rb index 08ce1e8..09bda47 100644 --- a/mobile/scripts/add-share-extension.rb +++ b/mobile/scripts/add-share-extension.rb @@ -66,7 +66,7 @@ puts "App entitlements: app-group ensured (kept #{(app_ent.keys - ['com.apple.se # ── Create the extension target ────────────────────────────────────────────────────────────────────── # deployment_target can be nil when it's only set at the project level — fall back so we never create a # target with an empty minimum-OS (which Xcode then flags). -deployment = app.deployment_target || project.build_configurations.first&.build_settings&.[]('IPHONEOS_DEPLOYMENT_TARGET') || '14.0' +deployment = app.deployment_target || project.build_configurations.first&.build_settings&.[]('IPHONEOS_DEPLOYMENT_TARGET') || '15.0' ext = project.new_target( :app_extension, EXT_NAME, :ios, deployment, project.products_group, :swift