I have recently joined a company and adopted an extension that was created before my time. Until now, we have only distributed this extension to our customers as a tool to compliment the hardware we sell. We have no plans to release this extension to the public as it has proprietary code and knowledge that is only advantageous to our customers.
With that said, we have been managing the installation of this extension manually by downloading the source code and copying the files to the Plugins folder. This has become a pain when pushing features / fixing bugs… the customer has to uninstall SketchUp and reinstall it using a custom installer we created that will download the extension along with the Make version of SketchUp and take care of the extension install. Not ideal.
My question is, is it possible to distribute our extension through the Extension Manager / Warehouse, but keep the extension private? Basically keep the extension from appearing in the Warehouse but still get the benefits of it being easy to update through the Extension Manager?
Any thoughts, ideas or comments on this are much appreciated. SketchUp has a great community and I’m sure somebody out there has done something similar. Thanks!
This is completely off topic and I cannot assist with your query, however consider this. You’re wanting to distribute your extension privately on the Extension Warehouse (their hosting, bandwidth, etc.), an extension admittedly only useful with the hardware you sell, but you bundle it with the SketchUp Make version? Please consider reading the EULA for the SketchUp Make version; I may be wrong, but I suspect your usage could be considered commercial, thus a Pro licence (for every unit sold) would be required.
This is almost exactly how the extension is currently installed and I am trying to avoid. I would prefer to distribute the extension through the Warehouse, but keep the extension from being installed by anyone BUT a customer.
Why not make it simpler ?
Send your client[s] the RBZ.
It’s easy enough to install using the native installer tool.
If your client is untrustworthy and likely to give your RBZ away, you have a problem far bigger than that !
However, you could introduce a simple ‘licensing’ system.
With the RBZ supply a separate licensing string.
When the installation first runs devise some code to ask for the license string in a dialog.
If the string meets certain rules [which you have devised] then it’s written to the Sketchup defaults and gets read at each start and works seamlessly thereafter.
But this kind of tail-chasing is somewhat pointless.
If a client is so untrustworthy as to share your RBZ then they undoubtedly share your license string !
There are of course complex ways to check that an extension is appropriately licensed and working on only one computer etc…
But is this approach really appropriate for a ‘free’ utility you are giving valued clients.
Set up an in house database.
So you know who has been given the RBZ.
When it’s updated send out updated RBZs to the recipients by email, will [re]installation instructions.
Even if you could use EWH to do some of this for you you’d still need to update the EWH version, and also the likelihood is that you’d need to also tell the clients to get/install the update too !
Seems to me you are making things more complicated than they need to be ?
The only reason I use an installer rather than an RBZ is because I have a service that hosts a web app that is used for the HTML interface. So my installer also needs to stop the existing service, delete it, and then create and start the new service.
I put my installer on dropbox and then email the link to my customers. The licensing information is stored in an encrypted SQLite file so it is secure and not affected by updates. Also anyone downloading the the extension only gets a trial until they contact me for a license code. In this way I don’t need to worry about the public being able to download it.
My extension warehouse actually simply points to a dropbox download.
When I’ve developed extensions for clients for internal use I simply email them the RBZ file. Easy peasy. If more than one person need the code Dropbox, as Neil says, is probably a good idea. I haven’t tried myself but maybe you can even load the plugin directly from the dropbox. This way the users don’t need to do anything at all to install it.