Skip to content
This repository has been archived by the owner on Mar 12, 2022. It is now read-only.

jeffctown/xcframework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

xcframework

Swift Version GitHub release GitHub license

xcframework is a tool to create XCFrameworks.

Installation

Using a pre-built package:

You can install xcframework by downloading xcframework.pkg from the latest GitHub release and running it.

Installing from source:

You can also install from source by cloning this project and running make install (Xcode 11.0 beta 1 or later). Note: Running make install requires sudo permission to install the final executable.

Compiling from source:

You can build from source and use the executable without installation if you prefer to. Run make installables to output the final executable to ./.build/release/xcframework. Feel free to use or copy the executable how you like.

Quick Start

  • Create an XCFramework including a framework with iOS, tvOS, and watchOS:
xcframework build --project PMLog/PMLog.xcodeproj --name PMLog --ios PMLog_iOS --tvos PMLog_TvOS --watchos PMLog_WatchOS

Usage

Help

$ xcframework help
Available commands:

   build     Build an XCFramework
   help      Display general or command-specific help
   version   Display the current version of xcframework

Build

Build with Verbose Logging Enabled

xcframework build --project PMLog/PMLog.xcodeproj --name PMLog --ios PMLog_iOS --tvos PMLog_TvOS --watchos PMLog_WatchOS --verbose

Build with Output Directory Specified

xcframework build --project PMLog/PMLog.xcodeproj --name PMLog --ios PMLog_iOS --tvos PMLog_TvOS --watchos PMLog_WatchOS --output ./output

Build with Build Directory Specified

xcframework build --project PMLog/PMLog.xcodeproj --name PMLog --ios PMLog_iOS --tvos PMLog_TvOS --watchos PMLog_WatchOS --build ./build

Build with Extra xcodebuild Arguments

Any arguments at the end of your command will be passed along to xcodebuild during archive.

xcframework build --project PMLog/PMLog.xcodeproj --name PMLog --ios PMLog_iOS DEBUG=1 PERFORM_MAGIC=0

Known Issues

If you need to pass an xcodebuild argument that begins with a -, like -configuration Release, you will need to put a -- before it. -- tells this program (or tells Commandant) to stop looking for named arguments.

Without --:

$ xcframework build --project PMLog/PMLog.xcodeproj --name PMLog --ios PMLog_iOS -configuration Release
Unrecognized arguments: -configurat

With --:

xcframework build --project PMLog/PMLog.xcodeproj --name PMLog --ios PMLog_iOS -- -configuration Release
xcframework build --project PMLog/PMLog.xcodeproj --name PMLog --ios PMLog_iOS -- -enableAddressSanitizer YES

License

xcframework is released under the MIT license.