You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
xcodebuild -version: Xcode 15.2 Build version 15C500b
Are you using --no-build? No
Are you using --no-use-binaries? No
Are you using --use-submodules? No
Are you using --cache-builds? No
Are you using --new-resolver? No
Are you using --use-xcframeworks? yes
Cartfile
github "airbnb/lottie-ios" ~> 4.4.1
Actual outcome
Whenever I run carthage update lottie-ios --platform iOS --use-xcframeworks I get one of two different variants (it seems that it is alternating every time I run it.
Once I get:
And then next time I run it I get:
and so on...
I have also tried splitting in two steps: carthage update "$LIBRARY_NAME" --no-build --use-xcframeworks carthage build "$LIBRARY_NAME" --platform iOS --use-xcframeworks
But that didn't help as well, it still switches between the two each time I run it.
Also, a side question - why does it fetch other variants (eg. such as macOS or tvOS) when I have passed --platform iOS?
Thanks in advance.
The text was updated successfully, but these errors were encountered:
I'd wager that Carthage is downloading both .xcframework.zip assets and extracting-with-overwriting-whats-currently-in-place for both of them.
And when extracting, there's no ordering that Carthage does. So, one Lottie.xcframework remains at the end (sometimes the Xcode-15.2.xcframework.zip one with xros directories, sometimes not.)
〜 For the side question, we don’t modify what vendors put in their xcframeworks (as they might have instructions. or other special content in there) — we just extract them as-is.
that is, assuming the whole xcframework to be extracted as is passes…
that is, assuming the whole xcframework to be extracted as is passes checkFrameworkCompatibility which is mostly localSwiftVersionNumber >= 5.1 && frameworkSwiftVersionNumber >= 5.1 && hasSwiftInterfaceFile == true —
…which lottie clearly saw passed for you/your CI.
If there was a feature improvement to Carthage to better handle this: (1) I imagine we wouldn't get rid of the overwriting (2) we'd likely land the change here and here.
〜 I might return here with a PR, lemme think on it.
jdhealy
changed the title
Inconsistent output of carthage update
Inconsistent extraction-and-overwrite of xcframeworks with identical names from GitHub Release assets.
Mar 13, 2024
which carthage
: /opt/homebrew/bin/carthagecarthage version
: 0.39.1xcodebuild -version
: Xcode 15.2 Build version 15C500b--no-build
? No--no-use-binaries
? No--use-submodules
? No--cache-builds
? No--new-resolver
? No--use-xcframeworks
? yesCartfile
Actual outcome
Whenever I run carthage update lottie-ios --platform iOS --use-xcframeworks I get one of two different variants (it seems that it is alternating every time I run it.
Once I get:
And then next time I run it I get:
and so on...
I have also tried splitting in two steps:
carthage update "$LIBRARY_NAME" --no-build --use-xcframeworks carthage build "$LIBRARY_NAME" --platform iOS --use-xcframeworks
But that didn't help as well, it still switches between the two each time I run it.
Also, a side question - why does it fetch other variants (eg. such as
macOS
ortvOS
) when I have passed--platform iOS
?Thanks in advance.
The text was updated successfully, but these errors were encountered: