[ compatible with all versions of Unity - from Unity 4 to current Unity 6.2 ]
Continuously updated since 2014! Latest changelog here - updates here - full documentation 👉 here 👈
Build, Codesign, Deploy and Publish your iOS/macOS projects on Windows.
No longer need to switch to your Mac and fire up Xcode to build your games for iOS. Save time and build them directly from Windows. Save money you'd otherwise spend on cloud builds.
This build tool builds your app in a similar way that Xcode does, and immediately serves it for OTA (over the air) deployment to your device, and/or packages it for the App Store. Build and test your app instantly on any live iOS device connected to your network!
NEW: macOS is also supported. Your macOS projects are built directly into an .app bundle (optionally codesigned) or a .dmg file that can be sent right away to macOS users for testing.
Advanced users can build from the command line and plug this builder with Jenkins or any other CI build pipeline to have apps created from their iOS/macOS builds automatically - on Windows.
Debug tools
The Remote Debug Console receives all your application logs and displays them live on your computer's screen, while your app is running on your device. Stack dumps are caught on the fly and immediately displayed when it crashes!
Can also upload to the App Store
An IPA resigner and upload tool sends your freshly built app to Apple to publish it either in the App Store or for TestFlight. As with the rest of this toolchain, under the GUI hood are command-line tools that can all be scripted in your own CI/CD build chain.
This is a real project builder. No jailbreak needed!
Simply reuse your digital signing identity from the Apple Developer Program (or create a new one). If your device is jailbroken, it's even simpler: in this case, no signing identity is required.
Prerequisites:
1. A recent, up-to-date copy of Microsoft Windows (10, 11)
2. One-time access to macOS to migrate the Apple SDKs so as to complete the setup (simply follow the instructions - assistant scripts are provided).
Documentation here.
Support forum here.
Hard to believe something like this even exists? I maintain this asset since 2014. Read the reviews (including the worst ones), read the support forum, and decide for yourself how trustworthy this asset really is. I hope you'll find it's worth your time and money.
Thank you for reading - and for your support -- Pierre-Marie Baty
2025-10-09Version 3.81
- Fixed the SDK Migration Assistant so that the macOS build number stamped in the apps is always one supporting the Xcode whose SDKs were taken from (fixes App Store rejection issues when the user migrates SDKs from a version of Xcode that's too recent for his Mac).
- Fixed a regression where the CFBundleVersion was forced to 1 when not explicitly defined in the Xcode project but directly set in the Info.plist.
2025-10-03Version 3.80
- Now passing the right Swift language version to use (from the Xcode project file) to the Swift compiler when building Swift sources.
- Worked around a case where a redirected UNIX command would block during the export of a just built Swift module.
- Refactored and improved missing symbols resolution logic.
2025-09-26 Version 3.79
- Upgraded LLVM/Clang compiler (Apple branch) to release tag "clang-19.1.5/swift-6.2-RELEASE" (official version).
- Added support for iOS 26/macOS 26 SDK.
- Better automatic missing symbols resolution code, can now be used with the LLVM linker as well as with Apple's ld64.
- Added support for building mixed-language targets. Many more Pods can be built automatically.
2025-09-09 Version 3.78
- Added support for nested Xcode project files.
- Fixed Swift modules mixed language interop (was working when Objective-C relied on Swift, was broken when Swift relied on Objective-C).
2025-09-06 Version 3.77
- Fixed mmap offset miscomputation in POSIX compatibility layer (likely cause of some Apple linker crashes).
- Fixed .xcframework bundles that were being incorrectly embedded as resource directories when listed as "embedded binaries" in the Xcode project file (affects VoxelBusters).
- Added an "edit" button next to the Application Services path field in the builder UI to quickly open the Entitlements.plist in the user's preferred text editor.
- Modernized the documentation (at last).
2025-08-28 Version 3.76
- Upgraded Apple linker to ld64-955.13 + patches.
- Upgraded Apple binary utilities to cctools-1024.3 + patches.
- Removed reliance on the legacy /usr/lib/swift/apinotes/os.apinotes that Apple sensibly relocated to /usr/include.
- Pimped up a few dialog boxes to better inform the users about what to do in case of build success or failure.
- The Unity invoice number is now stamped into the installer executable, making each installer unique. This invoice number will be verified when calling executables that rely on my server to perform their tasks to prevent service abuses. Thank you for your understanding.
2025-08-22 Version 3.75.1
- Added support for Unity 6.2.
- Added the ability to locate a precompiled .nib file outside of its source .xib location in the project root.
- Bitcode stripping is now done systematically on executables, dynamic libraries and frameworks to avoid rejections in App Store uploads.
2025-06-12 Version 3.74
- Upgraded LLVM/Clang compiler (Apple branch) to release tag "clang-19.1.4/swift-6.1.2-RELEASE" (official version).
- The upload tool and IPA re-signing utilities can now change not only the build number but also the version string in the packaged apps.
- Building Unity apps for macOS now automatically creates a .dmg file for easier macOS deployment. Refer to the "makedmg" command-ine utility for personalization options.
- Fixed a bug in the POSIX symbolic link emulation code where a NTFS symbolic link target pathname could contain extra characters when converted to the native code page.
- Added a link to open the last build log in the builder UI.
- Fixed support for older versions of Windows 10 where the GetTempPath2() WinAPI functions were not available.
- Added support for passing the $CONFIGURATION and $LIB_ARCH environment variables to the il2cpp compiler in the Unity il2cpp build step.
- Filtered out the incompatible "-mno-thumb" compiler option supplied by third party plugins (as Xcode seems to do) when building for a 64-bit ARM target.
- Added the -Wno-atomic-memory-ordering compiler flag when building the Unity il2cpp game assembly to prevent crashes when building with the Windows version of LLVM.
2025-05-17 Version 3.73
- Added support for parsing XCVariantGroup elements in Xcode project files (used for displaying Xcode CoreData models) in pbxprojparse.
- Added workaround instructions on how to precompile CoreData models on Mac to reuse them with this builder (undocumented Apple format again).
- Rewrote the topological sort of dependencies which was using a flawed algorithm, leading to e.g. Pods being built in the wrong order resulting in build failures.
- Better exposure of project, private and public headers of dependency projects through symlinks, so the compiler can tell when it's including the same file twice.
- Fixed a bug in the ASCII Plist parser used by the pbxprojparse utility that prevented some multiline output strings (e.g. shell scripts) from being correctly unescaped.
- Updated CocoaPods daemon VM Ruby gem and dependencies to version 16.2 (latest).
- Miscellaneous fixes in the new POSIX compatibility layer.2025-05-14 Version 3.72
- IMPORTANT: product name changed to comply with Unity's "no unauthorized use of third-party copyrighted names" requirements.
- Initial support for building macOS projects created by Unity, in addition to iOS projects.
- Bugfix: the installer now correctly grants NTFS symlink creation permissions to logged on users (at the cost of a single logoff).
- Bugfix: conversion of plaintext POSIX symlinks to NTFS symlinks now discards zero-byte long symlink targets.
- Bugfix: the UIDeviceFamily key was mistakenly left out during Info.plist construction for iOS apps, generating an App Store warning.
- The code signing tool no longer writes a fake team ID and standard requirements when doing AdHoc signing (when no signing identity is used).
- The code signing tool now properly handles nested signed bundles when signing macOS apps.
- Made the debug console logging redirector compatible with macOS apps, in addition to iOS.
- The IOS_* environment variables have been renamed to DBE_* (stands for 'Darwin Build Environment', since it no longer targets iOS alone), with backwards compatibility.
- The C:\iOS folder has been renamed to C:\Darwin. For backwards compatibility, a symlink is created in C:\iOS pointing to C:\Darwin.
- The IOSBUILDENV_PATH and IOSUNITYBUILDER_PATH environment variables were renamed to DARWINBUILDENV_PATH and UNITYBUILDER_PATH respectively, with backwards compatibility.
- Bugfix: hardened the emulated symlink detection logic in the POSIX layer to avoid false positives that prevented some projects to build or be signed.
- Silenced benign code signature invalidation warnings when building for multiple arches at once.
- Added a "-no_code_signature_warning" option to the "install_name_tool" binary utility (like the one in "strip"). Apple should do that too.
- Fixed error in Migration Assistants caused by invisible "insecable space" typo in shell script.
- Fixed restriction in the official LLVM linker so that targeting Apple platforms on other OSes than Darwin is allowed again.
- When converting POSIX symlinks into NTFS symlinks, relative paths are favored whenever possible to allow SDKs and projects relocation.
- Miscellaneous bugfixes in the new POSIX layer (e.g. mmap implementation).
2025-04-27 Version 3.71
- Upgraded LLVM/Clang compiler (Apple branch) to release tag "clang-19.1.4/swift-6.1-RELEASE" (official Windows 10 version) to support iOS 18.4.
- Upgraded Apple linker to ld64-954.16 + patches.
- Upgraded Apple binary utilities to cctools-1021.4 + patches.
- Major rewrite of the POSIX compatibility layer that supports the 2 Apple tools above.
- Fixed directory resource detection in the master build script (thanks @Rockin).
- Added a hint on how to enable detection of the Unity il2cpp compiler by the build script when Unity is installed in a non-default location.
- The builder now attempts to locate and use other versions of the Unity IL2CPP tools than those used to create the Xcode project if the right one is not found.
- Fix for the master build script to correctly obtain the number of physical cores on Windows 11.
- The builder no longer stops abruptly when it hits a .xib file and tells the user what to do instead (i.e. how to generate and provide a precompiled .nib).
- Temp dir housekeeping: stale build temp folders older than 1 day are automatically deleted.
- Fixed regression in the Swift compiler failing to pick the platform-specific layout files at their appropriate locations.
- Fixed Unity Hub install path detection in build script (thanks @zeio).
- Restored LLVM disassembler feature in otool (the LLVMDisasm family of functions are now in LLVM-C.dll instead of LTO.dll).
2024-12-20Version 3.70
- IMPORTANT: Windows 7, 8 and 8.1 support was dropped. Windows 10 is now the minimum required Windows version to use this toolchain.
- Removed the POSIX symlink compatibility layer from the compiler source code and enforced automatic conversion to NTFS symlinks, hard links and junctions everywhere necessary.
- Removed the .xcframework bundle layout resolver logic from the compiler and linker source code and offloaded it to an external executable.
- Switched the LLVM/Clang compiler to the official, unpatched clang-17.0.6/Swift-6.0.3-RELEASE for Windows 10 to save (a lot of) maintenance work, offloading it to the LLVM team. At last!
- Switched the compiler cache to the official, unpatched ccache-4.10.2 to save more maintenance work.
- Upgraded the Apple binary utilities to cctools-1010.6 with patches (visionOS, firmware and sepOS support - feedback welcome).
- Unity 6 IL2CPP support.
- Added a unique error tag to each error case for easier build script debugging.
- NOTE: this release is the first one using yet another way for handling POSIX symlinks (and might be the last one before a major rewrite). Please do report all regressions in the support forum.