Bringing iOS Frameworks Through Carthage in Xcode 12.0

Bringing iOS Frameworks through Carthage in Xcode 12.0

The answer is simple: Carthage 0.35.0 is incompatible with Xcode 12. They are working on a fix. Until then, there is a workaround.

Build app in AppCenter that uses Carthage

--use-xcframeworks

This option is only available from Carthage 0.37.0. The appcenter's carthage version is 0.36.0. They need to update the carthage used in appcenter projects.

Can you look at the logs and see if this script is being run? Or is it that appcenter is running the carthage binary?

EDIT

The good news is that appcenter identifies carthage 0.37.0! I added a appcenter-post-clone.sh in my project directory:

#!/usr/bin/env bash

set -e
set -x

carthage update --cache-builds --use-xcframeworks --platform ios
carthage version
echo "" > Cartfile
echo "" > Cartfile.resolved

appcenter recognises that --use-xcframeworks is used and therefore 0.37.0 is required.

NOTE: I'm emptying the Cartfile* so that appcenter doesn't run its native carthage command (which it does on noticing Cartfile and Cartfile.resolved).

EDIT 2

I'm now considering using something like carthage_cache in appcenter as the carthage checkout and build ends up taking a lot of time.

Illegal Instruction 4 error while running the unit tests on Xcode

If you can use Carthage 0.37.0 and are able to use XCFrameworks, then this answer might be valuable for you In this vesion they added support for XCFrameworks and I find it quite nice to use. Especially since this popular workaround can finally be removed again.

App Installation failed. No code signature found

Figured it out:

I ran into this issue with carthage: https://github.com/Carthage/Carthage/issues/2472 and used their suggested solution of setting EXPANDED_CODE_SIGN_IDENTITY='' when I was transferring stuff over to xcode 10.

Evidently this line is what causing carthage to hurt itself when copying frameworks, causing the error. I downloaded the most recent version of carthage to fix the issue, and then removed the EXPANDED_CODE_SIGN_IDENTITY='' line and everything worked. What a waste of time.



Related Topics



Leave a reply



Submit