ann-flavor-cocoapods 0.4.2 → 0.4.3
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 +20 -0
- data/lib/ann_flavor_cocoapods/podfile_helper.rb +20 -2
- 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: eebdd0861c6e897e517afc185dbe5093672eee28a4549ab869aef3105144b72a
|
|
4
|
+
data.tar.gz: 9976784a3f67eca1be9c0e2ed08bfe2bde6671fe845321dbc39c4b432b90fc46
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ada32883a563af3301da9355cfc65fde024ff4a34194e59eaee2a7d6dc863c3d47a2574c3712aebf66e4b4fa29f444b96b70188016fde24810ba8656a975f0d8
|
|
7
|
+
data.tar.gz: a0691d77e669115cb8ff313d53ad4d4267551ce8c3836fa8101b2e8a5a3342f599552d6cd197f0589a3f52e9e8082dacdd92ea5b7246944c852b69871b70c625
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.4.3
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
- **0.4.2's fix produced a silently-corrupt `project.pbxproj`.** Moving
|
|
7
|
+
`[ann-flavor] Merge Entitlements`/`[ann-flavor] Merge Info.plist` from
|
|
8
|
+
`build_phases.unshift` to `build_phases.push` (to fix "Cycle inside
|
|
9
|
+
Runner") used the wrong method: `Xcodeproj::Project::ObjectList`
|
|
10
|
+
(`build_phases`'s real class) overrides `<<`/`insert`/`unshift`/`delete`
|
|
11
|
+
to register an added object in the project's global objects table, but
|
|
12
|
+
does **not** override `push` — plain `Array#push` silently bypasses that
|
|
13
|
+
registration. The phase ended up referenced in `buildPhases` with no
|
|
14
|
+
matching object anywhere else in `project.pbxproj`, which Xcode then
|
|
15
|
+
failed to build with `Build input file cannot be found:
|
|
16
|
+
'.../Entitlements-merged.entitlements'. Did you forget to declare this
|
|
17
|
+
file as an output of a script phase...?` — confirmed live against
|
|
18
|
+
`ledger`. Fixed by using `<<` instead of `push` in both phases' injection
|
|
19
|
+
code. Added regression coverage asserting the phase is genuinely present
|
|
20
|
+
in `project.objects`, not just the `build_phases` array — the exact
|
|
21
|
+
distinction `push` silently violated.
|
|
22
|
+
|
|
3
23
|
## 0.4.2
|
|
4
24
|
|
|
5
25
|
### Fixed
|
|
@@ -926,8 +926,19 @@ module AnnFlavorCocoapods
|
|
|
926
926
|
# Repositions unconditionally, even when `existing` -- see the identical
|
|
927
927
|
# note on inject_merge_entitlements_phase for why (a pre-v0.4.2 project
|
|
928
928
|
# would otherwise never actually get repositioned on re-`pod install`).
|
|
929
|
+
#
|
|
930
|
+
# Uses << , NOT push -- Xcodeproj::Project::ObjectList (build_phases'
|
|
931
|
+
# real class) overrides <</insert/unshift/delete to also update the
|
|
932
|
+
# object's reference count/registration in the project's global
|
|
933
|
+
# objects table, but does NOT override push. Array#push silently falls
|
|
934
|
+
# through to the plain Array behavior, leaving the phase referenced in
|
|
935
|
+
# buildPhases but never actually registered as a project object --
|
|
936
|
+
# confirmed live: this produced a real, silently-corrupt
|
|
937
|
+
# project.pbxproj (a dangling buildPhases reference to a UUID with no
|
|
938
|
+
# matching object), which then failed at Xcode build time with "Build
|
|
939
|
+
# input file cannot be found" for this phase's declared output.
|
|
929
940
|
target.build_phases.delete(phase) if existing
|
|
930
|
-
target.build_phases
|
|
941
|
+
target.build_phases << phase
|
|
931
942
|
end
|
|
932
943
|
|
|
933
944
|
# Composes the final .entitlements file Xcode actually signs with, from
|
|
@@ -1044,8 +1055,15 @@ module AnnFlavorCocoapods
|
|
|
1044
1055
|
# front from the old unshift) -- otherwise re-running `pod install`
|
|
1045
1056
|
# after upgrading the gem would never actually move it, and the real
|
|
1046
1057
|
# bug would persist for every already-affected consumer.
|
|
1058
|
+
#
|
|
1059
|
+
# Uses << , NOT push -- see the identical, fuller explanation on
|
|
1060
|
+
# inject_merge_info_plist_phase above. Array#push silently bypasses
|
|
1061
|
+
# ObjectList's reference-count/registration bookkeeping, producing a
|
|
1062
|
+
# real, silently-corrupt project.pbxproj (buildPhases referencing a
|
|
1063
|
+
# UUID with no matching object) that fails at Xcode build time with
|
|
1064
|
+
# "Build input file cannot be found" -- confirmed live against ledger.
|
|
1047
1065
|
target.build_phases.delete(phase) if existing
|
|
1048
|
-
target.build_phases
|
|
1066
|
+
target.build_phases << phase
|
|
1049
1067
|
end
|
|
1050
1068
|
|
|
1051
1069
|
# Removes a previously-injected Merge Entitlements phase when no flavor
|