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 . <EOS>