Publishing apps
The app package is a distributable file that’s used to publish SharePoint apps.
Once the app package has been published, it is available for users to
install. In the case of SharePoint-hosted apps and autohosted apps, the
app package contains all the resources required to deploy the app
during the installation process. However, provider-hosted apps require
the developer to deploy the remote web independently of the publication
process and the installation process.
You publish a SharePoint app by uploading its app package file to
one of two different places. First, you can publish an app by uploading
its app package to the public Office
Store. This is the right choice to make your app available to the
general public, including users with SharePoint tenancies in Office 365.
The second way to publish a SharePoint app is by uploading the app
package to a special type of site known as an app catalog site. This is
the option to use when you want to make the app available only to users
within a specific Office 365 tenancy or within a specific on-premises
farm.
Publishing SharePoint apps to the Office Store
To publish an app to the public Office Store, the developer must first create a dashboard seller account. You can create this type of account by navigating to https://sellerdashboard.microsoft.com
in the browser and logging on with a valid Windows Account. Once you
have logged on, you can create a new dashboard seller account that is
either an individual account or a company account.
A very appealing aspect of publishing apps to the Office Store with
a dashboard seller account is that it provides assistance with the
management of licensing as well as collecting money from customers through
credit card transactions. When you create a dashboard seller account,
you are able to create a second payout account from which you supply
Microsoft with the necessary details so when it collects money from
customers purchasing your apps, it can transfer the funds you have
earned to either a bank account or a PayPal account.
Once you have gone through the process of creating
a dashboard seller account, it takes a day or two for this new account
to be approved. Once your account has been approved, you can then begin
to publish your apps in the Office Store. The Office Store supports publishing three types of apps: you can publish SharePoint apps, Apps for Office, and Windows Azure Catalog Apps.
You publish a SharePoint app by uploading its app package file and
filling in the details associated with the app. For example, the
publishing process for the Office Store requires you to provide a
title, version number, description, category, logo, and at least one
screenshot that shows potential customers what your app looks like.
When you publish a SharePoint app, you can also indicate via the seller
dashboard whether your app is free or must be purchased. If you publish
an app for purchase, you can specify the licensing fee for each user or
for a given number of users. There is even an option to configure a
free trial period for an app that has an associated licensing fee.
Once you have uploaded an app and provided the required information,
the app must then go through an approval process. The approval process
involves checking the app package to ensure that it only contains valid
resources. There are also checks to validate that the app meets the
minimum requirements of the user experience guidelines. For example,
there is a check to ensure that the start page for the app contains the
required link back to the host web.
Once the app has been approved, it is then ready for use and added
to the public Office Store where it can be discovered and installed by
SharePoint users.
Publishing apps to an app catalog
What should you do if you want to publish an app but you don’t want
to publish it to the Office Store? For example, imagine a scenario in
which you don’t want to make an app available to the general public.
Instead, you want to publish the app to make it available to a smaller
audience such as a handful of companies that are willing to pay you for
your development effort. The answer is to publish the app to an app catalog site.
An app catalog site contains a special type of document library that
is used to upload and store app package files. Along with storing the
app package file, this document library also tracks various types of
metadata for each app. Some of this metadata is required, whereas other
metadata is optional.
In the Office 365 environment, the app catalog site is automatically
added when a tenancy is created for a new customer. However, this is
not the case in an on-premises farm. Instead, you must explicitly
create the app catalog site by using the Central Administration site or
by using Windows PowerShell. Furthermore, the app catalog is created at
web application scope, so you must create a separate app catalog site
for each web application.
You must have farm
administrator permissions within an on-premises farm to create an app
catalog site. You begin by navigating to the home page of Central
Administration. On the home page, there is a top-level link for Apps.
When you click the Apps link, you will be redirected to a page with a
group of links under the heading of App Management. Within this group
of links, locate and click the link titled Manage App Catalog.
The first time you click the Manage App Catalog link, you are redirected to the Create App Catalog page, which you can use to create a new app catalog site, as shown in Figure 4. Note that the app catalog site must be created as a top-level site within a new site collection. On the Create App Catalog page, you can select the target web app that will host the new app catalog site.
Note that you can also use the Create App Catalog page
to configure user access permissions to the app catalog site. Remember
that providing users with access to the app catalog site is what makes
it possible for them to discover and install apps of their own. You
must provide read access to users if you want them to have the ability
to discover apps and install them at site scope. However, you might
decide against configuring user access to the app catalog site if you
plan on installing apps at tenancy scope.
Once you have created the app catalog site within an on-premises
farm, you should navigate to it and inspect what’s inside. You will
find that there is a document library with a title of Apps for SharePoint which is used to publish SharePoint apps. There is a second document library with a title of Apps for Office that is used to publish apps created for Office applications such as Word and Excel.
You publish a SharePoint app by uploading its app package to the Apps
for SharePoint document library. The SharePoint host environment is
able to automatically fill in some of the required app metadata such as
the Title, Version, and Product ID by reading the app manifest as the
app package is uploaded. However, there is additional metadata that
must be filled in by hand or by some other means. A view of apps that have been published in the Apps for SharePoint document library is presented in Figure 5.
You will also notice that the app
catalog site supports the management of app requests from users. The
idea being that a user within a site can request an app from the Office
Store. The app
catalog administrator can see this request and decide whether to
purchase the app or not. If the app request seems appropriate, the app
catalog administrator can purchase the app and make it available for
site-scope installation. Alternatively, the app catalog administrator
can make the app available to the requester by using a tenancy-scoped
installation.