diff --git a/admin_manual/contents.rst b/admin_manual/contents.rst index 6886119ca..f4df293c6 100644 --- a/admin_manual/contents.rst +++ b/admin_manual/contents.rst @@ -3,7 +3,7 @@ Table of Contents ================= .. toctree:: - :maxdepth: 2 + :maxdepth: 3 index release_notes @@ -22,11 +22,11 @@ Enterprise Subscription Only ---------------------------- .. toctree:: - :maxdepth: 2 + :maxdepth: 3 enterprise_installation/index enterprise_clients/index enterprise_external_storage/index enterprise_user_management/index enterprise_files_drop/index -.. enterprise_ios_app/index \ No newline at end of file + \ No newline at end of file diff --git a/admin_manual/enterprise_clients/creating_branded_apps.rst b/admin_manual/enterprise_clients/creating_branded_apps.rst index 814f39206..ca2f754fc 100644 --- a/admin_manual/enterprise_clients/creating_branded_apps.rst +++ b/admin_manual/enterprise_clients/creating_branded_apps.rst @@ -14,13 +14,13 @@ they are loaded into your account. .. image:: ../images/ownbrander-1.png -.. Building a Branded iOS App -.. -------------------------- +Building a Branded iOS App +-------------------------- -.. Building a branded iOS app requires your own artwork, and you must create a -.. P12 certificate and three provisioning profiles for digitally signing your -.. apps. Apple has strict and specific requirements, so it is a lengthy -.. process. See:doc:`../enterprise_ios_app/index` for a complete tutorial. +Building a branded iOS app requires your own artwork, and you must create a +P12 certificate and three provisioning profiles for digitally signing your +apps. Apple has strict and specific requirements, so it is a lengthy +process. See:doc:`../enterprise_ios_app/index` for a complete tutorial. Building an Android App or Desktop Sync Client ---------------------------------------------- diff --git a/admin_manual/enterprise_clients/index.rst b/admin_manual/enterprise_clients/index.rst index a989b353c..1e36e2462 100644 --- a/admin_manual/enterprise_clients/index.rst +++ b/admin_manual/enterprise_clients/index.rst @@ -3,9 +3,9 @@ Creating Branded ownCloud Clients (ES only) =========================================== .. toctree:: - :maxdepth: 2 + :maxdepth: 3 creating_branded_apps custom_client_repos publishing_android_app -.. ../enterprise_ios_app/index \ No newline at end of file + ../enterprise_ios_app/index \ No newline at end of file diff --git a/admin_manual/enterprise_ios_app/index.rst b/admin_manual/enterprise_ios_app/index.rst new file mode 100644 index 000000000..70fdebd12 --- /dev/null +++ b/admin_manual/enterprise_ios_app/index.rst @@ -0,0 +1,13 @@ +=================================== +Creating Branded iOS Apps (ES only) +=================================== + +.. toctree:: + :maxdepth: 3 + + publishing_ios_app + publishing_ios_app_2 + publishing_ios_app_3 + publishing_ios_app_4 + publishing_ios_app_5 + publishing_ios_app_6 \ No newline at end of file diff --git a/admin_manual/enterprise_ios_app/publishing_ios_app.rst b/admin_manual/enterprise_ios_app/publishing_ios_app.rst new file mode 100644 index 000000000..713121f30 --- /dev/null +++ b/admin_manual/enterprise_ios_app/publishing_ios_app.rst @@ -0,0 +1,46 @@ +============================================== +Building and Distributing Your Branded iOS App +============================================== + +Building and distributing your branded iOS ownCloud app involves a large number +of interdependent steps. The process is detailed in this chapter over several +pages. Follow these instructions exactly and in order, and you will have a nice +branded iOS app that you can distribute to your users. + +Prerequisites +============= + +* A Mac OS X computer with Xcode (free download) and Keychain Access + (included in Utilities) +* An iOS developer account on + `Developer.Apple.com/ios `_, + which costs $99 per year. +* An ownCloud Enterprise Subscription, with the ownBrander app enabled on + `Customer.owncloud.com `_ +* Some iPhones or iPads for testing your app, which must have their UDIDs + registered in your account on `Developer.Apple.com + `_. You may register up to 100 devices. + +Procedure +========= + +You need the Apple tools to build three provisioning profiles and a P12 +certificate, which you will email to branding@owncloud.com after building your +app with the ownBrander app on `Customer.owncloud.com +`_. It is best to create the +provisioning profiles and P12 certificate first, before building your app, +because you must supply a unique **bundle ID** and an **app group** to build +your app. These are created in your account on `Developer.Apple.com +`_, and with Keychain Access on your Mac computer. + +We use the provisioning profiles and P12 certificate to complete building your +app, and then in 24-48 hours your new branded app is loaded into your account +on `Customer.owncloud.com `_. + +The next step is to test your app on your registered iOS devices. When it +passes testing, the final step is to upload it to your iTunes account for +distribution. + +You will need a lot of graphics for building your app, and for your iTunes +store listing, in specific sizes and file formats. The ownBrander app and +iTunes detail all the image specifications you will need. diff --git a/admin_manual/enterprise_ios_app/publishing_ios_app_2.rst b/admin_manual/enterprise_ios_app/publishing_ios_app_2.rst new file mode 100644 index 000000000..a28efba47 --- /dev/null +++ b/admin_manual/enterprise_ios_app/publishing_ios_app_2.rst @@ -0,0 +1,90 @@ +================================== +Create Certificate Signing Request +================================== + +Create a `.certSigningRequest` (CSR) file on your Mac, using Keychain Access. +Open Finder, and then open Keychain Access from the Utilities folder. + +.. figure:: ../images/mac-1.png + :scale: 80% + +Next, open **Keychain Access > Certificate Assistant > Request a Certificate +From a Certificate Authority**. + +.. figure:: ../images/mac-2.png + :scale: 80% + +Enter the email address that you use in your Apple developer account, and enter +a common name. The common name can be anything you want, for example a helpful +descriptive name like "ios-acme". Check **Saved to disk** and **Let me specify +key pair information**, then click **Continue**. + +.. figure:: ../images/mac-3.png + +Give your CSR a helpful descriptive name, such as +**ios-csr.certSigningRequest**, and choose the location to save it on your hard +drive, then click **Save**. + +.. figure:: ../images/mac-4.png + +In the next window, set the **Key Size** value to **2048 bits** and +**Algorithm** to **RSA**, and click **Continue**. This will create and save +your certSigningRequest file (CSR) to your hard drive. + +.. figure:: ../images/mac-5.png + +In the next screen your certificate creation is verified, and you can click a +button to view it, or click **Done** to go to the next step. + +.. figure:: ../images/mac-6.png + +You also get a corresponding public and private key pair, which you can see in +the **Login > Keys** section. + +.. figure:: ../images/mac-7.png + +Now login to the **Member Center** on ``_. +Click **Certificates, Identifiers, & Profiles**. + +.. figure:: ../images/cert-1.png + :scale: 80% + +Then click **iOS Apps > Certificates**. + +.. figure:: ../images/cert-2.png + +Next, click the add button (the little plus sign) in the top right corner of +the +**iOS Certificate** page. + +.. figure:: ../images/cert-3.png + :scale: 80% + +Under "What type of certificate do you need?" check **App Store and Ad Hoc**, +then click the **Continue** button at the bottom of the page. + +.. figure:: ../images/cert-4.png + :scale: 80% + +The next screen, **About Creating a Certificate Signing Request (CSR)** has +information about creating a CSR in Keychain Access. You already did this, so +go to the next screen. "Add iOS Certificate", to upload the CSR you already +created, then click the **Generate** button. + +.. figure:: ../images/cert-5.png + :scale: 80% + +Your new certificate is named **ios_distribution.cer**. Download it to your Mac; +then find it and double-click on it to install it properly in Keychain. + +.. figure:: ../images/cert-6.png + :scale: 80% + +After installing it, you should see it stored with its corresponding private +key in Keychain. + +.. figure:: ../images/cert-7.png + :scale: 80% + +Remember to make backups of your keys and certificates and keep them in a safe +place. diff --git a/admin_manual/enterprise_ios_app/publishing_ios_app_3.rst b/admin_manual/enterprise_ios_app/publishing_ios_app_3.rst new file mode 100644 index 000000000..8f4ed066c --- /dev/null +++ b/admin_manual/enterprise_ios_app/publishing_ios_app_3.rst @@ -0,0 +1,206 @@ +================= +Create Bundle IDs +================= + +The next step is to create three **Bundle IDs**. These are unique identifiers +for your branded iOS app. You must also create an **App Group** and place your +three **Bundle IDs** in your **App Group**. You will need your base **Bundle +ID** and **App Group** when you build your app with the ownBrander app on +`Customer.owncloud.com `_. + +Create App ID +------------- + +Now you must create your App ID. Go to **Identifiers > App IDs** and click the +plus button (top right) to open the "Register iOS App ID" screen. Fill in your +**App ID Description**, which is anything you want, so make it helpful and +descriptive. The **App ID Prefix** is your Apple Developer Team ID, and is +automatically entered for you. + +.. figure:: ../images/cert-8.png + :scale: 70% + +Scroll down to the **App ID Suffix** section and create your **Bundle ID**. +Your +**Bundle ID** is the unique identifier for your app. Make a note of it because +you +will need it as you continue through this process. The format for your **Bundle +ID** +is reverse-domain, e.g. *com.MyCompany.MyProductName*. + +.. figure:: ../images/cert-9.png + :scale: 80% + +The next section, **App Services**, is where you select the services you want +enabled in your app. You can edit this anytime after you +finish creating your **App ID**. Make your selections and then click the +**Continue** button at the bottom. + +.. figure:: ../images/cert-10.png + :scale: 80% + +Now you can confirm all of your information. If everything is correct click +**Submit**; if you need to make changes use the **Back** button. + +.. figure:: ../images/cert-11.png + :scale: 80% + +When you are finished you will see a confirmation. + +.. figure:: ../images/cert-12.png + :scale: 80% + +Create App Group +---------------- + +The next step is to create an App Group and put your App ID in it. Go to +**Identifiers > App Groups** and click the plus button (top right). + +.. figure:: ../images/Selection_015.png + :scale: 80% + +Create a description for your app group, and a unique identifier in the format +*groups.com.MyCompany.MyAppGroup*. Then click **Continue**. + +.. figure:: ../images/cert-14.png + :scale: 80% + +Review the confirmation screen, and if everything looks correct click the +**Register** button. + +.. figure:: ../images/cert-15.png + :scale: 80% + +You'll see a final confirmation screen; click **Done**. + +.. figure:: ../images/cert-16.png + :scale: 80% + +When you click on **App Groups** you will see your new app group. + +.. figure:: ../images/Selection_019.png + :scale: 80% + +Now go back to **Identifiers > App IDs** and click on your App ID. This opens a +screen that displays all your app information. Click the **Edit** button at the +bottom. + +.. figure:: ../images/cert-18.png + :scale: 80% + +This opens the edit screen; check **App Groups**. + +.. figure:: ../images/cert-19.png + :scale: 80% + +When you check **App Groups** you'll get a popup warning you "If you wish +to enable App Groups for any existing provisioning profiles associated with +this +App ID, you must also regenerate them." If you are following this guide for the +first time, then you have not yet created provisioning profiles, so click +**OK**. + +.. figure:: ../images/cert-20.png + :scale: 80% + +When you click **OK** the popup is dismissed, and you must click the **Edit** +button. + +.. figure:: ../images/cert-21.png + :scale: 80% + +Select your app and click **Continue** + +.. figure:: ../images/Selection_026.png + :scale: 80% + +Review the confirmation screen, and then click **Assign**. + +.. figure:: ../images/cert-23.png + :scale: 80% + +You will see the message "You have successfully updated the App Groups +associations with your App ID." Click **done**. If you go to **Identifiers > +App IDs** and click on your app, you'll see an additional confirmation that you +successfully assigned your app to your app group. + +.. figure:: ../images/cert-24.png + :scale: 80% + +Create a DocumentProvider Bundle ID +----------------------------------- + +Now you must return to **Identifiers > App IDs** and click the plus button to +create a DocumentProvider Bundle ID. Follow the same naming conventions as for +your App ID. + +.. figure:: ../images/cert-25.png + :scale: 80% + +Confirm your new App ID and click **Submit**. + +.. figure:: ../images/cert-26.png + :scale: 80% + +You will see one more confirmation; click **Done**. Now you need to add it +to your App Group. Go to **Identifiers > App IDs** and click on your new +DocumentProvider Bundle ID to open its configuration window, and then click the +**Edit** button. + +.. figure:: ../images/Selection_035.png + :scale: 80% + +Select **App Groups** and click the **Edit** button. + +.. figure:: ../images/cert-28.png + :scale: 80% + +Select your group and click **Continue**. + +.. figure:: ../images/Selection_037.png + :scale: 80% + +On the confirmation screen click **Assign**, and you'll see the message "You +have successfully updated the App Groups associations with your App ID." + +Create a DocumentProviderFileProvider Bundle ID +----------------------------------------------- + +One more time, go to **Identifiers > App IDs** and click the plus button to +create a DocumentProviderFileProvider Bundle ID. Follow the same naming +conventions as for your App ID, then click **Continue**. + +.. figure:: ../images/cert-30.png + :scale: 80% + +Confirm your new App ID and click **Submit**. + +.. figure:: ../images/cert-31.png + :scale: 80% + +You will see one more confirmation; click **Done**. Now you need to add it to +your App Group. Go to **Identifiers > App IDs** and click on your new +DocumentProviderFileProvider Bundle ID to open its configuration window, and +then click the **Edit** button. + +.. figure:: ../images/cert-32.png + :scale: 80% + +Select **App Groups** and click the **Edit** button. + +.. figure:: ../images/cert-33.png + :scale: 80% + +Select your group and click **Continue**. + +.. figure:: ../images/cert-34.png + :scale: 80% + +On the confirmation screen click **Assign**, and you'll see the message "You +have successfully updated the App Groups associations with your App ID." + +Now you should have three new App IDs, and all three of them should belong to +your App Group. (You can verify group membership by going to the edit +screen for each App ID and looking at the **iOS App ID Settings**.) + +.. figure:: ../images/cert-37.png diff --git a/admin_manual/enterprise_ios_app/publishing_ios_app_4.rst b/admin_manual/enterprise_ios_app/publishing_ios_app_4.rst new file mode 100644 index 000000000..56d13996a --- /dev/null +++ b/admin_manual/enterprise_ios_app/publishing_ios_app_4.rst @@ -0,0 +1,40 @@ +========================== +Setting up Testing Devices +========================== + +The $99 Apple Developer account allows you to test your iOS apps on a maximum of +100 devices, and you must register the UDID of each device in your Apple +developer account. + +First you must find the UDIDs of your test devices. The easiest way is to +connect to your iTunes account. Then connect your iOS device to your Mac +computer. Your device will appear on the left sidebar in iTunes. Click on this +to display your device information. Then click on the serial number, and you +will your UDID. + +.. figure:: ../images/itunes-udid.png + :scale: 80% + +Return to your account on `Developer.apple.com +`_, go to **IOS Apps > +Devices > All**, and click the plus button on the top right to register a new +device. You can make the name anything you want, and the UDID must be the UDID +copied from iTunes. + +.. figure:: ../images/itunes-udid-3.png + :scale: 80% + +If you have a large number of devices to register, you may enter them in a text +file in this format, and then upload the file:: + + Device ID Device Name + A123456789012345678901234567890123456789 NAME1 + B123456789012345678901234567890123456789 NAME2 + +Click ``Download sample files`` to see examples of plain text and markup files. + +.. figure:: ../images/itunes-udid-4.png + :scale: 80% + +When you are finished entering your device IDs click the **Continue** button. +Verify, and then click **Done**. diff --git a/admin_manual/enterprise_ios_app/publishing_ios_app_5.rst b/admin_manual/enterprise_ios_app/publishing_ios_app_5.rst new file mode 100644 index 000000000..6527b5da6 --- /dev/null +++ b/admin_manual/enterprise_ios_app/publishing_ios_app_5.rst @@ -0,0 +1,133 @@ +============================ +Create Provisioning Profiles +============================ + +The next phase is to create three provisioning profiles. These are the profiles +that you will email to branding@owncloud.com after building your branded app +with the ownBrander app on +`Customer.owncloud.com `_. + +First Provisioning Profile +-------------------------- + +Go to **Provisioning Profiles > All**, then click the plus button (top right) +to open the *Add iOS Provisioning Profile* screen. Select *Ad Hoc* and click +**Continue**. + +.. figure:: ../images/cert-35.png + :scale: 80% + +On the **Select App ID** screen select the first of the three App IDs that you +created and click **Continue**. (The first one has the shortest name, if you +followed the naming conventions in this manual.) + +.. figure:: ../images/cert-36.png + :scale: 80% + +Select the certificate that you created at the beginning of this process and +click **Continue**. + +.. figure:: ../images/cert-38.png + :scale: 80% + +Select the devices that you want to install and test your app on, then click +**Continue**. + +.. figure:: ../images/cert-39.png + :scale: 80% + +Name your provisioning profile with a descriptive **Profile Name**, which is +your **bundleID**, and click **Generate**. + +.. figure:: ../images/cert-40.png + :scale: 80% + +When it has generated, download your new profile to your Mac computer. + +.. figure:: ../images/cert-50.png + :scale: 80% + +Find it on your Mac (usually the Download folder) and double-click to install +it in Xcode. + +.. figure:: ../images/cert-41.png + +Second Provisioning Profile +--------------------------- + +Return to the "Your provision profile is ready" screen, scroll to the bottom +and click **Add Another**. On the following screen select **Ad Hoc** and click +**Continue**. + +.. figure:: ../images/cert-35.png + :scale: 80% + +This time select the Select the **.DocumentProvider** app ID and click +**Continue**. + +.. figure:: ../images/cert-42.png + +Select the certificate that you created at the beginning of this process and +click **Continue**. + +.. figure:: ../images/cert-43.png + :scale: 80% + +Select the devices that you want to install and test your app on, then click +**Continue**. These must be the same devices you selected for the first +provisioning profile, and they will be selected by default. + +.. figure:: ../images/cert-39.png + :scale: 80% + +Give this provisioning profile the same **bundleID** as your first profile +plus **.DocumentProvider** and click **Generate**. + +.. figure:: ../images/cert-44.png + :scale: 80% + +Just like the first provisioning profile, download it to your Mac computer, and +then double-click to install it in Xcode. + +Third Provisioning Profile +-------------------------- + +Return to the "Your provision profile is ready" screen, scroll to the bottom +and click **Add Another**. On the following screen select **Ad Hoc** and click +**Continue**. + +.. figure:: ../images/cert-35.png + :scale: 80% + +This time select the Select the **.DocumentProviderFileProvider** app ID and +click **Continue**. + +.. figure:: ../images/cert-46.png + +Select the certificate that you created at the beginning of this process and +click **Continue**. + +.. figure:: ../images/cert-43.png + :scale: 80% + +Give this provisioning profile the same **bundleID** as your first profile +plus **.DocumentProviderFileProvider** and click **Generate**. There is a +50-character limit, but don't worry about counting characters because it will +be automatically truncated if you go over. + +.. figure:: ../images/cert-47.png + :scale: 80% + +Download it to your Mac computer, and then double-click to install it in Xcode. +You should now see all of your provisioning profiles in your Download folder: + +.. figure:: ../images/cert-51.png + :scale: 80% + +And listed in your "iOS Provisioning Profiles". + +.. figure:: ../images/cert-52.png + :scale: 80% + +You have one more certificate to create, and that is your P12 certificate. + \ No newline at end of file diff --git a/admin_manual/images/Selection_015.png b/admin_manual/images/Selection_015.png index b8fe628da..921aa73c0 100644 Binary files a/admin_manual/images/Selection_015.png and b/admin_manual/images/Selection_015.png differ diff --git a/admin_manual/images/Selection_019.png b/admin_manual/images/Selection_019.png index dc42a9634..d6d6f759a 100644 Binary files a/admin_manual/images/Selection_019.png and b/admin_manual/images/Selection_019.png differ diff --git a/admin_manual/images/cert-3.png b/admin_manual/images/cert-3.png index d4241335b..75f3789fd 100644 Binary files a/admin_manual/images/cert-3.png and b/admin_manual/images/cert-3.png differ diff --git a/admin_manual/images/cert-5.png b/admin_manual/images/cert-5.png index 057bee9b6..dd9852bf1 100644 Binary files a/admin_manual/images/cert-5.png and b/admin_manual/images/cert-5.png differ diff --git a/admin_manual/images/cert-6.png b/admin_manual/images/cert-6.png index 2162c4928..a3cdf2446 100644 Binary files a/admin_manual/images/cert-6.png and b/admin_manual/images/cert-6.png differ diff --git a/admin_manual/images/cert-7.png b/admin_manual/images/cert-7.png index d00b320d1..4adf33148 100644 Binary files a/admin_manual/images/cert-7.png and b/admin_manual/images/cert-7.png differ