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.