ann-flavor-cocoapods 0.4.2 → 0.4.4
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 +4 -4
- data/CHANGELOG.md +43 -0
- data/lib/ann_flavor_cocoapods/podfile_helper.rb +45 -11
- data/lib/ann_flavor_cocoapods/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 26c819f56bb3a959737651233fbdbed8e0bd887ddcdfbf0fd0c157c26b99a011
|
|
4
|
+
data.tar.gz: d322f020327b3b62f3eb02922a01d1af90040a2b5595614a37795eacf311a2cf
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 85564c5fcc276b9f448381fc8cb3d334ca65d9bedbccd2b40fe25b46e43775afc50f66b7a2c6394ab032a118ecb8e3b1335b596c89f0c5dc79d7945bc52bc7ac
|
|
7
|
+
data.tar.gz: e2e76a0da4568f8bc5a040d1f3f0422a8844b1da28b0b34b6324fda2c56d7c47eceec963ae644c82044f266b20193fe29d9572cce60a7dbf59933ac8df9a2221
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,48 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.4.4
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
- **"Cycle inside Runner" could still occur even after 0.4.1-0.4.3.**
|
|
7
|
+
Confirmed live (again, against `ledger`) that declaring `input_paths` on
|
|
8
|
+
`[CP] Check Pods Manifest.lock`'s own output (introduced in 0.4.1 as the
|
|
9
|
+
original fix, kept through 0.4.2/0.4.3 as "belt-and-suspenders") was
|
|
10
|
+
actually the *cause* of the cycle, not a fix for it: `[ann-flavor] Merge
|
|
11
|
+
Entitlements`/`[ann-flavor] Merge Info.plist`'s output feeds
|
|
12
|
+
`ProcessProductPackaging` (signing), which Xcode's new build system gates
|
|
13
|
+
behind a chain of task producers (`ModuleVerifierTaskProducer` et al) —
|
|
14
|
+
and `Check Pods Manifest.lock`'s own output is *itself* gated behind that
|
|
15
|
+
same chain. Declaring it as an input routed these phases through that
|
|
16
|
+
chain from the other direction, closing a genuine cycle with the Firebase
|
|
17
|
+
framework-copy phases (also gated behind it) regardless of
|
|
18
|
+
`build_phases` position. Fixed by removing the `input_paths` declaration
|
|
19
|
+
entirely — `output_paths` plus running after the Pods/framework-copy
|
|
20
|
+
phases (the 0.4.2 position fix, kept) is sufficient on its own; this
|
|
21
|
+
phase never actually needed Check Pods Manifest.lock's result as an
|
|
22
|
+
input. Xcode's own error message ("moving Check Pods Manifest.lock so it
|
|
23
|
+
runs before the phase that depends on its outputs") was describing a
|
|
24
|
+
self-inflicted dependency, not a real requirement.
|
|
25
|
+
|
|
26
|
+
## 0.4.3
|
|
27
|
+
|
|
28
|
+
### Fixed
|
|
29
|
+
- **0.4.2's fix produced a silently-corrupt `project.pbxproj`.** Moving
|
|
30
|
+
`[ann-flavor] Merge Entitlements`/`[ann-flavor] Merge Info.plist` from
|
|
31
|
+
`build_phases.unshift` to `build_phases.push` (to fix "Cycle inside
|
|
32
|
+
Runner") used the wrong method: `Xcodeproj::Project::ObjectList`
|
|
33
|
+
(`build_phases`'s real class) overrides `<<`/`insert`/`unshift`/`delete`
|
|
34
|
+
to register an added object in the project's global objects table, but
|
|
35
|
+
does **not** override `push` — plain `Array#push` silently bypasses that
|
|
36
|
+
registration. The phase ended up referenced in `buildPhases` with no
|
|
37
|
+
matching object anywhere else in `project.pbxproj`, which Xcode then
|
|
38
|
+
failed to build with `Build input file cannot be found:
|
|
39
|
+
'.../Entitlements-merged.entitlements'. Did you forget to declare this
|
|
40
|
+
file as an output of a script phase...?` — confirmed live against
|
|
41
|
+
`ledger`. Fixed by using `<<` instead of `push` in both phases' injection
|
|
42
|
+
code. Added regression coverage asserting the phase is genuinely present
|
|
43
|
+
in `project.objects`, not just the `build_phases` array — the exact
|
|
44
|
+
distinction `push` silently violated.
|
|
45
|
+
|
|
3
46
|
## 0.4.2
|
|
4
47
|
|
|
5
48
|
### Fixed
|
|
@@ -912,10 +912,11 @@ module AnnFlavorCocoapods
|
|
|
912
912
|
# output_paths) -- suppresses "input file not found" for INFOPLIST_FILE
|
|
913
913
|
# referencing a path nothing else produces until this phase runs.
|
|
914
914
|
phase.output_paths = ['$(DERIVED_FILE_DIR)/Info-merged.plist']
|
|
915
|
-
#
|
|
916
|
-
#
|
|
917
|
-
#
|
|
918
|
-
|
|
915
|
+
# NOT declaring input_paths on Check Pods Manifest.lock's output here
|
|
916
|
+
# (tried in v0.4.1) -- see the identical, fuller explanation on
|
|
917
|
+
# inject_merge_entitlements_phase below for why that direction was
|
|
918
|
+
# actually the cause of the real "Cycle inside Runner" failure, not a
|
|
919
|
+
# (partial) fix for it.
|
|
919
920
|
|
|
920
921
|
# Appended at the END of build_phases, not unshifted to the front --
|
|
921
922
|
# see the identical, fuller explanation on inject_merge_entitlements_phase
|
|
@@ -926,8 +927,19 @@ module AnnFlavorCocoapods
|
|
|
926
927
|
# Repositions unconditionally, even when `existing` -- see the identical
|
|
927
928
|
# note on inject_merge_entitlements_phase for why (a pre-v0.4.2 project
|
|
928
929
|
# would otherwise never actually get repositioned on re-`pod install`).
|
|
930
|
+
#
|
|
931
|
+
# Uses << , NOT push -- Xcodeproj::Project::ObjectList (build_phases'
|
|
932
|
+
# real class) overrides <</insert/unshift/delete to also update the
|
|
933
|
+
# object's reference count/registration in the project's global
|
|
934
|
+
# objects table, but does NOT override push. Array#push silently falls
|
|
935
|
+
# through to the plain Array behavior, leaving the phase referenced in
|
|
936
|
+
# buildPhases but never actually registered as a project object --
|
|
937
|
+
# confirmed live: this produced a real, silently-corrupt
|
|
938
|
+
# project.pbxproj (a dangling buildPhases reference to a UUID with no
|
|
939
|
+
# matching object), which then failed at Xcode build time with "Build
|
|
940
|
+
# input file cannot be found" for this phase's declared output.
|
|
929
941
|
target.build_phases.delete(phase) if existing
|
|
930
|
-
target.build_phases
|
|
942
|
+
target.build_phases << phase
|
|
931
943
|
end
|
|
932
944
|
|
|
933
945
|
# Composes the final .entitlements file Xcode actually signs with, from
|
|
@@ -1016,11 +1028,26 @@ module AnnFlavorCocoapods
|
|
|
1016
1028
|
phase.shell_script = script
|
|
1017
1029
|
phase.show_env_vars_in_log = '0'
|
|
1018
1030
|
phase.output_paths = ['$(DERIVED_FILE_DIR)/Entitlements-merged.entitlements']
|
|
1019
|
-
#
|
|
1020
|
-
#
|
|
1021
|
-
#
|
|
1022
|
-
|
|
1023
|
-
|
|
1031
|
+
# NOT declaring input_paths on Check Pods Manifest.lock's own output
|
|
1032
|
+
# here (tried in v0.4.1/0.4.2/0.4.3 as "belt-and-suspenders"). Confirmed
|
|
1033
|
+
# live (yet again, against ledger) that this input_paths declaration is
|
|
1034
|
+
# what CAUSES the real "Cycle inside Runner" failure, not a partial fix
|
|
1035
|
+
# for it: this phase's output feeds ProcessProductPackaging (signing),
|
|
1036
|
+
# which Xcode's new build system gates behind a chain of task producers
|
|
1037
|
+
# (ModuleVerifierTaskProducer et al) — declaring Check Pods Manifest
|
|
1038
|
+
# .lock's result file as this phase's OWN input routes this phase
|
|
1039
|
+
# through that SAME gate chain from the other direction, since Check
|
|
1040
|
+
# Pods Manifest.lock's output is itself gated behind
|
|
1041
|
+
# ModuleVerifierTaskProducer too. The Firebase framework-copy phases
|
|
1042
|
+
# are gated behind that identical chain — closing a genuine cycle no
|
|
1043
|
+
# matter where this phase sits in build_phases. Xcode's own error
|
|
1044
|
+
# message ("moving Check Pods Manifest.lock so it runs before the
|
|
1045
|
+
# phase that depends on its outputs") is describing exactly this
|
|
1046
|
+
# self-inflicted dependency, not a real requirement — this phase never
|
|
1047
|
+
# actually needed Check Pods Manifest.lock's result as an input;
|
|
1048
|
+
# output_paths + running after the Pods/framework-copy phases (via
|
|
1049
|
+
# position, below) is sufficient on its own.
|
|
1050
|
+
#
|
|
1024
1051
|
# Appended at the END of build_phases, not unshifted to the front.
|
|
1025
1052
|
# v0.4.1 tried fixing this phase's real "Cycle inside Runner" Xcode
|
|
1026
1053
|
# build failure (confirmed live against ledger, a project with real
|
|
@@ -1044,8 +1071,15 @@ module AnnFlavorCocoapods
|
|
|
1044
1071
|
# front from the old unshift) -- otherwise re-running `pod install`
|
|
1045
1072
|
# after upgrading the gem would never actually move it, and the real
|
|
1046
1073
|
# bug would persist for every already-affected consumer.
|
|
1074
|
+
#
|
|
1075
|
+
# Uses << , NOT push -- see the identical, fuller explanation on
|
|
1076
|
+
# inject_merge_info_plist_phase above. Array#push silently bypasses
|
|
1077
|
+
# ObjectList's reference-count/registration bookkeeping, producing a
|
|
1078
|
+
# real, silently-corrupt project.pbxproj (buildPhases referencing a
|
|
1079
|
+
# UUID with no matching object) that fails at Xcode build time with
|
|
1080
|
+
# "Build input file cannot be found" -- confirmed live against ledger.
|
|
1047
1081
|
target.build_phases.delete(phase) if existing
|
|
1048
|
-
target.build_phases
|
|
1082
|
+
target.build_phases << phase
|
|
1049
1083
|
end
|
|
1050
1084
|
|
|
1051
1085
|
# Removes a previously-injected Merge Entitlements phase when no flavor
|