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

Running pod install fails with JSON::ParseError #12115

Closed
HrafnPrescriby opened this issue Oct 26, 2023 · 21 comments
Closed

Running pod install fails with JSON::ParseError #12115

HrafnPrescriby opened this issue Oct 26, 2023 · 21 comments

Comments

@HrafnPrescriby
Copy link

Command

/opt/homebrew/Cellar/cocoapods/1.13.0/libexec/bin/pod install

Report

What did you do?

Ran a pod install inside the iOS part of a Flutter project. Before running the command above I had already cleared the cache as per @dnkoutso's suggestions found in issue 9672.

What did you expect to happen?

Installation should have worked.

What happened instead?

Based on the error message there is a flaw in the JSON file expected to be at '/Users/hrafn/.cocoapods/repos/trunk/Specs/4/7/f/FirebaseCoreExtension/10.0.0/FirebaseCoreExtension.podspec.json'..

It would seem that the file is generated but is empty:

hrafn@mac ios % ls -lsa ~/.cocoapods/repos/trunk/Specs/4/7/f/FirebaseCoreExtension/10.0.0/                                
total 8
0 drwxr-xr-x@  4 hrafn  staff  128 Oct 26 11:29 .
0 drwxr-xr-x@ 26 hrafn  staff  832 Oct 26 11:29 ..
0 -rw-r--r--@  1 hrafn  staff    0 Oct 26 11:39 FirebaseCoreExtension.podspec.json
8 -rw-r--r--@  1 hrafn  staff   35 Oct 26 11:39 FirebaseCoreExtension.podspec.json.etag

Whereas the same file for other options is not:

hrafn@mac ios % ls -lsa ~/.cocoapods/repos/trunk/Specs/4/7/f/FirebaseCoreExtension/10.1.0 
total 16
0 drwxr-xr-x@  4 hrafn  staff  128 Oct 26 11:29 .
0 drwxr-xr-x@ 26 hrafn  staff  832 Oct 26 11:29 ..
8 -rw-r--r--@  1 hrafn  staff  977 Oct 26 11:29 FirebaseCoreExtension.podspec.json
8 -rw-r--r--@  1 hrafn  staff   35 Oct 26 11:29 FirebaseCoreExtension.podspec.json.etag

Running pod install --verbose gave me the following in case it is of any use (it does surface the link to the remote JSON file that turns out to be empty locally but is not remotely: link)

pod install --verbose                                                    
  Preparing

Analyzing dependencies

Inspecting targets to integrate
  Using `ARCHS` setting to build architectures of target `Pods-Runner`: (``)

Fetching external sources
-> Fetching podspec for `Flutter` from `Flutter`
-> Fetching podspec for `amplify_auth_cognito` from `.symlinks/plugins/amplify_auth_cognito/darwin`
-> Fetching podspec for `amplify_secure_storage` from `.symlinks/plugins/amplify_secure_storage/ios`
-> Fetching podspec for `connectivity_plus` from `.symlinks/plugins/connectivity_plus/ios`
-> Fetching podspec for `device_info_plus` from `.symlinks/plugins/device_info_plus/ios`
-> Fetching podspec for `firebase_analytics` from `.symlinks/plugins/firebase_analytics/ios`
firebase_analytics: Using Firebase SDK version '10.16.0' defined in 'firebase_core'
-> Fetching podspec for `firebase_core` from `.symlinks/plugins/firebase_core/ios`
firebase_core: Using Firebase SDK version '10.16.0' defined in 'firebase_core'
-> Fetching podspec for `firebase_crashlytics` from `.symlinks/plugins/firebase_crashlytics/ios`
Run script to upload symbols already exists.
firebase_crashlytics: Using Firebase SDK version '10.16.0' defined in 'firebase_core'
-> Fetching podspec for `firebase_messaging` from `.symlinks/plugins/firebase_messaging/ios`
firebase_messaging: Using Firebase SDK version '10.16.0' defined in 'firebase_core'
-> Fetching podspec for `flutter_inappwebview` from `.symlinks/plugins/flutter_inappwebview/ios`
-> Fetching podspec for `flutter_keyboard_visibility` from `.symlinks/plugins/flutter_keyboard_visibility/ios`
-> Fetching podspec for `flutter_local_notifications` from `.symlinks/plugins/flutter_local_notifications/ios`
-> Fetching podspec for `flutter_native_splash` from `.symlinks/plugins/flutter_native_splash/ios`
-> Fetching podspec for `local_auth_ios` from `.symlinks/plugins/local_auth_ios/ios`
-> Fetching podspec for `package_info_plus` from `.symlinks/plugins/package_info_plus/ios`
-> Fetching podspec for `path_provider_foundation` from `.symlinks/plugins/path_provider_foundation/darwin`
-> Fetching podspec for `shared_preferences_foundation` from `.symlinks/plugins/shared_preferences_foundation/darwin`
-> Fetching podspec for `url_launcher_ios` from `.symlinks/plugins/url_launcher_ios/ios`

Resolving dependencies of `Podfile`
  CDN: trunk Relative path: CocoaPods-version.yml exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: all_pods_versions_4_2_c.txt exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/4/2/c/FlutterMacOS/3.13.2/FlutterMacOS.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: all_pods_versions_d_d_6.txt exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/d/d/6/ReachabilitySwift/5.0.0/ReachabilitySwift.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: all_pods_versions_0_3_5.txt exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/3/5/Firebase/10.16.0/Firebase.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/3/5/Firebase/10.16.0/Firebase.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/3/5/Firebase/10.16.0/Firebase.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/3/5/Firebase/10.16.0/Firebase.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: all_pods_versions_6_8_6.txt exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/6/8/6/OrderedSet/5.0.0/OrderedSet.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/3/5/Firebase/10.16.0/Firebase.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/6/8/6/OrderedSet/5.0.0/OrderedSet.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: all_pods_versions_8_b_d.txt exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/b/d/FirebaseCore/10.16.0/FirebaseCore.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: all_pods_versions_2_d_6.txt exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/2/d/6/FirebaseMessaging/10.16.0/FirebaseMessaging.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/3/5/Firebase/10.16.0/Firebase.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: all_pods_versions_e_7_d.txt exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/e/7/d/FirebaseCrashlytics/10.16.0/FirebaseCrashlytics.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/b/d/FirebaseCore/10.16.0/FirebaseCore.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: all_pods_versions_0_8_4.txt exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.5/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.8.0/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.10.0/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.0/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.1/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.4/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.5/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.8.0/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.10.0/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.0/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.1/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.4/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.5/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: all_pods_versions_7_9_1.txt exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/7/9/1/FirebaseCoreInternal/10.16.0/FirebaseCoreInternal.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/2/d/6/FirebaseMessaging/10.16.0/FirebaseMessaging.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: all_pods_versions_2_f_7.txt exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/2/f/7/FirebaseInstallations/10.16.0/FirebaseInstallations.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.8.0/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.10.0/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.0/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.1/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.4/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.5/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.8.0/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.10.0/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.0/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.1/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.4/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.5/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.8.0/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.10.0/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.0/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.1/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.4/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.5/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: all_pods_versions_0_6_a.txt exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/6/a/GoogleDataTransport/9.2.5/GoogleDataTransport.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: all_pods_versions_6_1_e.txt exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/6/1/e/nanopb/2.30909.0/nanopb.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/b/d/FirebaseCore/10.16.0/FirebaseCore.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/b/d/FirebaseCore/10.15.0/FirebaseCore.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/b/d/FirebaseCore/10.14.0/FirebaseCore.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/b/d/FirebaseCore/10.13.0/FirebaseCore.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/b/d/FirebaseCore/10.12.0/FirebaseCore.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/b/d/FirebaseCore/10.11.0/FirebaseCore.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/b/d/FirebaseCore/10.10.0/FirebaseCore.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/b/d/FirebaseCore/10.9.0/FirebaseCore.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/b/d/FirebaseCore/10.8.0/FirebaseCore.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/b/d/FirebaseCore/10.7.0/FirebaseCore.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/b/d/FirebaseCore/10.6.0/FirebaseCore.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/b/d/FirebaseCore/10.5.0/FirebaseCore.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/b/d/FirebaseCore/10.4.0/FirebaseCore.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/b/d/FirebaseCore/10.3.0/FirebaseCore.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/b/d/FirebaseCore/10.2.0/FirebaseCore.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/b/d/FirebaseCore/10.1.0/FirebaseCore.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/b/d/FirebaseCore/10.0.0/FirebaseCore.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: all_pods_versions_e_2_1.txt exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/e/2/1/FirebaseAnalytics/10.16.0/FirebaseAnalytics.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/e/7/d/FirebaseCrashlytics/10.16.0/FirebaseCrashlytics.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: all_pods_versions_8_e_2.txt exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/e/2/FirebaseSessions/10.16.0/FirebaseSessions.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: all_pods_versions_0_b_5.txt exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/b/5/PromisesObjC/2.3.1/PromisesObjC.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/b/d/FirebaseCore/10.16.0/FirebaseCore.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/b/d/FirebaseCore/10.15.0/FirebaseCore.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/b/d/FirebaseCore/10.14.0/FirebaseCore.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/b/d/FirebaseCore/10.13.0/FirebaseCore.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/b/d/FirebaseCore/10.12.0/FirebaseCore.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/b/d/FirebaseCore/10.11.0/FirebaseCore.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/b/d/FirebaseCore/10.10.0/FirebaseCore.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/b/d/FirebaseCore/10.9.0/FirebaseCore.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/b/d/FirebaseCore/10.8.0/FirebaseCore.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/b/d/FirebaseCore/10.7.0/FirebaseCore.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/b/d/FirebaseCore/10.6.0/FirebaseCore.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/b/d/FirebaseCore/10.5.0/FirebaseCore.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/e/2/1/FirebaseAnalytics/10.16.0/FirebaseAnalytics.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.0/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.1/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.4/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.5/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.0/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.1/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.4/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.5/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.0/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.1/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.4/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.5/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.0/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.1/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.4/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.5/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/e/2/1/FirebaseAnalytics/10.16.0/FirebaseAnalytics.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: all_pods_versions_e_3_b.txt exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/e/3/b/GoogleAppMeasurement/10.16.0/GoogleAppMeasurement.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/e/3/b/GoogleAppMeasurement/10.16.0/GoogleAppMeasurement.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/e/3/b/GoogleAppMeasurement/10.16.0/GoogleAppMeasurement.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/e/3/b/GoogleAppMeasurement/10.16.0/GoogleAppMeasurement.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/6/1/e/nanopb/2.30909.0/nanopb.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/6/1/e/nanopb/2.30908.0/nanopb.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/6/1/e/nanopb/2.30909.0/nanopb.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/6/1/e/nanopb/2.30909.0/nanopb.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.5/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.5/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.5/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.5/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.5/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/b/5/PromisesObjC/2.3.1/PromisesObjC.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/b/5/PromisesObjC/2.3.0/PromisesObjC.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/b/5/PromisesObjC/2.2.0/PromisesObjC.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/b/5/PromisesObjC/2.1.1/PromisesObjC.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/b/5/PromisesObjC/2.1.0/PromisesObjC.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/6/a/GoogleDataTransport/9.2.5/GoogleDataTransport.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/6/a/GoogleDataTransport/9.2.3/GoogleDataTransport.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/6/a/GoogleDataTransport/9.2.2/GoogleDataTransport.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/6/a/GoogleDataTransport/9.2.1/GoogleDataTransport.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/6/a/GoogleDataTransport/9.2.0/GoogleDataTransport.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.7.0/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.8.0/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.10.0/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.0/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.1/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.4/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.5/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/b/5/PromisesObjC/2.3.1/PromisesObjC.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/b/5/PromisesObjC/2.3.0/PromisesObjC.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/b/5/PromisesObjC/2.2.0/PromisesObjC.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/b/5/PromisesObjC/2.1.1/PromisesObjC.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/b/5/PromisesObjC/2.1.0/PromisesObjC.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/b/5/PromisesObjC/2.0.0/PromisesObjC.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/b/5/PromisesObjC/1.2.12/PromisesObjC.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/b/5/PromisesObjC/1.2.11/PromisesObjC.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/b/5/PromisesObjC/1.2.10/PromisesObjC.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/b/5/PromisesObjC/1.2.9/PromisesObjC.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/b/5/PromisesObjC/1.2.8/PromisesObjC.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/b/5/PromisesObjC/1.2.7/PromisesObjC.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/b/5/PromisesObjC/1.2.6/PromisesObjC.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/b/5/PromisesObjC/1.2.5/PromisesObjC.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/b/5/PromisesObjC/1.2.4/PromisesObjC.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/b/5/PromisesObjC/1.2.3/PromisesObjC.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/b/5/PromisesObjC/1.2.2/PromisesObjC.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/b/5/PromisesObjC/1.2.1/PromisesObjC.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/b/5/PromisesObjC/1.2/PromisesObjC.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/e/2/FirebaseSessions/10.16.0/FirebaseSessions.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/e/2/FirebaseSessions/10.15.0/FirebaseSessions.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/e/2/FirebaseSessions/10.14.0/FirebaseSessions.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/e/2/FirebaseSessions/10.13.0/FirebaseSessions.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/e/2/FirebaseSessions/10.12.0/FirebaseSessions.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/e/2/FirebaseSessions/10.11.0/FirebaseSessions.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/e/2/FirebaseSessions/10.10.0/FirebaseSessions.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/e/2/FirebaseSessions/10.9.0/FirebaseSessions.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/e/2/FirebaseSessions/10.8.0/FirebaseSessions.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/e/2/FirebaseSessions/10.7.0/FirebaseSessions.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/8/e/2/FirebaseSessions/10.6.0/FirebaseSessions.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: all_pods_versions_4_7_f.txt exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/4/7/f/FirebaseCoreExtension/10.16.0/FirebaseCoreExtension.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.10.0/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.0/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.1/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.4/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/7.11.5/GoogleUtilities.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: all_pods_versions_e_d_4.txt exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/e/d/4/PromisesSwift/2.3.1/PromisesSwift.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/e/d/4/PromisesSwift/2.3.1/PromisesSwift.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/e/d/4/PromisesSwift/2.2.0/PromisesSwift.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/e/d/4/PromisesSwift/2.1.1/PromisesSwift.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/e/d/4/PromisesSwift/2.1.0/PromisesSwift.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/0/b/5/PromisesObjC/2.3.1/PromisesObjC.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/4/2/c/FlutterMacOS/3.13.2/FlutterMacOS.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/4/2/c/FlutterMacOS/3.13.0/FlutterMacOS.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/4/2/c/FlutterMacOS/3.0.0/FlutterMacOS.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/4/2/c/FlutterMacOS/2.10.2/FlutterMacOS.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/4/2/c/FlutterMacOS/2.5/FlutterMacOS.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/4/2/c/FlutterMacOS/2.2.2/FlutterMacOS.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/4/2/c/FlutterMacOS/2.0.0/FlutterMacOS.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/4/2/c/FlutterMacOS/1.22.4/FlutterMacOS.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/4/2/c/FlutterMacOS/1.17.0/FlutterMacOS.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/4/2/c/FlutterMacOS/1.12.1303/FlutterMacOS.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/4/2/c/FlutterMacOS/1.9.102/FlutterMacOS.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/4/7/f/FirebaseCoreExtension/10.16.0/FirebaseCoreExtension.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/4/7/f/FirebaseCoreExtension/10.15.0/FirebaseCoreExtension.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/4/7/f/FirebaseCoreExtension/10.14.0/FirebaseCoreExtension.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/4/7/f/FirebaseCoreExtension/10.13.0/FirebaseCoreExtension.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/4/7/f/FirebaseCoreExtension/10.12.0/FirebaseCoreExtension.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/4/7/f/FirebaseCoreExtension/10.11.0/FirebaseCoreExtension.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/4/7/f/FirebaseCoreExtension/10.10.0/FirebaseCoreExtension.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/4/7/f/FirebaseCoreExtension/10.9.0/FirebaseCoreExtension.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/4/7/f/FirebaseCoreExtension/10.8.0/FirebaseCoreExtension.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/4/7/f/FirebaseCoreExtension/10.7.0/FirebaseCoreExtension.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/4/7/f/FirebaseCoreExtension/10.6.0/FirebaseCoreExtension.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/4/7/f/FirebaseCoreExtension/10.5.0/FirebaseCoreExtension.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/4/7/f/FirebaseCoreExtension/10.4.0/FirebaseCoreExtension.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/4/7/f/FirebaseCoreExtension/10.3.0/FirebaseCoreExtension.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/4/7/f/FirebaseCoreExtension/10.2.0/FirebaseCoreExtension.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Relative path: Specs/4/7/f/FirebaseCoreExtension/10.1.0/FirebaseCoreExtension.podspec.json exists! Returning local because checking is only performed in repo update
  CDN: trunk Redirecting from https://cdn.cocoapods.org/Specs/4/7/f/FirebaseCoreExtension/10.0.0/FirebaseCoreExtension.podspec.json to https://cdn.jsdelivr.net/cocoa/Specs/4/7/f/FirebaseCoreExtension/10.0.0/FirebaseCoreExtension.podspec.json
  CDN: trunk Relative path downloaded: Specs/4/7/f/FirebaseCoreExtension/10.0.0/FirebaseCoreExtension.podspec.json, save ETag: W/"364-RJWVoDWBLxYxTKiM6/lZ47t33Wc"
  CDN: trunk Relative path: CocoaPods-version.yml exists! Returning local because checking is only performed in repo update

Stack

   CocoaPods : 1.14.0
        Ruby : ruby 3.2.2 (2023-03-30 revision e51014f9c0) [arm64-darwin22]
    RubyGems : 3.4.10
        Host : macOS 13.4 (22F66)
       Xcode : 14.3.1 (14E300c)
         Git : git version 2.39.2 (Apple Git-143)
Ruby lib dir : /opt/homebrew/Cellar/ruby/3.2.2_1/lib
Repositories : trunk - CDN - https://cdn.cocoapods.org/

Plugins

cocoapods-deintegrate : 1.0.5
cocoapods-plugins     : 1.0.0
cocoapods-search      : 1.0.1
cocoapods-trunk       : 1.6.0
cocoapods-try         : 1.2.0

Podfile

# Uncomment this line to define a global platform for your project
platform :ios, '13.0'

# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'

project 'Runner', {
  'Debug' => :debug,
  'Profile' => :release,
  'Release' => :release,
}

def flutter_root
  generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
  unless File.exist?(generated_xcode_build_settings_path)
    raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
  end

  File.foreach(generated_xcode_build_settings_path) do |line|
    matches = line.match(/FLUTTER_ROOT\=(.*)/)
    return matches[1].strip if matches
  end
  raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
end

require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)

flutter_ios_podfile_setup

target 'Runner' do
  use_frameworks!
  use_modular_headers!

  flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
#   target 'RunnerTests' do
#     inherit! :search_paths
#   end
end

post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
  end
end

Error

JSON::ParserError - Failed to parse JSON at file: '/Users/hrafn/.cocoapods/repos/trunk/Specs/4/7/f/FirebaseCoreExtension/10.0.0/FirebaseCoreExtension.podspec.json'.

unexpected token at ''
/opt/homebrew/lib/ruby/gems/3.2.0/gems/cocoapods-core-1.14.0/lib/cocoapods-core/specification/json.rb:66:in `rescue in from_json'
/opt/homebrew/lib/ruby/gems/3.2.0/gems/cocoapods-core-1.14.0/lib/cocoapods-core/specification/json.rb:61:in `from_json'
/opt/homebrew/lib/ruby/gems/3.2.0/gems/cocoapods-core-1.14.0/lib/cocoapods-core/specification.rb:752:in `from_string'
/opt/homebrew/lib/ruby/gems/3.2.0/gems/cocoapods-core-1.14.0/lib/cocoapods-core/specification.rb:726:in `from_file'
/opt/homebrew/lib/ruby/gems/3.2.0/gems/cocoapods-core-1.14.0/lib/cocoapods-core/source.rb:188:in `specification'
/opt/homebrew/lib/ruby/gems/3.2.0/gems/cocoapods-1.14.0/lib/cocoapods/resolver/lazy_specification.rb:37:in `specification'
/opt/homebrew/Cellar/ruby/3.2.2_1/lib/ruby/3.2.0/delegate.rb:348:in `block in delegating_block'
/opt/homebrew/Cellar/ruby/3.2.2_1/lib/ruby/3.2.0/delegate.rb:349:in `block in delegating_block'
/opt/homebrew/lib/ruby/gems/3.2.0/gems/cocoapods-1.14.0/lib/cocoapods/resolver.rb:178:in `dependencies_for'
/opt/homebrew/lib/ruby/gems/3.2.0/gems/molinillo-0.8.0/lib/molinillo/delegates/specification_provider.rb:18:in `block in dependencies_for'
/opt/homebrew/lib/ruby/gems/3.2.0/gems/molinillo-0.8.0/lib/molinillo/delegates/specification_provider.rb:77:in `with_no_such_dependency_error_handling'
/opt/homebrew/lib/ruby/gems/3.2.0/gems/molinillo-0.8.0/lib/molinillo/delegates/specification_provider.rb:17:in `dependencies_for'
/opt/homebrew/lib/ruby/gems/3.2.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:809:in `block in group_possibilities'
/opt/homebrew/lib/ruby/gems/3.2.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:808:in `reverse_each'
/opt/homebrew/lib/ruby/gems/3.2.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:808:in `group_possibilities'
/opt/homebrew/lib/ruby/gems/3.2.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:779:in `possibilities_for_requirement'
/opt/homebrew/lib/ruby/gems/3.2.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:761:in `push_state_for_requirements'
/opt/homebrew/lib/ruby/gems/3.2.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:744:in `require_nested_dependencies_for'
/opt/homebrew/lib/ruby/gems/3.2.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:727:in `activate_new_spec'
/opt/homebrew/lib/ruby/gems/3.2.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:684:in `attempt_to_activate'
/opt/homebrew/lib/ruby/gems/3.2.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:254:in `process_topmost_state'
/opt/homebrew/lib/ruby/gems/3.2.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:182:in `resolve'
/opt/homebrew/lib/ruby/gems/3.2.0/gems/molinillo-0.8.0/lib/molinillo/resolver.rb:43:in `resolve'
/opt/homebrew/lib/ruby/gems/3.2.0/gems/cocoapods-1.14.0/lib/cocoapods/resolver.rb:94:in `resolve'
/opt/homebrew/lib/ruby/gems/3.2.0/gems/cocoapods-1.14.0/lib/cocoapods/installer/analyzer.rb:1082:in `block in resolve_dependencies'
/opt/homebrew/lib/ruby/gems/3.2.0/gems/cocoapods-1.14.0/lib/cocoapods/user_interface.rb:64:in `section'
/opt/homebrew/lib/ruby/gems/3.2.0/gems/cocoapods-1.14.0/lib/cocoapods/installer/analyzer.rb:1080:in `resolve_dependencies'
/opt/homebrew/lib/ruby/gems/3.2.0/gems/cocoapods-1.14.0/lib/cocoapods/installer/analyzer.rb:125:in `analyze'
/opt/homebrew/lib/ruby/gems/3.2.0/gems/cocoapods-1.14.0/lib/cocoapods/installer.rb:422:in `analyze'
/opt/homebrew/lib/ruby/gems/3.2.0/gems/cocoapods-1.14.0/lib/cocoapods/installer.rb:244:in `block in resolve_dependencies'
/opt/homebrew/lib/ruby/gems/3.2.0/gems/cocoapods-1.14.0/lib/cocoapods/user_interface.rb:64:in `section'
/opt/homebrew/lib/ruby/gems/3.2.0/gems/cocoapods-1.14.0/lib/cocoapods/installer.rb:243:in `resolve_dependencies'
/opt/homebrew/lib/ruby/gems/3.2.0/gems/cocoapods-1.14.0/lib/cocoapods/installer.rb:162:in `install!'
/opt/homebrew/lib/ruby/gems/3.2.0/gems/cocoapods-1.14.0/lib/cocoapods/command/install.rb:52:in `run'
/opt/homebrew/lib/ruby/gems/3.2.0/gems/claide-1.1.0/lib/claide/command.rb:334:in `run'
/opt/homebrew/lib/ruby/gems/3.2.0/gems/cocoapods-1.14.0/lib/cocoapods/command.rb:52:in `run'
/opt/homebrew/lib/ruby/gems/3.2.0/gems/cocoapods-1.14.0/bin/pod:55:in `<top (required)>'
/opt/homebrew/Cellar/cocoapods/1.13.0/libexec/bin/pod:25:in `load'
/opt/homebrew/Cellar/cocoapods/1.13.0/libexec/bin/pod:25:in `<main>'
@HrafnPrescriby
Copy link
Author

HrafnPrescriby commented Oct 26, 2023

I found an identical issue 9814 where updating to a newer version of Cocoapods and clearing caches was the recommended solution. However neither (am on the latest Homebrew version and have cleared caches multiple times) seem to resolve this issue.

In the linked issue I see it mentioned that this may be due to the CDN delivering the file as empty. Since this happens persistently to the same file when the pod install is run it sounds plausible. However every manual attempt on my end (on the same machine and network) to download the spec file gives me the correct one (i.e not empty).

@mlazari
Copy link

mlazari commented Oct 26, 2023

This one seems to be related: braintree/braintree_ios#1120

@mlazari
Copy link

mlazari commented Oct 26, 2023

I am not able to reproduce with this FirebaseCoreExtenstion dependency though, it is not empty for me (/Users/mihai/.cocoapods/repos/trunk/Specs/4/7/f/FirebaseCoreExtension/10.0.0/FirebaseCoreExtension.podspec.json), but /Users/mihai/.cocoapods/repos/trunk/Specs/d/a/5/Braintree/6.8.0/Braintree.podspec.json is empty for me, even after removing /Users/mihai/.cocoapods/repos and re-running pod install (which re-creates that folder).

@mlazari
Copy link

mlazari commented Oct 26, 2023

Looks like I have other empty podspec files as well:

mihai@Mihais-Mac-mini ios % find ~/.cocoapods/repos/trunk/Specs -type f -empty
/Users/mihai/.cocoapods/repos/trunk/Specs/1/d/1/JWT/1.1.2/JWT.podspec.json
/Users/mihai/.cocoapods/repos/trunk/Specs/8/8/5/MMKV/1.3.0/MMKV.podspec.json
/Users/mihai/.cocoapods/repos/trunk/Specs/a/e/a/Flipper/0.93.0/Flipper.podspec.json
/Users/mihai/.cocoapods/repos/trunk/Specs/a/e/a/Flipper/0.232.0/Flipper.podspec.json
/Users/mihai/.cocoapods/repos/trunk/Specs/a/e/a/Flipper/0.128.4/Flipper.podspec.json
/Users/mihai/.cocoapods/repos/trunk/Specs/a/b/d/Sentry/7.7.0/Sentry.podspec.json
/Users/mihai/.cocoapods/repos/trunk/Specs/a/b/d/Sentry/6.0.0/Sentry.podspec.json
/Users/mihai/.cocoapods/repos/trunk/Specs/a/b/d/Sentry/3.0.12/Sentry.podspec.json
/Users/mihai/.cocoapods/repos/trunk/Specs/a/b/d/Sentry/6.1.1/Sentry.podspec.json
/Users/mihai/.cocoapods/repos/trunk/Specs/a/b/d/Sentry/6.0.3/Sentry.podspec.json
/Users/mihai/.cocoapods/repos/trunk/Specs/d/a/5/Braintree/6.8.0/Braintree.podspec.json
/Users/mihai/.cocoapods/repos/trunk/Specs/3/2/5/FlipperKit/0.144.0/FlipperKit.podspec.json
/Users/mihai/.cocoapods/repos/trunk/Specs/e/d/6/OpenSSL-Universal/1.1.180/OpenSSL-Universal.podspec.json
/Users/mihai/.cocoapods/repos/trunk/Specs/5/7/2/Flipper-Folly/2.5.1/Flipper-Folly.podspec.json
/Users/mihai/.cocoapods/repos/trunk/Specs/5/6/4/Flipper-Boost-iOSX/1.76.0.1.6/Flipper-Boost-iOSX.podspec.json

@mlazari
Copy link

mlazari commented Oct 26, 2023

Not sure if this is related or not, but one thing I observed is that the ones that are empty locally return a Accept-Ranges: bytes and a Content-Length header in the response, and the ones that are not empty do not return those, at least for the ones I verified.

For example:

https://cdn.cocoapods.org/Specs/d/a/5/Braintree/6.8.0/Braintree.podspec.json -> redirects to https://cdn.jsdelivr.net/cocoa/Specs/d/a/5/Braintree/6.8.0/Braintree.podspec.json which returns status 200 and the Accept-Ranges: bytes and Content-Length: 835 headers. This file is empty - /Users/mihai/.cocoapods/repos/trunk/Specs/d/a/5/Braintree/6.8.0/Braintree.podspec.json.

https://cdn.cocoapods.org/Specs/d/a/5/Braintree/6.7.0/Braintree.podspec.json -> redirects to https://cdn.jsdelivr.net/cocoa/Specs/d/a/5/Braintree/6.7.0/Braintree.podspec.json which returns status 200 without the Accept-Ranges: bytes and Content-Length headers. This file is not empty - /Users/mihai/.cocoapods/repos/trunk/Specs/d/a/5/Braintree/6.7.0/Braintree.podspec.json.

@dchis
Copy link

dchis commented Oct 26, 2023

I am having the same issue but in my case Specs/5/9/a/Google-Mobile-Ads-SDK/10.9.0/Google-Mobile-Ads-SDK.podspec.json is empty but has content if I access it in the browser.

@mlazari
Copy link

mlazari commented Oct 26, 2023

@dchis If you open https://cdn.cocoapods.org/Specs/5/9/a/Google-Mobile-Ads-SDK/10.9.0/Google-Mobile-Ads-SDK.podspec.json in browser, which link it is redirecting to, and do you see the Accept-Ranges and Content-Length respons headers? For me it redirects to https://cdn.jsdelivr.net/cocoa/Specs/5/9/a/Google-Mobile-Ads-SDK/10.9.0/Google-Mobile-Ads-SDK.podspec.json and I don't see those headers. Looks like for different people the issue reproduces on different dependencies / versions.
Screenshot 2023-10-26 at 20 05 42

@mihailapuste
Copy link

this helped me. I'm currently in easter europe and i cannot successfully download from the cdn. Changed to using USA east coast vpn and my issue was solved.

https://stackoverflow.com/a/77368123/10458873

hope this helps!

@sergeimikhan
Copy link

Hello @mlazari @dchis the root cause of the problem is in content-encoding header in response which is not supported by libcurl #12110 (comment).
Recently released specs are fine as I see. But the ones released before the couldflare update is not (at least for me :) )

@mlazari
Copy link

mlazari commented Oct 27, 2023

@sergeimikhan Thank you, I think you're right. I didn't see that difference in the browser, it was returning Content-Encoding: br for both https://cdn.jsdelivr.net/cocoa/Specs/d/a/5/Braintree/6.8.0/Braintree.podspec.json and https://cdn.jsdelivr.net/cocoa/Specs/d/a/5/Braintree/6.7.0/Braintree.podspec.json, but now I see the browser was sending Accept-Encoding: gzip, deflate, br. I tried that curl command with Accept-Encoding: gzip and I see the difference in Content-Encoding response header:

mihai@Mihais-Mac-mini ~ % curl -I "https://cdn.jsdelivr.net/cocoa/Specs/d/a/5/Braintree/6.8.0/Braintree.podspec.json" -H 'Accept-Encoding: gzip'
HTTP/2 200 
date: Fri, 27 Oct 2023 06:41:22 GMT
content-type: application/json; charset=utf-8
content-length: 835
access-control-allow-origin: *
access-control-expose-headers: *
timing-allow-origin: *
cache-control: public, max-age=3600
cross-origin-resource-policy: cross-origin
x-content-type-options: nosniff
strict-transport-security: max-age=31536000; includeSubDomains; preload
etag: W/"c9c-JCkK7dg6GTbk8ks9Mvtr9wYlxag"
content-encoding: br
x-served-by: cache-fra-etou8220094-FRA, cache-vie6347-VIE
x-cache: HIT, MISS
vary: Accept-Encoding
alt-svc: h3=":443"; ma=86400
cf-cache-status: HIT
age: 250
accept-ranges: bytes
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=EEr8iXc36SveC%2FPiCePVs8OQJbNoHm5O4McVC9SPlesKcGm19%2BuFW3nIUB44TfOVkfVXOPw8ngBdJq8UTlD3g%2BHwPWvmAPgjdyBs03%2BlpRG9F6gbwgbpcsbI5eoT5PK6ddY%3D"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0.01,"report_to":"cf-nel","max_age":604800}
server: cloudflare
cf-ray: 81c8f3f60e262313-KBP

mihai@Mihais-Mac-mini ~ % curl -I "https://cdn.jsdelivr.net/cocoa/Specs/d/a/5/Braintree/6.7.0/Braintree.podspec.json" -H 'Accept-Encoding: gzip'
HTTP/2 200 
date: Fri, 27 Oct 2023 06:41:40 GMT
content-type: application/json; charset=utf-8
content-length: 791
access-control-allow-origin: *
access-control-expose-headers: *
timing-allow-origin: *
cache-control: public, max-age=3600
cross-origin-resource-policy: cross-origin
x-content-type-options: nosniff
strict-transport-security: max-age=31536000; includeSubDomains; preload
etag: W/"c9c-/u0m1RUNfhSAVHDmfvG2dDg2AQQ"
content-encoding: gzip
x-served-by: cache-fra-etou8220118-FRA, cache-vie6327-VIE
x-cache: HIT, HIT
vary: Accept-Encoding
alt-svc: h3=":443"; ma=86400
cf-cache-status: HIT
age: 210
accept-ranges: bytes
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=FFMlLwZ17XDaoaQtAwxvE5M7GtJyJODuVYq9EfFfh0JS8krSiz37RdX9RF5ZttGlztX9MJ%2BOluFRGO9A4jPL3adQejpAIRQ44NKsB82XdjpfHvGoBQf2hyjsCOrpPHyi1UU%3D"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0.01,"report_to":"cf-nel","max_age":604800}
server: cloudflare
cf-ray: 81c8f464abde77aa-KBP

For me it started happening on the Braintree pod, version 6.8.0, which was released recently, on October 24 (even if my project was using an older version of it). I thought it was related to that release being broken somehow, but looks like it was just a coincidence. Later I found that it happens on other pods as well (as you can see in my comment above listing empty podspec files), but somehow pod install only throws the error on this specific pod, not sure why... (the project is using those pods as well, although not those versions).

@SethY8s
Copy link

SethY8s commented Oct 27, 2023

A colleague and I also get this error when trying to run pod install. Everyone at my work is able to run it, however, we are the only ones with the latest version of cocoapods and ruby from brew install cocoapods. If anyone has a solution that would be great.

Here is the error I am getting, however I have tried several things and have gotten several errors related to trying to run 'pod isntall'

[!] Invalid Podfile file:
[!] Invalid RNGestureHandler.podspec file: undefined method `exists?' for File:Class.

@mlazari
Copy link

mlazari commented Oct 27, 2023

@SethY8s That looks like a different issue to me.

@kostiantyn-solianyk
Copy link

Same here, it started happening on the Braintree pod recently

@giorgio79
Copy link

so the current recommended workaround is using a VPN with a US address? this bug renders the entire build pipeline unusable.

@vladcos
Copy link

vladcos commented Oct 28, 2023

Changing VPN to US worked. This is crazy and sad.

@SethY8s
Copy link

SethY8s commented Oct 30, 2023

Can confirm using a VPN and selecting the USA worked. That being said, I also had to delete my node_modules and the lock file before reinstalling them and running "pod install"

@ikevin127
Copy link

Confirm that using VPN with USA ip fixes the issue.
I'm on a mac and I used Urban VPN Desktop from AppStore because it's free.

@HrafnPrescriby
Copy link
Author

The original issue reported in this ticket has now been solved (in all likelihood the changes made to Cocoapods CDN configuration, as discussed in #12110), and so I am closing the issue.

@mlazari
Copy link

mlazari commented Oct 31, 2023

@HrafnPrescriby It's still not fixed for me, but since this is a duplicate issue I think it's ok to close.

@serdarcevher
Copy link

Confirm that using VPN with USA ip fixes the issue. I'm on a mac and I used Urban VPN Desktop from AppStore because it's free.

You saved me hours bro, thanks.

@AjeemPearl
Copy link

I tried using vpn also but it won't work in my case

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests