jeffctown/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_WatchOSUsage
Help
$ xcframework help
Available commands:
build Build an XCFramework
help Display general or command-specific help
version Display the current version of xcframeworkBuild
Build with Verbose Logging Enabled
xcframework build --project PMLog/PMLog.xcodeproj --name PMLog --ios PMLog_iOS --tvos PMLog_TvOS --watchos PMLog_WatchOS --verboseBuild with Output Directory Specified
xcframework build --project PMLog/PMLog.xcodeproj --name PMLog --ios PMLog_iOS --tvos PMLog_TvOS --watchos PMLog_WatchOS --output ./outputBuild with Build Directory Specified
xcframework build --project PMLog/PMLog.xcodeproj --name PMLog --ios PMLog_iOS --tvos PMLog_TvOS --watchos PMLog_WatchOS --build ./buildBuild 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=0Known 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: -configuratWith --:
xcframework build --project PMLog/PMLog.xcodeproj --name PMLog --ios PMLog_iOS -- -configuration Releasexcframework build --project PMLog/PMLog.xcodeproj --name PMLog --ios PMLog_iOS -- -enableAddressSanitizer YESLicense
xcframework is released under the MIT license.
Package Metadata
Repository: jeffctown/xcframework
Default branch: master
README: README.md