what is difference between Application Extensions, PlugIns and Bundles in OSX?

I see every where Application extensions, Plugins and bundles are used interchangeably. Please some one elaborate what can be achieved using each one of them. Which one of them can be used to add functionality to existing Mac OSX applications, like adding custom menu to existing menubar.

Replies

“Bundle” is Apple’s generic term for any collection of program resources, e.g. an application bundle is a directory with `.app` suffix containing a Mach-O executable and its dependencies.


Plugins and App Extensions are both types of bundles that add new functionality to an existing app. The difference is that a plugin’s code is loaded directly into the app process, whereas an app extension’s code is executed in a subprocess. The former have been around for longer, but the latter is far safer and much more secure. No prizes for guessing which one Apple wants app developers to move to.


As far as adding new menus to an existing 3rd-party application goes, you’ll have to refer to the app’s developer documentation to see if it provides a suitable extension API (most don’t). OTOH, if you just want a standalone menu that appears on the right-hand side of the menubar no matter what app is running, that’s easily implemented as a standalone application using `NSStatusBar` to display the menu, and setting the `UIElement` flag to true in the app’s Info.plist. Plenty of examples online if you search for those terms.

Thank you, I want to add one more menu item of Office Apps(Word,Excel,PPT) menubar and extend its functionality.


Ex: https://medium.com/fantageek/install-xcode-8-source-editor-extension-10c9849e33b0


The above example is used to add additional functionality to Xcode. I am sure they uses xcode extensions. In similar way i am looking for a way to add other applications.