lottie-ios 4.5.1 → 4.6.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 (218) hide show
  1. package/.github/workflows/main.yml +39 -58
  2. package/.github/workflows/stale_issues.yml +1 -1
  3. package/Lottie.xcodeproj/project.pbxproj +64 -2
  4. package/Lottie.xcworkspace/xcshareddata/swiftpm/Package.resolved +2 -2
  5. package/Lottie.xcworkspace/xcuserdata/cal.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  6. package/Package.resolved +2 -2
  7. package/Package.swift +8 -5
  8. package/README.md +1 -1
  9. package/Rakefile +32 -47
  10. package/Sources/Private/CoreAnimation/Animations/CALayer+addAnimation.swift +57 -50
  11. package/Sources/Private/CoreAnimation/Animations/CombinedShapeAnimation.swift +11 -10
  12. package/Sources/Private/CoreAnimation/Animations/CustomPathAnimation.swift +14 -11
  13. package/Sources/Private/CoreAnimation/Animations/DropShadowAnimation.swift +32 -13
  14. package/Sources/Private/CoreAnimation/Animations/EllipseAnimation.swift +14 -10
  15. package/Sources/Private/CoreAnimation/Animations/GradientAnimations.swift +67 -24
  16. package/Sources/Private/CoreAnimation/Animations/LayerProperty.swift +79 -40
  17. package/Sources/Private/CoreAnimation/Animations/OpacityAnimation.swift +2 -1
  18. package/Sources/Private/CoreAnimation/Animations/RectangleAnimation.swift +15 -10
  19. package/Sources/Private/CoreAnimation/Animations/ShapeAnimation.swift +22 -12
  20. package/Sources/Private/CoreAnimation/Animations/StarAnimation.swift +22 -19
  21. package/Sources/Private/CoreAnimation/Animations/StrokeAnimation.swift +13 -5
  22. package/Sources/Private/CoreAnimation/Animations/TransformAnimations.swift +80 -43
  23. package/Sources/Private/CoreAnimation/Animations/VisibilityAnimation.swift +4 -4
  24. package/Sources/Private/CoreAnimation/CompatibilityTracker.swift +6 -7
  25. package/Sources/Private/CoreAnimation/CoreAnimationLayer.swift +55 -19
  26. package/Sources/Private/CoreAnimation/Extensions/KeyframeGroup+exactlyOneKeyframe.swift +4 -5
  27. package/Sources/Private/CoreAnimation/Extensions/Keyframes+combined.swift +67 -50
  28. package/Sources/Private/CoreAnimation/Extensions/Keyframes+timeRemapping.swift +4 -4
  29. package/Sources/Private/CoreAnimation/Layers/AnimationLayer.swift +8 -8
  30. package/Sources/Private/CoreAnimation/Layers/BaseAnimationLayer.swift +14 -1
  31. package/Sources/Private/CoreAnimation/Layers/BaseCompositionLayer.swift +12 -2
  32. package/Sources/Private/CoreAnimation/Layers/CALayer+setupLayerHierarchy.swift +12 -12
  33. package/Sources/Private/CoreAnimation/Layers/GradientRenderLayer.swift +8 -4
  34. package/Sources/Private/CoreAnimation/Layers/ImageLayer.swift +4 -3
  35. package/Sources/Private/CoreAnimation/Layers/InfiniteOpaqueAnimationLayer.swift +2 -1
  36. package/Sources/Private/CoreAnimation/Layers/MaskCompositionLayer.swift +2 -1
  37. package/Sources/Private/CoreAnimation/Layers/PreCompLayer.swift +4 -2
  38. package/Sources/Private/CoreAnimation/Layers/RepeaterLayer.swift +21 -6
  39. package/Sources/Private/CoreAnimation/Layers/ShapeItemLayer.swift +28 -26
  40. package/Sources/Private/CoreAnimation/Layers/ShapeLayer.swift +34 -26
  41. package/Sources/Private/CoreAnimation/Layers/SolidLayer.swift +2 -1
  42. package/Sources/Private/CoreAnimation/Layers/TextLayer.swift +47 -5
  43. package/Sources/Private/CoreAnimation/Layers/TransformLayer.swift +3 -1
  44. package/Sources/Private/CoreAnimation/ValueProviderStore.swift +6 -5
  45. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Diffing/Collection+Diff.swift +12 -8
  46. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Diffing/Diffable.swift +3 -2
  47. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Diffing/IndexChangeset.swift +6 -6
  48. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Diffing/SectionedChangeset.swift +0 -10
  49. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Logging/EpoxyLogger.swift +19 -16
  50. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Model/EpoxyModelProperty.swift +6 -6
  51. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Model/EpoxyModeled.swift +1 -1
  52. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Model/Internal/AnyEpoxyModelProperty.swift +4 -2
  53. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Model/Providers/DataIDProviding.swift +2 -1
  54. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Model/Providers/DidEndDisplayingProviding.swift +2 -1
  55. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Model/Providers/ErasedContentProviding.swift +5 -5
  56. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Model/Providers/MakeViewProviding.swift +2 -1
  57. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Model/Providers/StyleIDProviding.swift +2 -1
  58. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Model/Providers/ViewDifferentiatorProviding.swift +1 -1
  59. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Model/Providers/WillDisplayProviding.swift +2 -2
  60. package/Sources/Private/EmbeddedLibraries/EpoxyCore/README.md +2 -2
  61. package/Sources/Private/EmbeddedLibraries/EpoxyCore/SwiftUI/EpoxySwiftUIIntrinsicContentSizeInvalidator.swift +1 -12
  62. package/Sources/Private/EmbeddedLibraries/EpoxyCore/SwiftUI/EpoxySwiftUILayoutMargins.swift +1 -12
  63. package/Sources/Private/EmbeddedLibraries/EpoxyCore/SwiftUI/EpoxyableView+SwiftUIView.swift +6 -11
  64. package/Sources/Private/EmbeddedLibraries/EpoxyCore/SwiftUI/LayoutUtilities/MeasuringViewRepresentable.swift +17 -16
  65. package/Sources/Private/EmbeddedLibraries/EpoxyCore/SwiftUI/LayoutUtilities/SwiftUIMeasurementContainer.swift +25 -17
  66. package/Sources/Private/EmbeddedLibraries/EpoxyCore/SwiftUI/SwiftUIView.swift +5 -5
  67. package/Sources/Private/EmbeddedLibraries/EpoxyCore/SwiftUI/UIView+SwiftUIView.swift +0 -2
  68. package/Sources/Private/EmbeddedLibraries/EpoxyCore/SwiftUI/UIViewConfiguringSwiftUIView.swift +0 -2
  69. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Views/StyledView.swift +3 -2
  70. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Views/ViewType.swift +3 -4
  71. package/Sources/Private/EmbeddedLibraries/LRUCache/LRUCache.swift +7 -6
  72. package/Sources/Private/EmbeddedLibraries/ZipFoundation/Archive+BackingConfiguration.swift +37 -39
  73. package/Sources/Private/EmbeddedLibraries/ZipFoundation/Archive+Deprecated.swift +23 -0
  74. package/Sources/Private/EmbeddedLibraries/ZipFoundation/Archive+Helpers.swift +55 -52
  75. package/Sources/Private/EmbeddedLibraries/ZipFoundation/Archive+MemoryFile.swift +82 -60
  76. package/Sources/Private/EmbeddedLibraries/ZipFoundation/Archive+Progress.swift +1 -1
  77. package/Sources/Private/EmbeddedLibraries/ZipFoundation/Archive+Reading.swift +28 -17
  78. package/Sources/Private/EmbeddedLibraries/ZipFoundation/Archive+ReadingDeprecated.swift +11 -10
  79. package/Sources/Private/EmbeddedLibraries/ZipFoundation/Archive+Writing.swift +78 -62
  80. package/Sources/Private/EmbeddedLibraries/ZipFoundation/Archive+WritingDeprecated.swift +21 -17
  81. package/Sources/Private/EmbeddedLibraries/ZipFoundation/Archive+ZIP64.swift +33 -12
  82. package/Sources/Private/EmbeddedLibraries/ZipFoundation/Archive.swift +44 -38
  83. package/Sources/Private/EmbeddedLibraries/ZipFoundation/Data+Compression.swift +271 -43
  84. package/Sources/Private/EmbeddedLibraries/ZipFoundation/Data+CompressionDeprecated.swift +7 -8
  85. package/Sources/Private/EmbeddedLibraries/ZipFoundation/Data+Serialization.swift +15 -17
  86. package/Sources/Private/EmbeddedLibraries/ZipFoundation/Date+ZIP.swift +101 -0
  87. package/Sources/Private/EmbeddedLibraries/ZipFoundation/Entry+Serialization.swift +5 -3
  88. package/Sources/Private/EmbeddedLibraries/ZipFoundation/Entry+ZIP64.swift +19 -22
  89. package/Sources/Private/EmbeddedLibraries/ZipFoundation/Entry.swift +333 -23
  90. package/Sources/Private/EmbeddedLibraries/ZipFoundation/FileManager+ZIP.swift +141 -104
  91. package/Sources/Private/EmbeddedLibraries/ZipFoundation/FileManager+ZIPDeprecated.swift +28 -0
  92. package/Sources/Private/EmbeddedLibraries/ZipFoundation/README.md +1 -1
  93. package/Sources/Private/EmbeddedLibraries/ZipFoundation/URL+ZIP.swift +6 -4
  94. package/Sources/Private/MainThread/LayerContainers/CompLayers/CompositionLayer.swift +1 -3
  95. package/Sources/Private/MainThread/LayerContainers/CompLayers/MaskContainerLayer.swift +6 -5
  96. package/Sources/Private/MainThread/LayerContainers/CompLayers/PreCompositionLayer.swift +4 -3
  97. package/Sources/Private/MainThread/LayerContainers/CompLayers/ShapeCompositionLayer.swift +3 -1
  98. package/Sources/Private/MainThread/LayerContainers/CompLayers/SolidCompositionLayer.swift +2 -1
  99. package/Sources/Private/MainThread/LayerContainers/CompLayers/TextCompositionLayer.swift +78 -11
  100. package/Sources/Private/MainThread/LayerContainers/MainThreadAnimationLayer.swift +44 -47
  101. package/Sources/Private/MainThread/LayerContainers/Utility/CachedImageProvider.swift +3 -5
  102. package/Sources/Private/MainThread/LayerContainers/Utility/CompositionLayersInitializer.swift +8 -6
  103. package/Sources/Private/MainThread/LayerContainers/Utility/CoreTextRenderLayer.swift +55 -27
  104. package/Sources/Private/MainThread/LayerContainers/Utility/LayerTransformNode.swift +3 -4
  105. package/Sources/Private/MainThread/NodeRenderSystem/Extensions/ItemsExtension.swift +45 -6
  106. package/Sources/Private/MainThread/NodeRenderSystem/NodeProperties/NodeProperty.swift +4 -2
  107. package/Sources/Private/MainThread/NodeRenderSystem/NodeProperties/Protocols/AnyNodeProperty.swift +6 -6
  108. package/Sources/Private/MainThread/NodeRenderSystem/NodeProperties/Protocols/AnyValueContainer.swift +3 -3
  109. package/Sources/Private/MainThread/NodeRenderSystem/NodeProperties/ValueContainer.swift +1 -1
  110. package/Sources/Private/MainThread/NodeRenderSystem/NodeProperties/ValueProviders/GroupInterpolator.swift +1 -1
  111. package/Sources/Private/MainThread/NodeRenderSystem/Nodes/LayerEffectNodes/DropShadowNode.swift +1 -1
  112. package/Sources/Private/MainThread/NodeRenderSystem/Nodes/LayerEffectNodes/LayerEffectNode.swift +2 -1
  113. package/Sources/Private/MainThread/NodeRenderSystem/Nodes/ModifierNodes/RoundedCornersNode.swift +2 -2
  114. package/Sources/Private/MainThread/NodeRenderSystem/Nodes/ModifierNodes/TrimPathNode.swift +4 -3
  115. package/Sources/Private/MainThread/NodeRenderSystem/Nodes/OutputNodes/GroupOutputNode.swift +1 -1
  116. package/Sources/Private/MainThread/NodeRenderSystem/Nodes/OutputNodes/PassThroughOutputNode.swift +1 -0
  117. package/Sources/Private/MainThread/NodeRenderSystem/Nodes/OutputNodes/PathOutputNode.swift +2 -2
  118. package/Sources/Private/MainThread/NodeRenderSystem/Nodes/OutputNodes/Renderables/GradientFillRenderer.swift +16 -9
  119. package/Sources/Private/MainThread/NodeRenderSystem/Nodes/OutputNodes/Renderables/LegacyGradientFillRenderer.swift +13 -7
  120. package/Sources/Private/MainThread/NodeRenderSystem/Nodes/PathNodes/EllipseNode.swift +16 -12
  121. package/Sources/Private/MainThread/NodeRenderSystem/Nodes/PathNodes/PolygonNode.swift +15 -12
  122. package/Sources/Private/MainThread/NodeRenderSystem/Nodes/PathNodes/RectNode.swift +66 -53
  123. package/Sources/Private/MainThread/NodeRenderSystem/Nodes/PathNodes/ShapeNode.swift +1 -2
  124. package/Sources/Private/MainThread/NodeRenderSystem/Nodes/PathNodes/StarNode.swift +10 -8
  125. package/Sources/Private/MainThread/NodeRenderSystem/Nodes/RenderContainers/GroupNode.swift +6 -9
  126. package/Sources/Private/MainThread/NodeRenderSystem/Nodes/RenderNodes/FillNode.swift +0 -2
  127. package/Sources/Private/MainThread/NodeRenderSystem/Nodes/RenderNodes/GradientFillNode.swift +0 -2
  128. package/Sources/Private/MainThread/NodeRenderSystem/Nodes/RenderNodes/GradientStrokeNode.swift +0 -2
  129. package/Sources/Private/MainThread/NodeRenderSystem/Nodes/RenderNodes/StrokeNode.swift +2 -3
  130. package/Sources/Private/MainThread/NodeRenderSystem/Nodes/Text/TextAnimatorNode.swift +3 -4
  131. package/Sources/Private/MainThread/NodeRenderSystem/Protocols/AnimatorNode.swift +8 -8
  132. package/Sources/Private/MainThread/NodeRenderSystem/Protocols/RenderNode.swift +2 -2
  133. package/Sources/Private/MainThread/NodeRenderSystem/RenderLayers/ShapeContainerLayer.swift +1 -1
  134. package/Sources/Private/Model/Assets/Asset.swift +1 -0
  135. package/Sources/Private/Model/Assets/ImageAsset.swift +4 -3
  136. package/Sources/Private/Model/DictionaryInitializable.swift +8 -10
  137. package/Sources/Private/Model/DotLottie/DotLottieImageProvider.swift +1 -1
  138. package/Sources/Private/Model/DotLottie/DotLottieUtils.swift +6 -1
  139. package/Sources/Private/Model/Extensions/Bundle.swift +10 -3
  140. package/Sources/Private/Model/Keyframes/KeyframeData.swift +4 -3
  141. package/Sources/Private/Model/Keyframes/KeyframeGroup.swift +22 -13
  142. package/Sources/Private/Model/LayerEffects/EffectValues/EffectValue.swift +2 -1
  143. package/Sources/Private/Model/LayerEffects/LayerEffect.swift +2 -1
  144. package/Sources/Private/Model/LayerStyles/LayerStyle.swift +2 -1
  145. package/Sources/Private/Model/Layers/LayerModel.swift +1 -1
  146. package/Sources/Private/Model/Objects/Transform.swift +4 -3
  147. package/Sources/Private/Model/ShapeItems/GradientStroke.swift +4 -3
  148. package/Sources/Private/Model/ShapeItems/RoundedCorners.swift +2 -1
  149. package/Sources/Private/Model/ShapeItems/ShapeItem.swift +5 -5
  150. package/Sources/Private/Model/ShapeItems/Stroke.swift +4 -3
  151. package/Sources/Private/Model/Text/Font.swift +9 -1
  152. package/Sources/Private/Model/Text/TextDocument.swift +22 -1
  153. package/Sources/Private/Utility/Debugging/LayerDebugging.swift +15 -6
  154. package/Sources/Private/Utility/Extensions/AnimationKeypathExtension.swift +4 -4
  155. package/Sources/Private/Utility/Extensions/CGColor+RGB.swift +4 -2
  156. package/Sources/Private/Utility/Extensions/MathKit.swift +25 -13
  157. package/Sources/Private/Utility/Extensions/StringExtensions.swift +2 -1
  158. package/Sources/Private/Utility/Helpers/AnimationContext.swift +16 -13
  159. package/Sources/Private/Utility/Helpers/AnyEquatable.swift +4 -3
  160. package/Sources/Private/Utility/Interpolatable/InterpolatableExtensions.swift +5 -2
  161. package/Sources/Private/Utility/Interpolatable/KeyframeExtensions.swift +2 -1
  162. package/Sources/Private/Utility/Interpolatable/KeyframeInterpolator.swift +1 -1
  163. package/Sources/Private/Utility/Primitives/BezierPath.swift +18 -9
  164. package/Sources/Private/Utility/Primitives/BezierPathRoundExtension.swift +8 -3
  165. package/Sources/Private/Utility/Primitives/CompoundBezierPath.swift +4 -2
  166. package/Sources/Private/Utility/Primitives/CurveVertex.swift +11 -5
  167. package/Sources/Private/Utility/Primitives/PathElement.swift +5 -2
  168. package/Sources/Private/Utility/Primitives/UnitBezier.swift +5 -1
  169. package/Sources/Private/Utility/Primitives/VectorsExtensions.swift +13 -8
  170. package/Sources/Public/Animation/LottieAnimation.swift +2 -2
  171. package/Sources/Public/Animation/LottieAnimationHelpers.swift +48 -51
  172. package/Sources/Public/Animation/LottieAnimationLayer.swift +124 -74
  173. package/Sources/Public/Animation/LottieAnimationView.swift +70 -43
  174. package/Sources/Public/Animation/LottieAnimationViewInitializers.swift +20 -20
  175. package/Sources/Public/Animation/LottiePlaybackMode.swift +20 -14
  176. package/Sources/Public/Animation/LottieView.swift +40 -28
  177. package/Sources/Public/AnimationCache/DefaultAnimationCache.swift +1 -1
  178. package/Sources/Public/Configuration/LottieConfiguration.swift +9 -2
  179. package/Sources/Public/Configuration/LottieURLSession.swift +31 -0
  180. package/Sources/Public/Configuration/ReducedMotionOption.swift +16 -2
  181. package/Sources/Public/Configuration/RenderingEngineOption.swift +6 -2
  182. package/Sources/Public/Controls/AnimatedButton.swift +4 -3
  183. package/Sources/Public/Controls/AnimatedControl.swift +7 -9
  184. package/Sources/Public/Controls/AnimatedSwitch.swift +10 -10
  185. package/Sources/Public/Controls/LottieButton.swift +6 -9
  186. package/Sources/Public/Controls/LottieSwitch.swift +10 -11
  187. package/Sources/Public/DotLottie/Cache/DotLottieCache.swift +1 -1
  188. package/Sources/Public/DotLottie/DotLottieFile.swift +45 -13
  189. package/Sources/Public/DotLottie/DotLottieFileHelpers.swift +62 -49
  190. package/Sources/Public/DynamicProperties/AnyValueProvider.swift +2 -1
  191. package/Sources/Public/DynamicProperties/ValueProviders/ColorValueProvider.swift +0 -2
  192. package/Sources/Public/DynamicProperties/ValueProviders/FloatValueProvider.swift +0 -2
  193. package/Sources/Public/DynamicProperties/ValueProviders/GradientValueProvider.swift +6 -8
  194. package/Sources/Public/DynamicProperties/ValueProviders/PointValueProvider.swift +0 -2
  195. package/Sources/Public/DynamicProperties/ValueProviders/SizeValueProvider.swift +0 -2
  196. package/Sources/Public/Keyframes/Interpolatable.swift +37 -31
  197. package/Sources/Public/Keyframes/Keyframe.swift +4 -4
  198. package/Sources/Public/Logging/LottieLogger.swift +16 -15
  199. package/Sources/Public/Primitives/LottieColor.swift +5 -5
  200. package/Sources/Public/Primitives/Vectors.swift +4 -4
  201. package/Sources/Public/TextProvider/AnimationTextProvider.swift +11 -0
  202. package/Sources/Public/iOS/BundleImageProvider.swift +1 -1
  203. package/Sources/Public/iOS/Compatibility/CompatibleAnimationView.swift +63 -39
  204. package/Sources/Public/iOS/Compatibility/CompatibleFontProvider.swift +41 -0
  205. package/Sources/Public/iOS/Compatibility/CompatibleImageProvider.swift +43 -0
  206. package/Sources/Public/iOS/FilepathImageProvider.swift +1 -1
  207. package/Sources/Public/iOS/LottieAnimationViewBase.swift +4 -2
  208. package/Sources/Public/iOS/UIColorExtension.swift +4 -1
  209. package/Sources/Public/macOS/BundleImageProvider.macOS.swift +1 -1
  210. package/Sources/Public/macOS/FilepathImageProvider.macOS.swift +1 -1
  211. package/Version.xcconfig +2 -2
  212. package/lottie-ios.podspec +1 -1
  213. package/package.json +1 -1
  214. package/Lottie.xcworkspace/xcuserdata/calstephens.xcuserdatad/IDEFindNavigatorScopes.plist +0 -5
  215. package/Lottie.xcworkspace/xcuserdata/calstephens.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  216. package/Lottie.xcworkspace/xcuserdata/calstephens.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +0 -24
  217. package/Lottie.xcworkspace/xcuserdata/calstephens.xcuserdatad/xcdebugger/Expressions.xcexplist +0 -15
  218. /package/Lottie.xcodeproj/xcuserdata/{calstephens.xcuserdatad → cal.xcuserdatad}/xcschemes/xcschememanagement.plist +0 -0
@@ -6,35 +6,21 @@ on:
6
6
  pull_request:
7
7
  branches: [ master ]
8
8
 
9
- jobs:
10
- build-package-no-visionOS:
11
- name: "Build Package"
12
- runs-on: macos-14
13
- strategy:
14
- fail-fast: false
15
- matrix:
16
- xcode:
17
- - '15.0.1' # Swift 5.9, but no visionOS support
18
- steps:
19
- - uses: actions/checkout@v4
20
- - uses: ./.github/actions/setup
21
- with:
22
- xcode: ${{ matrix.xcode }}
23
- - name: Build Package
24
- # Only Xcode 15.2 and later support visionOS, so exclude it on earlier versions.
25
- run: SKIP_VISION_OS=true bundle exec rake build:package:all
9
+ permissions:
10
+ contents: read
26
11
 
12
+ jobs:
27
13
  build-package:
28
14
  name: "Build Package"
29
- runs-on: macos-14
15
+ runs-on: macos-15
30
16
  strategy:
31
17
  fail-fast: false
32
18
  matrix:
33
19
  xcode:
34
- - '15.2' # Swift 5.9
35
- - '15.3' # Swift 5.10
20
+ - '16.4' # Swift 6.1
21
+ - '26.1.1' # Swift 6.2
36
22
  steps:
37
- - uses: actions/checkout@v4
23
+ - uses: actions/checkout@v6
38
24
  - uses: ./.github/actions/setup
39
25
  with:
40
26
  xcode: ${{ matrix.xcode }}
@@ -44,23 +30,23 @@ jobs:
44
30
 
45
31
  build-example:
46
32
  name: "Build Example App"
47
- runs-on: macos-14
33
+ runs-on: macos-15
48
34
  steps:
49
- - uses: actions/checkout@v4
35
+ - uses: actions/checkout@v6
50
36
  - uses: ./.github/actions/setup
51
37
  with:
52
- xcode: '15.3' # Swift 5.10
38
+ xcode: '26.1.1' # Swift 6.2
53
39
  - name: Build Example
54
40
  run: bundle exec rake build:example:all
55
41
 
56
42
  test-package:
57
43
  name: "Test Package"
58
- runs-on: macos-14
44
+ runs-on: macos-15
59
45
  steps:
60
- - uses: actions/checkout@v4
46
+ - uses: actions/checkout@v6
61
47
  - uses: ./.github/actions/setup
62
48
  with:
63
- xcode: '15.3' # Swift 5.10
49
+ xcode: '16.4' # Swift 6.1
64
50
  - name: Test Package
65
51
  run: bundle exec rake test:package
66
52
  - name: Process test artifacts
@@ -68,16 +54,16 @@ jobs:
68
54
  run: bundle exec rake test:process
69
55
  - name: Upload artifacts
70
56
  if: always()
71
- uses: actions/upload-artifact@v4
57
+ uses: actions/upload-artifact@v6
72
58
  with:
73
59
  name: TestArtifacts
74
60
  path: Tests/Artifacts
75
61
 
76
62
  emerge-upload:
77
63
  name: "Emerge Upload"
78
- runs-on: macos-14
64
+ runs-on: macos-15
79
65
  steps:
80
- - uses: actions/checkout@v4
66
+ - uses: actions/checkout@v6
81
67
  - uses: ./.github/actions/setup
82
68
  - name: Build Package
83
69
  run: bundle exec rake emerge:upload
@@ -87,20 +73,13 @@ jobs:
87
73
 
88
74
  build-xcframework-minimum-supported-version:
89
75
  name: "Build XCFramework"
90
- runs-on: macos-14
76
+ runs-on: macos-15
91
77
  strategy:
92
78
  matrix:
93
79
  xcode:
94
- # XCFrameworks are forwards-compatible but not backwards-compatible.
95
- # The Xcode version we use for this job is that oldest Xcode version that
96
- # will be able to use these XCFrameworks and the lottie-spm package.
97
- # This should be the minimum Xcode version permitted by the App Store.
98
- # As of April 2024, this is Xcode 15.0: https://developer.apple.com/news/?id=fxu2qp7b
99
- # - However, testing in https://github.com/airbnb/lottie-spm/pull/12 shows that
100
- # Xcode 15.0 can use an XCFramework built by Xcode 15.2.
101
- - '15.2' # Swift 5.9, first Xcode version with visionOS support.
80
+ - '16.4' # Swift 6.1
102
81
  steps:
103
- - uses: actions/checkout@v4
82
+ - uses: actions/checkout@v6
104
83
  - uses: apple-actions/import-codesign-certs@v3
105
84
  continue-on-error: true
106
85
  with:
@@ -109,23 +88,25 @@ jobs:
109
88
  - uses: ./.github/actions/setup
110
89
  with:
111
90
  xcode: ${{ matrix.xcode }}
112
- - name: Build XCFramework
113
- run: bundle exec rake build:xcframework
114
- - name: Upload XCFramework
115
- uses: actions/upload-artifact@v4
91
+ - name: Build Dynamic XCFramework
92
+ run: bundle exec rake build:xcframework\['dynamic'\]
93
+ - name: Build Static XCFramework
94
+ run: bundle exec rake build:xcframework\['static'\]
95
+ - name: Upload XCFrameworks
96
+ uses: actions/upload-artifact@v6
116
97
  with:
117
98
  name: BuildProducts
118
- path: .build/archives
99
+ path: .build/artifacts
119
100
 
120
101
  cocoapod:
121
102
  name: "Lint CocoaPods podspec"
122
- runs-on: macos-14
103
+ runs-on: macos-15
123
104
  strategy:
124
105
  matrix:
125
106
  xcode:
126
- - '15.3' # Swift 5.10
107
+ - '16.4' # Swift 6.1
127
108
  steps:
128
- - uses: actions/checkout@v4
109
+ - uses: actions/checkout@v6
129
110
  - uses: ./.github/actions/setup
130
111
  with:
131
112
  install-mint: false
@@ -135,13 +116,13 @@ jobs:
135
116
 
136
117
  spm-xcode-15:
137
118
  name: "Test Swift Package Manager"
138
- runs-on: macos-14
119
+ runs-on: macos-15
139
120
  strategy:
140
121
  matrix:
141
122
  xcode:
142
- - '15.3' # Swift 5.10
123
+ - '16.4' # Swift 6.1
143
124
  steps:
144
- - uses: actions/checkout@v4
125
+ - uses: actions/checkout@v6
145
126
  - uses: ./.github/actions/setup
146
127
  with:
147
128
  install-mint: true
@@ -151,31 +132,31 @@ jobs:
151
132
 
152
133
  carthage:
153
134
  name: "Test Carthage support"
154
- runs-on: macos-14
135
+ runs-on: macos-15
155
136
  steps:
156
- - uses: actions/checkout@v4
137
+ - uses: actions/checkout@v6
157
138
  - uses: ./.github/actions/setup
158
139
  with:
159
140
  install-mint: true
160
141
  install-carthage: true
161
- xcode: '15.3' # Swift 5.10
142
+ xcode: '26.1.1' # Swift 6.2
162
143
  - name: Test Carthage support
163
144
  run: bundle exec rake test:carthage
164
145
 
165
146
  swiftlint:
166
147
  name: "Lint Swift"
167
- runs-on: macos-14
148
+ runs-on: macos-15
168
149
  steps:
169
- - uses: actions/checkout@v4
150
+ - uses: actions/checkout@v6
170
151
  - uses: ./.github/actions/setup
171
152
  - name: Lint Swift
172
153
  run: bundle exec rake lint:swift
173
154
 
174
155
  embedded-libraries:
175
156
  name: "Lint Embedded Libraries"
176
- runs-on: macos-14
157
+ runs-on: macos-15
177
158
  steps:
178
- - uses: actions/checkout@v4
159
+ - uses: actions/checkout@v6
179
160
  - uses: ./.github/actions/setup
180
161
  - name: Lint Embedded Libraries
181
162
  run: bundle exec rake lint:EmbeddedLibraries
@@ -7,7 +7,7 @@ jobs:
7
7
  stale:
8
8
  runs-on: ubuntu-latest
9
9
  steps:
10
- - uses: actions/stale@v5
10
+ - uses: actions/stale@v10
11
11
  with:
12
12
  only-labels: >
13
13
  can't reproduce
@@ -110,6 +110,9 @@
110
110
  080DEFD32A95711400BE2D96 /* Entry+Serialization.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C001E92A46150D00AB54BA /* Entry+Serialization.swift */; };
111
111
  080DEFD42A95711400BE2D96 /* Archive+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C001E02A46150D00AB54BA /* Archive+Helpers.swift */; };
112
112
  080DEFD52A95711800BE2D96 /* Archive+ReadingDeprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C001EF2A46150D00AB54BA /* Archive+ReadingDeprecated.swift */; };
113
+ 08D000112A95720000BE2D96 /* Archive+Deprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D000012A95720000BE2D96 /* Archive+Deprecated.swift */; };
114
+ 08D000122A95720000BE2D96 /* Date+ZIP.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D000022A95720000BE2D96 /* Date+ZIP.swift */; };
115
+ 08D000132A95720000BE2D96 /* FileManager+ZIPDeprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D000032A95720000BE2D96 /* FileManager+ZIPDeprecated.swift */; };
113
116
  080DEFD62A95711800BE2D96 /* Entry+ZIP64.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C001EE2A46150D00AB54BA /* Entry+ZIP64.swift */; };
114
117
  080DEFD72A95711800BE2D96 /* FileManager+ZIP.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C001F12A46150D00AB54BA /* FileManager+ZIP.swift */; };
115
118
  080DEFD82A95711800BE2D96 /* Archive+Writing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C001EC2A46150D00AB54BA /* Archive+Writing.swift */; };
@@ -361,6 +364,9 @@
361
364
  08C002002A46150D00AB54BA /* Data+CompressionDeprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C001ED2A46150D00AB54BA /* Data+CompressionDeprecated.swift */; };
362
365
  08C002012A46150D00AB54BA /* Entry+ZIP64.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C001EE2A46150D00AB54BA /* Entry+ZIP64.swift */; };
363
366
  08C002022A46150D00AB54BA /* Archive+ReadingDeprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C001EF2A46150D00AB54BA /* Archive+ReadingDeprecated.swift */; };
367
+ 08D000212A95720000BE2D96 /* Archive+Deprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D000012A95720000BE2D96 /* Archive+Deprecated.swift */; };
368
+ 08D000222A95720000BE2D96 /* Date+ZIP.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D000022A95720000BE2D96 /* Date+ZIP.swift */; };
369
+ 08D000232A95720000BE2D96 /* FileManager+ZIPDeprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D000032A95720000BE2D96 /* FileManager+ZIPDeprecated.swift */; };
364
370
  08C002032A46150D00AB54BA /* Data+Serialization.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C001F02A46150D00AB54BA /* Data+Serialization.swift */; };
365
371
  08C002042A46150D00AB54BA /* FileManager+ZIP.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C001F12A46150D00AB54BA /* FileManager+ZIP.swift */; };
366
372
  08C002052A46150D00AB54BA /* Archive+Progress.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C001F22A46150D00AB54BA /* Archive+Progress.swift */; };
@@ -382,6 +388,9 @@
382
388
  08C002DE2A46196300AB54BA /* Archive+MemoryFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C001E12A46150D00AB54BA /* Archive+MemoryFile.swift */; };
383
389
  08C002DF2A46196300AB54BA /* Archive+Reading.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C001E42A46150D00AB54BA /* Archive+Reading.swift */; };
384
390
  08C002E02A46196300AB54BA /* Archive+ReadingDeprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C001EF2A46150D00AB54BA /* Archive+ReadingDeprecated.swift */; };
391
+ 08D000312A95720000BE2D96 /* Archive+Deprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D000012A95720000BE2D96 /* Archive+Deprecated.swift */; };
392
+ 08D000322A95720000BE2D96 /* Date+ZIP.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D000022A95720000BE2D96 /* Date+ZIP.swift */; };
393
+ 08D000332A95720000BE2D96 /* FileManager+ZIPDeprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D000032A95720000BE2D96 /* FileManager+ZIPDeprecated.swift */; };
385
394
  08C002E12A46196300AB54BA /* Data+Compression.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C001E72A46150D00AB54BA /* Data+Compression.swift */; };
386
395
  08C002E22A46196300AB54BA /* Archive+BackingConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C001E22A46150D00AB54BA /* Archive+BackingConfiguration.swift */; };
387
396
  08C002E32A46196300AB54BA /* Archive.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C001E32A46150D00AB54BA /* Archive.swift */; };
@@ -400,6 +409,9 @@
400
409
  08C002F02A46196300AB54BA /* Archive+MemoryFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C001E12A46150D00AB54BA /* Archive+MemoryFile.swift */; };
401
410
  08C002F12A46196300AB54BA /* Archive+Reading.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C001E42A46150D00AB54BA /* Archive+Reading.swift */; };
402
411
  08C002F22A46196300AB54BA /* Archive+ReadingDeprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C001EF2A46150D00AB54BA /* Archive+ReadingDeprecated.swift */; };
412
+ 08D000412A95720000BE2D96 /* Archive+Deprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D000012A95720000BE2D96 /* Archive+Deprecated.swift */; };
413
+ 08D000422A95720000BE2D96 /* Date+ZIP.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D000022A95720000BE2D96 /* Date+ZIP.swift */; };
414
+ 08D000432A95720000BE2D96 /* FileManager+ZIPDeprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D000032A95720000BE2D96 /* FileManager+ZIPDeprecated.swift */; };
403
415
  08C002F52A461D6A00AB54BA /* LottieView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C002F42A461D6A00AB54BA /* LottieView.swift */; };
404
416
  08C002F62A461D6A00AB54BA /* LottieView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C002F42A461D6A00AB54BA /* LottieView.swift */; };
405
417
  08CB2681291ED2B700B4F071 /* AnimationViewTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CB2680291ED2B700B4F071 /* AnimationViewTests.swift */; };
@@ -562,6 +574,8 @@
562
574
  19465F52282F998B00BB2C97 /* CachedImageProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19465F51282F998B00BB2C97 /* CachedImageProvider.swift */; };
563
575
  19465F53282F998B00BB2C97 /* CachedImageProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19465F51282F998B00BB2C97 /* CachedImageProvider.swift */; };
564
576
  19465F54282F998B00BB2C97 /* CachedImageProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19465F51282F998B00BB2C97 /* CachedImageProvider.swift */; };
577
+ 20439AE0516A49FDB3BA8D42 /* LottieURLSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 135AB552F4524F1D995D3A15 /* LottieURLSession.swift */; };
578
+ 263C0AE32E5CA0D30063205E /* AnimationConfigurationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 263C0AE22E5CA0D30063205E /* AnimationConfigurationTests.swift */; };
565
579
  2E044E272820536800FA773B /* AutomaticEngineTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E044E262820536800FA773B /* AutomaticEngineTests.swift */; };
566
580
  2E09FA0627B6CEB600BA84E5 /* HardcodedFontProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E09FA0527B6CEB600BA84E5 /* HardcodedFontProvider.swift */; };
567
581
  2E450DAC283415D500E56D19 /* OpacityAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E450DAB283415D500E56D19 /* OpacityAnimation.swift */; };
@@ -1076,6 +1090,9 @@
1076
1090
  2EAF5B0527A0798700E00531 /* AnimationFontProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2EAF59F227A0798700E00531 /* AnimationFontProvider.swift */; };
1077
1091
  2EAF5B0627A0798700E00531 /* AnimationFontProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2EAF59F227A0798700E00531 /* AnimationFontProvider.swift */; };
1078
1092
  36E57EAC28AF7ADF00B7EFDA /* HardcodedTextProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36E57EAB28AF7ADF00B7EFDA /* HardcodedTextProvider.swift */; };
1093
+ 3E8B8C645ABC4C98B91F7B66 /* LottieURLSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 135AB552F4524F1D995D3A15 /* LottieURLSession.swift */; };
1094
+ 43819F71A58612715B62F78E /* CompatibleFontProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3ABF108DE311DD788312C4B /* CompatibleFontProvider.swift */; };
1095
+ 43819F72A58612715B62F78E /* CompatibleImageProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3ABF109DE311DD788312C4B /* CompatibleImageProvider.swift */; };
1079
1096
  57210913291073E400169699 /* RoundedCorners.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57210912291073E400169699 /* RoundedCorners.swift */; };
1080
1097
  57210914291073E400169699 /* RoundedCorners.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57210912291073E400169699 /* RoundedCorners.swift */; };
1081
1098
  57210915291073E400169699 /* RoundedCorners.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57210912291073E400169699 /* RoundedCorners.swift */; };
@@ -1131,12 +1148,17 @@
1131
1148
  82A552752A2FD44B00E47AC8 /* LottieAnimationLayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82A552742A2FD44B00E47AC8 /* LottieAnimationLayer.swift */; };
1132
1149
  82A552762A2FD44B00E47AC8 /* LottieAnimationLayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82A552742A2FD44B00E47AC8 /* LottieAnimationLayer.swift */; };
1133
1150
  82A552772A2FD44B00E47AC8 /* LottieAnimationLayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82A552742A2FD44B00E47AC8 /* LottieAnimationLayer.swift */; };
1151
+ 85D3C1C42A05E453829E9C8C /* CompatibleFontProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3ABF108DE311DD788312C4B /* CompatibleFontProvider.swift */; };
1152
+ 85D3C1C52A05E453829E9C8C /* CompatibleImageProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3ABF109DE311DD788312C4B /* CompatibleImageProvider.swift */; };
1153
+ 8BCB93B72127BD2FDB0C4DEE /* CompatibleFontProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3ABF108DE311DD788312C4B /* CompatibleFontProvider.swift */; };
1154
+ 8BCB93B82127BD2FDB0C4DEE /* CompatibleImageProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3ABF109DE311DD788312C4B /* CompatibleImageProvider.swift */; };
1134
1155
  A1D5BAAC27C731A500777D06 /* DataURLTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1D5BAAB27C731A500777D06 /* DataURLTests.swift */; };
1135
1156
  A40460592832C52B00ACFEDC /* BlendMode+Filter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A40460582832C52B00ACFEDC /* BlendMode+Filter.swift */; };
1136
1157
  A404605A2832C52B00ACFEDC /* BlendMode+Filter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A40460582832C52B00ACFEDC /* BlendMode+Filter.swift */; };
1137
1158
  A404605B2832C52B00ACFEDC /* BlendMode+Filter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A40460582832C52B00ACFEDC /* BlendMode+Filter.swift */; };
1138
1159
  AB3278132A71BA0400A9C9F1 /* View+ValueChanged.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB3278122A71BA0400A9C9F1 /* View+ValueChanged.swift */; };
1139
1160
  AB3278142A71BA3500A9C9F1 /* View+ValueChanged.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB3278122A71BA0400A9C9F1 /* View+ValueChanged.swift */; };
1161
+ AB5FA114D9A847068F233099 /* LottieURLSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 135AB552F4524F1D995D3A15 /* LottieURLSession.swift */; };
1140
1162
  AB87F02C2A72F5A80091D7B8 /* View+ValueChanged.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB3278122A71BA0400A9C9F1 /* View+ValueChanged.swift */; };
1141
1163
  AB87F02E2A72FA3A0091D7B8 /* Binding+Map.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB87F02D2A72FA3A0091D7B8 /* Binding+Map.swift */; };
1142
1164
  AB87F02F2A72FA3A0091D7B8 /* Binding+Map.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB87F02D2A72FA3A0091D7B8 /* Binding+Map.swift */; };
@@ -1144,6 +1166,7 @@
1144
1166
  ABF033B42A7B0ABA00F8C228 /* AnyEquatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABF033B32A7B0ABA00F8C228 /* AnyEquatable.swift */; };
1145
1167
  ABF033B52A7B0ABA00F8C228 /* AnyEquatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABF033B32A7B0ABA00F8C228 /* AnyEquatable.swift */; };
1146
1168
  ABF033B62A7B0ABA00F8C228 /* AnyEquatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABF033B32A7B0ABA00F8C228 /* AnyEquatable.swift */; };
1169
+ ACC10C5D826649EABEBFB707 /* LottieURLSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 135AB552F4524F1D995D3A15 /* LottieURLSession.swift */; };
1147
1170
  D453D8AB28FE6EE300D3F49C /* LottieAnimationCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = D453D8AA28FE6EE300D3F49C /* LottieAnimationCache.swift */; };
1148
1171
  D453D8AC28FE6EE300D3F49C /* LottieAnimationCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = D453D8AA28FE6EE300D3F49C /* LottieAnimationCache.swift */; };
1149
1172
  D453D8AD28FE6EE300D3F49C /* LottieAnimationCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = D453D8AA28FE6EE300D3F49C /* LottieAnimationCache.swift */; };
@@ -1159,6 +1182,8 @@
1159
1182
  E95C38752C15559D00329910 /* LayerEffectNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = E95C38702C14D14300329910 /* LayerEffectNode.swift */; };
1160
1183
  E95C38762C15559E00329910 /* LayerEffectNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = E95C38702C14D14300329910 /* LayerEffectNode.swift */; };
1161
1184
  E95C38772C15559F00329910 /* LayerEffectNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = E95C38702C14D14300329910 /* LayerEffectNode.swift */; };
1185
+ F5BFF3060F37A38192BF9C77 /* CompatibleFontProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3ABF108DE311DD788312C4B /* CompatibleFontProvider.swift */; };
1186
+ F5BFF3070F37A38192BF9C77 /* CompatibleImageProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3ABF109DE311DD788312C4B /* CompatibleImageProvider.swift */; };
1162
1187
  /* End PBXBuildFile section */
1163
1188
 
1164
1189
  /* Begin PBXContainerItemProxy section */
@@ -1213,6 +1238,9 @@
1213
1238
  08C001ED2A46150D00AB54BA /* Data+CompressionDeprecated.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Data+CompressionDeprecated.swift"; sourceTree = "<group>"; };
1214
1239
  08C001EE2A46150D00AB54BA /* Entry+ZIP64.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Entry+ZIP64.swift"; sourceTree = "<group>"; };
1215
1240
  08C001EF2A46150D00AB54BA /* Archive+ReadingDeprecated.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Archive+ReadingDeprecated.swift"; sourceTree = "<group>"; };
1241
+ 08D000012A95720000BE2D96 /* Archive+Deprecated.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Archive+Deprecated.swift"; sourceTree = "<group>"; };
1242
+ 08D000022A95720000BE2D96 /* Date+ZIP.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Date+ZIP.swift"; sourceTree = "<group>"; };
1243
+ 08D000032A95720000BE2D96 /* FileManager+ZIPDeprecated.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "FileManager+ZIPDeprecated.swift"; sourceTree = "<group>"; };
1216
1244
  08C001F02A46150D00AB54BA /* Data+Serialization.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Data+Serialization.swift"; sourceTree = "<group>"; };
1217
1245
  08C001F12A46150D00AB54BA /* FileManager+ZIP.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "FileManager+ZIP.swift"; sourceTree = "<group>"; };
1218
1246
  08C001F22A46150D00AB54BA /* Archive+Progress.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Archive+Progress.swift"; sourceTree = "<group>"; };
@@ -1273,7 +1301,9 @@
1273
1301
  08F8B212289990CB00CB5323 /* SnapshotTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SnapshotTests.swift; sourceTree = "<group>"; };
1274
1302
  08FB47C52B23B86500744478 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = Sources/PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
1275
1303
  08FE934D28F4CCAC00D3A7E6 /* InfiniteOpaqueAnimationLayer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfiniteOpaqueAnimationLayer.swift; sourceTree = "<group>"; };
1304
+ 135AB552F4524F1D995D3A15 /* LottieURLSession.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LottieURLSession.swift; sourceTree = "<group>"; };
1276
1305
  19465F51282F998B00BB2C97 /* CachedImageProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CachedImageProvider.swift; sourceTree = "<group>"; };
1306
+ 263C0AE22E5CA0D30063205E /* AnimationConfigurationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnimationConfigurationTests.swift; sourceTree = "<group>"; };
1277
1307
  2E044E262820536800FA773B /* AutomaticEngineTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AutomaticEngineTests.swift; sourceTree = "<group>"; };
1278
1308
  2E09FA0527B6CEB600BA84E5 /* HardcodedFontProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HardcodedFontProvider.swift; sourceTree = "<group>"; };
1279
1309
  2E450DAB283415D500E56D19 /* OpacityAnimation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpacityAnimation.swift; sourceTree = "<group>"; };
@@ -1486,6 +1516,8 @@
1486
1516
  D453D8B028FF9E3A00D3F49C /* DefaultAnimationCache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DefaultAnimationCache.swift; sourceTree = "<group>"; };
1487
1517
  E95C386E2C14B7FC00329910 /* DropShadowNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DropShadowNode.swift; sourceTree = "<group>"; };
1488
1518
  E95C38702C14D14300329910 /* LayerEffectNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LayerEffectNode.swift; sourceTree = "<group>"; };
1519
+ F3ABF108DE311DD788312C4B /* CompatibleFontProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CompatibleFontProvider.swift; sourceTree = "<group>"; };
1520
+ F3ABF109DE311DD788312C4B /* CompatibleImageProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CompatibleImageProvider.swift; sourceTree = "<group>"; };
1489
1521
  /* End PBXFileReference section */
1490
1522
 
1491
1523
  /* Begin PBXFrameworksBuildPhase section */
@@ -1564,6 +1596,7 @@
1564
1596
  children = (
1565
1597
  2EAF59C727A0798700E00531 /* LottieConfiguration.swift */,
1566
1598
  08AB05542A61C20400DE86FD /* ReducedMotionOption.swift */,
1599
+ 135AB552F4524F1D995D3A15 /* LottieURLSession.swift */,
1567
1600
  08AB05582A61C5B700DE86FD /* DecodingStrategy.swift */,
1568
1601
  08AB055C2A61C5CC00DE86FD /* RenderingEngineOption.swift */,
1569
1602
  );
@@ -1609,6 +1642,9 @@
1609
1642
  08C001ED2A46150D00AB54BA /* Data+CompressionDeprecated.swift */,
1610
1643
  08C001EE2A46150D00AB54BA /* Entry+ZIP64.swift */,
1611
1644
  08C001EF2A46150D00AB54BA /* Archive+ReadingDeprecated.swift */,
1645
+ 08D000012A95720000BE2D96 /* Archive+Deprecated.swift */,
1646
+ 08D000022A95720000BE2D96 /* Date+ZIP.swift */,
1647
+ 08D000032A95720000BE2D96 /* FileManager+ZIPDeprecated.swift */,
1612
1648
  08C001F02A46150D00AB54BA /* Data+Serialization.swift */,
1613
1649
  08C001F12A46150D00AB54BA /* FileManager+ZIP.swift */,
1614
1650
  08C001F22A46150D00AB54BA /* Archive+Progress.swift */,
@@ -1781,6 +1817,7 @@
1781
1817
  2E044E262820536800FA773B /* AutomaticEngineTests.swift */,
1782
1818
  6DB3BDB528243FA5002A276D /* ValueProvidersTests.swift */,
1783
1819
  D453D8AE28FF9BC600D3F49C /* AnimationCacheProviderTests.swift */,
1820
+ 263C0AE22E5CA0D30063205E /* AnimationConfigurationTests.swift */,
1784
1821
  08CB2680291ED2B700B4F071 /* AnimationViewTests.swift */,
1785
1822
  2E70F79E295BB6D30089A0EF /* CompatibleAnimationViewTests.swift */,
1786
1823
  080F5FDB2AB1075000ADC32C /* TextProviderTests.swift */,
@@ -2333,6 +2370,8 @@
2333
2370
  children = (
2334
2371
  2EAF59D027A0798700E00531 /* CompatibleAnimationKeypath.swift */,
2335
2372
  2EAF59D127A0798700E00531 /* CompatibleAnimationView.swift */,
2373
+ F3ABF108DE311DD788312C4B /* CompatibleFontProvider.swift */,
2374
+ F3ABF109DE311DD788312C4B /* CompatibleImageProvider.swift */,
2336
2375
  );
2337
2376
  path = Compatibility;
2338
2377
  sourceTree = "<group>";
@@ -2532,8 +2571,6 @@
2532
2571
  dependencies = (
2533
2572
  );
2534
2573
  name = "Lottie-iOS";
2535
- packageProductDependencies = (
2536
- );
2537
2574
  productName = Lottie;
2538
2575
  productReference = 2E80409A27A0725D006E74CB /* Lottie.framework */;
2539
2576
  productType = "com.apple.product-type.framework";
@@ -2812,6 +2849,7 @@
2812
2849
  080DF0792A95717F00BE2D96 /* KeyframeExtensions.swift in Sources */,
2813
2850
  080DF0062A95712D00BE2D96 /* ShapeCompositionLayer.swift in Sources */,
2814
2851
  080DEF702A95709700BE2D96 /* ReducedMotionOption.swift in Sources */,
2852
+ 20439AE0516A49FDB3BA8D42 /* LottieURLSession.swift in Sources */,
2815
2853
  080DEFCF2A95711400BE2D96 /* URL+ZIP.swift in Sources */,
2816
2854
  080DEFEE2A95711E00BE2D96 /* TransformLayer.swift in Sources */,
2817
2855
  080DEFC52A95710F00BE2D96 /* ViewType.swift in Sources */,
@@ -2930,6 +2968,9 @@
2930
2968
  080DEF922A9570DD00BE2D96 /* LottieAnimationCache.swift in Sources */,
2931
2969
  080DF0622A95716D00BE2D96 /* LayerEffect.swift in Sources */,
2932
2970
  080DEFD52A95711800BE2D96 /* Archive+ReadingDeprecated.swift in Sources */,
2971
+ 08D000112A95720000BE2D96 /* Archive+Deprecated.swift in Sources */,
2972
+ 08D000122A95720000BE2D96 /* Date+ZIP.swift in Sources */,
2973
+ 08D000132A95720000BE2D96 /* FileManager+ZIPDeprecated.swift in Sources */,
2933
2974
  080DF0082A95712D00BE2D96 /* ImageCompositionLayer.swift in Sources */,
2934
2975
  080DEFA52A9570FB00BE2D96 /* CallbackContextEpoxyModeled.swift in Sources */,
2935
2976
  080DF00C2A95713000BE2D96 /* LayerTextProvider.swift in Sources */,
@@ -2976,6 +3017,8 @@
2976
3017
  080DEFAA2A9570FE00BE2D96 /* SetContentProviding.swift in Sources */,
2977
3018
  080DF07E2A95718200BE2D96 /* RootAnimationLayer.swift in Sources */,
2978
3019
  080DEFFD2A95712400BE2D96 /* EllipseAnimation.swift in Sources */,
3020
+ 43819F71A58612715B62F78E /* CompatibleFontProvider.swift in Sources */,
3021
+ 43819F72A58612715B62F78E /* CompatibleImageProvider.swift in Sources */,
2979
3022
  );
2980
3023
  runOnlyForDeploymentPostprocessing = 0;
2981
3024
  };
@@ -3051,6 +3094,7 @@
3051
3094
  2EAF5A9B27A0798700E00531 /* BundleImageProvider.macOS.swift in Sources */,
3052
3095
  2E9C969F2822F43100677516 /* TextAnimatorNode.swift in Sources */,
3053
3096
  08AB05552A61C20400DE86FD /* ReducedMotionOption.swift in Sources */,
3097
+ 3E8B8C645ABC4C98B91F7B66 /* LottieURLSession.swift in Sources */,
3054
3098
  2EAF5AFB27A0798700E00531 /* SizeValueProvider.swift in Sources */,
3055
3099
  2E9C97562822F43100677516 /* MathKit.swift in Sources */,
3056
3100
  2E9C96902822F43100677516 /* EllipseNode.swift in Sources */,
@@ -3142,6 +3186,9 @@
3142
3186
  08E6CF932A86E29100A6D92F /* LottieViewType.swift in Sources */,
3143
3187
  08C001F32A46150D00AB54BA /* Archive+Helpers.swift in Sources */,
3144
3188
  08C002022A46150D00AB54BA /* Archive+ReadingDeprecated.swift in Sources */,
3189
+ 08D000212A95720000BE2D96 /* Archive+Deprecated.swift in Sources */,
3190
+ 08D000222A95720000BE2D96 /* Date+ZIP.swift in Sources */,
3191
+ 08D000232A95720000BE2D96 /* FileManager+ZIPDeprecated.swift in Sources */,
3145
3192
  2E9C96512822F43100677516 /* PreCompositionLayer.swift in Sources */,
3146
3193
  2EAF5AF227A0798700E00531 /* AnyValueProvider.swift in Sources */,
3147
3194
  2E9C96632822F43100677516 /* CoreTextRenderLayer.swift in Sources */,
@@ -3265,6 +3312,8 @@
3265
3312
  2E9C96122822F43100677516 /* DashPattern.swift in Sources */,
3266
3313
  2E9C960C2822F43100677516 /* ShapeLayerModel.swift in Sources */,
3267
3314
  2E9C97082822F43100677516 /* CompatibilityTracker.swift in Sources */,
3315
+ F5BFF3060F37A38192BF9C77 /* CompatibleFontProvider.swift in Sources */,
3316
+ F5BFF3070F37A38192BF9C77 /* CompatibleImageProvider.swift in Sources */,
3268
3317
  );
3269
3318
  runOnlyForDeploymentPostprocessing = 0;
3270
3319
  };
@@ -3289,6 +3338,7 @@
3289
3338
  080F5FDC2AB1075000ADC32C /* TextProviderTests.swift in Sources */,
3290
3339
  6DB3BDB628243FA5002A276D /* ValueProvidersTests.swift in Sources */,
3291
3340
  2E72128327BB329C0027BC56 /* AnimationKeypathTests.swift in Sources */,
3341
+ 263C0AE32E5CA0D30063205E /* AnimationConfigurationTests.swift in Sources */,
3292
3342
  2E044E272820536800FA773B /* AutomaticEngineTests.swift in Sources */,
3293
3343
  D453D8AF28FF9BC600D3F49C /* AnimationCacheProviderTests.swift in Sources */,
3294
3344
  );
@@ -3318,6 +3368,9 @@
3318
3368
  08C002D82A46196300AB54BA /* Data+Serialization.swift in Sources */,
3319
3369
  08E207582A56014E002DCE17 /* EpoxyModelProperty.swift in Sources */,
3320
3370
  08C002E02A46196300AB54BA /* Archive+ReadingDeprecated.swift in Sources */,
3371
+ 08D000312A95720000BE2D96 /* Archive+Deprecated.swift in Sources */,
3372
+ 08D000322A95720000BE2D96 /* Date+ZIP.swift in Sources */,
3373
+ 08D000332A95720000BE2D96 /* FileManager+ZIPDeprecated.swift in Sources */,
3321
3374
  08E207342A56014E002DCE17 /* ErasedContentProviding.swift in Sources */,
3322
3375
  6D99D6442823790700E5205B /* LegacyGradientFillRenderer.swift in Sources */,
3323
3376
  2EAF5B0527A0798700E00531 /* AnimationFontProvider.swift in Sources */,
@@ -3545,6 +3598,7 @@
3545
3598
  2E9C96E82822F43100677516 /* ImageLayer.swift in Sources */,
3546
3599
  2E9C972D2822F43100677516 /* StarAnimation.swift in Sources */,
3547
3600
  08AB05562A61C20400DE86FD /* ReducedMotionOption.swift in Sources */,
3601
+ AB5FA114D9A847068F233099 /* LottieURLSession.swift in Sources */,
3548
3602
  2E9C96E22822F43100677516 /* LayerModel+makeAnimationLayer.swift in Sources */,
3549
3603
  08E207372A56014E002DCE17 /* MakeViewProviding.swift in Sources */,
3550
3604
  2E9C96A92822F43100677516 /* FillNode.swift in Sources */,
@@ -3580,6 +3634,8 @@
3580
3634
  2E9C96132822F43100677516 /* DashPattern.swift in Sources */,
3581
3635
  2E9C960D2822F43100677516 /* ShapeLayerModel.swift in Sources */,
3582
3636
  2E9C97092822F43100677516 /* CompatibilityTracker.swift in Sources */,
3637
+ 8BCB93B72127BD2FDB0C4DEE /* CompatibleFontProvider.swift in Sources */,
3638
+ 8BCB93B82127BD2FDB0C4DEE /* CompatibleImageProvider.swift in Sources */,
3583
3639
  );
3584
3640
  runOnlyForDeploymentPostprocessing = 0;
3585
3641
  };
@@ -3655,6 +3711,7 @@
3655
3711
  2E9C96A12822F43100677516 /* TextAnimatorNode.swift in Sources */,
3656
3712
  2EAF5AFD27A0798700E00531 /* SizeValueProvider.swift in Sources */,
3657
3713
  08AB05572A61C20400DE86FD /* ReducedMotionOption.swift in Sources */,
3714
+ ACC10C5D826649EABEBFB707 /* LottieURLSession.swift in Sources */,
3658
3715
  2E9C97582822F43100677516 /* MathKit.swift in Sources */,
3659
3716
  2E9C96922822F43100677516 /* EllipseNode.swift in Sources */,
3660
3717
  2E9C975B2822F43100677516 /* BezierPath.swift in Sources */,
@@ -3867,8 +3924,13 @@
3867
3924
  2E9C96142822F43100677516 /* DashPattern.swift in Sources */,
3868
3925
  2E9C960E2822F43100677516 /* ShapeLayerModel.swift in Sources */,
3869
3926
  08C002F22A46196300AB54BA /* Archive+ReadingDeprecated.swift in Sources */,
3927
+ 08D000412A95720000BE2D96 /* Archive+Deprecated.swift in Sources */,
3928
+ 08D000422A95720000BE2D96 /* Date+ZIP.swift in Sources */,
3929
+ 08D000432A95720000BE2D96 /* FileManager+ZIPDeprecated.swift in Sources */,
3870
3930
  2E9C970A2822F43100677516 /* CompatibilityTracker.swift in Sources */,
3871
3931
  08C002E52A46196300AB54BA /* Archive+Writing.swift in Sources */,
3932
+ 85D3C1C42A05E453829E9C8C /* CompatibleFontProvider.swift in Sources */,
3933
+ 85D3C1C52A05E453829E9C8C /* CompatibleImageProvider.swift in Sources */,
3872
3934
  );
3873
3935
  runOnlyForDeploymentPostprocessing = 0;
3874
3936
  };
@@ -14,8 +14,8 @@
14
14
  "kind" : "remoteSourceControl",
15
15
  "location" : "https://github.com/airbnb/swift",
16
16
  "state" : {
17
- "revision" : "6900f5ab7ab7394ac85eb9da52b2528ee329b206",
18
- "version" : "1.0.4"
17
+ "revision" : "6c09dd57c2254b14bb48c15e209ed6e93058104f",
18
+ "version" : "1.2.0"
19
19
  }
20
20
  },
21
21
  {
package/Package.resolved CHANGED
@@ -5,8 +5,8 @@
5
5
  "kind" : "remoteSourceControl",
6
6
  "location" : "https://github.com/airbnb/swift",
7
7
  "state" : {
8
- "revision" : "c7e833face3f893b8defde66eecb66f24b55ca35",
9
- "version" : "1.0.8"
8
+ "revision" : "6c09dd57c2254b14bb48c15e209ed6e93058104f",
9
+ "version" : "1.2.0"
10
10
  }
11
11
  },
12
12
  {
package/Package.swift CHANGED
@@ -1,10 +1,10 @@
1
- // swift-tools-version:5.9
1
+ // swift-tools-version:6.0
2
2
  import PackageDescription
3
3
 
4
4
  let package = Package(
5
5
  name: "Lottie",
6
6
  // Minimum platform versions should be kept in sync with the per-platform targets in Lottie.xcodeproj, lottie-ios.podspec, and lottie-spm's Package.swift
7
- platforms: [.iOS("13.0"), .macOS("10.15"), .tvOS("13.0"), .custom("visionOS", versionString: "1.0")],
7
+ platforms: [.iOS("13.0"), .macOS("10.15"), .tvOS("13.0"), .visionOS("1.0")],
8
8
  products: [
9
9
  .library(name: "Lottie", targets: ["Lottie"]),
10
10
  // Product for dynamic linking, as SPM builds libraries statically by default.
@@ -12,7 +12,7 @@ let package = Package(
12
12
  .library(name: "Lottie-Dynamic", type: .dynamic, targets: ["Lottie"]),
13
13
  ],
14
14
  dependencies: [
15
- .package(url: "https://github.com/airbnb/swift", .upToNextMajor(from: "1.0.1")),
15
+ .package(url: "https://github.com/airbnb/swift", .upToNextMajor(from: "1.2.0"))
16
16
  ],
17
17
  targets: [
18
18
  .target(
@@ -24,5 +24,8 @@ let package = Package(
24
24
  "Private/EmbeddedLibraries/EpoxyCore/README.md",
25
25
  "Private/EmbeddedLibraries/LRUCache/README.md",
26
26
  ],
27
- resources: [.copy("PrivacyInfo.xcprivacy")]),
28
- ])
27
+ resources: [.copy("PrivacyInfo.xcprivacy")],
28
+ swiftSettings: [.swiftLanguageMode(.v5)]
29
+ )
30
+ ]
31
+ )
package/README.md CHANGED
@@ -41,7 +41,7 @@ To install Lottie using [Swift Package Manager](https://github.com/swiftlang/swi
41
41
  or you can add the following dependency to your `Package.swift`:
42
42
 
43
43
  ```swift
44
- .package(url: "https://github.com/airbnb/lottie-spm.git", from: "4.5.0")
44
+ .package(url: "https://github.com/airbnb/lottie-spm.git", from: "4.6.1")
45
45
  ```
46
46
 
47
47
  When using Swift Package Manager we recommend using the [lottie-spm](https://github.com/airbnb/lottie-spm) repo instead of the main lottie-ios repo. The main git repository for [lottie-ios](https://github.com/airbnb/lottie-ios) is somewhat large (300+ MB), and Swift Package Manager always downloads the full repository with all git history. The [lottie-spm](https://github.com/airbnb/lottie-spm) repo is much smaller (less than 500kb), so can be downloaded much more quickly.