xcframework
xcframework copied to clipboard
A simple tool to create an XCFramework
xcframework
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.