Xcode-compatible build tool.

Related tags

Tools xcbuild
Overview

xcbuild

xcbuild is an Xcode-compatible build tool with the goal of providing faster builds, better documentation of the build process and running on multiple platforms (macOS, Linux, and Windows)

Why xcbuild?

Features Performance
🚀 Blazing fast incremental builds xcodebuild xcbuild + Ninja
📖 Documents the Xcode build process
🔗 Builds Xcode projects and workspaces
🐣 Supports Swift apps and frameworks Clean Build 30.103s 25.122s
Tools and libraries for Xcode projects
💝 Fully compatible with xcpretty
🎩 Uses Ninja and llbuild Incremental Build 2.190s 0.046s
:octocat: Open source under the BSD license
🐧 Builds on Linux and Windows

xcbuild and other build tools

xctool Buck xcpretty
xcbuild and xctool are both Xcode-compatible build systems. We plan on slowly deprecating xctool's build support but keep it as a great way to run tests. Facebook's main build system is Buck. Buck has a stronger architecture and advanced features like artifact caching while having a much simpler build format. If you have a new project, it's highly recommended. xcbuild works great with xcpretty. Pipe the output from xcbuild to xcpretty the same way as you would from xcodebuild.

Building xcbuild

Build Status

Requirements

All platforms

On macOS you can install those tools with Homebrew: brew install cmake ninja.

On Windows you can install those tools with Chocolatey: choco install cmake ninja.

Linux

Ubuntu 18.04

sudo apt install libpng-dev libpng16-16 libxml2-dev pkg-config ninja-build

All others
  • GCC 4.8 or later. libpng16-dev, zlib1g-dev, libxml2-dev, and pkg-config are also required.

FreeBSD

FreeBSD 12.1

pkg install png-1.6.37 libxml2-2.9.9 pkgconf-1.6.3,1 ninja-1.9.0,2 gmake-4.2.1_3

OpenBSD

OpenBSD 6.6

pkg_add png-1.6.37 libxml-2.9.9 pkgconf-1.6.3 ninja-1.9.0 gmake-4.2.1p4

macOS

  • Xcode 7 or later.

Windows

  • Visual Studio 2015 or later, on Windows. A zlib DLL is also required.

Instructions

All platforms

git clone --depth=1 https://github.com/facebook/xcbuild
cd xcbuild
git submodule update --init

Linux and macOS:

make

FreeBSD and OpenBSD:

gmake

Build output will be in the build directory. Run xcbuild with ./build/xcbuild.

You can place xcbuild in your bin directory to run it from other locations: mv build/xcbuild /usr/local/bin/.

Windows (experimental):

cmake -Bbuild -H. -G "Visual Studio 14 2015" -DZLIB_ROOT=<path>

Open build\xcbuild.sln and build.

Usage

The command line options are compatible with xcodebuild.

xcbuild -workspace Example.xcworkspace -scheme Example

Using Ninja (or llbuild)

To switch to the significantly faster Ninja executor:

xcbuild -executor ninja [-workspace Example.xcworkspace ...]

Besides the -executor ninja parameters, the options are otherwise identical. The Ninja executor is fastest if it can avoid re-generating the Ninja files if the build configuration and input project files do not change.

Contributing

xcbuild actively welcomes contributions from the community. If you're interested in contributing, be sure to check out the contributing guide. It includes some tips for getting started in the codebase, as well as important information about the code of conduct, license, and CLA.

Thanks

xcbuild is built on build system documentation from the community. In particular, thanks to these people for their writing:

Third-party licenses are listed in the LICENSE document.

Issues
  • Copy header phase happens before compile phase

    Copy header phase happens before compile phase

    I'm noticing on the output of xcbuild that it will output the copy-header phases before performing a compile, this doesn't respect the ordering that Xcode has for a build or the ordering that the phases have in the project file.

    opened by samdmarshall 19
  • Add support for `MODULEMAP_FILE` build setting. Fixes #88.

    Add support for `MODULEMAP_FILE` build setting. Fixes #88.

    Implements the module map features needed for #88. They're part of the grab bag of build things in ProductTypeResolver; that probably should be split up in a later PR. For now, this fixes that task and should be a big help for any Swift projects using CocoaPods.

    CLA Signed 
    opened by grp 18
  • i have met a problem ''' CMake was unable to find a build program corresponding to

    i have met a problem ''' CMake was unable to find a build program corresponding to "Ninja". '''

    share:xcbuild chen-pc$ make mkdir -p build cmake -Bbuild -H. -G Ninja -DCMAKE_INSTALL_PREFIX= CMake Error: CMake was unable to find a build program corresponding to "Ninja". CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool. CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly. Missing variable is: CMAKE_C_COMPILER_ENV_VAR CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly. Missing variable is: CMAKE_C_COMPILER CMake Error: Could not find cmake module file: /Users/chen-pc/xcbuild/build/CMakeFiles/3.2.2/CMakeCCompiler.cmake CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly. Missing variable is: CMAKE_CXX_COMPILER_ENV_VAR CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly. Missing variable is: CMAKE_CXX_COMPILER CMake Error: Could not find cmake module file: /Users/chen-pc/xcbuild/build/CMakeFiles/3.2.2/CMakeCXXCompiler.cmake CMake Error at CMakeLists.txt:10 (project): No CMAKE_C_COMPILER could be found.

    Tell CMake where to find the compiler by setting the CMake cache entry CMAKE_C_COMPILER to the full path to the compiler, or to the compiler name if it is in the PATH.

    CMake Error at CMakeLists.txt:10 (project): No CMAKE_CXX_COMPILER could be found.

    Tell CMake where to find the compiler by setting the CMake cache entry CMAKE_CXX_COMPILER to the full path to the compiler, or to the compiler name if it is in the PATH.

    CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage -- Configuring incomplete, errors occurred!

    opened by ghost 16
  • [process] Default context creation now uses main's argv and argc directly

    [process] Default context creation now uses main's argv and argc directly

    Instead of relying on a constructor to grab the argc/argv (which doesn't work on my Centos7 machine), use the argc/argv passed in from main().

    This also defines the global default context to whatever is created in each executable's main() function instead of creating a new object.

    Test plan:

    • run 'plutil' on my Linux machine (after adding "-lpthread" added to the build invocation)
    • run 'plutil' on my OSX machine

    See https://github.com/facebook/xcbuild/issues/138

    CLA Signed 
    opened by Ktwu 15
  • Add support for VFS-pointed module maps (was: can't find module dependency)

    Add support for VFS-pointed module maps (was: can't find module dependency)

    While trying to setup the Lyft project to use xcbuild, I ran into some issues with dependencies. We use CocoaPods to integrated 3rd party, and some first party development dependencies. The structure looks something like this:

    Main Project
      -> Alamofire
      -> Internal Library
           -> zipzap
      ...
    

    In this simplified example, the issue we're running into is that zipzap cannot be found. This leads to errors in the Internal Library, and stops us from getting anywhere else.

    I've attempted to reproduce the same issue in a sample project:

    test-xcbuild4.zip

    In this project if you run (with or without specifying -executor ninja):

    $ xcbuild -executor ninja -workspace test-xcbuild4 -scheme test-xcbuild4
    

    You will see that it fails to build with the error:

    {
      "kind": "finished",
      "name": "compile",
      "pid": 48974,
      "output": "blah blah/AppDelegate.swift:10:8: error: no such module 'zipzap'\nimport zipzap\n       ^\n",
      "exit-status": 1
    }
    

    (here's the entire build log)

    But if you build from within Xcode, everything compiles correctly.

    I would love some advice for where to start when I'm facing errors like this, as I'd love to be able to set our project up to benefit from the speed of Ninja! ⚡

    Thanks!

    opened by keith 13
  • dsymutil arguments aren't expanded properly

    dsymutil arguments aren't expanded properly

    When building with xcbuild, I end up with dsymutil invocations like this:

    GenerateDSYMFile /Users/martin/Library/Developer/Xcode/DerivedData/myproj-random/Build/Products/Release-iphoneos/example.app/example
        cd /Users/martin/code/example
        /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/dsymutil /Users/martin/Library/Developer/Xcode/DerivedData/myproj-random/Build/Products/Release-iphoneos/example.app/example -o 
    

    I.e. the output filename isn't provided at all.

    For some reason, when building from xcbuild on OS X, this doesn't actually print any error message or indicate any failure, but when this same command line is called manually, it prints an error like this:

    dsymutil: for the -o option: requires a value!
    

    When I try to use xcbuild on linux, the missing parameter to -o ends up being an issue.

    opened by mstorsjo 11
  • Pass down PATH environment varaible to invocation

    Pass down PATH environment varaible to invocation

    Tools invoked will sometimes expect PATH environment variable to be explicitly set and contain the path the xcbuild searched for invocation.

    opened by onhachoe 11
  • xcbuild not work

    xcbuild not work

    $ ./build/xcbuild 
    warning: unhandled Validation key AdditionalValidationClass
    error: registering Architecture specification 'Standard' in domain iphonesimulator twice
    error: registering Architecture specification 'i386' in domain iphonesimulator twice
    error: registering Architecture specification 'x86_64' in domain iphonesimulator twice
    error: registering Architecture specification 'Standard32_bit' in domain iphonesimulator twice
    error: registering Architecture specification 'Universal64bit' in domain iphonesimulator twice
    error: registering Architecture specification 'Native' in domain iphonesimulator twice
    error: registering Architecture specification 'Standard' in domain iphoneos twice
    error: registering Architecture specification 'armv7' in domain iphoneos twice
    error: registering Architecture specification 'armv7s' in domain iphoneos twice
    error: registering Architecture specification 'arm64' in domain iphoneos twice
    error: registering Architecture specification 'Platform32_bit' in domain iphoneos twice
    error: registering Architecture specification 'Platform64_bit' in domain iphoneos twice
    error: registering Architecture specification 'Platform32_64_bit' in domain iphoneos twice
    error: registering BuildSystem specification 'com.apple.build-system.native' in domain iphoneos twice
    [1]    47231 segmentation fault  ./build/xcbuild
    

    I don't solve this problem

    opened by senpng 11
  • [xcbuild] Split Libraries/Specifications into separate install components

    [xcbuild] Split Libraries/Specifications into separate install components

    Using components allows builds to install only the stuff it needs.

    CLA Signed 
    opened by Ktwu 10
  • Support INFOPLIST_PREPROCESS and related build settings

    Support INFOPLIST_PREPROCESS and related build settings

    I noticed that some of the property list files being built by xcbuild are not formatted correctly. I found a few example property lists that show generic examples that most developers will try to use in preprocessing of these files. In general this preprocessor works as a C Preprocessor with a few quirks added. Some notes on this can be found on Apple Technical Note TN2175.

    In general I would assume that the plist utility will support the following operations...

    Example 1: IOAudioFamily version 204.3 This is the one of the simplest examples of plist editing. All it does is define a few variables in an xcode configuration file and output it in the kernel extensions PLIST file..

    Example 2: IOHIDFamily version 701.20.10 A slightly more complex example. This configures multiple property lists.

    Example 3: IOStorageFamily version 191 This includes an example of preprocessor events to remove sections of the property list on a Embedded platform where TARGET_OS_EMBEDDED is defined in the TargetConditionals header.

    Example 4: Some more Pre-processor examples. For the most part if it's in the TargetConditionals header for OSX, it'll appear in the Property list utility.

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>PreProcess_KEYS</key>
        <dict>
            <key>IsEmbedded</key>
    #if !TARGET_OS_EMBEDDED
            <true/>
    #else 
            <false/>
    #endif
    
            <key>IsMac</key>
    #if TARGET_OS_MAC
            <true/>
    #else 
            <false/>
    #endif
            <key>IsPowerPC</key>
    #if TARGET_CPU_PPC
            <true/>
    #else 
            <false/>
    #endif
        </dict>
    </dict>
    
    opened by kphillisjr 10
  • Support for archiving & signing

    Support for archiving & signing

    Hi Team

    I am trying to use xcbuild in CentOS (x86_64 & ) to build react native project, request you to please provide below answers -

    1.) Can we use xcbuild to build iOS react native projects as in my view Xcode's xcodebuild tool is part of the Xcode SDK from Apple — it's only available for download on Mac OS X.

    1. Please help and provide how to archive and sign IPA file.

    Looking to hear from you.

    With Regards -Deepak

    opened by dcworld07 0
  • version arguments incompatible with Apple’s xcodebuild

    version arguments incompatible with Apple’s xcodebuild

    Hey,

    I’m using bazel, which uses xcodebuild to determine the system version of various sdks. Although with xcbuild installed (with nix) I get this error:

    xcode_configure.bzl:89:9: Invoking xcodebuild failed, developer dir: /Applications/Xcode.app/Contents/Developer ,return code 1, stderr: error: missing argument value for argument -sdk
    

    It’s calling:

    xcrun xcodebuild -version -sdk
    

    Apple’s xcodebuild doesn’t require an additional value after sdk. Without that setting it won’t output the SDKs, and the additional arguments just mean it outputs specific SDKs only.

    I believe this error is invalidating the build cache of anything depending on that information every time I rebuild.

    opened by therealbnut 0
  • make failed on Mac

    make failed on Mac

    [10/524] Building CXX object Libraries/acdriver/CMakeFiles/acdriver.dir/Sources/Compile/AppIconSet.cpp.o FAILED: Libraries/acdriver/CMakeFiles/acdriver.dir/Sources/Compile/AppIconSet.cpp.o /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -Dacdriver_EXPORTS -I../Libraries/acdriver/Headers -I../Libraries/xcassets/Headers -I../Libraries/libutil/Headers -I../Libraries/ext/Headers -I../Libraries/plist/Headers -I../Libraries/process/Headers -I../Libraries/graphics/Headers -I../Libraries/dependency/Headers -I../Libraries/libbom/Headers -I../Libraries/libcar/Headers -std=c++11 -fno-rtti -fno-exceptions -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -fPIC -Wall -Werror -fcolor-diagnostics -MD -MT Libraries/acdriver/CMakeFiles/acdriver.dir/Sources/Compile/AppIconSet.cpp.o -MF Libraries/acdriver/CMakeFiles/acdriver.dir/Sources/Compile/AppIconSet.cpp.o.d -o Libraries/acdriver/CMakeFiles/acdriver.dir/Sources/Compile/AppIconSet.cpp.o -c ../Libraries/acdriver/Sources/Compile/AppIconSet.cpp In file included from ../Libraries/acdriver/Sources/Compile/AppIconSet.cpp:9: In file included from ../Libraries/acdriver/Headers/acdriver/Compile/AppIconSet.h:12: In file included from ../Libraries/xcassets/Headers/xcassets/Asset/Asset.h:15: ../Libraries/libutil/Headers/libutil/Base.h:24:32: error: 'ptr_fun<int, int>' is deprecated [-Werror,-Wdeprecated-declarations] std::not1(std::ptr_fun<int, int>(::isspace)))); ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/functional:1100:1: note: 'ptr_fun<int, int>' has been explicitly marked deprecated here _LIBCPP_DEPRECATED_IN_CXX11 inline _LIBCPP_INLINE_VISIBILITY ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/__config:1054:39: note: expanded from macro '_LIBCPP_DEPRECATED_IN_CXX11' # define _LIBCPP_DEPRECATED_IN_CXX11 _LIBCPP_DEPRECATED ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/__config:1043:48: note: expanded from macro '_LIBCPP_DEPRECATED' # define _LIBCPP_DEPRECATED attribute ((deprecated)) ^ In file included from ../Libraries/acdriver/Sources/Compile/AppIconSet.cpp:9: In file included from ../Libraries/acdriver/Headers/acdriver/Compile/AppIconSet.h:12: In file included from ../Libraries/xcassets/Headers/xcassets/Asset/Asset.h:15: ../Libraries/libutil/Headers/libutil/Base.h:32:32: error: 'ptr_fun<int, int>' is deprecated [-Werror,-Wdeprecated-declarations] std::not1(std::ptr_fun<int, int>(::isspace))).base(), ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/functional:1100:1: note: 'ptr_fun<int, int>' has been explicitly marked deprecated here _LIBCPP_DEPRECATED_IN_CXX11 inline _LIBCPP_INLINE_VISIBILITY ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/__config:1054:39: note: expanded from macro '_LIBCPP_DEPRECATED_IN_CXX11' # define _LIBCPP_DEPRECATED_IN_CXX11 _LIBCPP_DEPRECATED ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/__config:1043:48: note: expanded from macro '_LIBCPP_DEPRECATED' # 318 define _LIBCPP_DEPRECATED attribute ((deprecated)) ^ 2 errors generated. ninja: build stopped: subcommand failed. make: *** [all] Error 1

    $ cmake --version cmake version 3.17.3

    CMake suite maintained and supported by Kitware (kitware.com/cmake).

    $ ninja --version 1.10.0

    opened by heyonly 4
  • actool fails without any usable diagnostics

    actool fails without any usable diagnostics

    I'm trying to run xcbuild on a project, and I've hit a wall where actool is failing without printing any kind of diagnostic as to why. Here's what I see:

    CompileAssetCatalog ./MacVim-cllqusjqgekwejbmyolphrbvwgvq/Build/Products/Release/PSMTabBarControl.bundle/Contents/Resources /private/var/folders/cs/l6c6g06x0974_0w5pdg8dps80000gn/T/nix-build-macvim-8.2.539.drv-0/source/src/MacVim/PSMTabBarControl/Media.xcassets
        cd /private/var/folders/cs/l6c6g06x0974_0w5pdg8dps80000gn/T/nix-build-macvim-8.2.539.drv-0/source/src/MacVim/PSMTabBarControl
        export DEVELOPER_DIR=/nix/store/a99x032swmw9aghn8y4lvhjdimdm7z51-xcodebuild-0.1.2-pre
        export PATH=[long path]
        /nix/store/a99x032swmw9aghn8y4lvhjdimdm7z51-xcodebuild-0.1.2-pre/usr/bin/actool --product-type com.apple.product-type.framework --output-format human-readable-text --notices --warnings --export-dependency-info ./MacVim-cllqusjqgekwejbmyolphrbvwgvq/Build/Intermediates/PSMTabBarControl.build/Release/PSMTabBarControlFramework.build/assetcatalog_dependencies --output-partial-info-plist ./MacVim-cllqusjqgekwejbmyolphrbvwgvq/Build/Intermediates/PSMTabBarControl.build/Release/PSMTabBarControlFramework.build/assetcatalog_generated_info.plist --target-device mac --sticker-pack-identifier-prefix com.positivespinmedia.PSMTabBarControlFramework.sticker-pack. --compile ./MacVim-cllqusjqgekwejbmyolphrbvwgvq/Build/Products/Release/PSMTabBarControl.bundle/Contents/Resources /private/var/folders/cs/l6c6g06x0974_0w5pdg8dps80000gn/T/nix-build-macvim-8.2.539.drv-0/source/src/MacVim/PSMTabBarControl/Media.xcassets --platform macosx --minimum-deployment-target 10.12
    /* com.apple.actool.errors */
    : error: unable to create compiled asset writer
    
    /* com.apple.actool.warnings */
    : warning: product type not supported
    : warning: platform not supported
    : warning: sticker pack not supported
    : warning: target device not supported
    

    The warnings seem harmless; it's targeting a mac framework. "sticker pack" is just because of the --sticker-pack-identifier-prefix flag, it's not actually building a sticker pack.

    But then, it just fails, saying "unable to create compiled asset writer". No explanation as to why not.

    As best I can figure, that means CreateWriter failed, but there's no info as to why it failed or what I can do about this to move forward.

    opened by lilyball 0
  • copypng is missing

    copypng is missing

    The CopyPNGFile rule invokes a tool copypng to do the actual copying. Xcode's version of copypng here is a Perl script that optionally invokes pngcrush. I expected xcbuild to have something similar, but xcbuild doesn't seem to bundle a copypng at all, so the CopyPNGFile rule simply fails.

    opened by lilyball 1
  • macos make failed

    macos make failed

    In file included from ../Libraries/acdriver/Sources/Compile/Output.cpp:13: In file included from ../Libraries/xcassets/Headers/xcassets/Asset/Asset.h:15: ../Libraries/libutil/Headers/libutil/Base.h:24:32: error: 'ptr_fun<int, int>' is deprecated [-Werror,-Wdeprecated-declarations] std::not1(std::ptr_fun<int, int>(::isspace)))); ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/functional:1097:1: note: 'ptr_fun<int, int>' has been explicitly marked deprecated here _LIBCPP_DEPRECATED_IN_CXX11 inline _LIBCPP_INLINE_VISIBILITY ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__config:1101:39: note: expanded from macro '_LIBCPP_DEPRECATED_IN_CXX11' define _LIBCPP_DEPRECATED_IN_CXX11 _LIBCPP_DEPRECATED ^

    opened by KnoooW 3
  • make install target missing liblinenoise.so

    make install target missing liblinenoise.so

    If I run:

    $ sudo mkdir /opt/xcbuild
    $ sudo PREFIX=/opt/xcbuild make install
    

    And then try to run any of the tools:

    $ export PATH=/opt/xcbuild/usr/bin:$PATH
    $ PlistBuddy -h
    PlistBuddy: error while loading shared libraries: liblinenoise.so: cannot open shared object file: No such file or directory
    

    I have to copy xcbuild/build/liblinenoise.so to /opt/xcbuild/usr/lib for it to work.

    FYI, if I don't set PREFIX and install /usr/bin and /usr/lib, I still need to copy xcbuild/build/liblinenoise.so to /usr/lib.

    opened by chrisvire 0
  • missing-prototypes

    missing-prototypes

    Contributor @strager had recommended enabling missing-prototypes, which proved useful for identifying unused code. In addition to missing-prototypes in C code, this will enable -Wall and -Werror.

    CLA Signed 
    opened by NaruFGT 2
  • address-of-packed-member & stringop truncation

    address-of-packed-member & stringop truncation

    Fixed build errors relating to taking the address of struct car_key_format member identifier_list by allocating and copying member to a vector.

    Fixed build errors relating to strncpy() of string literals. memcpy() is the appropriate function in this instance as there is no intention that these be null terminated.

    CLA Signed 
    opened by NaruFGT 6
Releases(0.1.0)
Owner
Facebook Archive
These projects have been archived and are generally unsupported, but are still available to view and use
Facebook Archive
Xcode storyboards diff and merge tool.

StoryboardMerge Storyboard diff and merge tool which: compares and merges two storyboard files, provides an automatic merge-facility, The storyboardin

null 241 Dec 20, 2021
A command line tool for cleaning unused resources in Xcode.

What FengNiao is a simple command-line util to deleting unused image resource files from your Xcode project. How Install You need Swift Package Manage

Wei Wang 2.9k Jan 10, 2022
A Swift command line tool for generating your Xcode project

XcodeGen XcodeGen is a command line tool written in Swift that generates your Xcode project using your folder structure and a project spec. The projec

Yonas Kolb 5.1k Dec 30, 2021
A tool to convert Xcode .xib to .storyboard files

xib2Storyboard • xib2Storyboard is a handy tool to easily convert .xib files to .storyboard without the hassle of manually copying views, losing your

November Five 126 Dec 13, 2021
A CLI tool for localization resource management on Xcode. Built with Google Translator.

Supported by Jetbrains Open Source License Program Automatically translate and synchronize '.strings' files from the defined base language The basic c

gitmerge 165 Nov 15, 2021
Build Time Analyzer for Swift

Build Time Analyzer for Xcode Overview Build Time Analyzer is a macOS app that shows you a break down of Swift build times. See this post and this pos

Robert Gummesson 4k Jan 4, 2022
An adorable little framework and command line tool for interacting with SourceKit.

SourceKitten An adorable little framework and command line tool for interacting with SourceKit. SourceKitten links and communicates with sourcekitd.fr

JP Simard 2k Jan 11, 2022
Tool for Swift Playground books

playgroundbook A series of tools for Swift Playground and Playground books based on Apple's documentation. It's a work in progress (see issues) but yo

Swift Playground Books 259 Jun 3, 2021
A tool for generating immutable model objects

Plank Plank is a command-line tool for generating robust immutable models from JSON Schemas. It will save you time writing boilerplate and eliminate m

Pinterest 462 Jan 3, 2022
A tool for defining design systems and using them to generate cross-platform UI code, Sketch files, and other artifacts.

Lona (Developer Preview) This project is in an early stage and lacks documentation – however, with some effort, it can be used very effectively. If yo

Airbnb 7.5k Jan 14, 2022
Xplat Automating Version Tool

Xplat Automating Version Tool Command-line utility to automatically increase iOS / Android / UWP applications version written in Go. It follows Semant

Gabriel Robert 30 Jan 6, 2021
CodePecker is a tool to detect unused Swift code.

Notice: The "dyld: Library not loaded: @rpath/lib_InternalSwiftSyntaxParser.dylib" or missing warnings are caused by a SwiftSyntax issue, SwiftSyntax

Roy 1.3k Dec 29, 2021
Codegeneration tool for isomorphic server and mobile Go apps with gRPC & Protobuf. Share code between your backend, Android & iOS app! :sun_with_face:

Anakin Codegeneration tool for isomorphic server and mobile Go apps with gRPC & Protobuf. Share code between your backend, Android & iOS app! Descript

Kirill Biakov 17 Jun 25, 2020
Better asset workflow for iOS developers. Generate Xcode image catalogs for iOS / OSX app icons, universal images, and more.

Blade Automatically build and rebuild Xcode image catalogs for app icons, universal images, and more. Use in existing projects to generate image catal

Dotan J. Nahum 828 Dec 28, 2021
Xcode .appiconset generator for Adobe Illustrator.

Creating AppIcon sets from Adobe Illustrator This repo is rewrited from original repo https://github.com/CaryChamplin/CreatingIconsFromAI. Just genera

gitmerge 73 Nov 8, 2020
Script to support easily using Xcode Asset Catalog in Swift.

Misen Misen is a script to support using Xcode Asset Catalog in Swift. Features Misen scans sub-directories in the specified Asset Catalog and creates

Kazunobu Tasaka 124 Jun 3, 2021
A git plugin for real-world xcode versioning workflow.

git-xcp The most simplest, safe, and fully automatic git plugin for versioning workflow of real-world xcode projects. Current working or draft content

gitmerge 11 Dec 29, 2019
An Xcode plug-in to format your code using SwiftLint.

SwiftLintXcode An Xcode plug-in to format your code using SwiftLint. Runs swiftlint autocorrect --path CURRENT_FILE before *.swift file is saved. IMPO

Yuya Tanaka 338 Dec 21, 2021
An Xcode Plugin to convert Objective-C to Swift

XCSwiftr Convert Objective-C code into Swift from within Xcode. This plugin uses the Java applet of objc2swift to do the conversion. Noticed that the

Ignacio Romero Zurbuchen 341 Nov 17, 2021