LetsMove ======== A sample project that demonstrates how to move a running Mac OS X application to the Applications folder. ![Screenshot](http://i.imgur.com/euTRZiI.png) Requirements ------------ Builds and runs on Mac OS X 10.6 or higher. Does NOT support sandboxed applications. Usage ----- Option 1: Build then embed LetsMove.framework into your app. Option 2: Copy the following files into your project: - PFMoveApplication.h - PFMoveApplication.m If your project has ARC enabled, you'll want to disable ARC on the above files. You can do so by adding -fno-objc-arc compiler flag to your PFMoveApplication.m source file. See http://stackoverflow.com/questions/6646052/how-can-i-disable-arc-for-a-single-file-in-a-project/6658549#6658549 If your application is localized, also copy the 'MoveApplication.string' files into your project. Link your application against Security.framework. In your app delegate's "-[applicationWillFinishLaunching:]" method, call the PFMoveToApplicationsFolderIfNecessary function at the very top. License ------- Public domain Version History --------------- * 1.24 - Add PFMoveIsInProgress function - Update project for Xcode 9.1 * 1.23 - Fix localization not being used when built as a framework - Fix backwards compatibility with OS X 10.9 and earlier being broken - Make usable for Electron based apps or other apps that do not have access to the main thread dispatch queue - Update Russian localization * 1.22 - Fix not deleting or trashing itself after copying to /Applications in macOS Sierra * 1.21 - Support for [Carthage](https://github.com/Carthage/Carthage) added - Project now support OS X 10.6 and higher * 1.20 - Support for applications bundled inside another application - Brazilian Portuguese localization slightly updated - Build warnings fixed * 1.19 - Slovak localization added * 1.18 - Catalan localization added * 1.17 - Tranditional Chinese localization added. * 1.16 - Deprecation warning that appears when minimum deployment target is set to OS X 10.10 taken care of * 1.15 - Swedish localization added * 1.14 - Hugarian, Serbian, and Turkish localizations added - Macedonian localization added * 1.13 - Polish localization added * 1.12 - Use country code based .lproj directories - Make it compile for projects that don't use precompiled headers to import AppKit.framework - Minor adjustment to Dutch localization - Warning fixes in example project * 1.11 - Objective-C++ compatibility * 1.10 - Fixed deprecation warnings that show up when building against the OS X 10.9 SDK. * 1.9 - Removed OS X 10.4 support - Properly detect if the running app is in a disk image - Fixed a bug where if the app's name contained a quote, the app could not be moved - After a successful move, delete the application instead of moving it to the Trash. - Other fixes and improvements * 1.8 - If the app is already there in the Applications folder but not writable, request authentication from user - Added Korean localization * 1.7.2 - Fixed an exception that could happen. * 1.7.1 - Refactoring * 1.7 - Only move to ~/Appilcations directory if an app is already in there. * 1.6.3 - Function calls deprecated in 10.7 no longer cause compile time warnings. - Added Simplified Chinese and European Portuguese localizations * 1.6.2 - Garbage collection compatibility added - Use a new method to check if an application is already running on Mac OS X 10.6 systems or higher * 1.6.1 - Use exit(0) to terminate the app before relaunching instead of [NSApp terminate:]. We don't want applicationShouldTerminate or applicationWillTerminate NSApplication delegate methods to be called, possibly introducing side effects. * 1.6 - Resolve any aliases when finding the Applications directory * 1.5.2 - Cleaned up the code a bit. Almost functionally equivalent to 1.5.1. * 1.5.1 - Fixed a bug with clearing the quarantine file attribute on Mac OS X 10.5 * 1.5 - Don't prompt to move the application if it has "Applications" in its path somewhere * 1.4 - Mac OS X 10.5 compatibility fixes * 1.3 - Fixed a rare bug in the shell script that checks to see if the app is already running - Clear quarantine flag after copying - Compile time option to show normal sized alert supress checkbox button - German, Danish, and Norwegian localizations added * 1.2 - Copy application from disk image then unmount disk image - Spanish, French, Dutch, and Russian localizations * 1.1 - Prefers ~/Applications over /Applications if it exists - Escape key pushes the "Do Not Move" button * 1.0 - First release Code Contributors: ------------- * Andy Kim * John Brayton * Chad Sellers * Kevin LaCoste * Rasmus Andersson * Timothy J. Wood * Matt Gallagher * Whitney Young * Nick Moore * Nicholas Riley * Matt Prowse * Maxim Ananov * Charlie Stigler Translators: ------------ * Eita Hayashi (Japanese) * Gleb M. Borisov, Maxim Ananov (Russian) * Wouter Broekhof (Dutch) * Rasmus Andersson / Spotify (French and Spanish) * Markus Kirschner (German) * Fredrik Nannestad (Danish) * Georg Alexander Bøe (Norwegian) * Marco Improda (Italian) * Venj Chu (Simplified Chinese) * Sérgio Miranda (European Portuguese) * Victor Figueiredo and BR Lingo (Brazilian Portuguese) * AppLingua (Korean) * Czech X Team (Czech) * Marek Telecki (Polish) * Petar Vlahu (Macedonian) * Václav Slavík (Hungarian, Serbian, and Turkish) * Erik Vikström (Swedish) * Inndy Lin (Traditional Chinese) * aONe (Catalan) * Marek Hrusovsky (Slovak) [![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)