andrew-levy / sweet-sfsymbols

SF Symbols brought to you by Expo's Module API
65 stars 2 forks source link

Eas build Fastlane failure #2

Closed uyasarkocal closed 1 year ago

uyasarkocal commented 1 year ago

Trying out the package, thanks for shipping this fast!

But the package broke fastlane while building a development client on EAS, the logs are below:

Are there any extra steps to install that I've missed?

❌  (node_modules/sweet-sfsymbols/ios/SweetSFSymbolsModifiers.swift:108:20)

  106 |     }
  107 |     if #available(iOS 17.0, *) {
> 108 |       let options: SymbolEffectOptions = symbolEffect?.toSymbolEffectOptions() ?? .default
      |                    ^ cannot find type 'SymbolEffectOptions' in scope
  109 |       let direction = symbolEffect?.direction // maybe set this to up by default for scale
  110 |       let animateBy = symbolEffect?.animateBy
  111 |       let reversing = symbolEffect?.reversing

❌  (node_modules/sweet-sfsymbols/ios/SweetSFSymbolsModifiers.swift:116:27)

  114 |       switch symbolEffect?.type {
  115 |       case "bounce":
> 116 |         var bounceEffect: BounceSymbolEffect = .bounce
      |                           ^ cannot find type 'BounceSymbolEffect' in scope
  117 |         if direction == "up" {
  118 |           bounceEffect = bounceEffect.up
  119 |         } else if direction == "down" {

❌  (node_modules/sweet-sfsymbols/ios/SweetSFSymbolsModifiers.swift:127:32)

  125 |           bounceEffect = bounceEffect.wholeSymbol
  126 |         }
> 127 |         return AnyView(content.symbolEffect(bounceEffect, options: options, value: symbolEffect?.value))
      |                                ^ value of type 'SymbolEffectModifier.Content' has no member 'symbolEffect'
  128 |       case "pulse":
  129 |         var pulseEffect: PulseSymbolEffect = .pulse
  130 |         if animateBy == "layer" {

❌  (node_modules/sweet-sfsymbols/ios/SweetSFSymbolsModifiers.swift:129:26)

  127 |         return AnyView(content.symbolEffect(bounceEffect, options: options, value: symbolEffect?.value))
  128 |       case "pulse":
> 129 |         var pulseEffect: PulseSymbolEffect = .pulse
      |                          ^ cannot find type 'PulseSymbolEffect' in scope
  130 |         if animateBy == "layer" {
  131 |           pulseEffect = pulseEffect.byLayer
  132 |         } else if animateBy == "wholeSymbol" {

❌  (node_modules/sweet-sfsymbols/ios/SweetSFSymbolsModifiers.swift:136:34)

  134 |         }
  135 |         if let isActive = symbolEffect?.isActive {
> 136 |           return AnyView(content.symbolEffect(pulseEffect, options: options, isActive: isActive))
      |                                  ^ value of type 'SymbolEffectModifier.Content' has no member 'symbolEffect'
  137 |         } else if let value = symbolEffect?.value {
  138 |           return AnyView(content.symbolEffect(pulseEffect, options: options, value: value))
  139 |         } else {

❌  (node_modules/sweet-sfsymbols/ios/SweetSFSymbolsModifiers.swift:138:34)

  136 |           return AnyView(content.symbolEffect(pulseEffect, options: options, isActive: isActive))
  137 |         } else if let value = symbolEffect?.value {
> 138 |           return AnyView(content.symbolEffect(pulseEffect, options: options, value: value))
      |                                  ^ value of type 'SymbolEffectModifier.Content' has no member 'symbolEffect'
  139 |         } else {
  140 |           return AnyView(content.symbolEffect(pulseEffect, options: options))
  141 |         }

❌  (node_modules/sweet-sfsymbols/ios/SweetSFSymbolsModifiers.swift:140:34)

  138 |           return AnyView(content.symbolEffect(pulseEffect, options: options, value: value))
  139 |         } else {
> 140 |           return AnyView(content.symbolEffect(pulseEffect, options: options))
      |                                  ^ value of type 'SymbolEffectModifier.Content' has no member 'symbolEffect'
  141 |         }
  142 |       case "variableColor":
  143 |         var variableColorEffect: VariableColorSymbolEffect = .variableColor

❌  (node_modules/sweet-sfsymbols/ios/SweetSFSymbolsModifiers.swift:143:34)

  141 |         }
  142 |       case "variableColor":
> 143 |         var variableColorEffect: VariableColorSymbolEffect = .variableColor
      |                                  ^ cannot find type 'VariableColorSymbolEffect' in scope
  144 |         if reversing == true {
  145 |           variableColorEffect = variableColorEffect.reversing
  146 |         }

❌  (node_modules/sweet-sfsymbols/ios/SweetSFSymbolsModifiers.swift:158:34)

  156 |         }
  157 |         if let isActive = symbolEffect?.isActive {
> 158 |           return AnyView(content.symbolEffect(.variableColor, options: options, isActive: isActive))
      |                                  ^ value of type 'SymbolEffectModifier.Content' has no member 'symbolEffect'
  159 |         } else if let value = symbolEffect?.value {
  160 |           return AnyView(content.symbolEffect(.variableColor, options: options, value: value))
  161 |         } else {

❌  (node_modules/sweet-sfsymbols/ios/SweetSFSymbolsModifiers.swift:158:48)

  156 |         }
  157 |         if let isActive = symbolEffect?.isActive {
> 158 |           return AnyView(content.symbolEffect(.variableColor, options: options, isActive: isActive))
      |                                                ^ cannot infer contextual base in reference to member 'variableColor'
  159 |         } else if let value = symbolEffect?.value {
  160 |           return AnyView(content.symbolEffect(.variableColor, options: options, value: value))
  161 |         } else {

❌  (node_modules/sweet-sfsymbols/ios/SweetSFSymbolsModifiers.swift:160:34)

  158 |           return AnyView(content.symbolEffect(.variableColor, options: options, isActive: isActive))
  159 |         } else if let value = symbolEffect?.value {
> 160 |           return AnyView(content.symbolEffect(.variableColor, options: options, value: value))
      |                                  ^ value of type 'SymbolEffectModifier.Content' has no member 'symbolEffect'
  161 |         } else {
  162 |           return AnyView(content.symbolEffect(.variableColor, options: options))
  163 |         }

❌  (node_modules/sweet-sfsymbols/ios/SweetSFSymbolsModifiers.swift:160:48)

  158 |           return AnyView(content.symbolEffect(.variableColor, options: options, isActive: isActive))
  159 |         } else if let value = symbolEffect?.value {
> 160 |           return AnyView(content.symbolEffect(.variableColor, options: options, value: value))
      |                                                ^ cannot infer contextual base in reference to member 'variableColor'
  161 |         } else {
  162 |           return AnyView(content.symbolEffect(.variableColor, options: options))
  163 |         }

❌  (node_modules/sweet-sfsymbols/ios/SweetSFSymbolsModifiers.swift:162:34)

  160 |           return AnyView(content.symbolEffect(.variableColor, options: options, value: value))
  161 |         } else {
> 162 |           return AnyView(content.symbolEffect(.variableColor, options: options))
      |                                  ^ value of type 'SymbolEffectModifier.Content' has no member 'symbolEffect'
  163 |         }
  164 |       case "appear":
  165 |         var appearEffect: AppearSymbolEffect = .appear

❌  (node_modules/sweet-sfsymbols/ios/SweetSFSymbolsModifiers.swift:162:48)

  160 |           return AnyView(content.symbolEffect(.variableColor, options: options, value: value))
  161 |         } else {
> 162 |           return AnyView(content.symbolEffect(.variableColor, options: options))
      |                                                ^ cannot infer contextual base in reference to member 'variableColor'
  163 |         }
  164 |       case "appear":
  165 |         var appearEffect: AppearSymbolEffect = .appear

❌  (node_modules/sweet-sfsymbols/ios/SweetSFSymbolsModifiers.swift:165:27)

  163 |         }
  164 |       case "appear":
> 165 |         var appearEffect: AppearSymbolEffect = .appear
      |                           ^ cannot find type 'AppearSymbolEffect' in scope
  166 |         if direction == "up" {
  167 |           appearEffect = appearEffect.up
  168 |         } else if direction == "down" {

❌  (node_modules/sweet-sfsymbols/ios/SweetSFSymbolsModifiers.swift:177:34)

  175 |         }
  176 |         if let isActive = symbolEffect?.isActive {
> 177 |           return AnyView(content.symbolEffect(appearEffect, options: options, isActive: isActive))
      |                                  ^ value of type 'SymbolEffectModifier.Content' has no member 'symbolEffect'
  178 |         } else {
  179 |           return AnyView(content.transition(.symbolEffect(appearEffect, options: options)))
  180 |         }

❌  (node_modules/sweet-sfsymbols/ios/SweetSFSymbolsModifiers.swift:179:46)

  177 |           return AnyView(content.symbolEffect(appearEffect, options: options, isActive: isActive))
  178 |         } else {
> 179 |           return AnyView(content.transition(.symbolEffect(appearEffect, options: options)))
      |                                              ^ type 'AnyTransition' has no member 'symbolEffect'
  180 |         }
  181 |       case "disappear":
  182 |         var disappearEffect: DisappearSymbolEffect = .disappear

❌  (node_modules/sweet-sfsymbols/ios/SweetSFSymbolsModifiers.swift:182:30)

  180 |         }
  181 |       case "disappear":
> 182 |         var disappearEffect: DisappearSymbolEffect = .disappear
      |                              ^ cannot find type 'DisappearSymbolEffect' in scope
  183 |         if direction == "up" {
  184 |           disappearEffect = disappearEffect.up
  185 |         } else if direction == "down" {

❌  (node_modules/sweet-sfsymbols/ios/SweetSFSymbolsModifiers.swift:194:34)

  192 |         }
  193 |         if let isActive = symbolEffect?.isActive {
> 194 |           return AnyView(content.symbolEffect(disappearEffect, options: options, isActive: isActive))
      |                                  ^ value of type 'SymbolEffectModifier.Content' has no member 'symbolEffect'
  195 |         } else {
  196 |           return AnyView(content.transition(.symbolEffect(disappearEffect, options: options)))
  197 |         }

❌  (node_modules/sweet-sfsymbols/ios/SweetSFSymbolsModifiers.swift:196:46)

  194 |           return AnyView(content.symbolEffect(disappearEffect, options: options, isActive: isActive))
  195 |         } else {
> 196 |           return AnyView(content.transition(.symbolEffect(disappearEffect, options: options)))
      |                                              ^ type 'AnyTransition' has no member 'symbolEffect'
  197 |         }
  198 |       case "scale":
  199 |         var scaleEffect: ScaleSymbolEffect = .scale

❌  (node_modules/sweet-sfsymbols/ios/SweetSFSymbolsModifiers.swift:199:26)

  197 |         }
  198 |       case "scale":
> 199 |         var scaleEffect: ScaleSymbolEffect = .scale
      |                          ^ cannot find type 'ScaleSymbolEffect' in scope
  200 |         if direction == "up" || direction == nil {
  201 |           scaleEffect = scaleEffect.up
  202 |         } else if direction == "down" {

❌  (node_modules/sweet-sfsymbols/ios/SweetSFSymbolsModifiers.swift:211:34)

  209 |         }
  210 |         if let isActive = symbolEffect?.isActive {
> 211 |           return AnyView(content.symbolEffect(scaleEffect, options: options, isActive: isActive))
      |                                  ^ value of type 'SymbolEffectModifier.Content' has no member 'symbolEffect'
  212 |         } else {
  213 |           return AnyView(content.symbolEffect(scaleEffect, options: options))
  214 |         }

❌  (node_modules/sweet-sfsymbols/ios/SweetSFSymbolsModifiers.swift:213:34)

  211 |           return AnyView(content.symbolEffect(scaleEffect, options: options, isActive: isActive))
  212 |         } else {
> 213 |           return AnyView(content.symbolEffect(scaleEffect, options: options))
      |                                  ^ value of type 'SymbolEffectModifier.Content' has no member 'symbolEffect'
  214 |         }
  215 |       case "replace":
  216 |         var replaceEffect: ReplaceSymbolEffect = .replace

❌  (node_modules/sweet-sfsymbols/ios/SweetSFSymbolsModifiers.swift:216:28)

  214 |         }
  215 |       case "replace":
> 216 |         var replaceEffect: ReplaceSymbolEffect = .replace
      |                            ^ cannot find type 'ReplaceSymbolEffect' in scope
  217 |         if direction == "downUp" {
  218 |           replaceEffect = replaceEffect.downUp
  219 |         } else if direction == "upUp" {

❌  (node_modules/sweet-sfsymbols/ios/SweetSFSymbolsModifiers.swift:229:51)

  227 |           replaceEffect = replaceEffect.wholeSymbol
  228 |         }
> 229 |         return AnyView(content.contentTransition(.symbolEffect(replaceEffect, options: options)))
      |                                                   ^ type 'ContentTransition' has no member 'symbolEffect'
  230 |       default:
  231 |         return AnyView(content)
  232 |       }

❌  (../../../../ios/SweetSFSymbolsProps.swift:89:35)

  func toSymbolEffectOptions() -> SymbolEffectOptions {
                                  ^ cannot find type 'SymbolEffectOptions' in scope

❌  (node_modules/sweet-sfsymbols/ios/SweetSFSymbolsProps.swift:90:18)

  88 |   @available(iOS 17.0, *)
  89 |   func toSymbolEffectOptions() -> SymbolEffectOptions {
> 90 |     var options: SymbolEffectOptions
     |                  ^ cannot find type 'SymbolEffectOptions' in scope
  91 |     if repeatCount != nil {
  92 |       if repeatCount == -1  {
  93 |         options = .repeating.speed(speed ?? 1.0)

    Run script build phase 'Start Packager' will be run during every build because it does not specify any outputs. To address this warning, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target '' from project '')

    Run script build phase 'Bundle React Native code and images' will be run during every build because it does not specify any outputs. To address this warning, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target '' from project '')

    Run script build phase '[CP-User] Generate app.config for prebuilt Constants.manifest' will be run during every build because it does not specify any outputs. To address this warning, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'EXConstants' from project 'Pods')

▸ ** BUILD FAILED **

▸ The following build commands failed:

▸   CompileSwift normal arm64 (in target 'SweetSFSymbols' from project 'Pods')

▸   SwiftCompile normal arm64 Compiling\ SweetSFSymbolsExpoView.swift,\ SweetSFSymbolsModifiers.swift,\ SweetSFSymbolsModule.swift,\ SweetSFSymbolsProps.swift,\ SweetSFSymbolsView.swift /Users/expo/workingdir/build/node_modules/sweet-sfsymbols/ios/SweetSFSymbolsExpoView.swift /Users/expo/workingdir/build/node_modules/sweet-sfsymbols/ios/SweetSFSymbolsModifiers.swift /Users/expo/workingdir/build/node_modules/sweet-sfsymbols/ios/SweetSFSymbolsModule.swift /Users/expo/workingdir/build/node_modules/sweet-sfsymbols/ios/SweetSFSymbolsProps.swift /Users/expo/workingdir/build/node_modules/sweet-sfsymbols/ios/SweetSFSymbolsView.swift (in target 'SweetSFSymbols' from project 'Pods')

▸ (2 failures)

2023-11-06 01:10:55.892 xcodebuild[4663:13672] DVTCoreDeviceEnabledState: DVTCoreDeviceEnabledState_Disabled set via user default (DVTEnableCoreDevice=disabled)

** BUILD FAILED **

The following build commands failed:

    CompileSwift normal arm64 (in target 'SweetSFSymbols' from project 'Pods')

    SwiftCompile normal arm64 Compiling\ SweetSFSymbolsExpoView.swift,\ SweetSFSymbolsModifiers.swift,\ SweetSFSymbolsModule.swift,\ SweetSFSymbolsProps.swift,\ SweetSFSymbolsView.swift /Users/expo/workingdir/build/node_modules/sweet-sfsymbols/ios/SweetSFSymbolsExpoView.swift /Users/expo/workingdir/build/node_modules/sweet-sfsymbols/ios/SweetSFSymbolsModifiers.swift /Users/expo/workingdir/build/node_modules/sweet-sfsymbols/ios/SweetSFSymbolsModule.swift /Users/expo/workingdir/build/node_modules/sweet-sfsymbols/ios/SweetSFSymbolsProps.swift /Users/expo/workingdir/build/node_modules/sweet-sfsymbols/ios/SweetSFSymbolsView.swift (in target 'SweetSFSymbols' from project 'Pods')

(2 failures)

Exit status: 65

+-------------+-------------------------+

|           Build environment           |

+-------------+-------------------------+

| xcode_path  | /Applications/Xcode.app |

| gym_version | 2.213.0                 |

| sdk         | iPhoneOS16.4.sdk        |

+-------------+-------------------------+

Looks like fastlane ran into a build/archive error with your project

It's hard to tell what's causing the error, so we wrote some guides on how

to troubleshoot build and signing issues: https://docs.fastlane.tools/codesigning/getting-started/

Before submitting an issue on GitHub, please follow the guide above and make

sure your project is set up correctly.

fastlane uses `xcodebuild` commands to generate your binary, you can see the

the full commands printed out in yellow in the above log.

Make sure to inspect the output above, as usually you'll find more error information there

[!] Error building the application - see the log above

Error: The "Run fastlane" step failed with an unknown error. Refer to "Xcode Logs" below for additional, more detailed logs.
andrew-levy commented 1 year ago

Building this will require XCode 15+ given this is using new apis. What version of xcode are you using?

andrew-levy commented 1 year ago

For local builds, you can just upgrade xcode on your machine. For EAS builds, you can set the image configuration in your eas.json to one that supports xcode 15. https://docs.expo.dev/eas/json/#image-1

uyasarkocal commented 1 year ago

Yes, I did and it worked. EAS users should add

"ios": {
        "image": "latest"
      }

To their eas.json build profile before building, since eas is not set for xCode 15 by default right now.

andrew-levy commented 1 year ago

I’ll add this to the docs. thanks for being an early tester!