Mac App Store Distribution

Inside macOS Mojave, the upcoming update to Apple’s desktop and laptop operating system, lives a fresh take on the Mac App Store, that nearly-forgotten portal for desktop apps. Apple wants developers and users to enjoy their experience, which prompted the redesign, but there’s a lot more under the hood.

Contact Apple through Developer Technical Support or through the Mac App Store. They should be able to suggest the best approach – which Apple will support. At the very least, it will help prove demand for the capability. Ad Hoc Distribution. Depending on your situation, you may be able to use ad hoc distribution. It is designed for testing. Double-click on the app and in your /Applications folder and, voila, it runs: Conclusion. Considering that a clear majority of macOS developers distribute and earn revenues on their apps outside of the Mac App Store, I would hope that I piqued your interest in Packages. You can’t beat the fact that Packages is freeware so, not only did you. Whereas the iOS App Store has ‘apps’ and ‘games,’ the Mac App Store will have four distinct categories: ‘create,’ ‘work,’ ‘play,’ and ‘develop.’ This speaks to Apple’s insistence that the new-look Mac App Store is also powerful, and a proper method for professionals to discover new apps, tools, and services. Outside the Mac App Store. While the Mac App Store is the safest place for users to get software for their Mac, you may choose to distribute your Mac apps in other ways. Gatekeeper on macOS helps protect users from downloading and installing malicious software by checking for a Developer ID certificate. The certificate types for distribution outside the Apple 'App Store” for Mac OS are: - Developer ID Application app for distribution outside of the Mac App Store. I am a developer of iOS, and developed a mac app. Now I want to distribute my app so that a searched for it and found that we need to upload.app to Mac App Store it looks fine. While for self distribution we can have three options: is to share our app; is to create.dmg file; is to share.pkg file (Package Maker). While the Mac App Store is the safest place for users to get software for their Mac, you may choose to distribute your Mac apps in other ways. Gatekeeper on macOS helps protect users from downloading and installing malicious software by checking for a Developer ID certificate.

Mac App Store Distribution Center

The design will be familiar to those in the Apple ecosystem. It’s akin to the iOS App Store, with proper app landing pages and video previews for apps. Developers can also use an in-app API to elicit reviews and ratings, just like on iOS.

The Mac App Store differentiates itself by including a sidebar for topics better suited to the desktop. Whereas the iOS App Store has ‘apps’ and ‘games,’ the Mac App Store will have four distinct categories: ‘create,’ ‘work,’ ‘play,’ and ‘develop.’ This speaks to Apple’s insistence that the new-look Mac App Store is also powerful, and a proper method for professionals to discover new apps, tools, and services.

To make its point, Apple will launch the new Mac App Store with four unique partners. Microsoft will bring the Office 365 suite, Adobe’s Lightroom CC is on the way, and BBEdit from Bare Bones Software is also arriving this Fall. Panic’s Transmit will make a return to the Mac App Store.

This is where things get interesting. Office 365 is apparently being totally re-written in JavaScript (not traditional Apple frameworks or SDKs). BBEdit and Transmit were both removed from the Mac App Store long ago by their respective development teams over issues related to upgrade pricing and free trials (among a few other issues).

When iOS 12 and macOS Mojave land this Fall, developers will be able to offer free trials for apps, so long as this is clearly communicated to the customer. There’s also tooling to offer tiered pricing for subscriptions (where the first year may cost $1, and subsequent annual pricing might be $5, for example).

On macOS, more pricing flexibility is critical. Both BBEdit and Transmit were doing fine away from the Mac App Store, and many other apps do well without ever appearing on the Mac App Store. In a blog post, iA noted that its Writer app was being punished by the Mac App Store for being popular, which seems like an algorithmic oddity meant to repudiate the Mac App Store from all the ‘zombie’ apps it’s trying to ditch.

In a survey from MacPaw, macOS developers by and large saw the Mac App Store as something to avoid. Even those selling via the Mac App Store without hedging bets outside of it said they “wouldn’t recommend it unless they kind of hate” the person they were referring to it.

Sandboxing has been a huge hurdle. Apple has long asked that apps distributed in the Mac App Store simply play in their own realm; apps downloaded from the web had to be signed by an Apple developer, lest users get scary pop-ups telling them Apple had no idea who the downloaded app was from.

Jason Snell at Six Colors says this practice is easing. From his post:

Apps are able to ask for permission to creep out of the restrictive “sandbox” and access files more broadly across your Mac’s hard drive. The severe restrictions of the Mac App Store’s security policies were one of the reasons most frequently cited by developers who decided to bail out on the store and just go back to selling apps directly.

For those apps living outside the Mac App Store, Snell writes they can now be “notarized” by being uploaded to an Apple server, which scans them for known malware. This isn’t a review; it’s a half-step for security, and possibly a way for Apple to reach out to more developers and encourage them to make their apps available via the Mac App Store.

Taken in context, what we’re seeing is Apple extending the leash for Mac App Store apps while trying to corral those outside the Mac App Store, broadening its reach and scope. The approach seems to be more apps Apple has qualified as ‘good’ rather than just grabbing for anything that will pass review.

The moves won’t please everyone, but they rarely do. We should keep in mind that Apple’s extended macOS universe will soon open a portal to the iOS sphere, and developers will have the ability to make their apps available to both platforms. The rules have to make sense for both ecosystems.

-->

This article covers how to create an IPA file that can be used to deploy an application using Ad Hoc distribution, either for testing, or for In-House distribution of internal applications.

In addition to releasing an application for sale through the iTunes App Store, it can be deployed for the following uses:

  • Ad Hoc Testing — An iOS application can be deployed to up to 100 users (identified by specific iOS device UUIDs) for Alpha and Beta testing purposes. See our Provisioning an iOS Device for Development documentation for detailed information on adding test iOS devices to your Apple developer account, and the Ad-Hoc guide, for more information on how to distribute in this way.
  • In House / Enterprise Deployment — An iOS application can be deployed internally, within a company, which requires membership of Apple's Developer Enterprise program. More information on In House Distribution is detailed in the In House Distribution guide.

Free Apps For Mac

In either case, an IPA package (a special type of zip file) must be created and digitally signed with the correct Distribution Provisioning Profile. This article covers the steps required to build the IPA package and install the package on an iOS device using iTunes on a Mac or Windows PC.

The iTunesMetadata.plist File

When an iOS application is created in iTunes Connect (either for sale or free release from the iTunes App Store), the developer can specify information such as the application's genre, sub genre, copyright notice, supported iOS devices and required device capabilities.

iOS applications that are delivered either via Ad Hoc or In-House distribution, need to have some way to support this information so that it can be visible on iTunes and the user's device. By default, a small iTunesMetadata.plist file is created every time you build your project and is stored in the project directory.

A custom iTunesMetadata.plist can also be created to supply the additional information to a distribution. To find out more about the content of this file and how to create it, please see our The iTunesMetadata.plist Contents and Creating an iTunesMetadata.plist File documentation.

iTunes Artwork

When delivering your app through non-App Store means, you also need to include a 512x512 and a 1024x1024 image that will be used to represent your application in iTunes.

To specify the iTunes Artwork, do the following:

  1. Double-click the Info.plist file in the Solution Explorer to open it for editing.
  2. Scroll to the iTunes Artwork section of the editor.
  3. For any missing image, click on the thumbnail in the editor, select the image file for the desired iTunes artwork from the Open File dialog box and click the OK or Open button.
  4. Repeat this step until all needed images have been specified for your application.

Please see the iTunes Artwork documentation for more details.

Creating an IPA

App

Creating an IPA is now built into the new publishing workflow. To do this, follow the instructions below to archive your app, sign it, and save your IPA.

Before starting to create an IPA for a cross-platform solution, ensure that you have selected the iOS project as your startup project:

Build your Archive

To build an IPA, an archive of a release build of our application needs to be created. This Archive contains our app and identifying information about it.

  1. Select the Release | Device configuration in Visual Studio for Mac: !

  2. From the Build menu, select Archive for Publishing:

  3. Once the archive has been created, the Archives view will be displayed:

Sign and Distribute your App

Each time you build your application for Archive, it will automatically open the Archives View, displaying all archived projects; grouped by solution. By default, this view only shows the current, open solution. To see all solutions that have archives, click on the Show all archives option.

It is recommended that archives deployed to customers (either Ad-Hoc or In-House deployments) be kept, so that any debug information that is generated can be symbolized at a later date.

Note that for non-App Store builds the iTunesMetadata.plist file, and iTunes artwork set will automatically be included in your IPA if they are found in the archive.

To sign your app and prepare it for distribution:

  1. Select the Sign and Distribute... button, illustrated below:

  2. This will open the publishing wizard. Select the Ad-Hoc or Enterprise(In-House) distribution channel to create a package:

  3. On the Provisioning Profile screen, select your signing identity and corresponding provisioning profile, or re-sign with another identity:

  4. Verify the details of your package, and click Publish:

  5. Finally, save your IPA to your machine:

Building via the Command Line (On Mac)

In certain cases, such as in a CI environment, it may be necessary to build you IPA via the command line. Follow the steps below to achieve this:

  1. Ensure Project Options > iOS IPA Options > Include iTunesArtwork images is checked and Build ad-hoc/enterprise package (IPA) is checked:

    If you prefer, you can instead edit the .csproj file in a text editor and manually add the two corresponding properties to the PropertyGroup for the configuration that will be used to build the app:

  2. If you are including an optional iTunesMetadata.plist file, click the ... button, select it from the list and click the OK button:

  3. Call msbuild directly and pass this property on the command line:

Once the provisioning profile has been created and selected, the optional iTunesMetadata.plist file has been created and the iTunes Artwork set in Visual Studio, you can build an IPA for distribution. Next, you'll need to configure your project. Do the following:

Mac App Store For Windows

  1. In the Solution Explorer, right-click the Xamarin.iOS project name and select Properties to open them for editing:

  2. Select iOS IPA Options and select Ad-Hoc from the Configuration dropdown list:

    Note

    An Ad-Hoc configuration may not be available for newer Xamarin.iOS projects. If it's not available, select the Release configuration.

  3. If you are including an option iTunesMetadata.plist file, click the ... button, select it from the list and click the Open button:

  4. You can optionally specify a Package Name for the IPA, if not specified it will have the same name as the Xamarin.iOS project.

  5. Save your changes to the Project Properties.

  6. Select Ad Hoc from the Build Configuration dropdown if it is available. Otherwise select Release:

  7. Build the project to create the IPA package.

  8. The IPA will be build in the Bin > iOS Device > Ad Hoc (or Release) folder:

Customizing the IPA Location

A new MSBuild property IpaPackageDir has been added to make it easy to customize the .ipa file output location. If IpaPackageDir is set to a custom location, the .ipa file will be placed in that location instead of the default timestamped subdirectory. This can be useful when creating automated builds that rely on a specific directory path to work correctly, such as those used for Continuous Integration (CI) builds.

There are several possible ways to use the new property:

For example, to output the .ipa file to the old default directory (as in Xamarin.iOS 9.6 and lower), you can set the IpaPackageDir property to $(OutputPath) using one of the following approaches. Both approaches are compatible with all Unified API Xamarin.iOS builds, including IDE builds as well as command-line builds that use msbuild, xbuild, or mdtool:

  • The first option is to set the IpaPackageDir property within a <PropertyGroup> element in an MSBuild file. For example, you could add the following <PropertyGroup> to the bottom of the iOS app project .csproj file (just before the closing </Project> tag):

  • A better approach is to add a <IpaPackageDir> element to the bottom of the existing <PropertyGroup> that corresponds to the configuration used to build the .ipa file. This is better because it will prepare the project for future compatibility with a planned setting on the iOS IPA Options project properties page. If you currently use the Release|iPhone configuration to build the .ipa file, the complete updated property group might look similar to the following:

An alternate technique for msbuild or xbuild command-line builds is to add a /p: argument to set the IpaPackageDir property. In this case note that msbuild does not expand $() expressions passed in on the command line, so it is not possible to use the $(OutputPath) syntax. You must instead provide a full path name. Mono's xbuild command does expand $() expressions, but it is still preferable to use a full path name because xbuild has been deprecated in favor of the cross-platform version of msbuild.

A complete example that uses this approach might look similar to the following on Windows:

Or the following on Mac:

Installing an IPA using iTunes

The resulting IPA Package can be delivered to your test users for installing on their iOS devices or shipped for Enterprise deployment. No matter which method is chosen, the end user will install the package in their iTunes application on their Mac or Windows PC by double-clicking the IPA file (or dragging it onto the open iTunes window).

Mac App Store Download Location

The new iOS application will be shown in the My Apps section, where you can right-click on it and get information about the application:

The user can now sync iTunes with their device to install the new iOS application.

Summary

Mac Apps Store Download

This article covered the setup required to prepare a Xamarin.iOS application for a non-App Store build. It showed how to create an IPA Package and has how to install the resulting iOS application on the end user's iOS device for testing or In-House Distribution.

Mac App Store For Pc

Related Links