{"id":34583,"date":"2017-12-07T11:10:57","date_gmt":"2017-12-07T19:10:57","guid":{"rendered":"https:\/\/blog.xamarin.com\/?p=34583"},"modified":"2019-04-04T15:22:58","modified_gmt":"2019-04-04T22:22:58","slug":"even-easier-ios-app-provisioning-visual-studio-mac","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/xamarin\/even-easier-ios-app-provisioning-visual-studio-mac\/","title":{"rendered":"Even Easier iOS App Provisioning\u00a0in Visual Studio for Mac\u00a0"},"content":{"rendered":"<p>iOS provisioning\u00a0is a notoriously hard concept to grasp;\u00a0even the best developers can be stumped by a signing identity.\u00a0As a content developer at Xamarin, I\u2019ve created thorough\u00a0documentation\u00a0on the topic,\u00a0which you can read\u00a0<a href=\"https:\/\/developer.xamarin.com\/guides\/ios\/getting_started\/installation\/device_provisioning\/\">in the Xamarin Developer Center<\/a>. Having these resources is great, but as a developer making something awesome, you shouldn\u2019t\u00a0have to understand how Apple\u2019s signing process works; you should just be able to make a selection, hit run, and have your app deploy to your device. It should be that simple.<\/p>\n<p>In June,\u00a0<a href=\"https:\/\/blog.xamarin.com\/easy-ios-app-provisioning-fastlane-visual-studio-mac\/\">we\u00a0introduced improvements<\/a> that make it easy to deploy your iOS app to a device. We have\u00a0improved this\u00a0process once again with our latest release, and now\u00a0you can automatically provision your app in less than a minute with a single checkbox selection!\u00a0In this post, you\u2019ll learn how to\u00a0turn on automatic signing and allow Visual Studio for Mac to take care of generating and using the required signing artifacts.<\/p>\n<h2>Getting Started<\/h2>\n<p>Before you begin, you\u2019ll want to make sure that you&#8217;ve signed in to Visual Studio for Mac with an Apple ID via the\u00a0<a href=\"https:\/\/developer.xamarin.com\/guides\/cross-platform\/macios\/apple-account-management\/\">Apple Account Management<\/a>\u00a0window.\u00a0To open the account management window,\u00a0go to \u202f<b>Visual Studio -&gt; Preferences -&gt; Apple Developer Account<\/b>.\u00a0Click the <strong>+<\/strong>\u00a0button to enter your Apple ID and password. Your credentials are saved in the secure Keychain on your machine, and <a href=\"https:\/\/developer.xamarin.com\/guides\/ios\/deployment,_testing,_and_metrics\/provisioning\/fastlane\/\">fastlane<\/a>\u202fis used to handle your credentials securely while passing them to Apple&#8217;s developer portal.\n<img decoding=\"async\" class=\"wp-image-34587 aligncenter\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/44\/2019\/03\/Screen-Shot-2017-11-30-at-4.48.30-PM.png\" alt=\"\" width=\"707\" height=\"506\" \/><\/p>\n<h2>Enabling Automatic Signing<\/h2>\n<p>Once you\u2019ve ensured you have an Apple ID connected to Visual Studio for Mac, you\u2019re ready to enable Automatic Signing.<\/p>\n<p>In your iOS project, open the\u00a0<code>Info.plist<\/code>\u00a0file. In the\u00a0<b>Signing<\/b>\u00a0section, select your team from the\u00a0<b>Team<\/b>\u00a0dropdown:<\/p>\n<p><img decoding=\"async\" class=\"size-full wp-image-34588 aligncenter\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/44\/2019\/03\/Screen-Shot-2017-11-30-at-5.01.07-PM.png\" alt=\"\" width=\"1412\" height=\"210\" \/><\/p>\n<p>Then, select the\u00a0<b>Automatically manage signing\u00a0<\/b>\u202fcheckbox:<\/p>\n<p><img decoding=\"async\" class=\"size-full wp-image-34593 aligncenter\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/44\/2019\/03\/image3.png\" alt=\"\" width=\"769\" height=\"196\" \/><\/p>\n<p>This starts the automatic signing process.\u00a0Visual Studio for Mac will then attempt to generate an App ID, provisioning profile, and a signing identity to\u00a0use these artifacts for signing.<\/p>\n<p>When automatic signing has been enabled, Visual Studio for Mac updates the provisioning artifacts, if necessary, when any of the following things happen:<\/p>\n<ul>\n<li>An iOS device is plugged into your Mac.\n<ul>\n<li>Visual Studio for Mac checks to see if the device is registered on the Apple Developer Portal. If it is not,\u00a0then the device is added\u00a0and a new provisioning profile is generated.<\/li>\n<\/ul>\n<\/li>\n<li>The bundle ID of your app\u00a0is changed.\n<ul>\n<li>Visual Studio for Mac\u00a0updates the app ID to match the bundle ID. A new provisioning profile containing this app ID is generated.<\/li>\n<\/ul>\n<\/li>\n<li>A supported capability is enabled in the\u00a0<code>Entitlements.plist<\/code> file.\n<ul>\n<li>This capability\u00a0is added to the app ID\u00a0and a new provisioning profile with the updated app ID is generated.<\/li>\n<li>Not all capabilities are currently supported. For more information on the ones that are supported, check out the\u00a0<a href=\"https:\/\/developer.xamarin.com\/guides\/ios\/deployment,_testing,_and_metrics\/provisioning\/working-with-capabilities\/\">Working with Capabilities guide<\/a>.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2>In Action<\/h2>\n<p>For a full breakdown of automatic signing\u00a0and a walkthrough of a live demo, <a href=\"https:\/\/channel9.msdn.com\/Shows\/XamarinShow\/Episode-33-iOS-Auto-Provisioning-Awesomeness-with-Oleg\u00a0\">check out\u00a0this episode of the Xamarin Show with James and Oleg!<\/a><\/p>\n<p><center><iframe width=\"640\" height=\"360\" align=\"middle\" src=\"https:\/\/channel9.msdn.com\/Shows\/XamarinShow\/Episode-33-iOS-Auto-Provisioning-Awesomeness-with-Oleg\/player\" allowfullscreen=\"allowfullscreen\" frameborder=\"0\"><\/iframe><\/center>&nbsp;<\/p>\n<h2>Wrapping Up<\/h2>\n<p>This blog post introduced the new automatic signing capabilities in Visual Studio for Mac 7.3 and demonstrated just how quickly you can now deploy your iOS,\u00a0tvOS, and\u00a0watchOS\u00a0apps to a device.<\/p>\n<p>For more information on Device Provisioning, refer to our documentation on\u00a0<a href=\"https:\/\/developer.xamarin.com\/guides\/ios\/getting_started\/installation\/device_provisioning\/\">Setting up a device for development<\/a>.<\/p>\n<p><a href=\"https:\/\/forums.xamarin.com\/111869\">Discuss this post in the Xamarin Forums!<\/a><\/p>\n<div class=\"grammarly-disable-indicator\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>iOS provisioning\u00a0is a notoriously hard concept to grasp;\u00a0even the best developers can be stumped by a signing identity.\u00a0As a content developer at Xamarin, I\u2019ve created thorough\u00a0documentation\u00a0on the topic,\u00a0which you can read\u00a0in the Xamarin Developer Center. Having these resources is great, but as a developer making something awesome, you shouldn\u2019t\u00a0have to understand how Apple\u2019s signing process [&hellip;]<\/p>\n","protected":false},"author":574,"featured_media":34587,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[2],"tags":[6,4],"class_list":["post-34583","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-developers","tag-ios","tag-xamarin-platform"],"acf":[],"blog_post_summary":"<p>iOS provisioning\u00a0is a notoriously hard concept to grasp;\u00a0even the best developers can be stumped by a signing identity.\u00a0As a content developer at Xamarin, I\u2019ve created thorough\u00a0documentation\u00a0on the topic,\u00a0which you can read\u00a0in the Xamarin Developer Center. Having these resources is great, but as a developer making something awesome, you shouldn\u2019t\u00a0have to understand how Apple\u2019s signing process [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/posts\/34583","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/users\/574"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/comments?post=34583"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/posts\/34583\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/media?parent=34583"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/categories?post=34583"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/tags?post=34583"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}