Module: AnnFlavorCocoapods::PodfileHelper

Defined in:
lib/ann_flavor_cocoapods/podfile_helper.rb

Class Method Summary collapse

Class Method Details

.bundle_id(flavor_key, project_root: Dir.pwd) ⇒ Object

Returns the bundle ID for a given flavor key, merging defaults.



29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/ann_flavor_cocoapods/podfile_helper.rb', line 29

def self.bundle_id(flavor_key, project_root: Dir.pwd)
  spec    = SpecLoader.load(project_root)
  flavors = SpecLoader.ios_flavors(spec)
  default = SpecLoader.ios_default(spec)

  flavor_cfg = flavors[flavor_key.to_s] || {}
  merged     = default.merge(flavor_cfg)

  base   = merged['id'] || default['id'] || ''
  suffix = flavor_cfg['id_suffix'] || ''
  "#{base}#{suffix}"
end

.configure_firebase(installer_context, project_root: Dir.pwd) ⇒ Object

Call inside your Podfile to wire per-flavor Firebase GoogleService-Info.plist.

Example Podfile usage:

require 'ann_flavor_cocoapods'
AnnFlavorCocoapods::PodfileHelper.configure_firebase(self)


11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/ann_flavor_cocoapods/podfile_helper.rb', line 11

def self.configure_firebase(installer_context, project_root: Dir.pwd)
  spec    = SpecLoader.load(project_root)
  flavors = SpecLoader.ios_flavors(spec)
  default = SpecLoader.ios_default(spec)

  flavors.each do |flavor_key, flavor_cfg|
    merged = default.merge(flavor_cfg || {})

    release_path = merged.dig('firebase', 'release', 'path')
    debug_path   = merged.dig('firebase', 'debug',   'path') || release_path

    next unless release_path

    puts "ann-flavor-cocoapods: #{flavor_key} firebase release=#{release_path} debug=#{debug_path}"
  end
end