lottie-ios 4.2.0 → 4.3.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.
Files changed (193) hide show
  1. package/.github/workflows/main.yml +117 -11
  2. package/Gemfile +1 -0
  3. package/Gemfile.lock +5 -0
  4. package/Lottie.xcodeproj/project.pbxproj +1546 -194
  5. package/Lottie.xcodeproj/project.xcworkspace/xcuserdata/calstephens.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  6. package/Lottie.xcodeproj/xcshareddata/xcschemes/Lottie (iOS).xcscheme +1 -1
  7. package/Lottie.xcodeproj/xcshareddata/xcschemes/Lottie (macOS).xcscheme +1 -1
  8. package/Lottie.xcodeproj/xcshareddata/xcschemes/Lottie (tvOS).xcscheme +4 -5
  9. package/Lottie.xcodeproj/xcshareddata/xcschemes/Lottie (visionOS).xcscheme +66 -0
  10. package/Lottie.xcodeproj/xcuserdata/calstephens.xcuserdatad/xcschemes/xcschememanagement.plist +18 -0
  11. package/Lottie.xcworkspace/xcshareddata/swiftpm/Package.resolved +2 -11
  12. package/Lottie.xcworkspace/xcuserdata/calstephens.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  13. package/Lottie.xcworkspace/xcuserdata/calstephens.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +374 -116
  14. package/Lottie.xcworkspace/xcuserdata/calstephens.xcuserdatad/xcdebugger/Expressions.xcexplist +16 -5
  15. package/Package.resolved +2 -2
  16. package/Package.swift +16 -9
  17. package/README.md +2 -2
  18. package/Rakefile +122 -25
  19. package/Sources/Private/CoreAnimation/Animations/CALayer+addAnimation.swift +3 -4
  20. package/Sources/Private/CoreAnimation/Animations/DropShadowAnimation.swift +160 -0
  21. package/Sources/Private/CoreAnimation/Animations/LayerProperty.swift +83 -10
  22. package/Sources/Private/CoreAnimation/Animations/TransformAnimations.swift +85 -79
  23. package/Sources/Private/CoreAnimation/CoreAnimationLayer.swift +11 -7
  24. package/Sources/Private/CoreAnimation/Extensions/Keyframes+combined.swift +67 -6
  25. package/Sources/Private/CoreAnimation/Layers/AnimationLayer.swift +21 -2
  26. package/Sources/Private/CoreAnimation/Layers/BaseCompositionLayer.swift +9 -0
  27. package/Sources/Private/CoreAnimation/Layers/ImageLayer.swift +1 -0
  28. package/Sources/Private/CoreAnimation/Layers/LayerModel+makeAnimationLayer.swift +1 -1
  29. package/Sources/Private/CoreAnimation/Layers/RepeaterLayer.swift +2 -0
  30. package/Sources/Private/CoreAnimation/Layers/ShapeLayer.swift +11 -13
  31. package/Sources/Private/CoreAnimation/Layers/SolidLayer.swift +20 -5
  32. package/Sources/Private/CoreAnimation/Layers/TextLayer.swift +13 -3
  33. package/Sources/Private/CoreAnimation/ValueProviderStore.swift +6 -4
  34. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Diffing/Collection+Diff.swift +263 -0
  35. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Diffing/Diffable.swift +18 -0
  36. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Diffing/DiffableSection.swift +16 -0
  37. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Diffing/IndexChangeset.swift +187 -0
  38. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Diffing/SectionedChangeset.swift +32 -0
  39. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Logging/EpoxyLogger.swift +99 -0
  40. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Model/CallbackContextEpoxyModeled.swift +8 -0
  41. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Model/EpoxyModelArrayBuilder.swift +48 -0
  42. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Model/EpoxyModelProperty.swift +158 -0
  43. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Model/EpoxyModelStorage.swift +88 -0
  44. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Model/EpoxyModeled.swift +54 -0
  45. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Model/Internal/AnyEpoxyModelProperty.swift +29 -0
  46. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Model/Internal/ClassReference.swift +39 -0
  47. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Model/Providers/AnimatedProviding.swift +10 -0
  48. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Model/Providers/DataIDProviding.swift +57 -0
  49. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Model/Providers/DidDisplayProviding.swift +41 -0
  50. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Model/Providers/DidEndDisplayingProviding.swift +41 -0
  51. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Model/Providers/DidSelectProviding.swift +36 -0
  52. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Model/Providers/ErasedContentProviding.swift +49 -0
  53. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Model/Providers/MakeViewProviding.swift +60 -0
  54. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Model/Providers/SetBehaviorsProviding.swift +38 -0
  55. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Model/Providers/SetContentProviding.swift +38 -0
  56. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Model/Providers/StyleIDProviding.swift +37 -0
  57. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Model/Providers/TraitCollectionProviding.swift +14 -0
  58. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Model/Providers/ViewDifferentiatorProviding.swift +34 -0
  59. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Model/Providers/ViewProviding.swift +13 -0
  60. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Model/Providers/WillDisplayProviding.swift +41 -0
  61. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Model/ViewEpoxyModeled.swift +10 -0
  62. package/Sources/Private/EmbeddedLibraries/EpoxyCore/README.md +31 -0
  63. package/Sources/Private/EmbeddedLibraries/EpoxyCore/SwiftUI/EpoxySwiftUIHostingController.swift +46 -0
  64. package/Sources/Private/EmbeddedLibraries/EpoxyCore/SwiftUI/EpoxySwiftUIHostingView.swift +391 -0
  65. package/Sources/Private/EmbeddedLibraries/EpoxyCore/SwiftUI/EpoxySwiftUIIntrinsicContentSizeInvalidator.swift +44 -0
  66. package/Sources/Private/EmbeddedLibraries/EpoxyCore/SwiftUI/EpoxySwiftUILayoutMargins.swift +51 -0
  67. package/Sources/Private/EmbeddedLibraries/EpoxyCore/SwiftUI/EpoxyableView+SwiftUIView.swift +172 -0
  68. package/Sources/Private/EmbeddedLibraries/EpoxyCore/SwiftUI/LayoutUtilities/MeasuringViewRepresentable.swift +128 -0
  69. package/Sources/Private/EmbeddedLibraries/EpoxyCore/SwiftUI/LayoutUtilities/SwiftUIMeasurementContainer.swift +452 -0
  70. package/Sources/Private/EmbeddedLibraries/EpoxyCore/SwiftUI/SwiftUIView.swift +148 -0
  71. package/Sources/Private/EmbeddedLibraries/EpoxyCore/SwiftUI/UIView+SwiftUIView.swift +40 -0
  72. package/Sources/Private/EmbeddedLibraries/EpoxyCore/SwiftUI/UIViewConfiguringSwiftUIView.swift +43 -0
  73. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Views/BehaviorsConfigurableView.swift +45 -0
  74. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Views/ContentConfigurableView.swift +36 -0
  75. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Views/EpoxyableView.swift +5 -0
  76. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Views/StyledView.swift +42 -0
  77. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Views/ViewType.swift +51 -0
  78. package/Sources/Private/EmbeddedLibraries/README.md +27 -0
  79. package/Sources/Private/{Model/DotLottie → EmbeddedLibraries}/ZipFoundation/Archive+BackingConfiguration.swift +4 -4
  80. package/Sources/Private/{Model/DotLottie → EmbeddedLibraries}/ZipFoundation/Archive+MemoryFile.swift +2 -2
  81. package/Sources/Private/{Model/DotLottie → EmbeddedLibraries}/ZipFoundation/Archive+Writing.swift +4 -4
  82. package/Sources/Private/{Model/DotLottie → EmbeddedLibraries}/ZipFoundation/Archive.swift +8 -7
  83. package/Sources/Private/{Model/DotLottie → EmbeddedLibraries}/ZipFoundation/Data+Compression.swift +5 -5
  84. package/Sources/Private/{Model/DotLottie → EmbeddedLibraries}/ZipFoundation/FileManager+ZIP.swift +4 -4
  85. package/Sources/Private/MainThread/LayerContainers/CompLayers/ImageCompositionLayer.swift +6 -0
  86. package/Sources/Private/MainThread/LayerContainers/CompLayers/MaskContainerLayer.swift +3 -1
  87. package/Sources/Private/MainThread/LayerContainers/CompLayers/PreCompositionLayer.swift +18 -5
  88. package/Sources/Private/MainThread/LayerContainers/CompLayers/TextCompositionLayer.swift +31 -3
  89. package/Sources/Private/MainThread/LayerContainers/MainThreadAnimationLayer.swift +33 -8
  90. package/Sources/Private/MainThread/LayerContainers/Utility/CachedImageProvider.swift +8 -1
  91. package/Sources/Private/MainThread/LayerContainers/Utility/CompositionLayersInitializer.swift +13 -4
  92. package/Sources/Private/MainThread/LayerContainers/Utility/LayerFontProvider.swift +2 -2
  93. package/Sources/Private/MainThread/LayerContainers/Utility/LayerImageProvider.swift +1 -0
  94. package/Sources/Private/MainThread/LayerContainers/Utility/LayerTextProvider.swift +4 -4
  95. package/Sources/Private/MainThread/NodeRenderSystem/NodeProperties/Protocols/NodePropertyMap.swift +1 -1
  96. package/Sources/Private/MainThread/NodeRenderSystem/Nodes/ModifierNodes/TrimPathNode.swift +3 -1
  97. package/Sources/Private/MainThread/NodeRenderSystem/Nodes/OutputNodes/Renderables/GradientFillRenderer.swift +2 -1
  98. package/Sources/Private/MainThread/NodeRenderSystem/Nodes/OutputNodes/Renderables/LegacyGradientFillRenderer.swift +2 -1
  99. package/Sources/Private/MainThread/NodeRenderSystem/Nodes/RenderNodes/GradientFillNode.swift +1 -1
  100. package/Sources/Private/MainThread/NodeRenderSystem/Nodes/RenderNodes/GradientStrokeNode.swift +2 -2
  101. package/Sources/Private/MainThread/NodeRenderSystem/Nodes/RenderNodes/StrokeNode.swift +1 -1
  102. package/Sources/Private/MainThread/NodeRenderSystem/Nodes/Text/TextAnimatorNode.swift +1 -1
  103. package/Sources/Private/MainThread/NodeRenderSystem/RenderLayers/ShapeContainerLayer.swift +6 -2
  104. package/Sources/Private/Model/Assets/Asset.swift +8 -0
  105. package/Sources/Private/Model/Assets/AssetLibrary.swift +2 -2
  106. package/Sources/Private/Model/Assets/ImageAsset.swift +3 -3
  107. package/Sources/Private/Model/DotLottie/DotLottieAnimation.swift +16 -2
  108. package/Sources/Private/Model/DotLottie/DotLottieImageProvider.swift +20 -7
  109. package/Sources/Private/Model/Extensions/KeyedDecodingContainerExtensions.swift +26 -0
  110. package/Sources/Private/Model/Keyframes/KeyframeGroup.swift +8 -5
  111. package/Sources/Private/Model/LayerEffects/DropShadowEffect.swift +45 -0
  112. package/Sources/Private/Model/LayerEffects/EffectValues/ColorEffectValue.swift +38 -0
  113. package/Sources/Private/Model/LayerEffects/EffectValues/EffectValue.swift +98 -0
  114. package/Sources/Private/Model/LayerEffects/EffectValues/Vector1DEffectValue.swift +38 -0
  115. package/Sources/Private/Model/LayerEffects/LayerEffect.swift +103 -0
  116. package/Sources/Private/Model/LayerStyles/DropShadowStyle.swift +72 -0
  117. package/Sources/Private/Model/LayerStyles/LayerStyle.swift +85 -0
  118. package/Sources/Private/Model/Layers/LayerModel.swift +27 -0
  119. package/Sources/Private/Model/Objects/Marker.swift +1 -1
  120. package/Sources/Private/Model/Objects/Transform.swift +1 -2
  121. package/Sources/Private/Model/ShapeItems/GradientFill.swift +1 -1
  122. package/Sources/Private/Model/ShapeItems/GradientStroke.swift +2 -2
  123. package/Sources/Private/Model/ShapeItems/Merge.swift +1 -1
  124. package/Sources/Private/Model/ShapeItems/ShapeItem.swift +31 -26
  125. package/Sources/Private/Model/ShapeItems/ShapeTransform.swift +0 -9
  126. package/Sources/Private/Model/ShapeItems/Star.swift +1 -1
  127. package/Sources/Private/Model/Text/Font.swift +2 -2
  128. package/Sources/Private/Model/Text/Glyph.swift +1 -1
  129. package/Sources/Private/RootAnimationLayer.swift +2 -2
  130. package/Sources/Private/Utility/Debugging/LayerDebugging.swift +3 -1
  131. package/Sources/Private/Utility/Extensions/AnimationKeypathExtension.swift +32 -2
  132. package/Sources/Private/Utility/Helpers/AnimationContext.swift +4 -2
  133. package/Sources/Private/Utility/Helpers/AnyEquatable.swift +24 -0
  134. package/Sources/Private/Utility/Helpers/Binding+Map.swift +18 -0
  135. package/Sources/Private/Utility/Helpers/View+ValueChanged.swift +20 -0
  136. package/Sources/Private/Utility/LottieAnimationSource.swift +41 -0
  137. package/Sources/Private/Utility/Primitives/BezierPath.swift +2 -2
  138. package/Sources/Private/Utility/Primitives/BezierPathRoundExtension.swift +2 -2
  139. package/Sources/Private/Utility/Primitives/VectorsExtensions.swift +1 -1
  140. package/Sources/Public/Animation/LottieAnimation.swift +21 -2
  141. package/Sources/Public/Animation/LottieAnimationLayer.swift +1464 -0
  142. package/Sources/Public/Animation/LottieAnimationView.swift +259 -736
  143. package/Sources/Public/Animation/LottiePlaybackMode.swift +117 -0
  144. package/Sources/Public/Animation/LottieView.swift +462 -0
  145. package/Sources/Public/AnimationCache/AnimationCacheProvider.swift +2 -1
  146. package/Sources/Public/AnimationCache/DefaultAnimationCache.swift +5 -6
  147. package/Sources/Public/Configuration/DecodingStrategy.swift +15 -0
  148. package/Sources/Public/Configuration/LottieConfiguration.swift +47 -0
  149. package/Sources/Public/Configuration/ReducedMotionOption.swift +114 -0
  150. package/Sources/Public/{LottieConfiguration.swift → Configuration/RenderingEngineOption.swift} +2 -57
  151. package/Sources/Public/{iOS → Controls}/AnimatedButton.swift +56 -13
  152. package/Sources/Public/{iOS → Controls}/AnimatedControl.swift +80 -8
  153. package/Sources/Public/{iOS → Controls}/AnimatedSwitch.swift +71 -31
  154. package/Sources/Public/Controls/LottieButton.swift +122 -0
  155. package/Sources/Public/Controls/LottieSwitch.swift +144 -0
  156. package/Sources/Public/Controls/LottieViewType.swift +79 -0
  157. package/Sources/Public/DotLottie/DotLottieConfiguration.swift +24 -0
  158. package/Sources/Public/DotLottie/DotLottieFile.swift +21 -6
  159. package/Sources/Public/DotLottie/DotLottieFileHelpers.swift +79 -0
  160. package/Sources/Public/DynamicProperties/AnimationKeypath.swift +11 -1
  161. package/Sources/Public/DynamicProperties/ValueProviders/ColorValueProvider.swift +14 -0
  162. package/Sources/Public/DynamicProperties/ValueProviders/FloatValueProvider.swift +13 -0
  163. package/Sources/Public/DynamicProperties/ValueProviders/GradientValueProvider.swift +22 -5
  164. package/Sources/Public/DynamicProperties/ValueProviders/PointValueProvider.swift +14 -0
  165. package/Sources/Public/DynamicProperties/ValueProviders/SizeValueProvider.swift +13 -0
  166. package/Sources/Public/FontProvider/AnimationFontProvider.swift +8 -0
  167. package/Sources/Public/ImageProvider/AnimationImageProvider.swift +24 -0
  168. package/Sources/Public/Keyframes/Keyframe.swift +6 -0
  169. package/Sources/Public/Primitives/Vectors.swift +2 -2
  170. package/Sources/Public/TextProvider/AnimationTextProvider.swift +79 -6
  171. package/Sources/Public/iOS/AnimationSubview.swift +1 -1
  172. package/Sources/Public/iOS/BundleImageProvider.swift +16 -2
  173. package/Sources/Public/iOS/Compatibility/CompatibleAnimationView.swift +6 -4
  174. package/Sources/Public/iOS/FilepathImageProvider.swift +22 -3
  175. package/Sources/Public/iOS/LottieAnimationViewBase.swift +7 -1
  176. package/Sources/Public/macOS/BundleImageProvider.macOS.swift +15 -1
  177. package/Sources/Public/macOS/FilepathImageProvider.macOS.swift +21 -2
  178. package/lottie-ios.podspec +2 -1
  179. package/package.json +1 -1
  180. package/Sources/Private/Model/DotLottie/DotLottieConfiguration.swift +0 -15
  181. /package/Sources/Private/{Model/DotLottie → EmbeddedLibraries}/ZipFoundation/Archive+Helpers.swift +0 -0
  182. /package/Sources/Private/{Model/DotLottie → EmbeddedLibraries}/ZipFoundation/Archive+Progress.swift +0 -0
  183. /package/Sources/Private/{Model/DotLottie → EmbeddedLibraries}/ZipFoundation/Archive+Reading.swift +0 -0
  184. /package/Sources/Private/{Model/DotLottie → EmbeddedLibraries}/ZipFoundation/Archive+ReadingDeprecated.swift +0 -0
  185. /package/Sources/Private/{Model/DotLottie → EmbeddedLibraries}/ZipFoundation/Archive+WritingDeprecated.swift +0 -0
  186. /package/Sources/Private/{Model/DotLottie → EmbeddedLibraries}/ZipFoundation/Archive+ZIP64.swift +0 -0
  187. /package/Sources/Private/{Model/DotLottie → EmbeddedLibraries}/ZipFoundation/Data+CompressionDeprecated.swift +0 -0
  188. /package/Sources/Private/{Model/DotLottie → EmbeddedLibraries}/ZipFoundation/Data+Serialization.swift +0 -0
  189. /package/Sources/Private/{Model/DotLottie → EmbeddedLibraries}/ZipFoundation/Entry+Serialization.swift +0 -0
  190. /package/Sources/Private/{Model/DotLottie → EmbeddedLibraries}/ZipFoundation/Entry+ZIP64.swift +0 -0
  191. /package/Sources/Private/{Model/DotLottie → EmbeddedLibraries}/ZipFoundation/Entry.swift +0 -0
  192. /package/Sources/Private/{Model/DotLottie → EmbeddedLibraries}/ZipFoundation/README.md +0 -0
  193. /package/Sources/Private/{Model/DotLottie → EmbeddedLibraries}/ZipFoundation/URL+ZIP.swift +0 -0
@@ -14,7 +14,6 @@ jobs:
14
14
  fail-fast: false
15
15
  matrix:
16
16
  xcode:
17
- - '13.2.1' # Swift 5.5
18
17
  - '13.4.1' # Swift 5.6
19
18
  steps:
20
19
  - uses: actions/checkout@v2
@@ -22,7 +21,7 @@ jobs:
22
21
  with:
23
22
  xcode: ${{ matrix.xcode }}
24
23
  - name: Build Package
25
- run: bundle exec rake build:package:all
24
+ run: SKIP_VISION_OS=true bundle exec rake build:package:all
26
25
 
27
26
  build-package-macos-13:
28
27
  name: "Build Package"
@@ -33,6 +32,22 @@ jobs:
33
32
  xcode:
34
33
  - '14.2' # Swift 5.7
35
34
  - '14.3' # Swift 5.8
35
+ steps:
36
+ - uses: actions/checkout@v2
37
+ - uses: ./.github/actions/setup
38
+ with:
39
+ xcode: ${{ matrix.xcode }}
40
+ - name: Build Package
41
+ run: SKIP_VISION_OS=true bundle exec rake build:package:all
42
+
43
+ build-package-macos-13-xcode-15:
44
+ name: "Build Package"
45
+ runs-on: macos-13
46
+ strategy:
47
+ fail-fast: false
48
+ matrix:
49
+ xcode:
50
+ - '15.0' # Swift 5.9, first version that includes visionOS SDK.
36
51
  steps:
37
52
  - uses: actions/checkout@v2
38
53
  - uses: ./.github/actions/setup
@@ -47,6 +62,8 @@ jobs:
47
62
  steps:
48
63
  - uses: actions/checkout@v2
49
64
  - uses: ./.github/actions/setup
65
+ with:
66
+ xcode: '15.0' # Swift 5.9
50
67
  - name: Build Example
51
68
  run: bundle exec rake build:example:all
52
69
 
@@ -70,19 +87,61 @@ jobs:
70
87
  name: TestArtifacts
71
88
  path: Tests/Artifacts
72
89
 
73
- build-xcframework:
74
- name: "Build XCFramework"
75
- runs-on: macos-12
90
+ emerge-upload:
91
+ name: "Emerge Upload"
92
+ runs-on: macos-13
76
93
  steps:
77
94
  - uses: actions/checkout@v2
78
95
  - uses: ./.github/actions/setup
79
- with:
96
+ - name: Build Package
97
+ run: bundle exec rake emerge:upload
98
+ env:
99
+ EMERGE_API_TOKEN: ${{ secrets.EMERGE_API_TOKEN }}
100
+ PR_NUMBER: ${{ github.event.number }}
101
+
102
+ build-xcframework-macos-12:
103
+ name: "Build XCFramework"
104
+ runs-on: macos-12
105
+ strategy:
106
+ matrix:
107
+ xcode:
80
108
  # XCFrameworks are forwards-compatible but not backwards-compatible.
81
109
  # The Xcode version we use for this job is that oldest Xcode version that
82
110
  # will be able to use these XCFrameworks and the lottie-spm package.
83
- xcode: '13.2.1' # Swift 5.5.2
111
+ - '13.4.1' # Swift 5.6.1
112
+ steps:
113
+ - uses: actions/checkout@v2
114
+ - uses: ./.github/actions/setup
115
+ with:
116
+ xcode: ${{ matrix.xcode }}
117
+ - name: Build XCFramework
118
+ run: SKIP_VISION_OS=true bundle exec rake build:xcframework[Lottie-Xcode-${{ matrix.xcode }}]
119
+ - name: Upload XCFramework
120
+ uses: actions/upload-artifact@v2
121
+ with:
122
+ name: BuildProducts
123
+ # The xcframework is at the path `.build/archives/Lottie.xcframework.zip`.
124
+ # GitHub always zips the artifacts before uploading, so if we uploaded the .xframework.zip
125
+ # directly then it would actually upload a double-zip (a .zip containing our `Lottie.xcframework.zip`).
126
+ # This is confusing especially since macOS Archive Utility automatially unzips both layers at once.
127
+ # Instead, we upload the entire archives folder, resulting in an `XCFramework.zip` that unzips
128
+ # to an `archives` directory containing our `Lottie.xcframework.zip`.
129
+ path: .build/archives
130
+
131
+ build-xcframework-macos-13:
132
+ name: "Build XCFramework"
133
+ runs-on: macos-13
134
+ strategy:
135
+ matrix:
136
+ xcode:
137
+ - '15.0' # Swift 5.9, and the first Xcode version with the visionOS SDK.
138
+ steps:
139
+ - uses: actions/checkout@v2
140
+ - uses: ./.github/actions/setup
141
+ with:
142
+ xcode: ${{ matrix.xcode }}
84
143
  - name: Build XCFramework
85
- run: bundle exec rake build:xcframework
144
+ run: bundle exec rake build:xcframework[Lottie-Xcode-${{ matrix.xcode }}]
86
145
  - name: Upload XCFramework
87
146
  uses: actions/upload-artifact@v2
88
147
  with:
@@ -106,17 +165,54 @@ jobs:
106
165
  - name: Lint CocoaPod Podspec
107
166
  run: bundle exec rake lint:podspec
108
167
 
109
- spm:
110
- name: "Test Swift Package Manager support"
168
+ spm-xcode-15:
169
+ name: "Test Swift Package Manager"
111
170
  runs-on: macos-13
171
+ strategy:
172
+ matrix:
173
+ xcode:
174
+ - '15.0' # Swift 5.9, first version with visionOS SDK.
112
175
  steps:
113
176
  - uses: actions/checkout@v2
114
177
  - uses: ./.github/actions/setup
115
178
  with:
116
179
  install-mint: true
180
+ xcode: ${{ matrix.xcode }}
117
181
  - name: Test Swift Package Manager support
118
182
  run: bundle exec rake test:spm
119
183
 
184
+ spm-xcode-14:
185
+ name: "Test Swift Package Manager"
186
+ runs-on: macos-13
187
+ strategy:
188
+ matrix:
189
+ xcode:
190
+ - '14.3' # Swift 5.8
191
+ steps:
192
+ - uses: actions/checkout@v2
193
+ - uses: ./.github/actions/setup
194
+ with:
195
+ install-mint: true
196
+ xcode: ${{ matrix.xcode }}
197
+ - name: Test Swift Package Manager support
198
+ run: SKIP_VISION_OS=true bundle exec rake test:spm
199
+
200
+ spm-xcode-13:
201
+ name: "Test Swift Package Manager"
202
+ runs-on: macos-12
203
+ strategy:
204
+ matrix:
205
+ xcode:
206
+ - '13.4.1' # Swift 5.6
207
+ steps:
208
+ - uses: actions/checkout@v2
209
+ - uses: ./.github/actions/setup
210
+ with:
211
+ install-mint: true
212
+ xcode: ${{ matrix.xcode }}
213
+ - name: Test Swift Package Manager support
214
+ run: SKIP_VISION_OS=true bundle exec rake test:spm
215
+
120
216
  carthage:
121
217
  name: "Test Carthage support"
122
218
  runs-on: macos-13
@@ -126,6 +222,7 @@ jobs:
126
222
  with:
127
223
  install-mint: true
128
224
  install-carthage: true
225
+ xcode: '14.3' # Swift 5.8
129
226
  - name: Test Carthage support
130
227
  run: bundle exec rake test:carthage
131
228
 
@@ -136,4 +233,13 @@ jobs:
136
233
  - uses: actions/checkout@v2
137
234
  - uses: ./.github/actions/setup
138
235
  - name: Lint Swift
139
- run: bundle exec rake lint:swift
236
+ run: bundle exec rake lint:swift
237
+
238
+ embedded-libraries:
239
+ name: "Lint Embedded Libraries"
240
+ runs-on: macos-13
241
+ steps:
242
+ - uses: actions/checkout@v2
243
+ - uses: ./.github/actions/setup
244
+ - name: Lint Embedded Libraries
245
+ run: bundle exec rake lint:EmbeddedLibraries
package/Gemfile CHANGED
@@ -1,4 +1,5 @@
1
1
  source 'https://rubygems.org' do
2
2
  gem 'cocoapods', '~> 1.11.0'
3
3
  gem "rake", "~> 13.0.0"
4
+ gem 'git', '~> 1.18'
4
5
  end
package/Gemfile.lock CHANGED
@@ -65,6 +65,9 @@ GEM
65
65
  fourflusher (2.3.1)
66
66
  fuzzy_match (2.0.4)
67
67
  gh_inspector (1.1.3)
68
+ git (1.18.0)
69
+ addressable (~> 2.8)
70
+ rchardet (~> 1.8)
68
71
  httpclient (2.8.3)
69
72
  i18n (1.8.11)
70
73
  concurrent-ruby (~> 1.0)
@@ -76,6 +79,7 @@ GEM
76
79
  netrc (0.11.0)
77
80
  public_suffix (4.0.6)
78
81
  rake (13.0.6)
82
+ rchardet (1.8.0)
79
83
  rexml (3.2.5)
80
84
  ruby-macho (2.5.1)
81
85
  typhoeus (1.4.0)
@@ -96,6 +100,7 @@ PLATFORMS
96
100
 
97
101
  DEPENDENCIES
98
102
  cocoapods (~> 1.11.0)!
103
+ git (~> 1.18)!
99
104
  rake (~> 13.0.0)!
100
105
 
101
106
  BUNDLED WITH