lottie-ios 4.3.3 → 4.4.0

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 (199) hide show
  1. package/.github/workflows/main.yml +51 -58
  2. package/Lottie.xcodeproj/project.pbxproj +40 -0
  3. package/Lottie.xcodeproj/xcuserdata/calstephens.xcuserdatad/xcschemes/xcschememanagement.plist +4 -17
  4. package/Lottie.xcworkspace/xcshareddata/swiftpm/Package.resolved +37 -40
  5. package/Lottie.xcworkspace/xcuserdata/calstephens.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  6. package/Lottie.xcworkspace/xcuserdata/calstephens.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +9 -666
  7. package/Package.resolved +20 -22
  8. package/Package.swift +4 -2
  9. package/README.md +21 -3
  10. package/Rakefile +52 -28
  11. package/Sources/PrivacyInfo.xcprivacy +23 -0
  12. package/Sources/Private/CoreAnimation/Animations/CAAnimation+TimingConfiguration.swift +1 -1
  13. package/Sources/Private/CoreAnimation/Animations/CALayer+addAnimation.swift +23 -13
  14. package/Sources/Private/CoreAnimation/Animations/CustomPathAnimation.swift +8 -2
  15. package/Sources/Private/CoreAnimation/Animations/EllipseAnimation.swift +7 -1
  16. package/Sources/Private/CoreAnimation/Animations/GradientAnimations.swift +15 -2
  17. package/Sources/Private/CoreAnimation/Animations/LayerProperty.swift +8 -1
  18. package/Sources/Private/CoreAnimation/Animations/RectangleAnimation.swift +8 -1
  19. package/Sources/Private/CoreAnimation/Animations/StarAnimation.swift +12 -1
  20. package/Sources/Private/CoreAnimation/Animations/StrokeAnimation.swift +0 -1
  21. package/Sources/Private/CoreAnimation/Animations/TransformAnimations.swift +19 -11
  22. package/Sources/Private/CoreAnimation/Animations/VisibilityAnimation.swift +45 -19
  23. package/Sources/Private/CoreAnimation/CoreAnimationLayer.swift +38 -3
  24. package/Sources/Private/CoreAnimation/Extensions/CALayer+fillBounds.swift +1 -1
  25. package/Sources/Private/CoreAnimation/Extensions/Keyframes+combined.swift +9 -2
  26. package/Sources/Private/CoreAnimation/Extensions/Keyframes+timeRemapping.swift +46 -0
  27. package/Sources/Private/CoreAnimation/Layers/AnimationLayer.swift +77 -13
  28. package/Sources/Private/CoreAnimation/Layers/BaseCompositionLayer.swift +1 -1
  29. package/Sources/Private/CoreAnimation/Layers/CALayer+setupLayerHierarchy.swift +2 -2
  30. package/Sources/Private/CoreAnimation/Layers/ImageLayer.swift +1 -1
  31. package/Sources/Private/CoreAnimation/Layers/LayerModel+makeAnimationLayer.swift +1 -7
  32. package/Sources/Private/CoreAnimation/Layers/PreCompLayer.swift +19 -53
  33. package/Sources/Private/CoreAnimation/Layers/ShapeItemLayer.swift +2 -2
  34. package/Sources/Private/CoreAnimation/Layers/ShapeLayer.swift +97 -31
  35. package/Sources/Private/CoreAnimation/Layers/SolidLayer.swift +5 -2
  36. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Model/EpoxyModelArrayBuilder.swift +1 -1
  37. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Model/EpoxyModelProperty.swift +10 -10
  38. package/Sources/Private/EmbeddedLibraries/EpoxyCore/SwiftUI/EpoxySwiftUIHostingController.swift +1 -1
  39. package/Sources/Private/EmbeddedLibraries/EpoxyCore/SwiftUI/EpoxySwiftUIHostingView.swift +1 -3
  40. package/Sources/Private/EmbeddedLibraries/EpoxyCore/SwiftUI/EpoxySwiftUIIntrinsicContentSizeInvalidator.swift +2 -0
  41. package/Sources/Private/EmbeddedLibraries/EpoxyCore/SwiftUI/EpoxySwiftUILayoutMargins.swift +2 -0
  42. package/Sources/Private/EmbeddedLibraries/EpoxyCore/SwiftUI/EpoxyableView+SwiftUIView.swift +2 -0
  43. package/Sources/Private/EmbeddedLibraries/EpoxyCore/SwiftUI/LayoutUtilities/MeasuringViewRepresentable.swift +2 -0
  44. package/Sources/Private/EmbeddedLibraries/EpoxyCore/SwiftUI/LayoutUtilities/SwiftUIMeasurementContainer.swift +2 -0
  45. package/Sources/Private/EmbeddedLibraries/EpoxyCore/SwiftUI/SwiftUIView.swift +2 -0
  46. package/Sources/Private/EmbeddedLibraries/EpoxyCore/SwiftUI/UIView+SwiftUIView.swift +2 -0
  47. package/Sources/Private/EmbeddedLibraries/EpoxyCore/SwiftUI/UIViewConfiguringSwiftUIView.swift +2 -0
  48. package/Sources/Private/EmbeddedLibraries/EpoxyCore/Views/ViewType.swift +2 -1
  49. package/Sources/Private/EmbeddedLibraries/LRUCache/LRUCache.swift +256 -0
  50. package/Sources/Private/EmbeddedLibraries/LRUCache/README.md +24 -0
  51. package/Sources/Private/EmbeddedLibraries/README.md +16 -0
  52. package/Sources/Private/EmbeddedLibraries/ZipFoundation/Archive+Helpers.swift +2 -2
  53. package/Sources/Private/EmbeddedLibraries/ZipFoundation/Archive+MemoryFile.swift +7 -7
  54. package/Sources/Private/EmbeddedLibraries/ZipFoundation/Data+Compression.swift +2 -2
  55. package/Sources/Private/EmbeddedLibraries/ZipFoundation/FileManager+ZIP.swift +5 -5
  56. package/Sources/Private/MainThread/LayerContainers/CompLayers/CompositionLayer.swift +1 -2
  57. package/Sources/Private/MainThread/LayerContainers/CompLayers/ImageCompositionLayer.swift +1 -3
  58. package/Sources/Private/MainThread/LayerContainers/CompLayers/MaskContainerLayer.swift +1 -2
  59. package/Sources/Private/MainThread/LayerContainers/CompLayers/PreCompositionLayer.swift +2 -3
  60. package/Sources/Private/MainThread/LayerContainers/CompLayers/SolidCompositionLayer.swift +2 -3
  61. package/Sources/Private/MainThread/LayerContainers/CompLayers/TextCompositionLayer.swift +5 -12
  62. package/Sources/Private/MainThread/LayerContainers/MainThreadAnimationLayer.swift +0 -1
  63. package/Sources/Private/MainThread/LayerContainers/Utility/CachedImageProvider.swift +11 -7
  64. package/Sources/Private/MainThread/LayerContainers/Utility/CompositionLayersInitializer.swift +3 -3
  65. package/Sources/Private/MainThread/LayerContainers/Utility/CoreTextRenderLayer.swift +12 -12
  66. package/Sources/Private/MainThread/LayerContainers/Utility/InvertedMatteLayer.swift +1 -3
  67. package/Sources/Private/MainThread/LayerContainers/Utility/LayerFontProvider.swift +0 -2
  68. package/Sources/Private/MainThread/LayerContainers/Utility/LayerImageProvider.swift +1 -3
  69. package/Sources/Private/MainThread/LayerContainers/Utility/LayerTextProvider.swift +0 -2
  70. package/Sources/Private/MainThread/LayerContainers/Utility/LayerTransformNode.swift +0 -2
  71. package/Sources/Private/MainThread/NodeRenderSystem/Extensions/ItemsExtension.swift +1 -3
  72. package/Sources/Private/MainThread/NodeRenderSystem/NodeProperties/Protocols/KeypathSearchable.swift +0 -1
  73. package/Sources/Private/MainThread/NodeRenderSystem/NodeProperties/Protocols/NodePropertyMap.swift +0 -1
  74. package/Sources/Private/MainThread/NodeRenderSystem/Nodes/OutputNodes/GroupOutputNode.swift +1 -3
  75. package/Sources/Private/MainThread/NodeRenderSystem/Nodes/OutputNodes/PassThroughOutputNode.swift +1 -2
  76. package/Sources/Private/MainThread/NodeRenderSystem/Nodes/OutputNodes/PathOutputNode.swift +0 -1
  77. package/Sources/Private/MainThread/NodeRenderSystem/Nodes/OutputNodes/Renderables/FillRenderer.swift +0 -2
  78. package/Sources/Private/MainThread/NodeRenderSystem/Nodes/OutputNodes/Renderables/GradientFillRenderer.swift +0 -1
  79. package/Sources/Private/MainThread/NodeRenderSystem/Nodes/OutputNodes/Renderables/GradientStrokeRenderer.swift +0 -1
  80. package/Sources/Private/MainThread/NodeRenderSystem/Nodes/OutputNodes/Renderables/LegacyGradientFillRenderer.swift +0 -1
  81. package/Sources/Private/MainThread/NodeRenderSystem/Nodes/OutputNodes/Renderables/StrokeRenderer.swift +2 -3
  82. package/Sources/Private/MainThread/NodeRenderSystem/Nodes/RenderContainers/GroupNode.swift +1 -3
  83. package/Sources/Private/MainThread/NodeRenderSystem/Nodes/RenderNodes/StrokeNode.swift +2 -2
  84. package/Sources/Private/MainThread/NodeRenderSystem/Nodes/Text/TextAnimatorNode.swift +0 -2
  85. package/Sources/Private/MainThread/NodeRenderSystem/Protocols/AnimatorNode.swift +0 -1
  86. package/Sources/Private/MainThread/NodeRenderSystem/Protocols/PathNode.swift +0 -2
  87. package/Sources/Private/MainThread/NodeRenderSystem/Protocols/RenderNode.swift +0 -2
  88. package/Sources/Private/MainThread/NodeRenderSystem/RenderLayers/ShapeContainerLayer.swift +0 -1
  89. package/Sources/Private/MainThread/NodeRenderSystem/RenderLayers/ShapeRenderLayer.swift +0 -1
  90. package/Sources/Private/Model/Assets/Asset.swift +2 -3
  91. package/Sources/Private/Model/Assets/AssetLibrary.swift +11 -11
  92. package/Sources/Private/Model/Assets/ImageAsset.swift +20 -0
  93. package/Sources/Private/Model/Assets/PrecompAsset.swift +0 -2
  94. package/Sources/Private/Model/DictionaryInitializable.swift +18 -10
  95. package/Sources/Private/Model/DotLottie/DotLottieImageProvider.swift +9 -6
  96. package/Sources/Private/Model/DotLottie/DotLottieUtils.swift +1 -1
  97. package/Sources/Private/Model/Extensions/KeyedDecodingContainerExtensions.swift +5 -4
  98. package/Sources/Private/Model/Keyframes/KeyframeData.swift +1 -4
  99. package/Sources/Private/Model/Keyframes/KeyframeGroup.swift +1 -3
  100. package/Sources/Private/Model/LayerEffects/DropShadowEffect.swift +0 -2
  101. package/Sources/Private/Model/LayerEffects/EffectValues/ColorEffectValue.swift +0 -2
  102. package/Sources/Private/Model/LayerEffects/EffectValues/EffectValue.swift +4 -5
  103. package/Sources/Private/Model/LayerEffects/EffectValues/Vector1DEffectValue.swift +0 -2
  104. package/Sources/Private/Model/LayerEffects/LayerEffect.swift +2 -3
  105. package/Sources/Private/Model/LayerStyles/DropShadowStyle.swift +0 -2
  106. package/Sources/Private/Model/LayerStyles/LayerStyle.swift +2 -3
  107. package/Sources/Private/Model/Layers/ImageLayerModel.swift +0 -2
  108. package/Sources/Private/Model/Layers/LayerModel.swift +16 -5
  109. package/Sources/Private/Model/Layers/PreCompLayerModel.swift +0 -2
  110. package/Sources/Private/Model/Layers/ShapeLayerModel.swift +0 -2
  111. package/Sources/Private/Model/Layers/SolidLayerModel.swift +0 -2
  112. package/Sources/Private/Model/Layers/TextLayerModel.swift +0 -2
  113. package/Sources/Private/Model/Objects/DashPattern.swift +1 -3
  114. package/Sources/Private/Model/Objects/Marker.swift +0 -2
  115. package/Sources/Private/Model/Objects/Mask.swift +0 -2
  116. package/Sources/Private/Model/Objects/Transform.swift +46 -9
  117. package/Sources/Private/Model/ShapeItems/Ellipse.swift +0 -2
  118. package/Sources/Private/Model/ShapeItems/Fill.swift +0 -2
  119. package/Sources/Private/Model/ShapeItems/GradientFill.swift +1 -3
  120. package/Sources/Private/Model/ShapeItems/GradientStroke.swift +1 -3
  121. package/Sources/Private/Model/ShapeItems/Group.swift +0 -2
  122. package/Sources/Private/Model/ShapeItems/Merge.swift +1 -3
  123. package/Sources/Private/Model/ShapeItems/Rectangle.swift +0 -2
  124. package/Sources/Private/Model/ShapeItems/Repeater.swift +0 -2
  125. package/Sources/Private/Model/ShapeItems/RoundedCorners.swift +0 -2
  126. package/Sources/Private/Model/ShapeItems/Shape.swift +0 -2
  127. package/Sources/Private/Model/ShapeItems/ShapeItem.swift +2 -3
  128. package/Sources/Private/Model/ShapeItems/ShapeTransform.swift +0 -2
  129. package/Sources/Private/Model/ShapeItems/Star.swift +1 -3
  130. package/Sources/Private/Model/ShapeItems/Stroke.swift +0 -2
  131. package/Sources/Private/Model/ShapeItems/Trim.swift +1 -3
  132. package/Sources/Private/Model/Text/Font.swift +0 -2
  133. package/Sources/Private/Model/Text/Glyph.swift +0 -2
  134. package/Sources/Private/Model/Text/TextAnimator.swift +0 -2
  135. package/Sources/Private/Model/Text/TextDocument.swift +2 -4
  136. package/Sources/Private/Utility/Debugging/AnimatorNodeDebugging.swift +0 -2
  137. package/Sources/Private/Utility/Debugging/LayerDebugging.swift +4 -5
  138. package/Sources/Private/Utility/Extensions/AnimationKeypathExtension.swift +2 -3
  139. package/Sources/Private/Utility/Extensions/DataExtension.swift +0 -1
  140. package/Sources/Private/Utility/Extensions/StringExtensions.swift +5 -0
  141. package/Sources/Private/Utility/Helpers/AnimationContext.swift +2 -3
  142. package/Sources/Private/Utility/Helpers/AnyEquatable.swift +0 -2
  143. package/Sources/Private/Utility/Helpers/Binding+Map.swift +2 -0
  144. package/Sources/Private/Utility/Helpers/View+ValueChanged.swift +2 -0
  145. package/Sources/Private/Utility/LottieAnimationSource.swift +11 -1
  146. package/Sources/Private/Utility/Primitives/BezierPath.swift +2 -3
  147. package/Sources/Private/Utility/Primitives/CGPointExtension.swift +1 -1
  148. package/Sources/Private/Utility/Primitives/ColorExtension.swift +1 -2
  149. package/Sources/Private/Utility/Primitives/VectorsExtensions.swift +6 -6
  150. package/Sources/Public/Animation/LottieAnimation.swift +2 -2
  151. package/Sources/Public/Animation/LottieAnimationHelpers.swift +7 -5
  152. package/Sources/Public/Animation/LottieAnimationLayer.swift +30 -43
  153. package/Sources/Public/Animation/LottieAnimationView.swift +18 -8
  154. package/Sources/Public/Animation/LottieAnimationViewInitializers.swift +3 -3
  155. package/Sources/Public/Animation/LottiePlaybackMode.swift +53 -0
  156. package/Sources/Public/Animation/LottieView.swift +145 -48
  157. package/Sources/Public/AnimationCache/AnimationCacheProvider.swift +0 -2
  158. package/Sources/Public/AnimationCache/DefaultAnimationCache.swift +21 -7
  159. package/Sources/Public/AnimationCache/LRUAnimationCache.swift +0 -2
  160. package/Sources/Public/Controls/AnimatedButton.swift +4 -6
  161. package/Sources/Public/Controls/AnimatedControl.swift +1 -3
  162. package/Sources/Public/Controls/AnimatedSwitch.swift +1 -3
  163. package/Sources/Public/Controls/LottieButton.swift +2 -1
  164. package/Sources/Public/Controls/LottieSwitch.swift +2 -0
  165. package/Sources/Public/DotLottie/Cache/DotLottieCache.swift +17 -4
  166. package/Sources/Public/DotLottie/Cache/DotLottieCacheProvider.swift +1 -3
  167. package/Sources/Public/DotLottie/DotLottieConfiguration.swift +53 -5
  168. package/Sources/Public/DotLottie/DotLottieFile.swift +4 -3
  169. package/Sources/Public/DotLottie/DotLottieFileHelpers.swift +18 -11
  170. package/Sources/Public/DynamicProperties/AnimationKeypath.swift +0 -2
  171. package/Sources/Public/DynamicProperties/AnyValueProvider.swift +0 -1
  172. package/Sources/Public/DynamicProperties/ValueProviders/ColorValueProvider.swift +2 -2
  173. package/Sources/Public/DynamicProperties/ValueProviders/FloatValueProvider.swift +1 -1
  174. package/Sources/Public/DynamicProperties/ValueProviders/GradientValueProvider.swift +1 -1
  175. package/Sources/Public/DynamicProperties/ValueProviders/PointValueProvider.swift +1 -1
  176. package/Sources/Public/DynamicProperties/ValueProviders/SizeValueProvider.swift +1 -1
  177. package/Sources/Public/FontProvider/AnimationFontProvider.swift +0 -2
  178. package/Sources/Public/ImageProvider/AnimationImageProvider.swift +0 -2
  179. package/Sources/Public/Keyframes/Interpolatable.swift +26 -0
  180. package/Sources/Public/Primitives/LottieColor.swift +0 -2
  181. package/Sources/Public/Primitives/Vectors.swift +0 -2
  182. package/Sources/Public/TextProvider/AnimationTextProvider.swift +0 -2
  183. package/Sources/Public/iOS/AnimationSubview.swift +0 -1
  184. package/Sources/Public/iOS/BundleImageProvider.swift +3 -8
  185. package/Sources/Public/iOS/Compatibility/CompatibleAnimationView.swift +4 -8
  186. package/Sources/Public/iOS/LottieAnimationViewBase.swift +5 -2
  187. package/Sources/Public/iOS/UIColorExtension.swift +1 -2
  188. package/Sources/Public/macOS/BundleImageProvider.macOS.swift +3 -6
  189. package/lottie-ios.podspec +6 -2
  190. package/package.json +1 -1
  191. package/Lottie.xcodeproj/project.xcworkspace/xcuserdata/cal.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  192. package/Lottie.xcodeproj/project.xcworkspace/xcuserdata/calstephens.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  193. package/Lottie.xcodeproj/xcuserdata/cal.xcuserdatad/xcschemes/xcschememanagement.plist +0 -37
  194. package/Lottie.xcworkspace/xcuserdata/cal.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  195. package/Lottie.xcworkspace/xcuserdata/cal.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +0 -6
  196. package/Lottie.xcworkspace/xcuserdata/cal.xcuserdatad/xcdebugger/Expressions.xcexplist +0 -153
  197. package/Lottie.xcworkspace/xcuserdata/calstephens.xcuserdatad/IDEFindNavigatorScopes.plist +0 -5
  198. package/Lottie.xcworkspace/xcuserdata/calstephens.xcuserdatad/xcdebugger/Expressions.xcexplist +0 -231
  199. package/Lottie.xcworkspace/xcuserdata/calstephens.xcuserdatad/xcschemes/xcschememanagement.plist +0 -37
@@ -7,41 +7,40 @@ on:
7
7
  branches: [ master ]
8
8
 
9
9
  jobs:
10
- build-package-macos-12:
10
+ build-package-no-visionOS:
11
11
  name: "Build Package"
12
- runs-on: macos-12
12
+ runs-on: macos-13
13
13
  strategy:
14
14
  fail-fast: false
15
15
  matrix:
16
16
  xcode:
17
- - '13.4.1' # Swift 5.6
17
+ - '14.1' # Swift 5.7
18
+ - '14.3' # Swift 5.8
18
19
  steps:
19
20
  - uses: actions/checkout@v2
20
21
  - uses: ./.github/actions/setup
21
22
  with:
22
23
  xcode: ${{ matrix.xcode }}
23
24
  - name: Build Package
25
+ # Only Xcode 15.2 and later support visionOS, so exclude it on earlier versions.
24
26
  run: SKIP_VISION_OS=true bundle exec rake build:package:all
25
27
 
26
- build-package-macos-13:
28
+ build-package:
27
29
  name: "Build Package"
28
30
  runs-on: macos-13
29
31
  strategy:
30
32
  fail-fast: false
31
33
  matrix:
32
34
  xcode:
33
- - '14.2' # Swift 5.7
34
- - '14.3' # Swift 5.8
35
- - '15.0' # Swift 5.9
35
+ - '15.2' # Swift 5.9
36
36
  steps:
37
37
  - uses: actions/checkout@v2
38
38
  - uses: ./.github/actions/setup
39
39
  with:
40
40
  xcode: ${{ matrix.xcode }}
41
41
  - name: Build Package
42
- # Once there is a production Xcode version with the visionOS SDK,
43
- # we will want to use that version without `SKIP_VISION_OS=true`
44
- run: SKIP_VISION_OS=true bundle exec rake build:package:all
42
+ run: bundle exec rake build:package:all
43
+
45
44
 
46
45
  build-example:
47
46
  name: "Build Example App"
@@ -50,11 +49,9 @@ jobs:
50
49
  - uses: actions/checkout@v2
51
50
  - uses: ./.github/actions/setup
52
51
  with:
53
- xcode: '15.0' # Swift 5.9
52
+ xcode: '15.2' # Swift 5.9
54
53
  - name: Build Example
55
- # Once there is a production Xcode version with the visionOS SDK,
56
- # we will want to remove `SKIP_VISION_OS=true`
57
- run: SKIP_VISION_OS=true bundle exec rake build:example:all
54
+ run: bundle exec rake build:example:all
58
55
 
59
56
  test-package:
60
57
  name: "Test Package"
@@ -63,7 +60,7 @@ jobs:
63
60
  - uses: actions/checkout@v2
64
61
  - uses: ./.github/actions/setup
65
62
  with:
66
- xcode: '14.3' # Swift 5.8
63
+ xcode: '15.2' # Swift 5.9
67
64
  - name: Test Package
68
65
  run: bundle exec rake test:package
69
66
  - name: Process test artifacts
@@ -88,87 +85,83 @@ jobs:
88
85
  EMERGE_API_TOKEN: ${{ secrets.EMERGE_API_TOKEN }}
89
86
  PR_NUMBER: ${{ github.event.number }}
90
87
 
91
- build-xcframework-macos-12:
88
+ build-xcframework-minimum-supported-version:
92
89
  name: "Build XCFramework"
93
- runs-on: macos-12
90
+ runs-on: macos-13
94
91
  strategy:
95
92
  matrix:
96
93
  xcode:
97
94
  # XCFrameworks are forwards-compatible but not backwards-compatible.
98
95
  # The Xcode version we use for this job is that oldest Xcode version that
99
96
  # will be able to use these XCFrameworks and the lottie-spm package.
100
- - '13.4.1' # Swift 5.6.1
97
+ # This should be the minimum Xcode version permitted by the App Store.
98
+ # As of April 2023, this is Xcode 14.1: https://developer.apple.com/news/?id=jd9wcyov
99
+ # - TODO: Once this minimum supported Xcode version is 15.0 or later,
100
+ # we can use Xcode 15.2 here and remove the `build-xcframework-with-visionOS-support` job.
101
+ # Testing in https://github.com/airbnb/lottie-spm/pull/12 shows that Xcode 15.0 can
102
+ # use an XCFramework built by Xcode 15.2.
103
+ - '14.1' # Swift 5.7.1
101
104
  steps:
102
105
  - uses: actions/checkout@v2
106
+ - uses: apple-actions/import-codesign-certs@v2
107
+ continue-on-error: true
108
+ with:
109
+ p12-file-base64: ${{ secrets.SIGNING_CERTIFICATE_BASE_64 }}
110
+ p12-password: ${{ secrets.SIGNING_CERTIFICATE_PASSWORD }}
103
111
  - uses: ./.github/actions/setup
104
112
  with:
105
113
  xcode: ${{ matrix.xcode }}
106
114
  - name: Build XCFramework
107
- # Once there is a production Xcode version with the visionOS SDK, we will
108
- # need to also build an XCFramework using that version but without `SKIP_VISION_OS=true`
109
115
  run: SKIP_VISION_OS=true bundle exec rake build:xcframework[Lottie-Xcode-${{ matrix.xcode }}]
110
116
  - name: Upload XCFramework
111
117
  uses: actions/upload-artifact@v2
112
118
  with:
113
119
  name: BuildProducts
114
- # The xcframework is at the path `.build/archives/Lottie.xcframework.zip`.
115
- # GitHub always zips the artifacts before uploading, so if we uploaded the .xframework.zip
116
- # directly then it would actually upload a double-zip (a .zip containing our `Lottie.xcframework.zip`).
117
- # This is confusing especially since macOS Archive Utility automatially unzips both layers at once.
118
- # Instead, we upload the entire archives folder, resulting in an `XCFramework.zip` that unzips
119
- # to an `archives` directory containing our `Lottie.xcframework.zip`.
120
120
  path: .build/archives
121
121
 
122
- cocoapod:
123
- name: "Lint CocoaPods podspec"
124
- runs-on: macos-13
125
- steps:
126
- - uses: actions/checkout@v2
127
- - uses: ./.github/actions/setup
128
- with:
129
- install-mint: false
130
- - name: Lint CocoaPod Podspec
131
- run: bundle exec rake lint:podspec
132
-
133
- spm-xcode-15:
134
- name: "Test Swift Package Manager"
122
+ build-xcframework-with-visionOS-support:
123
+ name: "Build XCFramework"
135
124
  runs-on: macos-13
136
125
  strategy:
137
126
  matrix:
138
127
  xcode:
139
- - '15.0' # Swift 5.9
128
+ - '15.2' # Swift 5.9, first Xcode version with visionOS support.
140
129
  steps:
141
130
  - uses: actions/checkout@v2
131
+ - uses: apple-actions/import-codesign-certs@v2
132
+ continue-on-error: true
133
+ with:
134
+ p12-file-base64: ${{ secrets.SIGNING_CERTIFICATE_BASE_64 }}
135
+ p12-password: ${{ secrets.SIGNING_CERTIFICATE_PASSWORD }}
142
136
  - uses: ./.github/actions/setup
143
137
  with:
144
- install-mint: true
145
138
  xcode: ${{ matrix.xcode }}
146
- - name: Test Swift Package Manager support
147
- run: bundle exec rake test:spm
139
+ - name: Build XCFramework
140
+ run: bundle exec rake build:xcframework[Lottie-Xcode-${{ matrix.xcode }}]
141
+ - name: Upload XCFramework
142
+ uses: actions/upload-artifact@v2
143
+ with:
144
+ name: BuildProducts
145
+ path: .build/archives
148
146
 
149
- spm-xcode-14:
150
- name: "Test Swift Package Manager"
147
+ cocoapod:
148
+ name: "Lint CocoaPods podspec"
151
149
  runs-on: macos-13
152
- strategy:
153
- matrix:
154
- xcode:
155
- - '14.3' # Swift 5.8
156
150
  steps:
157
151
  - uses: actions/checkout@v2
158
152
  - uses: ./.github/actions/setup
159
153
  with:
160
- install-mint: true
161
- xcode: ${{ matrix.xcode }}
162
- - name: Test Swift Package Manager support
163
- run: SKIP_VISION_OS=true bundle exec rake test:spm
154
+ install-mint: false
155
+ - name: Lint CocoaPod Podspec
156
+ run: bundle exec rake lint:podspec
164
157
 
165
- spm-xcode-13:
158
+ spm-xcode-15:
166
159
  name: "Test Swift Package Manager"
167
- runs-on: macos-12
160
+ runs-on: macos-13
168
161
  strategy:
169
162
  matrix:
170
163
  xcode:
171
- - '13.4.1' # Swift 5.6
164
+ - '15.2' # Swift 5.9
172
165
  steps:
173
166
  - uses: actions/checkout@v2
174
167
  - uses: ./.github/actions/setup
@@ -176,7 +169,7 @@ jobs:
176
169
  install-mint: true
177
170
  xcode: ${{ matrix.xcode }}
178
171
  - name: Test Swift Package Manager support
179
- run: SKIP_VISION_OS=true bundle exec rake test:spm
172
+ run: bundle exec rake test:spm
180
173
 
181
174
  carthage:
182
175
  name: "Test Carthage support"
@@ -187,7 +180,7 @@ jobs:
187
180
  with:
188
181
  install-mint: true
189
182
  install-carthage: true
190
- xcode: '14.3' # Swift 5.8
183
+ xcode: '15.2' # Swift 5.9
191
184
  - name: Test Carthage support
192
185
  run: bundle exec rake test:carthage
193
186
 
@@ -331,6 +331,10 @@
331
331
  0887347C28F0CCDD00458627 /* LottieAnimationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0887347428F0CCDD00458627 /* LottieAnimationView.swift */; };
332
332
  0887347D28F0CCDD00458627 /* LottieAnimationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0887347428F0CCDD00458627 /* LottieAnimationView.swift */; };
333
333
  089C50C22ABA0C6D007903D3 /* LoggingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089C50C12ABA0C6D007903D3 /* LoggingTests.swift */; };
334
+ 089E5D9F2B4CCD3F00F4F836 /* Keyframes+timeRemapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089E5D9E2B4CCD3F00F4F836 /* Keyframes+timeRemapping.swift */; };
335
+ 089E5DA02B4CCD3F00F4F836 /* Keyframes+timeRemapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089E5D9E2B4CCD3F00F4F836 /* Keyframes+timeRemapping.swift */; };
336
+ 089E5DA12B4CCD3F00F4F836 /* Keyframes+timeRemapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089E5D9E2B4CCD3F00F4F836 /* Keyframes+timeRemapping.swift */; };
337
+ 089E5DA22B4CCD3F00F4F836 /* Keyframes+timeRemapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089E5D9E2B4CCD3F00F4F836 /* Keyframes+timeRemapping.swift */; };
334
338
  08AB05552A61C20400DE86FD /* ReducedMotionOption.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AB05542A61C20400DE86FD /* ReducedMotionOption.swift */; };
335
339
  08AB05562A61C20400DE86FD /* ReducedMotionOption.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AB05542A61C20400DE86FD /* ReducedMotionOption.swift */; };
336
340
  08AB05572A61C20400DE86FD /* ReducedMotionOption.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AB05542A61C20400DE86FD /* ReducedMotionOption.swift */; };
@@ -340,6 +344,10 @@
340
344
  08AB055D2A61C5CC00DE86FD /* RenderingEngineOption.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AB055C2A61C5CC00DE86FD /* RenderingEngineOption.swift */; };
341
345
  08AB055E2A61C5CC00DE86FD /* RenderingEngineOption.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AB055C2A61C5CC00DE86FD /* RenderingEngineOption.swift */; };
342
346
  08AB055F2A61C5CC00DE86FD /* RenderingEngineOption.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AB055C2A61C5CC00DE86FD /* RenderingEngineOption.swift */; };
347
+ 08BCA8472B0E8E0B00594EEB /* LRUCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08BCA8452B0E8E0B00594EEB /* LRUCache.swift */; };
348
+ 08BCA8482B0E8E0B00594EEB /* LRUCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08BCA8452B0E8E0B00594EEB /* LRUCache.swift */; };
349
+ 08BCA8492B0E8E0B00594EEB /* LRUCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08BCA8452B0E8E0B00594EEB /* LRUCache.swift */; };
350
+ 08BCA84A2B0E8E0B00594EEB /* LRUCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08BCA8452B0E8E0B00594EEB /* LRUCache.swift */; };
343
351
  08C001F32A46150D00AB54BA /* Archive+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C001E02A46150D00AB54BA /* Archive+Helpers.swift */; };
344
352
  08C001F42A46150D00AB54BA /* Archive+MemoryFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C001E12A46150D00AB54BA /* Archive+MemoryFile.swift */; };
345
353
  08C001F52A46150D00AB54BA /* Archive+BackingConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C001E22A46150D00AB54BA /* Archive+BackingConfiguration.swift */; };
@@ -552,6 +560,10 @@
552
560
  08F8B20F2898A7B100CB5323 /* RepeaterLayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F8B20C2898A7B100CB5323 /* RepeaterLayer.swift */; };
553
561
  08F8B211289990B700CB5323 /* Samples in Resources */ = {isa = PBXBuildFile; fileRef = 08F8B210289990B700CB5323 /* Samples */; };
554
562
  08F8B213289990CB00CB5323 /* SnapshotTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F8B212289990CB00CB5323 /* SnapshotTests.swift */; };
563
+ 08FB47C62B23B86500744478 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 08FB47C52B23B86500744478 /* PrivacyInfo.xcprivacy */; };
564
+ 08FB47C72B23B86500744478 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 08FB47C52B23B86500744478 /* PrivacyInfo.xcprivacy */; };
565
+ 08FB47C82B23B86500744478 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 08FB47C52B23B86500744478 /* PrivacyInfo.xcprivacy */; };
566
+ 08FB47C92B23B86500744478 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 08FB47C52B23B86500744478 /* PrivacyInfo.xcprivacy */; };
555
567
  08FE934E28F4CCAC00D3A7E6 /* InfiniteOpaqueAnimationLayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08FE934D28F4CCAC00D3A7E6 /* InfiniteOpaqueAnimationLayer.swift */; };
556
568
  08FE934F28F4CCAC00D3A7E6 /* InfiniteOpaqueAnimationLayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08FE934D28F4CCAC00D3A7E6 /* InfiniteOpaqueAnimationLayer.swift */; };
557
569
  08FE935028F4CCAC00D3A7E6 /* InfiniteOpaqueAnimationLayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08FE934D28F4CCAC00D3A7E6 /* InfiniteOpaqueAnimationLayer.swift */; };
@@ -1178,9 +1190,12 @@
1178
1190
  0887347328F0CCDD00458627 /* LottieAnimationViewInitializers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LottieAnimationViewInitializers.swift; sourceTree = "<group>"; };
1179
1191
  0887347428F0CCDD00458627 /* LottieAnimationView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LottieAnimationView.swift; sourceTree = "<group>"; };
1180
1192
  089C50C12ABA0C6D007903D3 /* LoggingTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoggingTests.swift; sourceTree = "<group>"; };
1193
+ 089E5D9E2B4CCD3F00F4F836 /* Keyframes+timeRemapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Keyframes+timeRemapping.swift"; sourceTree = "<group>"; };
1181
1194
  08AB05542A61C20400DE86FD /* ReducedMotionOption.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReducedMotionOption.swift; sourceTree = "<group>"; };
1182
1195
  08AB05582A61C5B700DE86FD /* DecodingStrategy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DecodingStrategy.swift; sourceTree = "<group>"; };
1183
1196
  08AB055C2A61C5CC00DE86FD /* RenderingEngineOption.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RenderingEngineOption.swift; sourceTree = "<group>"; };
1197
+ 08BCA8452B0E8E0B00594EEB /* LRUCache.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LRUCache.swift; sourceTree = "<group>"; };
1198
+ 08BCA8462B0E8E0B00594EEB /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
1184
1199
  08C001E02A46150D00AB54BA /* Archive+Helpers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Archive+Helpers.swift"; sourceTree = "<group>"; };
1185
1200
  08C001E12A46150D00AB54BA /* Archive+MemoryFile.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Archive+MemoryFile.swift"; sourceTree = "<group>"; };
1186
1201
  08C001E22A46150D00AB54BA /* Archive+BackingConfiguration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Archive+BackingConfiguration.swift"; sourceTree = "<group>"; };
@@ -1257,6 +1272,7 @@
1257
1272
  08F8B20C2898A7B100CB5323 /* RepeaterLayer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RepeaterLayer.swift; sourceTree = "<group>"; };
1258
1273
  08F8B210289990B700CB5323 /* Samples */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Samples; sourceTree = "<group>"; };
1259
1274
  08F8B212289990CB00CB5323 /* SnapshotTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SnapshotTests.swift; sourceTree = "<group>"; };
1275
+ 08FB47C52B23B86500744478 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = Sources/PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
1260
1276
  08FE934D28F4CCAC00D3A7E6 /* InfiniteOpaqueAnimationLayer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfiniteOpaqueAnimationLayer.swift; sourceTree = "<group>"; };
1261
1277
  19465F51282F998B00BB2C97 /* CachedImageProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CachedImageProvider.swift; sourceTree = "<group>"; };
1262
1278
  2E044E262820536800FA773B /* AutomaticEngineTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AutomaticEngineTests.swift; sourceTree = "<group>"; };
@@ -1553,12 +1569,22 @@
1553
1569
  path = Configuration;
1554
1570
  sourceTree = "<group>";
1555
1571
  };
1572
+ 08BCA8442B0E8E0B00594EEB /* LRUCache */ = {
1573
+ isa = PBXGroup;
1574
+ children = (
1575
+ 08BCA8452B0E8E0B00594EEB /* LRUCache.swift */,
1576
+ 08BCA8462B0E8E0B00594EEB /* README.md */,
1577
+ );
1578
+ path = LRUCache;
1579
+ sourceTree = "<group>";
1580
+ };
1556
1581
  08C001DE2A4614CF00AB54BA /* EmbeddedLibraries */ = {
1557
1582
  isa = PBXGroup;
1558
1583
  children = (
1559
1584
  08C002062A46152200AB54BA /* README.md */,
1560
1585
  08C0021E2A46166400AB54BA /* EpoxyCore */,
1561
1586
  08C001DF2A46150D00AB54BA /* ZipFoundation */,
1587
+ 08BCA8442B0E8E0B00594EEB /* LRUCache */,
1562
1588
  );
1563
1589
  path = EmbeddedLibraries;
1564
1590
  sourceTree = "<group>";
@@ -1722,6 +1748,7 @@
1722
1748
  children = (
1723
1749
  2EAF59C027A0798600E00531 /* Sources */,
1724
1750
  2E8040BA27A07343006E74CB /* Tests */,
1751
+ 08FB47C52B23B86500744478 /* PrivacyInfo.xcprivacy */,
1725
1752
  2E80409B27A0725D006E74CB /* Products */,
1726
1753
  );
1727
1754
  sourceTree = "<group>";
@@ -2123,6 +2150,7 @@
2123
2150
  2E9C95AA2822F43100677516 /* CALayer+fillBounds.swift */,
2124
2151
  2E9C95AB2822F43100677516 /* Keyframes+combined.swift */,
2125
2152
  2E9C95AC2822F43100677516 /* KeyframeGroup+exactlyOneKeyframe.swift */,
2153
+ 089E5D9E2B4CCD3F00F4F836 /* Keyframes+timeRemapping.swift */,
2126
2154
  );
2127
2155
  path = Extensions;
2128
2156
  sourceTree = "<group>";
@@ -2616,6 +2644,7 @@
2616
2644
  isa = PBXResourcesBuildPhase;
2617
2645
  buildActionMask = 2147483647;
2618
2646
  files = (
2647
+ 08FB47C92B23B86500744478 /* PrivacyInfo.xcprivacy in Resources */,
2619
2648
  );
2620
2649
  runOnlyForDeploymentPostprocessing = 0;
2621
2650
  };
@@ -2623,6 +2652,7 @@
2623
2652
  isa = PBXResourcesBuildPhase;
2624
2653
  buildActionMask = 2147483647;
2625
2654
  files = (
2655
+ 08FB47C62B23B86500744478 /* PrivacyInfo.xcprivacy in Resources */,
2626
2656
  );
2627
2657
  runOnlyForDeploymentPostprocessing = 0;
2628
2658
  };
@@ -2639,6 +2669,7 @@
2639
2669
  isa = PBXResourcesBuildPhase;
2640
2670
  buildActionMask = 2147483647;
2641
2671
  files = (
2672
+ 08FB47C72B23B86500744478 /* PrivacyInfo.xcprivacy in Resources */,
2642
2673
  );
2643
2674
  runOnlyForDeploymentPostprocessing = 0;
2644
2675
  };
@@ -2646,6 +2677,7 @@
2646
2677
  isa = PBXResourcesBuildPhase;
2647
2678
  buildActionMask = 2147483647;
2648
2679
  files = (
2680
+ 08FB47C82B23B86500744478 /* PrivacyInfo.xcprivacy in Resources */,
2649
2681
  );
2650
2682
  runOnlyForDeploymentPostprocessing = 0;
2651
2683
  };
@@ -2876,6 +2908,7 @@
2876
2908
  080DEFFE2A95712400BE2D96 /* GradientAnimations.swift in Sources */,
2877
2909
  080DF03C2A95715900BE2D96 /* Star.swift in Sources */,
2878
2910
  080DEFD32A95711400BE2D96 /* Entry+Serialization.swift in Sources */,
2911
+ 08BCA84A2B0E8E0B00594EEB /* LRUCache.swift in Sources */,
2879
2912
  080DF01D2A95713B00BE2D96 /* StarNode.swift in Sources */,
2880
2913
  080DEFB02A9570FE00BE2D96 /* AnimatedProviding.swift in Sources */,
2881
2914
  080DEFC72A95710F00BE2D96 /* EpoxyableView.swift in Sources */,
@@ -2915,6 +2948,7 @@
2915
2948
  080DEFB12A9570FE00BE2D96 /* WillDisplayProviding.swift in Sources */,
2916
2949
  080DEFE82A95711E00BE2D96 /* ImageLayer.swift in Sources */,
2917
2950
  080DF0672A95717600BE2D96 /* AnimatorNodeDebugging.swift in Sources */,
2951
+ 089E5DA22B4CCD3F00F4F836 /* Keyframes+timeRemapping.swift in Sources */,
2918
2952
  080DEFAC2A9570FE00BE2D96 /* StyleIDProviding.swift in Sources */,
2919
2953
  080DF0002A95712400BE2D96 /* CombinedShapeAnimation.swift in Sources */,
2920
2954
  080DEFD42A95711400BE2D96 /* Archive+Helpers.swift in Sources */,
@@ -2977,6 +3011,7 @@
2977
3011
  0887346F28F0CBDE00458627 /* LottieAnimation.swift in Sources */,
2978
3012
  08C002002A46150D00AB54BA /* Data+CompressionDeprecated.swift in Sources */,
2979
3013
  0820D5B82A8BF159007D705C /* DropShadowStyle.swift in Sources */,
3014
+ 089E5D9F2B4CCD3F00F4F836 /* Keyframes+timeRemapping.swift in Sources */,
2980
3015
  2E9C97412822F43100677516 /* TestHelpers.swift in Sources */,
2981
3016
  08EF21DC289C643B0097EA47 /* KeyframeInterpolator.swift in Sources */,
2982
3017
  2E9C96152822F43100677516 /* Transform.swift in Sources */,
@@ -3175,6 +3210,7 @@
3175
3210
  2E9C96242822F43100677516 /* KeyframeGroup.swift in Sources */,
3176
3211
  2E9C96FF2822F43100677516 /* BaseAnimationLayer.swift in Sources */,
3177
3212
  08E206F72A56014E002DCE17 /* Collection+Diff.swift in Sources */,
3213
+ 08BCA8472B0E8E0B00594EEB /* LRUCache.swift in Sources */,
3178
3214
  08C001F62A46150D00AB54BA /* Archive.swift in Sources */,
3179
3215
  2E9C96AB2822F43100677516 /* GradientStrokeNode.swift in Sources */,
3180
3216
  08E2071B2A56014E002DCE17 /* EpoxySwiftUIHostingView.swift in Sources */,
@@ -3290,6 +3326,7 @@
3290
3326
  2E9C966D2822F43100677516 /* LayerImageProvider.swift in Sources */,
3291
3327
  2EAF5ABD27A0798700E00531 /* FilepathImageProvider.swift in Sources */,
3292
3328
  2EAF5AEA27A0798700E00531 /* AnimationTextProvider.swift in Sources */,
3329
+ 089E5DA02B4CCD3F00F4F836 /* Keyframes+timeRemapping.swift in Sources */,
3293
3330
  08E206FE2A56014E002DCE17 /* Diffable.swift in Sources */,
3294
3331
  2E9C96672822F43100677516 /* LayerTransformNode.swift in Sources */,
3295
3332
  0887347028F0CBDE00458627 /* LottieAnimation.swift in Sources */,
@@ -3488,6 +3525,7 @@
3488
3525
  2EAF5AC327A0798700E00531 /* BundleImageProvider.swift in Sources */,
3489
3526
  08AB055A2A61C5B700DE86FD /* DecodingStrategy.swift in Sources */,
3490
3527
  08E207492A56014E002DCE17 /* AnimatedProviding.swift in Sources */,
3528
+ 08BCA8482B0E8E0B00594EEB /* LRUCache.swift in Sources */,
3491
3529
  2E9C976C2822F43100677516 /* InterpolatableExtensions.swift in Sources */,
3492
3530
  2E9C96EE2822F43100677516 /* ShapeItemLayer.swift in Sources */,
3493
3531
  08C002D62A46196300AB54BA /* Data+CompressionDeprecated.swift in Sources */,
@@ -3577,6 +3615,7 @@
3577
3615
  0887347128F0CBDE00458627 /* LottieAnimation.swift in Sources */,
3578
3616
  2E9C97432822F43100677516 /* TestHelpers.swift in Sources */,
3579
3617
  0820D5BA2A8BF159007D705C /* DropShadowStyle.swift in Sources */,
3618
+ 089E5DA12B4CCD3F00F4F836 /* Keyframes+timeRemapping.swift in Sources */,
3580
3619
  08EF21DE289C643B0097EA47 /* KeyframeInterpolator.swift in Sources */,
3581
3620
  2E9C96172822F43100677516 /* Transform.swift in Sources */,
3582
3621
  2E9C97492822F43100677516 /* CGFloatExtensions.swift in Sources */,
@@ -3775,6 +3814,7 @@
3775
3814
  2E9C97012822F43100677516 /* BaseAnimationLayer.swift in Sources */,
3776
3815
  2E9C96AD2822F43100677516 /* GradientStrokeNode.swift in Sources */,
3777
3816
  08E206F92A56014E002DCE17 /* Collection+Diff.swift in Sources */,
3817
+ 08BCA8492B0E8E0B00594EEB /* LRUCache.swift in Sources */,
3778
3818
  2EAF5AC427A0798700E00531 /* BundleImageProvider.swift in Sources */,
3779
3819
  08E2071D2A56014E002DCE17 /* EpoxySwiftUIHostingView.swift in Sources */,
3780
3820
  2E9C976D2822F43100677516 /* InterpolatableExtensions.swift in Sources */,
@@ -7,35 +7,22 @@
7
7
  <key>Lottie (iOS).xcscheme_^#shared#^_</key>
8
8
  <dict>
9
9
  <key>orderHint</key>
10
- <integer>3</integer>
10
+ <integer>2</integer>
11
11
  </dict>
12
12
  <key>Lottie (macOS).xcscheme_^#shared#^_</key>
13
13
  <dict>
14
14
  <key>orderHint</key>
15
- <integer>4</integer>
15
+ <integer>3</integer>
16
16
  </dict>
17
17
  <key>Lottie (tvOS).xcscheme_^#shared#^_</key>
18
18
  <dict>
19
19
  <key>orderHint</key>
20
- <integer>5</integer>
20
+ <integer>4</integer>
21
21
  </dict>
22
22
  <key>Lottie (visionOS).xcscheme_^#shared#^_</key>
23
23
  <dict>
24
24
  <key>orderHint</key>
25
- <integer>6</integer>
26
- </dict>
27
- </dict>
28
- <key>SuppressBuildableAutocreation</key>
29
- <dict>
30
- <key>080DEF612A95707B00BE2D96</key>
31
- <dict>
32
- <key>primary</key>
33
- <true/>
34
- </dict>
35
- <key>2EAF59B827A078E400E00531</key>
36
- <dict>
37
- <key>primary</key>
38
- <true/>
25
+ <integer>5</integer>
39
26
  </dict>
40
27
  </dict>
41
28
  </dict>
@@ -1,43 +1,40 @@
1
1
  {
2
- "object": {
3
- "pins": [
4
- {
5
- "package": "Difference",
6
- "repositoryURL": "https://github.com/krzysztofzablocki/Difference",
7
- "state": {
8
- "branch": null,
9
- "revision": "02fe1111edc8318c4f8a0da96336fcbcc201f38b",
10
- "version": "1.0.1"
11
- }
12
- },
13
- {
14
- "package": "AirbnbSwift",
15
- "repositoryURL": "https://github.com/airbnb/swift",
16
- "state": {
17
- "branch": null,
18
- "revision": "6900f5ab7ab7394ac85eb9da52b2528ee329b206",
19
- "version": "1.0.4"
20
- }
21
- },
22
- {
23
- "package": "swift-argument-parser",
24
- "repositoryURL": "https://github.com/apple/swift-argument-parser",
25
- "state": {
26
- "branch": null,
27
- "revision": "fddd1c00396eed152c45a46bea9f47b98e59301d",
28
- "version": "1.2.0"
29
- }
30
- },
31
- {
32
- "package": "swift-snapshot-testing",
33
- "repositoryURL": "https://github.com/pointfreeco/swift-snapshot-testing.git",
34
- "state": {
35
- "branch": null,
36
- "revision": "0c2826f26d00ff5ddf2de92cb6b2139b0dd3d1ee",
37
- "version": null
38
- }
2
+ "pins" : [
3
+ {
4
+ "identity" : "difference",
5
+ "kind" : "remoteSourceControl",
6
+ "location" : "https://github.com/krzysztofzablocki/Difference",
7
+ "state" : {
8
+ "revision" : "02fe1111edc8318c4f8a0da96336fcbcc201f38b",
9
+ "version" : "1.0.1"
39
10
  }
40
- ]
41
- },
42
- "version": 1
11
+ },
12
+ {
13
+ "identity" : "swift",
14
+ "kind" : "remoteSourceControl",
15
+ "location" : "https://github.com/airbnb/swift",
16
+ "state" : {
17
+ "revision" : "6900f5ab7ab7394ac85eb9da52b2528ee329b206",
18
+ "version" : "1.0.4"
19
+ }
20
+ },
21
+ {
22
+ "identity" : "swift-argument-parser",
23
+ "kind" : "remoteSourceControl",
24
+ "location" : "https://github.com/apple/swift-argument-parser",
25
+ "state" : {
26
+ "revision" : "fddd1c00396eed152c45a46bea9f47b98e59301d",
27
+ "version" : "1.2.0"
28
+ }
29
+ },
30
+ {
31
+ "identity" : "swift-snapshot-testing",
32
+ "kind" : "remoteSourceControl",
33
+ "location" : "https://github.com/pointfreeco/swift-snapshot-testing.git",
34
+ "state" : {
35
+ "revision" : "0c2826f26d00ff5ddf2de92cb6b2139b0dd3d1ee"
36
+ }
37
+ }
38
+ ],
39
+ "version" : 2
43
40
  }