A method comprising: storing, by a mobile device and in a memory, a plurality of unmanaged applications, wherein each of the plurality of unmanaged applications is associated with an application bundle; retrieving, by the mobile device and from the memory, information associated with the plurality of unmanaged applications; instructing, by a wrapping application, the mobile device to search the memory to find one or more unmanaged applications, of the plurality of unmanaged applications, that are unwrapped but are capable of being wrapped; using the retrieved information to generate, on a display of the mobile device, a user interface that displays a list of one or more selectable objects (706a-f), wherein each of the one or more selectable objects (706a-f) corresponds to the one or more unmanaged applications that are unwrapped but are capable of being wrapped; receiving, via the user interface, a selection of a first selectable object from the one or more selectable objects (706a-f) wherein the selection indicates an unmanaged application that is unwrapped but is capable of being wrapped; executing the wrapping application to wrap the selected unmanaged application by: decompiling an application bundle associated with the selected unmanaged application; modifying source code of the decompiled application bundle by adding a set of one or more policy-based control instructions; and compiling the modified source code to generate a managed application, wherein the managed application is configured to operate in accordance with the set of one or more policy-based control instructions; and providing, by the mobile device, the managed application for installation on the mobile device. storing, by a mobile device and in a memory, a plurality of unmanaged applications, wherein each of the plurality of unmanaged applications is associated with an application bundle; retrieving, by the mobile device and from the memory, information associated with the plurality of unmanaged applications; instructing, by a wrapping application, the mobile device to search the memory to find one or more unmanaged applications, of the plurality of unmanaged applications, that are unwrapped but are capable of being wrapped; using the retrieved information to generate, on a display of the mobile device, a user interface that displays a list of one or more selectable objects (706a-f), wherein each of the one or more selectable objects (706a-f) corresponds to the one or more unmanaged applications that are unwrapped but are capable of being wrapped; receiving, via the user interface, a selection of a first selectable object from the one or more selectable objects (706a-f) wherein the selection indicates an unmanaged application that is unwrapped but is capable of being wrapped; executing the wrapping application to wrap the selected unmanaged application by: decompiling an application bundle associated with the selected unmanaged application; modifying source code of the decompiled application bundle by adding a set of one or more policy-based control instructions; and compiling the modified source code to generate a managed application, wherein the managed application is configured to operate in accordance with the set of one or more policy-based control instructions; and providing, by the mobile device, the managed application for installation on the mobile device.