diff --git a/mobile/scripts/ios-patch.sh b/mobile/scripts/ios-patch.sh index c901c33..0cff121 100644 --- a/mobile/scripts/ios-patch.sh +++ b/mobile/scripts/ios-patch.sh @@ -137,15 +137,19 @@ if [ -f "$PODFILE" ]; then ruby -e ' p = "mobile/ios/App/Podfile" s = File.read(p) - # LiveKitClient 2.15.3 depends on LiveKitUniFFI (= 0.0.6), which is NOT on the CocoaPods CDN (SPM-only), - # so we ALSO pin it to its git tag (its podspec at 0.0.6 has no further deps — just downloads its - # prebuilt XCFramework). LiveKitWebRTC 144.x + SwiftProtobuf resolve from the CDN normally. + # LiveKit 2.15.3 pulls two binary deps that are SPM-only (NOT on the CocoaPods CDN), so we pin each to + # its own repo podspec (neither has further deps): + # * LiveKitUniFFI 0.0.6 — podspec has a :git source + prepare_command that downloads its xcframework, so :git works. + # * LiveKitWebRTC 144.7559.11 — podspec has an :http source (release-zip), NOT in the git tree, so we + # point at the podspec URL with :podspec (using :git would clone a repo with no xcframework and fail). + # SwiftProtobuf (the only other dep) resolves from the CDN normally. pin = " pod \x27LiveKitClient\x27, :git => \x27https://github.com/livekit/client-sdk-swift.git\x27, :tag => \x272.15.3\x27\n" + - " pod \x27LiveKitUniFFI\x27, :git => \x27https://github.com/livekit/livekit-uniffi-xcframework.git\x27, :tag => \x270.0.6\x27\n" + " pod \x27LiveKitUniFFI\x27, :git => \x27https://github.com/livekit/livekit-uniffi-xcframework.git\x27, :tag => \x270.0.6\x27\n" + + " pod \x27LiveKitWebRTC\x27, :podspec => \x27https://raw.githubusercontent.com/livekit/webrtc-xcframework/144.7559.11/LiveKitWebRTC.podspec\x27\n" if s =~ /target ["\x27]App["\x27] do\n/ s = s.sub(/target ["\x27]App["\x27] do\n/) { |m| m + pin } File.write(p, s) - puts "Podfile: pinned LiveKitClient 2.15.3 + LiveKitUniFFI 0.0.6 (git tags)" + puts "Podfile: pinned LiveKitClient 2.15.3 + LiveKitUniFFI 0.0.6 + LiveKitWebRTC 144.7559.11" else STDERR.puts "WARN: could not find \"target App do\" in Podfile — LiveKit pin NOT applied" exit 1