-
Notifications
You must be signed in to change notification settings - Fork 1
Manager
Mail Plugin Manager is a tool to help users enable, disable, remove and even find and install Mail Plugins. However, in general it is not a tool that users will download by themselves. Usually it will be installed along with your plugin, but then the user can take advantage of it for all of their plugins.
- Plugin Manager (for users)
- Display list of plugins available on the internet that can be installed.
Mail Plugin Manager supports Lion, Mountain Lion & Mavericks.
This interface is for the user to interact with and is the default mode when the Mail Plugin Manager is opened without a file. Here is an example of what it looks like:
I have tried to add as much information about the plugin as I can get from the plugin itself. There are ways to add more detailed information to the Info.plist file so that MPM can provide a better experience, but it's good to try to show something.
The user can enable/disable, remove, update and change the domain of the plugin from this window. They can also click on the name to go to a product site and the company name to go to the company site.
One of the advantages that Mail Plugin Manager provides is that there is a tab that can act somewhat like a store front. It doesn't allow for any purchasing handling or anything like that, but it does allow for users of the Manager to discover other plugins that they might find useful or interesting and to install them, or visit the website.
Your plugin can be included in this "store" simply by adding some extra data to a Sparkle feed and then send your Sparkle feed URL to us to be included in the store.
Add a section to your feed like this:
<mpm>
<key>value</key>
</mpm>
where you have multiple keys and values using the following list (keys on left, value types on right):
CFBundleIdentifier <string>
CFBundleName <string>
MPCCompanyURL <url>
MPCProductURL <url>
MPCProductIconFileURL <url>
MPCProductStoreURL <string>
MPCProductSupportURL <string>
MPCCompanyName <string>
MPCProductDescription <string>
MPCProductDirectInstall <true|false>
MPCProductPrice <string>
The first two and the URLs should be obvious.
The MPCCompanyName will be displayed with a link to go to your site in the MPCCompanyURL. The MPCProductDescription will be displayed next to your plugin's icon in two lines of visible text, so keep the description short and to the point.
If your plugin can be installed directly from the URL in the feed, without needing to have other things installed, then you can set MPCProductDirectInstall to true and it will allow the user to click a button to install your plugin. If the value of this is not true then the “Install” button will change to “Download” and the MPCProductURL will be used to download the product installer using NSWorkspace.
You can display the price of your plugin in the information by including it in the MPCProductPrice field. The price will have store URL (MPCProductStoreURL) as it's action.
Currently the MPCProductSupportURL is not actually used, but will at sometime in the future be added to a button to open the support forum.
This is a start. Some future values that we might want to add and have Mail Plugin Manager display them might be: Trial Terms & separate installation feed URL for example.
To make your plugin work optimally with Mail Plugin Manager and the MailPluginTool, you should add some specific values to your info.plist. These will determine where to send crash reports, how to handle uninstalls and other features. Below is a list of the keys and a description of what they do.
Required to use the Send Crash Reports feature, see that link for the format of the report:
MPCCrashReportURL URL to your web service to accept crash reports
The rest are all optional, but recommended:
MPCMaxCrashReportsToSend
MPCPluginUsesMailPluginManager
MPCSupplementalSparkleFeedParameters
The MPCMaxCrashReportsToSend key allows you to indicate a maximum of crash reports that you want to send in any one session. This allows you to manage your server storage better. The default value is 20.
The MPCPluginUsesMailPluginManager key identifies your plugin as one that is aware of MPM and MPT and is used during an install to ensure that another uninstaller doesn't remove the apps when you depend on them.
The MPCSupplementalSparkleFeedParameters key allows you to add an array of other keys within your info.plist file that are to be sent as Sparkle feed parameters for the anonymous data.
The following values are used by the apps whenever a plugin is displayed to show the company name, URL and product URL. All of them are optional, but make the presentation nicer. There is a companies.plist file which I try to update with the company name and url based on the reverse domain name of the bundle id, but these values will always override that information. They will also override the values that may have come from the Sparkle feed mentioned above.
MPCCompanyName Company name for display
MPCCompanyURL Company URL to link to in Apps
MPCProductDescription Short description of the plugin and what it does
MPCProductURL Product URL to link to in Apps
Thanks to Fabian Jäger from Chungwasoft for his contributions to Version 2.0.
© 2011-2014 Little Known Software, Inc.
The Mail Plugin Manager has a very particular license. The code is not being made available as open source (though if you would like to contribute to the code, please contact me at [email protected]), but the executables are being made freely available for developers to use, with the following single condition:
- You may not resign the Mail Plugin Manager or MailPluginTool applications for any reason
The reason for this is complex, but one thing is sure, the app will terminate if the signature is not the original. The reason for this restriction is to avoid confusion for the end user. Since the application is a Developer ID signed application, if it is resigned with a different ID, then the updates will not work properly and the effectiveness of the app will be diminished tremendously. Thus to simply avoid these kinds of issues, the code has not been made available and the application validates that it is signed with a Developer ID from Little Known Software, Inc.
To be clear, this restriction does not apply to the Installer, in fact for it to work best for your installation, you should resign that application with your Developer ID.
Beyond this restriction, you are free to use the executables and their package contents and distribute it with your plugins as needed.
