ann-flavor-cocoapods 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/Gemfile +3 -0
- data/Rakefile +6 -0
- data/ann-flavor-cocoapods.gemspec +22 -0
- data/lib/ann_flavor_cocoapods/podfile_helper.rb +42 -0
- data/lib/ann_flavor_cocoapods/spec_loader.rb +21 -0
- data/lib/ann_flavor_cocoapods/version.rb +3 -0
- data/lib/ann_flavor_cocoapods.rb +3 -0
- metadata +92 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: f7a3ef2559f87e67ec19f4b50f5d58a296143420b1eea4d7d9f3bf97fb47e471
|
|
4
|
+
data.tar.gz: 35af4044c4ea188612d4160e5201e749488f6dc9c0d374816fba19ed8dd000b9
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 661be291ba7f57852cca1237670b509af46f50c00788d5b95057361fb10e7dc1081ec6c8214d4c948d4b4125a9e9c09952ec3e6db97b98103638be6a96f016db
|
|
7
|
+
data.tar.gz: 76e246b54d7a4ce5ac15807fe7c506a32e49cdf5fbe89832930b9ba61c7a0588da20a78e7f61177f4744e6bfb90f4406cef5e86a5ee79d50251196e53f711c6a
|
data/Gemfile
ADDED
data/Rakefile
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
lib = File.expand_path('lib', __dir__)
|
|
2
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
3
|
+
|
|
4
|
+
require 'ann_flavor_cocoapods/version'
|
|
5
|
+
|
|
6
|
+
Gem::Specification.new do |spec|
|
|
7
|
+
spec.name = "ann-flavor-cocoapods"
|
|
8
|
+
spec.version = AnnFlavorCocoapods::VERSION
|
|
9
|
+
spec.authors = ["ANN Solutions"]
|
|
10
|
+
spec.email = ["support@annaibrands.com"]
|
|
11
|
+
spec.summary = "CocoaPods helper that reads annspec.yaml and configures iOS flavor settings."
|
|
12
|
+
spec.homepage = "https://github.com/anntech-dev"
|
|
13
|
+
spec.license = "MIT"
|
|
14
|
+
|
|
15
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec)/}) }
|
|
16
|
+
spec.require_paths = ["lib"]
|
|
17
|
+
|
|
18
|
+
spec.add_dependency "cocoapods", ">= 1.12"
|
|
19
|
+
|
|
20
|
+
spec.add_development_dependency "rspec", "~> 3.12"
|
|
21
|
+
spec.add_development_dependency "rspec_junit_formatter","~> 0.6"
|
|
22
|
+
end
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
require_relative 'spec_loader'
|
|
2
|
+
|
|
3
|
+
module AnnFlavorCocoapods
|
|
4
|
+
module PodfileHelper
|
|
5
|
+
# Call inside your Podfile to wire per-flavor Firebase GoogleService-Info.plist.
|
|
6
|
+
#
|
|
7
|
+
# Example Podfile usage:
|
|
8
|
+
# require 'ann_flavor_cocoapods'
|
|
9
|
+
# AnnFlavorCocoapods::PodfileHelper.configure_firebase(self)
|
|
10
|
+
#
|
|
11
|
+
def self.configure_firebase(installer_context, project_root: Dir.pwd)
|
|
12
|
+
spec = SpecLoader.load(project_root)
|
|
13
|
+
flavors = SpecLoader.ios_flavors(spec)
|
|
14
|
+
default = SpecLoader.ios_default(spec)
|
|
15
|
+
|
|
16
|
+
flavors.each do |flavor_key, flavor_cfg|
|
|
17
|
+
merged = default.merge(flavor_cfg || {})
|
|
18
|
+
|
|
19
|
+
release_path = merged.dig('firebase', 'release', 'path')
|
|
20
|
+
debug_path = merged.dig('firebase', 'debug', 'path') || release_path
|
|
21
|
+
|
|
22
|
+
next unless release_path
|
|
23
|
+
|
|
24
|
+
puts "ann-flavor-cocoapods: #{flavor_key} firebase release=#{release_path} debug=#{debug_path}"
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# Returns the bundle ID for a given flavor key, merging defaults.
|
|
29
|
+
def self.bundle_id(flavor_key, project_root: Dir.pwd)
|
|
30
|
+
spec = SpecLoader.load(project_root)
|
|
31
|
+
flavors = SpecLoader.ios_flavors(spec)
|
|
32
|
+
default = SpecLoader.ios_default(spec)
|
|
33
|
+
|
|
34
|
+
flavor_cfg = flavors[flavor_key.to_s] || {}
|
|
35
|
+
merged = default.merge(flavor_cfg)
|
|
36
|
+
|
|
37
|
+
base = merged['id'] || default['id'] || ''
|
|
38
|
+
suffix = flavor_cfg['id_suffix'] || ''
|
|
39
|
+
"#{base}#{suffix}"
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
require 'yaml'
|
|
2
|
+
|
|
3
|
+
module AnnFlavorCocoapods
|
|
4
|
+
class SpecLoader
|
|
5
|
+
SPEC_FILE = 'annspec.yaml'
|
|
6
|
+
|
|
7
|
+
def self.load(project_root = Dir.pwd)
|
|
8
|
+
path = File.join(project_root, SPEC_FILE)
|
|
9
|
+
raise "annspec.yaml not found at #{path}" unless File.exist?(path)
|
|
10
|
+
YAML.safe_load(File.read(path), permitted_classes: [Symbol])
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def self.ios_flavors(spec)
|
|
14
|
+
spec.dig('annai_app', 'ios', 'flavor') || {}
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def self.ios_default(spec)
|
|
18
|
+
spec.dig('annai_app', 'ios', 'default') || {}
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: ann-flavor-cocoapods
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.1
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- ANN Solutions
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2026-06-15 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: cocoapods
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - ">="
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '1.12'
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - ">="
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '1.12'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: rspec
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - "~>"
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '3.12'
|
|
34
|
+
type: :development
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - "~>"
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '3.12'
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: rspec_junit_formatter
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - "~>"
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: '0.6'
|
|
48
|
+
type: :development
|
|
49
|
+
prerelease: false
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - "~>"
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '0.6'
|
|
55
|
+
description:
|
|
56
|
+
email:
|
|
57
|
+
- support@annaibrands.com
|
|
58
|
+
executables: []
|
|
59
|
+
extensions: []
|
|
60
|
+
extra_rdoc_files: []
|
|
61
|
+
files:
|
|
62
|
+
- Gemfile
|
|
63
|
+
- Rakefile
|
|
64
|
+
- ann-flavor-cocoapods.gemspec
|
|
65
|
+
- lib/ann_flavor_cocoapods.rb
|
|
66
|
+
- lib/ann_flavor_cocoapods/podfile_helper.rb
|
|
67
|
+
- lib/ann_flavor_cocoapods/spec_loader.rb
|
|
68
|
+
- lib/ann_flavor_cocoapods/version.rb
|
|
69
|
+
homepage: https://github.com/anntech-dev
|
|
70
|
+
licenses:
|
|
71
|
+
- MIT
|
|
72
|
+
metadata: {}
|
|
73
|
+
post_install_message:
|
|
74
|
+
rdoc_options: []
|
|
75
|
+
require_paths:
|
|
76
|
+
- lib
|
|
77
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - ">="
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: '0'
|
|
82
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
83
|
+
requirements:
|
|
84
|
+
- - ">="
|
|
85
|
+
- !ruby/object:Gem::Version
|
|
86
|
+
version: '0'
|
|
87
|
+
requirements: []
|
|
88
|
+
rubygems_version: 3.4.19
|
|
89
|
+
signing_key:
|
|
90
|
+
specification_version: 4
|
|
91
|
+
summary: CocoaPods helper that reads annspec.yaml and configures iOS flavor settings.
|
|
92
|
+
test_files: []
|