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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ae5474a82cba4428fdfaf19c72bb2c7ac53b219bb50baf70ff246988947cb83f
4
- data.tar.gz: 5c57f69715847b50fc8fa930f6c182cc074c37389c1f0184734a73c09ee2d5a0
3
+ metadata.gz: eebdd0861c6e897e517afc185dbe5093672eee28a4549ab869aef3105144b72a
4
+ data.tar.gz: 9976784a3f67eca1be9c0e2ed08bfe2bde6671fe845321dbc39c4b432b90fc46
5
5
  SHA512:
6
- metadata.gz: 61bef50c9f7da4eada063a61ed60184de9790105eafee5c63c064e8c48419c96003d79ebdd77f3a70e0e32a75b160bd7c7b637d6c1cc5f6f70d6b2e0c85b6a69
7
- data.tar.gz: 196fbefce09aff6c9055616a6a073a11c22687868e2aca9f0c9c1086d010849b032d40e3a3247e3d4281ca9d0543bd8ea1eb5bc1145bcf47a6f5bdf12fd9b6ef
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.push(phase)
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.push(phase)
1066
+ target.build_phases << phase
1049
1067
  end
1050
1068
 
1051
1069
  # Removes a previously-injected Merge Entitlements phase when no flavor
@@ -1,3 +1,3 @@
1
1
  module AnnFlavorCocoapods
2
- VERSION = "0.4.2"
2
+ VERSION = "0.4.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ann-flavor-cocoapods
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - ANN Solutions