xcframework is a tool to create XCFrameworks.
You can install xcframework by downloading xcframework.pkg
from the
latest GitHub release and
running it.
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.
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.
- 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
$ xcframework help
Available commands:
build Build an XCFramework
help Display general or command-specific help
version Display the current version of xcframework
xcframework build --project PMLog/PMLog.xcodeproj --name PMLog --ios PMLog_iOS --tvos PMLog_TvOS --watchos PMLog_WatchOS --verbose
xcframework build --project PMLog/PMLog.xcodeproj --name PMLog --ios PMLog_iOS --tvos PMLog_TvOS --watchos PMLog_WatchOS --output ./output
xcframework build --project PMLog/PMLog.xcodeproj --name PMLog --ios PMLog_iOS --tvos PMLog_TvOS --watchos PMLog_WatchOS --build ./build
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
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
xcframework is released under the MIT license.