I've been looking thoroughly about each constructions, but I haven't been successful about when to use them.
Some rules of thumb I've found:
- This forum post and this one suggest publish in should be used when the place of publishing is a three-dimensional place and publish on should be used when it's a surface. This makes a bit of sense to me, but does not seem a very academical explanation; whereas there are some cases in which it would be hard to distinguish which kind of place it is.
- When the place is virtual, on is used. Example: Publish on Google Play
My particular cases are the following:
- To publish an application __ [in/on] Google Play
- To publish an application __ [in/on] a virtual market