Developing for the App Store. (Legacy)

Size: px
Start display at page:

Download "Developing for the App Store. (Legacy)"

Transcription

1 Developing for the App Store (Legacy)

2 Contents About the Application Development Process 5 At a Glance 5 Developing for Apple s Platforms Is a Mix of Administrative and Coding Tasks 5 Apps Published on the App Store Must Be Approved by Apple 6 Apps Published on the App Store Must Be Cryptographically Signed 6 The Majority of Your Coding Time Is Spent in Xcode 6 Administrative Tasks are Performed with Several Resources 7 Many Behaviors of an App Are Defined by Data, Not Code 7 How to Use This Document 8 Building an App for the App Store 9 Prepare the Development Team 9 Configure the Project 9 Develop the App 10 Publish the App in the App Store 10 Preparing the Development Team 11 Enrolling in an Apple Developer Program 11 Adding Members to a Team 12 Understanding Membership Privilege Levels 12 Organizing the Team in itunes Connect 14 Organizing the Development Team 15 Creating Your Team s Signing Certificates 18 An Example: Signing an ios App During Development 18 Setting Up a Developer for Code Signing 21 To Learn More 22 Creating a Project 23 Configuring an Xcode Project for an App 23 Creating Provisioning Profiles for Your App 24 App Concepts 24 A Bundle ID Uniquely Identifies an App 25 App IDs Are Used to Match Apps to Services and Development Teams 26 Provisioning Profiles Authorize an App to Launch 27 2

3 Contents Distributing an App Requires a Distribution Profile 29 To Learn More 29 Developing an App 30 Designing an App 31 Use the Model-View-Controller Pattern 31 Use Data-Driven Designs 33 Writing Code 34 Treat Warnings as Errors 34 Use the Analyze Action in Xcode to Find Less Obvious Coding Errors 34 Implement Unit Tests and User Interface Tests 35 Polishing and Testing an App 35 Test on Various Devices 36 Use the Archive Action to Create Test Versions of an App 36 Use Instruments to Guide Your Efforts 36 Ensure That Your App Meets the Approval Guidelines 36 Creating Great Apps 37 Design User-Focused Apps 37 Develop a Security Model 37 Ensure Your App Runs Reliably 38 Tune Your App s Performance 38 To Learn More 39 Best Practices in Coding and App Design 40 Publishing an App in the App Store 41 Configuring App Data in itunes Connect 41 Submitting the App for Approval 42 Shipping an App 42 Responding to User Issues 43 To Learn More 43 Document Revision History 45 Glossary 46 3

4 Figures and Tables Building an App for the App Store 9 Figure 1-1 Development process overview 9 Preparing the Development Team 11 Figure 2-1 Steps to create a development team 11 Figure 2-2 An individual is the team agent 16 Figure 2-3 A small development team 16 Figure 2-4 A large development team 17 Figure 2-5 Overview of the ios development provisioning process 19 Figure 2-6 The process for approving a device and getting a signing certificate 21 Table 2-1 Team roles 13 Table 2-2 Privileges assigned to each membership level 13 Table 2-3 itunes Connect roles and responsibilities 14 Table 2-4 Abbreviated list of itunes Connect modules, including availability by role 15 Creating a Project 23 Figure 3-1 Starting a new project 23 Figure 3-2 Common uses for an app s bundle ID 25 Figure 3-3 Explicit app ID 26 Figure 3-4 Wildcard app IDs 27 Figure 3-5 Examples of wildcard matching 27 Figure 3-6 Overview of the development provisioning process 28 Developing an App 30 Figure 4-1 The development process 30 Figure 4-2 The development process is an iterative process 30 Figure 4-3 Distribution between development tasks varies over time 31 Figure 4-4 Model-View-Controller pattern 32 4

5 About the Application Development Process Important This document has been replaced by App Distribution Guide. App Distribution Guide offers step-by-step instructions for configuring, testing, and submitting your app for approval. This new document describes how to use Xcode and other Apple developer tools to create and configure your project, request signing certificates, create provisioning profiles, configure special App Store technologies, test your app on devices, create your app record in itunes Connect, and submit your app for approval to Apple. If you have a company Apple Developer Program membership, you ll also learn how to manage your team s certificates and provisioning assets. There has never been a better time to create apps for ios and OS X. Apple provides tools that make development easy and straightforward. This document presents a high-level view of the stages in developing an app, from creating a team to responding to feedback from users. Develop Test Distribute At a Glance This document walks you through the process of developing apps for the App Store. By the time you finish reading this document, you should be ready to organize your development team and devise a plan to design, code, and publish an app on the App Store. Developing for Apple s Platforms Is a Mix of Administrative and Coding Tasks Most of the time spent developing your app is spent on coding tasks, but throughout the development process, there are also a number of administrative tasks you must perform. This mix of tasks can be handled by a single developer, or the work can be divided between different people on a development team. Most administrative tasks appear at the start and the end of a development project. For example, when you develop your first app, one person must sign an agreement with Apple to become an Apple developer. This person, known as the team agent, bears the legal responsibility for the team, adds people to the team and defines each person s responsibilities and privileges. 5

6 About the Application Development Process At a Glance Chapters: Building an App for the App Store (page 9) Apps Published on the App Store Must Be Approved by Apple The App Store is a curated store and restricts what apps may be sold on the App Store. Apple takes these precautions to provide the best experience possible for our users. For example, apps that are sold on the App Store must not crash or exhibit other major bugs. A major part of the publishing process is to submit your app to Apple for approval. Relevant Chapters: Publishing an App in the App Store (page 41) Apps Published on the App Store Must Be Cryptographically Signed Code signing is used to provide a layer of security to users, your development team, and Apple. Signing an app makes it resistant to malicious tampering; if an attacker modifies the app, it can no longer be executed because the code signing has been broken. Code signing also provides a clear chain of responsibility if malicious code is included in a signed app. Although both ios and OS X require code signing to publish an app on the App Store, ios takes this security a step further; no apps can execute on an ios device, even during development, unless they are signed. When you organize a development team, the team agent (or a person that task is delegated to) decides which members of your team are permitted to sign your apps and creates the necessary code signing resources for those developers. Relevant Chapters: Preparing the Development Team (page 11), Creating a Project (page 23) The Majority of Your Coding Time Is Spent in Xcode Xcode integrates coding, debugging, and user interface design in a single development environment. You use Xcode throughout the development process, even using it when you are ready to submit an app for approval. When you install Xcode, other apps are installed with Xcode that you can use to improve the quality of your apps. For example, the Instruments application provides many tools to record and analyze data about how an app acts while running. Using the data, you can formulate plans to ensure that your apps run correctly and efficiently. 6

7 About the Application Development Process At a Glance Relevant Chapters: Creating a Project (page 23), Developing an App (page 30) Administrative Tasks are Performed with Several Resources When you manage a team, you use various resources to perform tasks. Here are the most frequently used resources: The Member Center website is primarily used by the team agent to invite members to join the development team and to configure their privilege levels. The ios Provisioning Portal (or for OS X development, the Developer Certificate Utility app) is used to create the code signing resources for your team. A team admin (either the team agent or a member of the team this task has been delegated to) uses these tools to provide the necessary code signing resources to members of your team. The itunes Connect website is used to manage information related to the business side of your app development, including sales and financial information, information displayed in the App Store for your app, and information stored on Apple s servers for your apps. As with the Member Center, the team agent decides how much access each person on your team is permitted on itunes Connect. Relevant Chapters: Preparing the Development Team (page 11), Creating a Project (page 23), Publishing an App in the App Store (page 41) Many Behaviors of an App Are Defined by Data, Not Code In addition to the code you write, data you provide is used to define how the store displays your app as well as how your app executes. The data can even affect what the operating system displays about your app when it isn t running. Some data is contained in files stored alongside an executable; this combination of data and files is referred to as an application bundle. Other data is stored on Apple servers for example, information displayed for your app on the App Store is primarily stored on itunes Connect. Regardless of where the data is stored,keep in mind that an app is more than a simple executable; it exists in an ecosystem of code, data, and services. 7

8 About the Application Development Process How to Use This Document Relevant Chapters: Creating a Project (page 23), Developing an App (page 30), Publishing an App in the App Store (page 41) How to Use This Document Regardless of the role you play on a development team, you should read this document to get a better understanding of steps the team must follow to develop an app for the App Store. If you are a programmer, some concepts described in this document will make more sense to you if you finish one of the following app tutorials before reading this document: ios: Start Developing ios Apps Today (Retired) OS X: Start Developing Mac Apps Today 8

9 Building an App for the App Store Here are the steps to create and ship an app for the App Store. Although these steps are presented in a specific, logical order, occasionally the needs of your app or your development team require you to perform these steps in a different order or even backtrack to a step you have already performed. For example, any time you add someone to your team, you have to go back and perform some administration tasks. Figure 1-1 shows a high-level overview of the development process; each of these steps is primarily an administrative step or a coding step. Administrative steps are usually handled by the team agent or someone the team agent has delegated some authority to. Coding tasks are primarily handled by programmers on the team. Figure 1-1 Development process overview Administrative Coding Administrative Prepare the development team Create a project Develop the app Publish the app in the App Store The remainder of this chapter explains each of these steps. Later chapters go into more detail about the steps and the kinds of tasks that must be performed to complete them. Prepare the Development Team One person signs up as a team agent and in the process creates a new development team. The team agent can invite other people to join the team and set their access privileges. Finally, the team sets up code signing certificates and other resources necessary for developers on the team to sign apps. Configure the Project The next step is to create a new Xcode project for the app. You choose an Xcode template that most closely corresponds to the kind of app you want to make and customize the initial settings for the app. You also create other items required to sign and publish your app. 9

10 Building an App for the App Store Develop the App Depending on the design of your app and the services you plan to use in it, you may find yourself performing other kinds of app configuration in this step. Some Apple technologies require a combination of code you write and data you configure to operate properly. For example, Apple Push Notification Service requires you to create special certificates used to authenticate your server to the push notification service. If you know up front that you plan to use push notification in your app, you may also create these push notification certificates during this step. Develop the App This step is what most people think of when they talk about developing an app: Designing user interfaces and functionality, implementing those ideas in code, and testing the resulting app to ensure it works correctly. While a lot of this work is programming, this step also includes other important tasks, such as creating data assets used by the app. These assets, including but not limited to icons, sound files, and artwork, are used directly by the app or by the operating system on the app s behalf. Many assets need to be localized into other languages or locales; an important part of designing your app is planning for the assets you need to create and knowing which assets should be localized. You continue to polish and refine your app until it is ready to ship. Publish the App in the App Store Publishing an app on the App Store requires a few administrative tasks. Your team provides the information displayed for the app by the App Store. You also submit the app to Apple for approval. Once the app is approved, you set the date the app should appear for sale in the App Store. Then, you use Apple s tools to monitor the sales of the app, customer reviews, and crash reports. These data can help you prepare bug fixes and help you decide on what improvements to make in a major revision to the app. When you have bug fix or a major revision ready to ship, you send it for approval and set a publication date, just as you did for the initial release. 10

11 Preparing the Development Team Most people think of a development team as a group of programmers, designers, and artists who work together to develop an app. That explanation is also true when you develop for ios or OS X, but it isn t complete. A development team takes on the additional meaning of a group created and managed on the Apple Developer website. Some additional tasks during the development process are performed using this development team you ve created. If you create a team with yourself as the only member, you take on all of these tasks. If you are part of a larger team, the work and the responsibilities may be divided between the group. Each person on the development team has a unique Apple ID, an account used by the developer programs to authenticate that person. Further, access privileges can be configured separately for each person. This flexibility allows your team to restrict critical tasks, such as publishing the app on the App Store, to a small subset of its participants. This chapter starts by describing the various roles that members of a team may fill. It then provides guidance about how you may want to go about organizing the team. Finally, it describes work the team must do to allow people of the team to sign apps. Figure 2-1 shows all of the required steps. Figure 2-1 Steps to create a development team Administrative Enroll in an Apple developer program Add members to the team Organize the team in itunes Connect Create the team s signing certificates Enrolling in an Apple Developer Program To start, one person must enroll in either the ios or OS X developer program; this person becomes the team agent for the team. The team agent may enroll in both programs if your team intends to develop apps for both operating systems. During this step, the team agent signs the legal agreements required to become an Apple developer and prepares the financial paperwork so that the team can be paid for purchases from the App Store. 11

12 Preparing the Development Team Adding Members to a Team The team agent is special; he or she has unrestricted access to the team and is legally responsible for the team. The team agent also performs most of the tasks to organize the team. If desired, after others have joined the team, the team agent can delegate some of this authority to other members of the team, allowing those others to perform these tasks instead. Important: Because the team agent is the person with legal responsibility for the team, the team may not demote the team agent using the tools on the website, nor can the team agent s privileges be restricted. To change the person acting as the team agent, you must contact Apple directly. The team agent might need to sign updated or new licensing agreements, particularly when the team wants to incorporate specific technologies into an app. For example, an app that uses the iad service requires your team agent to sign a separate agreement. Adding Members to a Team After the team agent has joined a developer program, he or she adds other people to the team and sets their privileges. If you are the team agent and the sole developer on your team, no additional configuration is needed, because the team agent always has access to all account features. However, you should continue to read this section to understand the kinds of tasks you may need to perform throughout the rest of the development process. To add a new person to the team, the team agent sends an invitation to the person; part of sending an invitation includes setting that person s privileges on the team. When he or she accepts the invitation, that person is automatically added to the team. Understanding Membership Privilege Levels A person s membership level on the team defines the level of access he or she has to the Apple developer webpages and the team information stored there. This privilege level extends to the kinds of tasks that developer is allowed to perform on behalf of the team. For example, only certain members of the team are allowed to publish apps on the App Store. By giving you control over these task privileges, Apple makes it easier for you to maintain good security practices for the team. If the team has joined multiple developer programs, when you configure a person s privileges, you set a separate privilege level for each program. You can also choose to not give someone access to a program. Table 2-1 lists the roles a team participant can play and provides a basic description of each. Each level of access includes all the capabilities of the levels below it. 12

13 Preparing the Development Team Adding Members to a Team Table 2-1 Role Team agent Team roles Description A team agent is legally responsible for the team and acts as the primary contact with Apple. The team agent can change the access level of any other member of the team. Team admin Team member A team admin can set the privilege levels of other participants, although a team admin cannot demote the team agent. Team admins manage all assets used to sign your apps, either during development or when your team is ready to distribute an app. Team admins are the only people on a team that can sign apps for distribution on nondevelopment devices. Team admins also approve signing certificate requests made by team members. A team member gains access to prerelease content delivered by Apple on that program s portal. A team member can also sign apps during development, and but only after he or she makes a request for a development signing certificate and has that request approved by a team admin. Table 2-2 drills deeper into this list of privileges granted to members of your team. Although this document hasn t explained all these privileges, most will be clear to you by the time you finish reading it. Table 2-2 Privileges assigned to each membership level Privilege Team agent Team admin Team member Legal responsibility for the team Primary contact with Apple Invite team admins and team members Approve a request for a development signing certificate Add devices for development and user testing Create app IDs Request a distribution signing certificate from Apple Create development and distribution provisioning profiles 13

14 Preparing the Development Team Organizing the Team in itunes Connect Privilege Team agent Team admin Team member Enable app IDs to use Apple Push Notification or In-App Purchase Create SSL certificates for the Apple Push Notification Service Request a development signing certificate Download development provisioning profiles View prerelease website content Organizing the Team in itunes Connect The privileges set in the previous section primarily pertain to the development process: They define who is allowed to sign apps, who is allowed to create signing certificates, and so on. However, the team agent also manages access privileges to the itunes Connect website. For example, changing the price of an app is a task you likely want to limit to a small number of people on your team. Access to the itunes Connect website is configured separately and is designed to be more fine-grained than the access you set in Member Center. On itunes Connect, each person on the team can be assigned one or more roles; each role has different privileges. Table 2-3 describes the roles at a high level. Table 2-3 Role Legal Admin Finance Sales itunes Connect roles and responsibilities Responsibilities The legal role is automatically assigned to the team agent, and only the team agent is permitted to have this access. The legal role allows the team agent to sign legal contracts and other agreements. The admin role grants access to all tasks in itunes Connect except for those assigned to the legal role. A team agent is always assigned the admin role, and this access cannot be revoked without changing which person on the team acts as the team agent. An admin can assign itunes Connect roles to other people on the team. The finance role grants access to financial reports and sales information. The finance role also authorizes the person to view contract, tax, and banking information. The sales role grants access only to sales data. 14

15 Preparing the Development Team Organizing the Development Team Role Technical Responsibilities The technical role grants the ability to edit the app information stored in itunes Connect and to create test accounts needed to test In-App Purchase support in an app. Table 2-4 lists the most common modules you need to access in itunes Connect, along with the roles that are allowed to access each module. The legal role is not shown, because only the team agent has those rights. All participants have the ability to edit their own personal details stored in their accounts in itunes Connect. Table 2-4 Abbreviated list of itunes Connect modules, including availability by role Responsibility Admin Finance Sales Technical Manage Users Manage Your Applications Manage Test Users Sales and Trends Contracts, Tax, and Banking Payments and Financial Reports Organizing the Development Team Now that you understand the roles people can assume in Member Center and itunes Connect, you should consider how you want to organize the team. Organizing the team requires more than setting privileges described above. The size of the team affects how you organize it and its assets. 15

16 Preparing the Development Team Organizing the Development Team The smallest team is a single person you. You act as the team agent and have full privileges to perform any task. The disadvantage of a one-person team is that you have to do all the work. You need to set up the assets needed to sign and publish an app, configure all the information in itunes Connect, develop an app, and market it. Figure 2-2 An individual is the team agent Agent Admin Members A more common configuration is a small developer team. On a small team, the team agent is also a programmer, but defers some of the administration overhead to another person on the team. The team agent handles all of the financial and sales operations for the team, while the team admin ensures that the developers on the team have what they need to get the job done. Figure 2-3 A small development team Source code server Agent Admin Members 16

17 Preparing the Development Team Organizing the Development Team If your team is large, you can divide the tasks further. Some people on the team might not be programmers, including the team admin. The sales and financial roles might be filled by people with a business background. You might even have in-house testers who are not also programmers. The task of creating and shipping apps could be delegated to one or more dedicated team admins. You might even partition the work further and divide the team between ios and OS X development. Figure 2-4 A large development team Build bot Agent Admins Members Source code server Finance Sales Testers As the team grows, the need for coordination between the different people on the team increases. In particular, the cost of development errors increases when you have more programmers on the team. For example, if you are the sole member of the team, you can store all your work on a single computer and do all of the work there. Xcode even allows you to create a local source code repository to store your code. But what happens when the team grows in size? When the team grows to a moderate size, you need more infrastructure. You want a separate computer to act as a remote source code repository; members of the team pull down the code from the remote repository to their computers, make changes, and send those changes back to the server. But when multiple developers are syncing code, the chance of an error being checked into the code increases. To minimize problems, you usually want multiple branches of development, including stable branches that hold the code you use to build your shipping app and experimental or developmental branches used for new development. These strategies require a deeper understanding of the underlying source code repository and require you to define specific policies that describe how code gets integrated between the different branches you maintain. 17

18 Preparing the Development Team Creating Your Team s Signing Certificates If your team grows very large, checking erroneous code into developmental branches could impair your team s productivity. By the time you discover an error, it might already have been synced to other people s computers. After you correct the error, propagating the fixes to everyone on the team still takes time. The frequency of such incidents and the time lost for each incident increase as the size of the team increases; these losses, when aggregated, cripple your team s effectiveness. To avoid this lost productivity, you should add additional infrastructure for code management. For example, you might adopt a process of continuous integration by creating a dedicated build machine (known as a build bot) that automatically checks out each change and rebuilds your app. By building new changes as they arrive, you discover errors earlier; you might even configure the server to back out such changes before others on the team pull down the offending code. If your project includes unit tests or automated user tests, the build computer can also run those tests to verify that your source code still passes the tests. This process, known as smoke testing, increases the team s confidence that code stored in the development branches builds and works properly. As the team grows larger, you want to automate tasks that are repeatable, predictable, and costly to perform by hand. By automating common tasks, you reduce the burden on the team and allow it to focus on designing and implementing code. Creating Your Team s Signing Certificates Apps distributed on the App Store must be cryptographically signed. You may also need to sign the app during development. On OS X, an app must be signed during development if it uses icloud or application sandboxing. On ios, all apps must be signed during development. Regardless of which platform you are developing for, everyone on the team should understand the code signing process. This section describes the assets that are needed to sign an app and authorize it to run on a device, and then explains how people on the team acquire the assets they need to sign apps. Some of these assets should be created now as you organize your team; the rest are created each time you start a new project. An Example: Signing an ios App During Development Figure 2-5 shows everything that is needed to build and sign an ios app during development. Signing apps during OS X development or signing to distribute an app on either platform follows similar procedures. For now, focus on this example. While you are developing an ios app, it can only be installed on ios devices 18

19 Preparing the Development Team Creating Your Team s Signing Certificates specifically marked for development. To run an app on such a development device, you install a signed version of the app and a development provisioning profile that authorizes the signed app to be launched. Without a profile that authorizes it to launch, ios prevents the app from launching. Figure 2-5 Overview of the ios development provisioning process Team member Team admin Xcode project Private key Development signing certificate Public key List of authorized signing certificates App ID List of authorized device IDs Intermediate signing certificates Development Provisioning Profile List of certificates App ID List of device IDs Build and sign Signed application Development device Creating development provisioning profiles is described in detail in Creating a Project (page 23); for now, understand that a development provisioning profile is a signed file whose contents define the scope of the profile: The development profile authorizes a specific set of apps to run. The development profile authorizes a specific list of devices to run those apps. The development profile authorizes a specific list of development certificates to sign those apps. 19

20 Preparing the Development Team Creating Your Team s Signing Certificates In addition to being installed on the development device, the profile must be installed on your development computer also. The profile authorizes the copy of Xcode to sign the app. Xcode only signs an app and installs it on the device if the profile authorizes the signing certificate and the app being signed. Logically, this makes sense; if a profile that authorizes the app to launch is not available, such an signed app would serve no purpose. Next, take a close look at the left side of Figure 2-5. To sign code during development, you need the following items installed in the keychain on your development system: A private key. A development signing certificate (authorized by a team admin). This signing certificate includes the public key associated with the private key. An intermediate signing certificate (provided by Apple). This certificate acts as an intermediary between your development signing certificate and the signing authority. The combination of a signing certificate and the corresponding private key is called a code signing identity. When you build an ios app, Xcode compiles it, signs it using your code signing identify, and installs it on the device. If a provisioning profile compatible with the signed app is also installed on the device, you can launch and debug the app. 20

21 Preparing the Development Team Creating Your Team s Signing Certificates Setting Up a Developer for Code Signing Figure 2-6 shows the process for setting up a new developer on the team. The full details of this process are spelled out in documents listed later in this chapter; see To Learn More (page 22). For now, you only need to understand this process at a high level. Team members make requests; team admins authorize or deny these requests. There are two separate pieces that need to be authorized: adding a development device to the team s devices and creating the code signing identity used to sign apps during development. Figure 2-6 The process for approving a device and getting a signing certificate Team member Team admin Sends the device ID to a team admin Creates a public key / private key pair Adds the device ID to the list of devices Sends a request for a signing certificate Approves the signing certificate request Time Installs both the signing certificate and the intermediate certificate To add a device to the team, you send the unique device ID (UDID) for the device to a team admin; this process happens outside of any tools provided by Apple. For example, you might send an to the team admin with the device s device ID. The team admin adds the device to the team s devices. Typically, the team admin also adds this device to any development provisioning profiles associated with the team, although that is not strictly required. For example, if your team wants to limit an app to specific devices, then you might choose to add the device only to a subset of the team s profiles. To get a signing certificate, a team member uses Xcode to request a signing certificate. Xcode automatically creates a new public and private key and requests that a new development signing certificate be created for the team member. After a team admin receives and approves the certificate request, the team member can use Xcode to automatically install the required pieces into the keychain. Although setup is described here as a single process, you do not need to perform both steps for every member of your team. For example, you might want internal testers to be associated with the development team on the Apple Developer website but not allow those testers to build and sign your app. In this case, the team admin might include a tester s device in the team s devices but not allow the tester to create a code signing identity. Similarly, an external tester s device must be included in the team s device list in order for it to be authorized to run an app. 21

22 Preparing the Development Team To Learn More While the above discussion was about development signing certificates, when you organize your team, the team should also request a distribution signing certificate. A distribution signing certificate is required if you intend to distribute apps to nondevelopment devices. Unlike development signing certificates, where each team member has a separate code signing identity, a team has a only one code signing identity used to sign apps for distribution. The procedure for creating a distribution certificate is similar to the workflow described above, but the request for a distribution signing certificate is made by a team admin using a new public/private key pair and Apple approves the request. After the certificate is approved by Apple, only a team admin can download the resulting certificate. Important: All developers on the team should keep a secure backup of their private key. If the key is lost, that team member can no longer sign code without creating a new identity. Worse, if the key is stolen, another person may be able to impersonate that developer. Protecting the private key associated with the team s distribution signing certificate is absolutely critical ; in the wrong hands, someone might be able to impersonate your team, and upload malicious software for app approval. Private keys are stored only in the keychain and thus cannot be retrieved if lost. If a developer on your team needs to set up another development computer, in order to sign code, he or she must also copy the private key over to the new computer. To Learn More If you are on an ios team, read the following documents to learn more about creating a team and setting up its signing certificates: If you are a team admin, read ios Team Administration Guide. If you are a team member, read Tools Workflow Guide for ios. Read itunes Connect Development Guide for a comprehensive description of itunes Connect and the tasks you perform there. If you are on an OS X team, read the following documents to learn more about creating a team and setting up its signing certificates: Regardless of whether you are a team member or a team admin, read Tools Workflow Guide for Mac. Read itunes Connect Development Guide for a comprehensive look at itunes Connect and the tasks you perform there. 22

23 Creating a Project When you are building apps to learn more about app development or to experiment with a concept, you might not follow the formal process listed here. When your app is destined for the App Store, you should do more work up front. Figure 3-1 shows the steps you should perform when starting work on a new app. This chapter explains the steps you should follow to organize your project and other related items you need in order to distribute your app. It then explains many of the important concepts related to those steps. Figure 3-1 Starting a new project Coding Administrative Configure an Xcode project for the app Create provisioning profiles Configuring an Xcode Project for an App When you create a new Xcode project, you are presented with settings to configure the new project; you can find more information about these settings in Tools Workflow Guide for ios and Tools Workflow Guide for Mac. You should carefully consider the template you use to create an app and the settings used to configure the project; starting with the right template helps speed the development process. For example, if you were planning to write an ios game using the OpenGL ES graphics framework, the OpenGL ES Application template is an ideal starting point, because it provides a lot of initialization code required by all OpenGL ES apps. One of the settings you provide when you create a new project is the bundle ID for your app. When you set the bundle ID, it is automatically inserted into your project s information property list file. 23

24 Creating a Project Creating Provisioning Profiles for Your App Note: When you create a new project, Xcode gives you the option to automatically create a local source code repository. You almost always want to select this option, even for test projects. Using source code control is essential to good development practices. It ensures that you have a working history of the work you ve completed on your app, allowing you to make changes to your code knowing you can revert changes that did not work out as intended. You can even use Xcode to easily compare the working copy of your source code with the code stored in your source code repository. Creating Provisioning Profiles for Your App If you intend to ship your app on the App Store, a team admin should perform these steps after your project is created: 1. Create an explicit app ID whose bundle ID search string exactly matches the new app s bundle ID. 2. Use the new app ID to create a development provisioning profile. 3. Use the new app ID to create one or more distribution provisioning profiles. Although an explicit app ID is not strictly required for all projects, having one, and the related provisioning profiles, gives you finer control over who can build and run each app you create. An explicit app ID is also necessary for many Apple services; creating it early means you are always ready to implement those services in the app. Similarly, a distribution provisioning profile isn t necessary until you are ready to distribute your app, but creating those profiles at the start of the project makes it easier for you to verify that your signing and provisioning is set up correctly. Creating an ad hoc distribution profile at the start of your project also allows you to build a release version of the app at any time and send it to external testers using nondevelopment devices. App Concepts When you create a project, you use a bundle ID to identify a specific app, and an app ID to match that bundle ID. The app ID is used as part of a provisioning profile that authorizes an app to launch. The next few sections describe these three concepts in detail. 24

25 Creating a Project App Concepts A Bundle ID Uniquely Identifies an App A bundle ID is a string used to precisely identify a single app. Bundle IDs are not used just during the development process; when your app is installed on a device, it is also used by the operating system. For example, the preferences system uses this string to identify the app for which a given preference applies. In contrast, Launch Services uses the bundle ID to locate an app capable of opening a particular file, using the first app it finds with the given identifier. And, in ios, the bundle ID is used in validating the app s signature. The bundle ID string must be a uniform type identifier (UTI) that contains only alphanumeric (A-Z,a-z,0-9), hyphen (-), and period (.) characters. The string should be in reverse-dns format. For example, if your company s domain is Ajax.com and you create an app named Hello, you could assign the string com.ajax.hello as your app s bundle ID. During the development process, you use an app s bundle ID in many different places to identify the app. Figure 3-2 shows the most common places where an app s bundle ID is used during the development process. Figure 3-2 Common uses for an app s bundle ID Xcode project itunes Connect Bundle ID App ID icloud container ID The bundle ID itself is stored in the information property list file (Info.plist) inside your project. This file is later copied into your app s bundle when you build the project. When you are ready to publish an app, you use the bundle ID to identify the app in itunes Connect. The App Store submission process correlates the bundle ID from the app you submit with the data you provide in itunes Connect. See Configuring App Data in itunes Connect (page 41). When developing your app, you need a development provisioning profile with an app ID that is compatible with the app s bundle ID. When you implement icloud support in your app, the container IDs you specify are based on the bundle IDs of one or more apps. 25

26 Creating a Project App Concepts App IDs Are Used to Match Apps to Services and Development Teams App IDs are strings and share some characteristics with bundle IDs. But app IDs differ in two important ways. First, app IDs are not required to identify a specific app an app ID can instead identify a collection of apps. Second, an app ID contains additional information that allows it to be associated with a specific development team. Although the convention for bundle IDs starts each with a company identifier in reverse DNS format, that convention is not strictly enforced, and it cannot be used to identify your development team. App IDs are primarily used when creating development and distribution provisioning profiles, both described later in this chapter. An app ID is a string containing two parts, a team ID and a bundle ID search string, with a period (.) separating the two parts. Each part of an app ID has different and important uses for your app. The team ID is a unique 10-character string generated by Apple. The team ID is what associates an app ID with a specific team. Apps that share the same team ID can also share keychain data, such as user names and passwords. Two kinds of app IDs are supported: wildcard app IDs and explicit app IDs. The bundle ID search string determines the type of an app ID. Explicit App IDs Match a Single App An explicit app ID uses a search string that exactly matches the bundle ID of an app you are building. Because the exact bundle ID is specified, the app ID matches only that app. Figure 3-3 Explicit app ID Team ID (generated by Apple) A1B2C3D4E5 com domainname applicationname Bundle ID search string (determined by Developer) Important: In order to incorporate Apple Push Notification Service (APNS), In-App Purchase, or Game Center features into your app, you must create an explicit app ID for your app. Wildcard App IDs Match Multiple Apps A wildcard app ID allows you to use an app ID to match multiple apps; wildcard app IDs are useful when you first start developing new apps because you don t need to create a separate app ID for each app. However, wildcard app IDs can t be used to provision an app that uses APNS, In-App Purchase, or Game Center. 26

27 Creating a Project App Concepts A wildcard app ID omits some or all of the bundle ID in the search string and replaces that portion with an asterisk character (*). The asterisk must always appear as the last character in the search string. Figure 3-4 Wildcard app IDs Team ID (generated by Apple) A1B2C3D4E5 * Bundle ID search string (determined by Developer) Team ID (generated by Apple) or, A1B2C3D4E5 com domainname * Bundle ID search string (determined by Developer) When you use a wildcard app ID, characters preceding the asterisk (if any) must match the characters in the bundle ID, exactly as they would for an explicit app ID. The asterisk matches all remaining characters in the bundle ID. Further, the asterisk must match at least one character in the bundle ID. Figure 3-5 shows an example search string and shows that it matches some bundle IDs but not others. Figure 3-5 Examples of wildcard matching com domain * com domain text com domain icon com otherdomain database com domain com domain (bundle id search string) * matches text. * matches icon. The d in the pattern fails to find a match. The in the pattern fails to find a match. The * in the pattern fails to match a character. If an app ID uses an asterisk (*) as the bundle ID, then the search string matches any bundle ID. Provisioning Profiles Authorize an App to Launch In the chapter Setting Up a Developer for Code Signing (page 21), you learned how signing certificates are created and used to sign app. Now, you need to learn about the other half of the process, the provisioning profiles used to authorize signing and execution of an app. There are two kinds of provisioning profiles: A development profile, used during development, can be used to authorize apps only on devices configured for development. A distribution profile is used to distribute apps. There are multiple kinds of distribution profiles, each associated with a specific method of distribution. 27

28 Creating a Project App Concepts Figure 3-6 shows the development provisioning process for ios development again. Figure 3-6 Overview of the development provisioning process Team member Team admin Xcode project Private key Development signing certificate Public key List of authorized signing certificates App ID List of authorized device IDs Intermediate signing certificates Development Provisioning Profile List of certificates App ID List of device IDs Build and sign Signed application Development device When you add devices and signing certificates to a development team, Xcode automatically creates a profile named ios Team Provisioning Profile. This profile is automatically updated when new signing certificates or devices are added to the team. This profile has three major characteristics: It includes all code signing certificates associated with the team. It includes all devices associated with the team. The app ID in the profile uses an asterisk as the bundle ID. In other words, the ios Team Provisioning Profile allows any app to be signed by any team member with a signing certificate and installed on any team device. Because the ios Team Provisioning Profile is automatically updated, this profile is very helpful when programmers on your team want to install sample code or simple 28

29 Creating a Project To Learn More test apps on development devices. However, when you are developing an app for the App Store, you may want to create a development provisioning profile instead. When you create your own profile, you can limit any of the three areas to provide additional security: You can use an app ID that allows a subset of the team s apps to be launched; with an explicit app ID, you can limit the profile to a single app. You can restrict the developers allowed to sign app authorized by the profile. You can restrict the devices that apps authorized by the profile may be installed onto. Distributing an App Requires a Distribution Profile When you are ready to distribute an ios or Mac app, you not only need the distribution signing certificate created when you organized your team, you also need a distribution profile that authorizes the app to run. If you are developing an ios app, signing the app and distributing it with the appropriate profile is the only way to install the app on a device not specially configured for development. The exact contents of a distribution profile differ from the contents of a development profile, and each kind of distribution profile may have slightly different contents. A common requirement limits code signing to the team s distribution signing certificate. That said, a distribution profile for distributing an app on the App Store doesn t restrict the app to a limited set of devices. To Learn More If you are on an ios team, to learn more about the different kinds of distribution profiles and to learn how to configure a new project, read the following documents: If you are a team admin, read ios Team Administration Guide. If you are a team member, read Tools Workflow Guide for ios. If you are on an OS X team, learn more about the different kinds of distribution profiles how to configure a new project by reading Tools Workflow Guide for Mac. 29

30 Developing an App Figure 4-1 shows a typical organization of the development process. You design what you want your app to do and how it should work, implement those ideas in code, and then test the code you ve written. Figure 4-1 The development process Coding Design the app Write code for the app Polish and test the app The figure above gives you an idea of the process, but it doesn t express the reality of it. In practice, it looks more like the process shown in Figure 4-1. Figure 4-2 The development process is an iterative process Design the app Write code for the app Polish and test the app It is up to you to decide how much time you plan to put into each phase as you iterate through the development of your app. For example, you might choose to implement a small number of features on each pass, as is typical in Agile development, or you might choose to write a design specification that describes how everything should work in your app and implement it all at once, or you might choose something in between. Regardless of which approach you use, polishing your app and iterating over elements of your design is essential to delivering a good experience to the user. You want to make sure your app provides an interface that users can easily understand; that task is difficult to accomplish without putting your app in front of users and observing how they interact with it. 30

31 Developing an App Designing an App As you iterate through the development process, notice how your time is divided among the three phases varies. For example, at the beginning of the project, you have an idea, but no code to write or test, so more of your time is spent on design decisions. As you get ready to ship your app, your designs are mostly complete, you are changing the code only where necessary to fix problems, and you are spending the majority of your time testing to verify that your app works correctly and that users love it. Figure 4-3 Distribution between development tasks varies over time Design Code Test Design Code Test Design Code Test Time spent in project When you first start working on an app, start by reading the specific guides for the operating system you intend to target. These guides describe the technologies available to you, explain the architecture of apps on that operating system, and guide you on how your app should look and act to match the expectations of users. The rest of this chapter gives you a high-level overview of key development concepts to consider during each of the three steps in the iterative process. Designing an App When you start a new app, keep your design flexible. This suggestion is particularly true for a first app, when you are still learning the details of what makes a good app. Alternatively, assume your first project is not something you intend to ship but is used instead to learn more about the technologies you need to understand. By designing a flexible architecture, you are better prepared to respond to user feedback during your testing process and even after you ship, too. The following sections describe a couple of techniques that may help you with your initial design. Use the Model-View-Controller Pattern The Model-View-Controller pattern is one of many patterns in common use in Cocoa and Cocoa Touch, and it is essential to designing apps on ios and OS X. When you use the Model-View-Controller pattern, you divide the concerns of your app into three major areas; these areas are typically represented in your app by different classes. 31

32 Developing an App Designing an App Model: What kind of data does your app store? How does it store it? Where is the data stored? View: What does your user interface look like? How is it composed? How does it animate? Controller: What tasks can a user perform? What things happen as the user interacts with your app s user interface? What tasks are necessary for your models and views to interact with each other? By separating these concerns, you can revise one portion of your app without requiring significant changes in the rest of the app. This concept is important if you intend to redesign your user interface; ideally, you should be able to replace the user interface of your app without changing the model code. Being able to replace the user interface not only makes it easy to adjust the design of your user interface based on user feedback, it also makes it easy to extend your app to provide new user interfaces or share model classes between multiple apps. Figure 4-4 shows a single common data model applied across ios and Mac apps. Figure 4-4 Model-View-Controller pattern Model Controller Controller Controller Controller View View View View In the figure, the ios app supports both the ipad user-interface idiom and the iphone user-interface idiom and the Mac app supports both a windowed and full-screen interface. Using a common set of classes to represent your data model is ideal for an app suite designed to support icloud; the apps store data in icloud using a single file format, but each app uses a separate set of presentation objects. Thus, each app can be tailored to present an ideal interface for that kind of device. 32

App Distribution Guide

App Distribution Guide App Distribution Guide Contents About App Distribution 10 At a Glance 11 Enroll in an Apple Developer Program to Distribute Your App 11 Generate Certificates and Register Your Devices 11 Add Store Capabilities

More information

ios Team Administration Guide (Legacy)

ios Team Administration Guide (Legacy) ios Team Administration Guide (Legacy) Contents About ios Development Team Administration 5 At a Glance 6 Team Admins Manage Team Membership and Assign Roles in the Member Center 6 Development Devices

More information

Your First App Store Submission

Your First App Store Submission Your First App Store Submission Contents About Your First App Store Submission 4 At a Glance 5 Enroll in the Program 5 Provision Devices 5 Create an App Record in itunes Connect 5 Submit the App 6 Solve

More information

Create an ios App using Adobe Flash Side by Side Training, 2013. And without using a Mac

Create an ios App using Adobe Flash Side by Side Training, 2013. And without using a Mac Create an ios App using Adobe Flash And without using a Mac Contents 1 Become an Apple ios Developer... 2 2 Add a Development Certificate... 4 3 Create a Certificate Signing Request (CSR)... 6 4 Register

More information

Game Center Programming Guide

Game Center Programming Guide Game Center Programming Guide Contents About Game Center 8 At a Glance 9 Some Game Resources Are Provided at Runtime by the Game Center Service 9 Your Game Displays Game Center s User Interface Elements

More information

Mobile Secure Cloud Edition Document Version: 2.0-2014-06-26. ios Application Signing

Mobile Secure Cloud Edition Document Version: 2.0-2014-06-26. ios Application Signing Mobile Secure Cloud Edition Document Version: 2.0-2014-06-26 Table of Contents 1 Introduction.... 3 2 Apple Team Membership....4 3 Building a Team by Adding Team Admins and Team Members.... 5 4 App Protection

More information

Icons: 1024x1024, 512x512, 180x180, 120x120, 114x114, 80x80, 60x60, 58x58, 57x57, 40x40, 29x29

Icons: 1024x1024, 512x512, 180x180, 120x120, 114x114, 80x80, 60x60, 58x58, 57x57, 40x40, 29x29 I. Before Publishing 1. System requirements Requirements for ios App publishing using FlyingCatBuilder Mac running OS X version 10.9.4 or later Apple Development Account Enrollment in ios Developer Program

More information

CA Mobile Device Management. How to Create Custom-Signed CA MDM Client App

CA Mobile Device Management. How to Create Custom-Signed CA MDM Client App CA Mobile Device Management How to Create Custom-Signed CA MDM Client App This Documentation, which includes embedded help systems and electronically distributed materials, (hereinafter referred to as

More information

Using the Push Notifications Extension Part 1: Certificates and Setup

Using the Push Notifications Extension Part 1: Certificates and Setup // tutorial Using the Push Notifications Extension Part 1: Certificates and Setup Version 1.0 This tutorial is the second part of our tutorials covering setting up and running the Push Notifications Native

More information

Getting Started Guide: Getting the most out of your Windows Intune cloud

Getting Started Guide: Getting the most out of your Windows Intune cloud Getting Started Guide: Getting the most out of your Windows Intune cloud service Contents Overview... 3 Which Configuration is Right for You?... 3 To Sign up or Sign in?... 4 Getting Started with the Windows

More information

How to Obtain an APNs Certificate for CA MDM

How to Obtain an APNs Certificate for CA MDM How to Obtain an APNs Certificate for CA MDM Contents How to Obtain an APNs Certificate for CA MDM Verify Prerequisites Obtaining Root and Intermediate Certificates Create a Certificate Signing Request

More information

Sophos Mobile Control Startup guide. Product version: 3

Sophos Mobile Control Startup guide. Product version: 3 Sophos Mobile Control Startup guide Product version: 3 Document date: January 2013 Contents 1 About this guide...3 2 What are the key steps?...5 3 Log in as a super administrator...6 4 Activate Sophos

More information

Engage ios App Administrator s Guide

Engage ios App Administrator s Guide Engage ios App Administrator s Guide Contents Contents... 1 Introduction... 2 Target Audience... 2 Devices Supported... 2 SharePoint Platforms Supported... 2 SharePoint Security & Privileges... 2 Deploying

More information

ios Enterprise Deployment Overview

ios Enterprise Deployment Overview ios Enterprise Deployment Overview ios devices such as ipad and iphone can transform your business. They can significantly boost productivity and give your employees the freedom and flexibility to work

More information

Sophos Mobile Control Startup guide. Product version: 3.5

Sophos Mobile Control Startup guide. Product version: 3.5 Sophos Mobile Control Startup guide Product version: 3.5 Document date: July 2013 Contents 1 About this guide...3 2 What are the key steps?...5 3 Log in as a super administrator...6 4 Activate Sophos Mobile

More information

Colligo Briefcase Enterprise. Administrator s Guide

Colligo Briefcase Enterprise. Administrator s Guide Enterprise Administrator s Guide CONTENTS Introduction... 2 Target Audience... 2 Overview... 2 Key Features... 2 Platforms Supported... 2 SharePoint Security & Privileges... 2 Deploying Colligo Briefcase...

More information

Using GitHub for Rally Apps (Mac Version)

Using GitHub for Rally Apps (Mac Version) Using GitHub for Rally Apps (Mac Version) SOURCE DOCUMENT (must have a rallydev.com email address to access and edit) Introduction Rally has a working relationship with GitHub to enable customer collaboration

More information

Everything is Terrible

Everything is Terrible Everything is Terrible A deep dive into provisioning and code signing Hello and welcome to Everything is Terrible. This is a deep dive talk into the processes behind provisioning and code signing on Apple

More information

itunes Connect Developer Guide

itunes Connect Developer Guide itunes Connect Developer Guide Contents Introduction 9 How to Use This Document 9 See Also 10 Before You Begin 11 Following Apple Guidelines 11 Creating Assets with the Correct Specifications 11 App Icons,

More information

Deploying iphone and ipad Security Overview

Deploying iphone and ipad Security Overview Deploying iphone and ipad Security Overview ios, the operating system at the core of iphone and ipad, is built upon layers of security. This enables iphone and ipad to securely access corporate services

More information

APNS Certificate generating and installation

APNS Certificate generating and installation APNS Certificate generating and installation Quick Guide for generating and installing an Apple APNS Certificate Version: x.x MobiDM Quick Guide for APNS Certificate Page 1 Index 1. APPLE APNS CERTIFICATE...

More information

GO!Enterprise MDM Device Application User Guide Installation and Configuration for ios Devices

GO!Enterprise MDM Device Application User Guide Installation and Configuration for ios Devices GO!Enterprise MDM Device Application User Guide Installation and Configuration for ios Devices GO!Enterprise MDM for ios Devices, Version 3.x GO!Enterprise MDM for ios Devices 1 Table of Contents GO!Enterprise

More information

End User Devices Security Guidance: Apple ios 8

End User Devices Security Guidance: Apple ios 8 GOV.UK Guidance End User Devices Security Guidance: Apple ios 8 Published Contents 1. Changes since previous guidance 2. Usage scenario 3. Summary of platform security 4. How the platform can best satisfy

More information

GO!Enterprise MDM Device Application User Guide Installation and Configuration for ios with TouchDown

GO!Enterprise MDM Device Application User Guide Installation and Configuration for ios with TouchDown GO!Enterprise MDM Device Application User Guide Installation and Configuration for ios with TouchDown GO!Enterprise MDM for ios Devices, Version 3.x GO!Enterprise MDM for ios with TouchDown 1 Table of

More information

Prerequisites Guide for ios

Prerequisites Guide for ios Prerequisites Guide for ios Prerequisites Guide for ios This document includes the following topics: Overview Apple Developer Membership Requirement Prerequisites for Mobile Device Management Prerequisites

More information

Certificates and Application Resigning

Certificates and Application Resigning Certificates and Application Resigning Introduction In the following chapters we will be reviewing how to resign an application along with how to get the needed resources for the process. To successfully

More information

BuzzTouch ios Push Notifications

BuzzTouch ios Push Notifications BuzzTouch ios Push Notifications Niraj Shah January 27, 2013 Version 1.1 BuzzTouch ios Push Notifications 1 Introduction 1.1 An overview of Apple's Push Notifications 5 2 On the Mac with Keychain Access

More information

How to generate an APNs Certificate to use the Apple MDM protocol via the portal

How to generate an APNs Certificate to use the Apple MDM protocol via the portal How to generate an APNs Certificate to use the Apple MDM protocol via the portal Introduction Before you can manage ios devices with your device management portal you will need an Apple Push Notification

More information

ipad in Business Security

ipad in Business Security ipad in Business Security Device protection Strong passcodes Passcode expiration Passcode reuse history Maximum failed attempts Over-the-air passcode enforcement Progressive passcode timeout Data security

More information

Reviewer Guide Core Functionality

Reviewer Guide Core Functionality securing your personal data Sticky Password Reviewer Guide Core Functionality Sticky Password is the password manager for the entire lifecycle of your passwords. Strong passwords the built-in password

More information

Managing Mobility. 10 top tips for Enterprise Mobility Management

Managing Mobility. 10 top tips for Enterprise Mobility Management Managing Mobility 10 top tips for Enterprise Mobility Management About Trinsic Trinsic is a new kind of business communications specialist, built from the ground up to help your organisation leave behind

More information

GO!Enterprise MDM Device Application User Guide Installation and Configuration for Android with TouchDown

GO!Enterprise MDM Device Application User Guide Installation and Configuration for Android with TouchDown GO!Enterprise MDM Device Application User Guide Installation and Configuration for Android with TouchDown GO!Enterprise MDM for Android, Version 3.x GO!Enterprise MDM for Android with TouchDown 1 Table

More information

Deploying iphone and ipad Mobile Device Management

Deploying iphone and ipad Mobile Device Management Deploying iphone and ipad Mobile Device Management ios supports Mobile Device Management (MDM), giving businesses the ability to manage scaled deployments of iphone and ipad across their organizations.

More information

Kaspersky Lab Mobile Device Management Deployment Guide

Kaspersky Lab Mobile Device Management Deployment Guide Kaspersky Lab Mobile Device Management Deployment Guide Introduction With the release of Kaspersky Security Center 10.0 a new functionality has been implemented which allows centralized management of mobile

More information

Configuring Salesforce

Configuring Salesforce Chapter 94 Configuring Salesforce The following is an overview of how to configure the Salesforce.com application for singlesign on: 1 Prepare Salesforce for single sign-on: This involves the following:

More information

How to configure Mac OS X Server

How to configure Mac OS X Server How to configure Mac OS X Server By Rob Buckley In the previous article in this series, we showed you how to secure a Mac using the functions built into its operating system, OS X. See photo story here

More information

Introduction to the Apple TV Guide

Introduction to the Apple TV Guide Introduction to the Apple TV Guide Overview Apple TVs are quickly becoming the ideal choice for presentation aids in a variety of settings. In the corporate environment, Apple TVs enable visuals and projections

More information

Migrating Exchange Server to Office 365

Migrating Exchange Server to Office 365 Migrating Exchange Server to Office 365 By: Brien M. Posey CONTENTS Domain Verification... 3 IMAP Migration... 4 Cut Over and Staged Migration Prep Work... 5 Cut Over Migrations... 6 Staged Migration...

More information

Sophos Mobile Control as a Service Startup guide. Product version: 3.5

Sophos Mobile Control as a Service Startup guide. Product version: 3.5 Sophos Mobile Control as a Service Startup guide Product version: 3.5 Document date: August 2013 Contents 1 About this guide...3 2 What are the key steps?...4 3 First login...5 4 Change your administrator

More information

Arrk purple paper. ios App store submission guide. India. India

Arrk purple paper. ios App store submission guide. India. India Arrk purple paper ios App store submission guide A guide to preparing and submitting ios apps to the Apple itunes store. Andreas England (andreas.england@arrkgroup.com) 25 th June 2014 imagination technology

More information

Chapter 1. Introduction to ios Development. Objectives: Touch on the history of ios and the devices that support this operating system.

Chapter 1. Introduction to ios Development. Objectives: Touch on the history of ios and the devices that support this operating system. Chapter 1 Introduction to ios Development Objectives: Touch on the history of ios and the devices that support this operating system. Understand the different types of Apple Developer accounts. Introduce

More information

Swisscom Mobile Device Services Quick Start Guide: Set-up Remote Management basic. Mobile Device Services Februar 2014

Swisscom Mobile Device Services Quick Start Guide: Set-up Remote Management basic. Mobile Device Services Februar 2014 Swisscom Mobile Device Services Quick Start Guide: Set-up Remote Management basic Mobile Device Services Februar 2014 Contents 2 Login «Welcome to Swisscom MDS» First steps Step 1: Installing the MDM certificate

More information

AVG Business SSO Partner Getting Started Guide

AVG Business SSO Partner Getting Started Guide AVG Business SSO Partner Getting Started Guide Table of Contents Overview... 2 Getting Started... 3 Web and OS requirements... 3 Supported web and device browsers... 3 Initial Login... 4 Navigation in

More information

White Paper. Anywhere, Any Device File Access with IT in Control. Enterprise File Serving 2.0

White Paper. Anywhere, Any Device File Access with IT in Control. Enterprise File Serving 2.0 White Paper Enterprise File Serving 2.0 Anywhere, Any Device File Access with IT in Control Like it or not, cloud- based file sharing services have opened up a new world of mobile file access and collaborative

More information

Deploying iphone and ipad Mobile Device Management

Deploying iphone and ipad Mobile Device Management Deploying iphone and ipad Mobile Device Management ios supports Mobile Device Management (MDM), giving businesses the ability to manage scaled deployments of iphone and ipad across their organizations.

More information

Android: Setup Hello, World: Android Edition. due by noon ET on Wed 2/22. Ingredients.

Android: Setup Hello, World: Android Edition. due by noon ET on Wed 2/22. Ingredients. Android: Setup Hello, World: Android Edition due by noon ET on Wed 2/22 Ingredients. Android Development Tools Plugin for Eclipse Android Software Development Kit Eclipse Java Help. Help is available throughout

More information

Sophos Mobile Control Administrator guide. Product version: 3

Sophos Mobile Control Administrator guide. Product version: 3 Sophos Mobile Control Administrator guide Product version: 3 Document date: January 2013 Contents 1 About Sophos Mobile Control...4 2 About the Sophos Mobile Control web console...7 3 Key steps for managing

More information

This guide provides information on...

This guide provides information on... Distributing GO!Enterprise MDM for ios as an Enterprise App This guide provides information on...... Benefits of Distributing GO!Enterprise MDM for ios as an Enterprise App... Requirements for Distributing

More information

BlackBerry Enterprise Service 10. Secure Work Space for ios and Android Version: 10.1.1. Security Note

BlackBerry Enterprise Service 10. Secure Work Space for ios and Android Version: 10.1.1. Security Note BlackBerry Enterprise Service 10 Secure Work Space for ios and Android Version: 10.1.1 Security Note Published: 2013-06-21 SWD-20130621110651069 Contents 1 About this guide...4 2 What is BlackBerry Enterprise

More information

Zenprise Device Manager 6.1

Zenprise Device Manager 6.1 Zenprise Device Manager 6.1 APPLE APNS CERTIFICATE SETUP GUIDE Rev 6.10.00 2 ZENPRISE DEVICE MANAGER 6.1 APPLE APNS CERTIFICATE SETUP GUIDE 2011 Zenprise, Inc. All rights reserved. This manual, as well

More information

ManageEngine Desktop Central. Mobile Device Management User Guide

ManageEngine Desktop Central. Mobile Device Management User Guide ManageEngine Desktop Central Mobile Device Management User Guide Contents 1 Mobile Device Management... 2 1.1 Supported Devices... 2 1.2 What Management Operations you can Perform?... 2 2 Setting Up MDM...

More information

ABSTRACT' INTRODUCTION' COMMON'SECURITY'MISTAKES'' Reverse Engineering ios Applications

ABSTRACT' INTRODUCTION' COMMON'SECURITY'MISTAKES'' Reverse Engineering ios Applications Reverse Engineering ios Applications Drew Branch, Independent Security Evaluators, Associate Security Analyst ABSTRACT' Mobile applications are a part of nearly everyone s life, and most use multiple mobile

More information

Guide for Generating. Apple Push Notification Service Certificate

Guide for Generating. Apple Push Notification Service Certificate Guide for Generating Apple Push Notification Service Certificate Contents Generating and Using APNs Certificate... 5 Understanding APNs Certificate... 6 Generating an APNs Certificate... 7 Initial Steps...

More information

Introduction to Mobile Application Management (MAM)

Introduction to Mobile Application Management (MAM) Introduction to Mobile Application Management (MAM) Overview This guide details how your organization can manage mobile applications using AirWatch's Mobile Application Management (MAM) functionality.

More information

ipad Classroom Installation & Deployment Important information

ipad Classroom Installation & Deployment Important information ipad Classroom Installation & Deployment Important information Our aim is to carry out your installation as quickly and efficiently as possible whilst utilising Apple s recommended procedures for the deployment

More information

Universal Management Service 2015

Universal Management Service 2015 Universal Management Service 2015 UMS 2015 Help All rights reserved. No parts of this work may be reproduced in any form or by any means - graphic, electronic, or mechanical, including photocopying, recording,

More information

Lab 0 (Setting up your Development Environment) Week 1

Lab 0 (Setting up your Development Environment) Week 1 ECE155: Engineering Design with Embedded Systems Winter 2013 Lab 0 (Setting up your Development Environment) Week 1 Prepared by Kirill Morozov version 1.2 1 Objectives In this lab, you ll familiarize yourself

More information

GO!Enterprise MDM Device Application User Guide Installation and Configuration for Android

GO!Enterprise MDM Device Application User Guide Installation and Configuration for Android GO!Enterprise MDM Device Application User Guide Installation and Configuration for Android GO!Enterprise MDM for Android, Version 3.x GO!Enterprise MDM for Android 1 Table of Contents GO!Enterprise MDM

More information

Managing ios Devices. Andrew Wellington Division of Information The Australian National University XW11

Managing ios Devices. Andrew Wellington Division of Information The Australian National University XW11 Managing ios Devices Andrew Wellington Division of Information The Australian National University About Me Mac OS X Systems Administrator Division of Information (Central IT) Mostly manage servers (about

More information

Introducing Xcode Source Control

Introducing Xcode Source Control APPENDIX A Introducing Xcode Source Control What You ll Learn in This Appendix: u The source control features offered in Xcode u The language of source control systems u How to connect to remote Subversion

More information

Preparing for GO!Enterprise MDM On-Demand Service

Preparing for GO!Enterprise MDM On-Demand Service Preparing for GO!Enterprise MDM On-Demand Service This guide provides information on...... An overview of GO!Enterprise MDM... Preparing your environment for GO!Enterprise MDM On-Demand... Firewall rules

More information

Xcode Project Management Guide. (Legacy)

Xcode Project Management Guide. (Legacy) Xcode Project Management Guide (Legacy) Contents Introduction 10 Organization of This Document 10 See Also 11 Part I: Project Organization 12 Overview of an Xcode Project 13 Components of an Xcode Project

More information

Vodafone Secure Device Manager Administration User Guide

Vodafone Secure Device Manager Administration User Guide Vodafone Secure Device Manager Administration User Guide Vodafone New Zealand Limited. Correct as of September 2014. Do business better Contents Introduction 3 Help 4 How to find help in the Vodafone Secure

More information

Introduction to Directory Services

Introduction to Directory Services Introduction to Directory Services Overview This document explains how AirWatch integrates with your organization's existing directory service such as Active Directory, Lotus Domino and Novell e-directory

More information

Advanced Configuration Steps

Advanced Configuration Steps Advanced Configuration Steps After you have downloaded a trial, you can perform the following from the Setup menu in the MaaS360 portal: Configure additional services Configure device enrollment settings

More information

Salesforce Mobile Push Notifications Implementation Guide

Salesforce Mobile Push Notifications Implementation Guide Salesforce.com: Summer 14 Salesforce Mobile Push Notifications Implementation Guide Last updated: May 6, 2014 Copyright 2000 2014 salesforce.com, inc. All rights reserved. Salesforce.com is a registered

More information

Mobile Iron User Guide

Mobile Iron User Guide 2015 Mobile Iron User Guide Information technology Sparrow Health System 9/1/2015 Contents...0 Introduction...2 Changes to your Mobile Device...2 Self Service Portal...3 Registering your new device...4

More information

CounterACT Plugin Configuration Guide for ForeScout Mobile Integration Module MaaS360 Version 1.0.1. ForeScout Mobile

CounterACT Plugin Configuration Guide for ForeScout Mobile Integration Module MaaS360 Version 1.0.1. ForeScout Mobile CounterACT Plugin Configuration Guide for ForeScout Mobile Integration Module Version 1.0.1 ForeScout Mobile Table of Contents About the Integration... 3 ForeScout MDM... 3 Additional Documentation...

More information

Backing up your digital image collection provides it with essential protection.

Backing up your digital image collection provides it with essential protection. Backing up your digital image collection provides it with essential protection. In this chapter, you ll learn more about your options for creating a reliable backup of your entire digital image library.

More information

A Brief Insight on IOS deployment in Education System- need for 3 rd Platform implementation in Schools

A Brief Insight on IOS deployment in Education System- need for 3 rd Platform implementation in Schools A Brief Insight on IOS deployment in Education System- need for 3 rd Platform implementation in Schools I hope you remember Meraki, a company involved in making sensors and which was sold to IBM few years

More information

Apple Inc. Certification Authority Certification Practice Statement Worldwide Developer Relations Version 1.14 Effective Date: September 9, 2015

Apple Inc. Certification Authority Certification Practice Statement Worldwide Developer Relations Version 1.14 Effective Date: September 9, 2015 Apple Inc. Certification Authority Certification Practice Statement Worldwide Developer Relations Version 1.14 Effective Date: September 9, 2015 Table of Contents 1. Introduction... 5 1.1. Trademarks...

More information

Knappsack ios Build and Deployment Guide

Knappsack ios Build and Deployment Guide Knappsack ios Build and Deployment Guide So you want to build and deploy an ios application to Knappsack? This guide will help walk you through all the necessary steps for a successful build and deployment.

More information

Generating an Apple Enterprise MDM Certificate

Generating an Apple Enterprise MDM Certificate Good Mobile Control Server Generating an Apple Enterprise MDM Certificate Updated 09/30/11 Overview... 1 Generating Your Apple Certificate Using a Mac... 1 Generating Your Apple Certificate Using Windows...

More information

Salesforce1 Mobile Security Guide

Salesforce1 Mobile Security Guide Salesforce1 Mobile Security Guide Version 1, 1 @salesforcedocs Last updated: December 8, 2015 Copyright 2000 2015 salesforce.com, inc. All rights reserved. Salesforce is a registered trademark of salesforce.com,

More information

BlackBerry Enterprise Service 10. Universal Device Service Version: 10.2. Administration Guide

BlackBerry Enterprise Service 10. Universal Device Service Version: 10.2. Administration Guide BlackBerry Enterprise Service 10 Universal Service Version: 10.2 Administration Guide Published: 2015-02-24 SWD-20150223125016631 Contents 1 Introduction...9 About this guide...10 What is BlackBerry

More information

Host Hardening. Presented by. Douglas Couch & Nathan Heck Security Analysts for ITaP 1

Host Hardening. Presented by. Douglas Couch & Nathan Heck Security Analysts for ITaP 1 Host Hardening Presented by Douglas Couch & Nathan Heck Security Analysts for ITaP 1 Background National Institute of Standards and Technology Draft Guide to General Server Security SP800-123 Server A

More information

Cloud Server powered by Mac OS X. Getting Started Guide. Cloud Server. powered by Mac OS X. AKJZNAzsqknsxxkjnsjx Getting Started Guide Page 1

Cloud Server powered by Mac OS X. Getting Started Guide. Cloud Server. powered by Mac OS X. AKJZNAzsqknsxxkjnsjx Getting Started Guide Page 1 Getting Started Guide Cloud Server powered by Mac OS X Getting Started Guide Page 1 Getting Started Guide: Cloud Server powered by Mac OS X Version 1.0 (02.16.10) Copyright 2010 GoDaddy.com Software, Inc.

More information

Dacorum U3A Apple Mac Users Group Agenda TUESDAY 7th July 2015 Time Machine Backups for your MAC & ipad?

Dacorum U3A Apple Mac Users Group Agenda TUESDAY 7th July 2015 Time Machine Backups for your MAC & ipad? Agenda TUESDAY 7th July 2015 Time Machine Backups for your MAC & ipad? 1 Overview Time Machine Backups Mac Basics: Time Machine backs up your Mac Time Machine is the built-in backup feature of OS X. It

More information

For details about using automatic user provisioning with Salesforce, see Configuring user provisioning for Salesforce.

For details about using automatic user provisioning with Salesforce, see Configuring user provisioning for Salesforce. Chapter 41 Configuring Salesforce The following is an overview of how to configure the Salesforce.com application for singlesign on: 1 Prepare Salesforce for single sign-on: This involves the following:

More information

The Social Accelerator Setup Guide

The Social Accelerator Setup Guide The Social Accelerator Setup Guide Welcome! Welcome to the Social Accelerator setup guide. This guide covers 2 ways to setup SA. Most likely, you will want to use the easy setup wizard. In that case, you

More information

NotifyMDM Device Application User Guide Installation and Configuration for Windows Mobile 6 Devices

NotifyMDM Device Application User Guide Installation and Configuration for Windows Mobile 6 Devices NotifyMDM Device Application User Guide Installation and Configuration for Windows Mobile 6 Devices End-of-Life Notice Please note that GO!Enterprise MDM server version 3.6.3 is the last to officially

More information

This session was presented by Jim Stickley of TraceSecurity on Wednesday, October 23 rd at the Cyber Security Summit.

This session was presented by Jim Stickley of TraceSecurity on Wednesday, October 23 rd at the Cyber Security Summit. The hidden risks of mobile applications This session was presented by Jim Stickley of TraceSecurity on Wednesday, October 23 rd at the Cyber Security Summit. To learn more about TraceSecurity visit www.tracesecurity.com

More information

SYNCSHIELD FEATURES. Preset a certain task to be executed. specific time.

SYNCSHIELD FEATURES. Preset a certain task to be executed. specific time. SYNCSHIELD FEATURES This document describes the diversity of SyncShield features. Please note that many of the features require a certain platform version, often earlier software versions do not support

More information

Open Directory. Contents. Before You Start 2. Configuring Rumpus 3. Testing Accessible Directory Service Access 4. Specifying Home Folders 4

Open Directory. Contents. Before You Start 2. Configuring Rumpus 3. Testing Accessible Directory Service Access 4. Specifying Home Folders 4 Contents Before You Start 2 Configuring Rumpus 3 Testing Accessible Directory Service Access 4 Specifying Home Folders 4 Open Directory Groups 6 Maxum Development Corp. Before You Start Open Directory

More information

Software Requirements. Specification. Day Health Manager. for. Version 1.1. Prepared by 4yourhealth 2/10/2015

Software Requirements. Specification. Day Health Manager. for. Version 1.1. Prepared by 4yourhealth 2/10/2015 Software Requirements Specification. for Day Health Manager Version 1.1 Prepared by 4yourhealth Senior Project 2015 2/10/2015 Table of Contents Table of Contents Revision History Introduction Purpose Document

More information

Dashboard Admin Guide

Dashboard Admin Guide MadCap Software Dashboard Admin Guide Pulse Copyright 2014 MadCap Software. All rights reserved. Information in this document is subject to change without notice. The software described in this document

More information

Penetration Testing for iphone Applications Part 1

Penetration Testing for iphone Applications Part 1 Penetration Testing for iphone Applications Part 1 This article focuses specifically on the techniques and tools that will help security professionals understand penetration testing methods for iphone

More information

Parent Guide Apple ID for Students

Parent Guide Apple ID for Students Parent Guide Apple ID for Students This guide provides an overview for parents and guardians on how to manage an Apple ID for Students on ios devices such as ipad. It also includes important registration

More information

MOBILE METRICS REPORT

MOBILE METRICS REPORT MOBILE METRICS REPORT ios vs. Android Development in 2015 A Ship.io Study for Mobile App Developers, Testers, and Product Managers Mobile developers understand the rising importance of continuous integration

More information

ios App for Mobile Website! Documentation!

ios App for Mobile Website! Documentation! ios App for Mobile Website Documentation What is IOS App for Mobile Website? IOS App for Mobile Website allows you to run any website inside it and if that website is responsive or mobile compatible, you

More information

Parallels. for your Linux or Windows Server. Small Business Panel. Getting Started Guide. Parallels Small Business Panel // Linux & Windows Server

Parallels. for your Linux or Windows Server. Small Business Panel. Getting Started Guide. Parallels Small Business Panel // Linux & Windows Server Getting Started Guide Parallels Small Business Panel for your Linux or Windows Server Getting Started Guide Page 1 Getting Started Guide: Parallels Small Business Panel, Linux & Windows Server Version

More information

Dell Client BIOS: Signed Firmware Update

Dell Client BIOS: Signed Firmware Update Dell Client BIOS: Signed Firmware Update An Implementation and Deployment Guide to NIST SP800-147 BIOS Protections for Dell Client BIOS Rick Martinez Dell Client BIOS This white paper is for informational

More information

ios Education Deployment Overview

ios Education Deployment Overview ios Education Deployment Overview ipad brings an amazing set of tools to the classroom. Teachers can easily customize lessons with interactive textbooks, rich media, and online courses. And students stay

More information

Enterprise Job Scheduling: How Your Organization Can Benefit from Automation

Enterprise Job Scheduling: How Your Organization Can Benefit from Automation WHITE PAPER Enterprise Job Scheduling: How Your Organization Can Benefit from Automation By Pat Cameron Introduction Today's companies need automation solutions to attain the high levels of availability,

More information

APPLICATION SECURITY: FROM WEB TO MOBILE. DIFFERENT VECTORS AND NEW ATTACK

APPLICATION SECURITY: FROM WEB TO MOBILE. DIFFERENT VECTORS AND NEW ATTACK APPLICATION SECURITY: FROM WEB TO MOBILE. DIFFERENT VECTORS AND NEW ATTACK John T Lounsbury Vice President Professional Services, Asia Pacific INTEGRALIS Session ID: MBS-W01 Session Classification: Advanced

More information

Dell Mobile Management. Apple Device Enrollment Program

Dell Mobile Management. Apple Device Enrollment Program Dell Mobile Management Contents Dell Mobile Management 3 Setting up the 3 DMM Device Deployment Program Prerequisites 4 Configure Apple VPP Token in DMM 5 Download Apple VPP Token 5 Assign VPP App Licenses

More information

iphone in Business Security Overview

iphone in Business Security Overview iphone in Business Security Overview iphone can securely access corporate services and protect data on the device. It provides strong encryption for data in transmission, proven authentication methods

More information

EM L05 Managing ios and Android Mobile Devices with Symantec Mobile Management Hands-On Lab

EM L05 Managing ios and Android Mobile Devices with Symantec Mobile Management Hands-On Lab EM L05 Managing ios and Android Mobile Devices with Symantec Mobile Management Hands-On Lab Description The Symantec Mobile Management platform continues to expand it s offering with new support for native

More information

Site Administrator User Guide. show, tell, share

Site Administrator User Guide. show, tell, share Site Administrator User Guide show, tell, share Contents About your Team site 1 What is a Team site? 1 What can you do on a Team or Business site that you can t do on www.present.me? 1 Getting Started

More information

How to wipe personal data and email from a lost or stolen mobile device

How to wipe personal data and email from a lost or stolen mobile device IS Doc no 858 How to wipe personal data and email from a lost or stolen mobile device This document explains what to do if your mobile device (iphone, ipod Touch, ipad, mobile phone etc.) is stolen or

More information