tfmart / LottieUI

LottieUI is a SwiftUI wrapper for Lottie Animations for iOS
MIT License
93 stars 2 forks source link

Build failing for macOS target #11

Open niklasberglund opened 1 year ago

niklasberglund commented 1 year ago

After just adding the package and building my macOS target it's failing with this build error. Could it be because of the syntax in lottie-ios's RenderingEngineOption.swift? Some Swift version incompatibility maybe. My environment is on Swift 5.9(swiftlang-5.9.0.128.108 clang-1500.0.40.1). Is there a recommended Swift version to use with LottieUI?

ld: Undefined symbols:
  enum case for Lottie.LottieContentMode.scaleAspectFit(Lottie.LottieContentMode.Type) -> Lottie.LottieContentMode, referenced from:
      LottieUI.WrappedAnimationNSView.init(animation: Lottie.LottieAnimation?, provider: Lottie.AnimationImageProvider?) -> LottieUI.WrappedAnimationNSView in LottieUI.o
      LottieUI.WrappedAnimationNSView.update(withEngine: Lottie.RenderingEngineOption) -> () in LottieUI.o
  dispatch thunk of Lottie.LottieAnimationView.realtimeAnimationFrame.getter : CoreGraphics.CGFloat, referenced from:
      closure #1 @Swift.MainActor () -> () in LottieUI.AnimationProgressObserver.(tick in _385C634819DA2085EAADFB3078ACC442)() -> () in LottieUI.o
  dispatch thunk of Lottie.LottieAnimationView.realtimeAnimationProgress.getter : CoreGraphics.CGFloat, referenced from:
      closure #1 @Swift.MainActor () -> () in LottieUI.AnimationProgressObserver.(tick in _385C634819DA2085EAADFB3078ACC442)() -> () in LottieUI.o
  dispatch thunk of Lottie.LottieAnimationView.configuration.getter : Lottie.LottieConfiguration, referenced from:
      LottieUI.WrappedAnimationNSView.renderingEngine.getter : Lottie.RenderingEngineOption in LottieUI.o
      LottieUI.WrappedAnimationNSView.renderingEngine.setter : Lottie.RenderingEngineOption in LottieUI.o
  dispatch thunk of Lottie.LottieAnimationView.imageProvider.getter : Lottie.AnimationImageProvider, referenced from:
      LottieUI.WrappedAnimationNSView.update(withEngine: Lottie.RenderingEngineOption) -> () in LottieUI.o
  dispatch thunk of Lottie.LottieAnimationView.animationSpeed.getter : CoreGraphics.CGFloat, referenced from:
      LottieUI.WrappedAnimationNSView.speed.getter : CoreGraphics.CGFloat in LottieUI.o
  dispatch thunk of Lottie.LottieAnimationView.animationSpeed.setter : CoreGraphics.CGFloat, referenced from:
      LottieUI.WrappedAnimationNSView.speed.setter : CoreGraphics.CGFloat in LottieUI.o
  dispatch thunk of Lottie.LottieAnimationView.setValueProvider(_: Lottie.AnyValueProvider, keypath: Lottie.AnimationKeypath) -> (), referenced from:
      LottieUI.WrappedAnimationNSView.setValueProvider(_: Lottie.AnyValueProvider?, keypath: Lottie.AnimationKeypath?) -> () in LottieUI.o
  dispatch thunk of Lottie.LottieAnimationView.backgroundBehavior.getter : Lottie.LottieBackgroundBehavior, referenced from:
      LottieUI.WrappedAnimationNSView.backgroundBehavior.getter : Lottie.LottieBackgroundBehavior in LottieUI.o
  dispatch thunk of Lottie.LottieAnimationView.backgroundBehavior.setter : Lottie.LottieBackgroundBehavior, referenced from:
      LottieUI.WrappedAnimationNSView.backgroundBehavior.setter : Lottie.LottieBackgroundBehavior in LottieUI.o
  dispatch thunk of Lottie.LottieAnimationView.play(completion: ((Swift.Bool) -> ())?) -> (), referenced from:
      LottieUI.WrappedAnimationNSView.play(completion: ((Swift.Bool) -> ())?) -> () in LottieUI.o
  dispatch thunk of Lottie.LottieAnimationView.play(fromFrame: CoreGraphics.CGFloat?, toFrame: CoreGraphics.CGFloat, loopMode: Lottie.LottieLoopMode?, completion: ((Swift.Bool) -> ())?) -> (), referenced from:
      LottieUI.WrappedAnimationNSView.play(fromFrame: CoreGraphics.CGFloat, toFrame: CoreGraphics.CGFloat, loopMode: Lottie.LottieLoopMode, _: ((Swift.Bool) -> ())?) -> () in LottieUI.o
  dispatch thunk of Lottie.LottieAnimationView.stop() -> (), referenced from:
      LottieUI.WrappedAnimationNSView.stop() -> () in LottieUI.o
  dispatch thunk of Lottie.LottieAnimationView.loopMode.getter : Lottie.LottieLoopMode, referenced from:
      LottieUI.WrappedAnimationNSView.loopMode.getter : Lottie.LottieLoopMode in LottieUI.o
  dispatch thunk of Lottie.LottieAnimationView.loopMode.setter : Lottie.LottieLoopMode, referenced from:
      LottieUI.WrappedAnimationNSView.loopMode.setter : Lottie.LottieLoopMode in LottieUI.o
  dispatch thunk of Lottie.LottieAnimationView.animation.getter : Lottie.LottieAnimation?, referenced from:
      LottieUI.WrappedAnimationNSView.update(withEngine: Lottie.RenderingEngineOption) -> () in LottieUI.o
  dispatch thunk of Lottie.LottieAnimationViewBase.contentMode.setter : Lottie.LottieContentMode, referenced from:
      LottieUI.WrappedAnimationNSView.init(animation: Lottie.LottieAnimation?, provider: Lottie.AnimationImageProvider?) -> LottieUI.WrappedAnimationNSView in LottieUI.o
      LottieUI.WrappedAnimationNSView.update(withEngine: Lottie.RenderingEngineOption) -> () in LottieUI.o
  enum case for Lottie.LottieBackgroundBehavior.pause(Lottie.LottieBackgroundBehavior.Type) -> Lottie.LottieBackgroundBehavior, referenced from:
      variable initialization expression of LottieUI.LottieConfiguration.(_backgroundBehavior in _3788E42FFA4BE53E59FCB330C0655D1F) : Combine.Published<Lottie.LottieBackgroundBehavior> in LottieUI.o
      LottieUI.LottieConfiguration.init() -> LottieUI.LottieConfiguration in LottieUI.o
  enum case for Lottie.LottieLoopMode.loop(Lottie.LottieLoopMode.Type) -> Lottie.LottieLoopMode, referenced from:
      closure #1 (LottieUI.AsyncLottiePhase) -> SwiftUI._ConditionalContent<SwiftUI._ConditionalContent<SwiftUI.Text, SwiftUI.Text>, LottieUI.LottieView> in static LottieUI.SwiftUIView_Previews.previews.getter : some in LottieUI.o
  enum case for Lottie.LottieLoopMode.playOnce(Lottie.LottieLoopMode.Type) -> Lottie.LottieLoopMode, referenced from:
      variable initialization expression of LottieUI.LottieConfiguration.(_loopMode in _3788E42FFA4BE53E59FCB330C0655D1F) : Combine.Published<Lottie.LottieLoopMode> in LottieUI.o
      LottieUI.LottieConfiguration.init() -> LottieUI.LottieConfiguration in LottieUI.o
  enum case for Lottie.DecodingStrategy.dictionaryBased(Lottie.DecodingStrategy.Type) -> Lottie.DecodingStrategy, referenced from:
      default argument 1 of Lottie.LottieConfiguration.init(renderingEngine: Lottie.RenderingEngineOption, decodingStrategy: Lottie.DecodingStrategy, colorSpace: __C.CGColorSpaceRef, reducedMotionOption: Lottie.ReducedMotionOption) -> Lottie.LottieConfiguration in LottieUI.o
  enum case for Lottie.RenderingEngineOption.automatic(Lottie.RenderingEngineOption.Type) -> Lottie.RenderingEngineOption, referenced from:
      variable initialization expression of LottieUI.LottieConfiguration.(_renderingEngine in _3788E42FFA4BE53E59FCB330C0655D1F) : Combine.Published<Lottie.RenderingEngineOption> in LottieUI.o
      LottieUI.LottieConfiguration.init() -> LottieUI.LottieConfiguration in LottieUI.o
clang: error: linker command failed with exit code 1 (use -v to see invocation)
niklasberglund commented 1 year ago

I found this to somehow be caused by my workspace created by CocoaPods. After deintegrating CocoaPods it's working well.