macOS File Provider Extension Projects Deployment

To deploy macOS project in a production environment you will need to create Group ID, App Identifies and Provisioning Profiles.

Note that these steps are NOT required for development. Sample project provided with the library run out of the box in the development environment and do not require IDs and profiles configuration.

Creating Group ID, App Identifies and Provisioning Profile

In the following steps, we will describe how to configure and run this sample in the development environment. You will create an Apple group ID, Apple app identifies, and Apple provisioning profiles. Then you will update the sample container application project and extension project to use the created IDs and profiles.

Log-in to the Apple developer account here: https://developer.apple.com/. To complete the steps below you must have an App Manager role.

  1. Create App Group. Navigate to Certificates, IDs, Profiles -> Identifiers -> App Groups and create a new group.

  2. Create Apple macOS App IDs. Navigate to Certificates, IDs, Profile -> Identifiers -> App IDs. Create 2 identifiers that will be unique for your project. One will be used for container application another – for the extension.

  3. Add app identifiers to the group. Add both identifiers created in Step 2 to the group created in Step 1. Select identifier and click on Edit. Then check the App Groups checkbox, select the Edit button and select the group created in Step 1.

  4. Create Provisioning Profiles. Navigate to Certificates, Identifiers & Profiles -> Profiles -> Development and create profile. Associate profile with extension ID and container ID respectively.

  5. Download profiles and certificates in XCode. Run XCode and go to Xcode Menu > Preferences -> Accounts tab. Select team and click on “Download Manual Profiles”. You can find more detailed instructions: here

  6. Set bundle identifier name in Container project. The bundle identifier is located in WebDAVMacApp/Info.plist file. You can edit it either in Visual Studio or directly in Info.plist file in the CFBundleIdentifier field (by default it is set to com.userfilesystem.vfs.app). You must set this identifier to the value specified in Step 2.

  7. Set bundle identifier name in the Extension project. The bundle identifier is located in WebDAVFileProviderExtension/Info.plist file. You can edit it either in Visual Studio or directly in Info.plist file in the CFBundleIdentifier field (by default it is set to com.userfilesystem.vfs.app.extension). You must set this identifier to the value specified in Step 2.

  8. Configure macOS bundle signing in Container and Extension projects. For each project in Visual Studio go to the project Options. Select Mac Signing and check 'Sign the application bundle'. Select Identity and Provisioning profile.

  9. Configure application permissions in Container and Extension projects. Select Entitlements.plist and select group created in Step 1 in App Groups field for each project.

  10. Set App Group ID in code. Edit AppGroupsSettings.cs file located in /WebDAVCommon/ folder. Specify AppGroupId.

Next Article:

iOS File Provider Extension Projects Deployment