New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Framework in the release assets doesn't work on Apple Silicon Macs. #1239
Comments
Weird. Carthage should just support this. But it doesn't. I am using |
This is fixed in the now-current Quick 7.3.0 and Nimble 12.3.0, which include both xcframework and legacy framework binaries. |
Thanks! I'll give it a shot. |
Carthage was able to download the XCFramework, but Xcode now fails to to build with the following error.
It feels like there's a couple things going on.
Was it intentional to raise the minimum supported swift version to 5.8? The last related change I can see in the release notes was in https://github.com/Quick/Quick/releases/tag/v6.1.0 dropping support for 5.6. |
No, but I did build this using the swift included with Xcode 14.3.1, which is 5.8. I'm very strongly considering not including prebuilt frameworks because of all these gotchas. For Quick 7.3.0 and Nimble 12.3.0, I'll remove the prebuilt frameworks. |
Removing them would resolve the issue for now. We've also updated our project to not use the binary from
Future Improvement IdeaInstead of manually building the frameworks, there could be a GitHub workflow that does it. It could automatically be run when a new release is created on Github. The workflow could be set to use a fixed version of Xcode that contains the minimum supported swift version. Then it's not dependant on the Xcode version installed locally when the release is made, so it wont change based on who is making the release. |
What did you do?
Installed Quick to a project using Carthage.
What did you expect to happen?
The project should build and run on the simulator.
What actually happened instead?
After adding the framework, got the following error.
In a simple project it gives a slight different error.
It seems like the last two releases have added a
Quick.framework.zip
asset which Carthage will download and use instead of building Quick itself. Since it's a framework and not an xcframework, it can't be used when running on the simulator on Apple Silicon Macs.Ideally the release would contain an XCFramework instead, but and easier option is to remove the framework so Carthage will built the correct type for the project.
Environment
List the software versions you're using:
Please also mention which package manager you used and its version. Delete the
other package managers in this list:
Project that demonstrates the issue
QuickFromCarthage.zip
Here's the sample project. It has two schemes/targets, one that uses a
.framework
and the other that uses a.xcframework
. The one using a framework will fail to run on an Apple Silicon Mac. You may need to clean and build when switching schemes, otherwise it might use the Quick framework produced by the other scheme.The text was updated successfully, but these errors were encountered: