iOS File Provider Extension Projects Deployment

To deploy iOS project you will need to create Group ID, App Identifies and Provisioning Profiles. 

The project requires a physical device. You can NOT run the project on iOS simulator. You MUST add a device to a devices list.

Unlike with macOS, ALL below steps are required to run the project.

If you have run the project on macOS, note the following differences, required to run the project on iOS:

  • Unlike with macOS where you can run the project with ad-hoc profile, on iOS all below steps must be completed.
  • You must increase memory limit.
  • You must add a physical device ID to the devices list.

Creating Group ID, App Identifies and Provisioning Profile

In the following steps, we will describe how to configure and run the iOS sample. 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 iOS 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. Important: Check Increased Memory Limit checkbox.

  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. Add your real device to devices list. Open Devices tab -> Add button. Input device name and device ID (UDID). You can find your UDID by connecting your device to macOS. Run XCode and go to Window tab -> Devices and Simulators -> Devices -> Your device tab. UDID is located in Identifier field.

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

  6. 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

  7. 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.

  8. 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.

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

  10. 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. Important: Set Increased Memory Limit property to true.

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