Skip to content

Help building framework for binary distribution #3169

@marcbaldwin

Description

@marcbaldwin
  • carthage install method: [ ] .pkg, [x] homebrew, [ ] source
  • which carthage: /usr/local/bin/carthage
  • carthage version: 0.37.0
  • xcodebuild -version: 12.4
  • 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

Cartfile

binary "/Users/REDACTED/Desktop/FrameworkTest/MyFramework.json" ~> 0.0.1

Carthage Output

Invalid archive - Found multiple frameworks with the same unarchiving destination:
* 	file:///var/folders/9w/_7y707fx43d4rvdrh4klvskh0000gn/T/carthage-archive.QJjdw8/MyFramework.xcframework/ios-arm64_x86_64-simulator/MyFramework.framework/
	file:///var/folders/9w/_7y707fx43d4rvdrh4klvskh0000gn/T/carthage-archive.QJjdw8/MyFramework.xcframework/ios-arm64/MyFramework.framework/ 
		to:
	file:///REDACTED/Carthage/Build/iOS/MyFramework.framework/

Actual outcome
Carthage errors as ios-arm64_x86_64-simulator and ios-arm64 have the same unarchiving destination.

Expected outcome
Carthage should unarchive to Carthage/Build/iOS/MyFramework.framework/ios-arm64_x86_64-simulator/ and Carthage/Build/iOS/MyFramework.framework/ios-arm64/

Hey Carthage contributors 👋

I'm trying to build a binary for distribution via Carthage but running into the error above when testing a deployment.

I run the following command
carthage build --no-skip-current --use-xcframeworks

This produces the following

Carthage/Build/MyFramework.xcframework/
   Info.plist
   ios-arm64/
   ios-arm64_x86_64-simulator/

I zip the entire Carthage/Build/MyFramework.xcframework directory then reference that via my Cartfile like so

Cartfile

binary "/Users/REDACTED/Desktop/FrameworkTest/MyFramework.json" ~> 0.0.1

MyFramework.json

{
	"0.0.1": "file:///Users/REDACTED/Desktop/MyFramework/0.0.1/MyFramework.xcframework.zip",
}

I then run carthage update --use-xcframeworks but get this error:

Invalid archive - Found multiple frameworks with the same unarchiving destination:
* 	file:///var/folders/9w/_7y707fx43d4rvdrh4klvskh0000gn/T/carthage-archive.QJjdw8/MyFramework.xcframework/ios-arm64_x86_64-simulator/MyFramework.framework/
	file:///var/folders/9w/_7y707fx43d4rvdrh4klvskh0000gn/T/carthage-archive.QJjdw8/MyFramework.xcframework/ios-arm64/MyFramework.framework/ 
		to:
	file:///.../Carthage/Build/iOS/MyFramework.framework/

If I remove the ios-arm64_x86_64-simulator directory before zipping then it works fine. However I need to include the Simulator framework.

Any help is much appreciated, please let me know if I can provide any other info to help.

Thanks

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions