Skip to content

Commit 72b5561

Browse files
russellwheatleymikehardy
authored andcommitted
fix(app, ios): use require_relative for firebase_spm/firebase_json across podspecs
Plain `require '../app/firebase_spm'` resolves relative to the process's current working directory, not the requiring file's own location -- it only works today because CocoaPods happens to chdir into each podspec's directory before eval'ing it. Switch all 16 podspecs (plus the two firebase_json requires in RNFBApp/RNFBML) to require_relative, which resolves correctly regardless of Dir.pwd or monorepo hoisting layout. Update the now-stale hoisting-risk comment in firebase_spm.rb accordingly.
1 parent 258e31c commit 72b5561

17 files changed

Lines changed: 24 additions & 22 deletions

File tree

packages/analytics/RNFBAnalytics.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
require 'json'
2-
require '../app/firebase_spm'
2+
require_relative '../app/firebase_spm'
33
package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
44
appPackage = JSON.parse(File.read(File.join('..', 'app', 'package.json')))
55

packages/app-check/RNFBAppCheck.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
require 'json'
2-
require '../app/firebase_spm'
2+
require_relative '../app/firebase_spm'
33
package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
44
appPackage = JSON.parse(File.read(File.join('..', 'app', 'package.json')))
55

packages/app-distribution/RNFBAppDistribution.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
require 'json'
2-
require '../app/firebase_spm'
2+
require_relative '../app/firebase_spm'
33
package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
44
appPackage = JSON.parse(File.read(File.join('..', 'app', 'package.json')))
55

packages/app/RNFBApp.podspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
require 'json'
2-
require './firebase_json'
3-
require './firebase_spm'
2+
require_relative './firebase_json'
3+
require_relative './firebase_spm'
44
package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
55
firebase_sdk_version = package['sdkVersions']['ios']['firebase']
66
firebase_ios_target = package['sdkVersions']['ios']['iosTarget']

packages/app/firebase_spm.rb

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,12 @@ class << self
6161
# of this `pod install` process.
6262
#
6363
# __dir__ resolves to the directory of this file (packages/app/).
64-
# In monorepos with hoisted dependencies or pnpm, the path from other
65-
# packages (e.g., `require '../app/firebase_spm'`) must resolve correctly
66-
# to this location. If your package manager hoists differently, you may
67-
# need to adjust the require path in individual podspecs.
64+
# Every other podspec loads this file via `require_relative` (e.g.
65+
# `require_relative '../app/firebase_spm'`), which resolves the path
66+
# relative to the requiring file's own location rather than the
67+
# process's current working directory -- so this always resolves
68+
# correctly regardless of monorepo hoisting layout (hoisted
69+
# dependencies, pnpm, etc.), with no adjustment needed.
6870
def url
6971
@url ||= begin
7072
app_package_path = File.join(__dir__, 'package.json')

packages/auth/RNFBAuth.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
require 'json'
2-
require '../app/firebase_spm'
2+
require_relative '../app/firebase_spm'
33
package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
44
appPackage = JSON.parse(File.read(File.join('..', 'app', 'package.json')))
55

packages/crashlytics/RNFBCrashlytics.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
require 'json'
2-
require '../app/firebase_spm'
2+
require_relative '../app/firebase_spm'
33
package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
44
appPackage = JSON.parse(File.read(File.join('..', 'app', 'package.json')))
55

packages/database/RNFBDatabase.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
require 'json'
2-
require '../app/firebase_spm'
2+
require_relative '../app/firebase_spm'
33
package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
44
appPackage = JSON.parse(File.read(File.join('..', 'app', 'package.json')))
55

packages/firestore/RNFBFirestore.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
require 'json'
2-
require '../app/firebase_spm'
2+
require_relative '../app/firebase_spm'
33
package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
44
appPackage = JSON.parse(File.read(File.join('..', 'app', 'package.json')))
55

packages/functions/RNFBFunctions.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
require 'json'
2-
require '../app/firebase_spm'
2+
require_relative '../app/firebase_spm'
33
package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
44
appPackage = JSON.parse(File.read(File.join('..', 'app', 'package.json')))
55

0 commit comments

Comments
 (0)