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