{"id":38257,"date":"2018-05-19T03:01:17","date_gmt":"2018-05-18T17:01:17","guid":{"rendered":"http:\/\/www.rjmprogramming.com.au\/ITblog\/?p=38257"},"modified":"2018-05-19T10:20:24","modified_gmt":"2018-05-19T00:20:24","slug":"xcode-ios-mobile-development-distribution-development-certificate-tutorial","status":"publish","type":"post","link":"https:\/\/www.rjmprogramming.com.au\/ITblog\/xcode-ios-mobile-development-distribution-development-certificate-tutorial\/","title":{"rendered":"Xcode iOS Mobile Development Distribution Development Certificate Tutorial"},"content":{"rendered":"<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/Mac\/Xcode\/certificate.pdf\"><img decoding=\"async\" style=\"border: 15px solid pink;float:left;\" alt=\"Xcode iOS Mobile Development Distribution Development Certificate Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/Mac\/Xcode\/certificate_200.jpg\" title=\"Xcode iOS Mobile Development Distribution Development Certificate Tutorial\" \/><\/a><p class=\"wp-caption-text\">Xcode iOS Mobile Development Distribution Development Certificate Tutorial<\/p><\/div>\n<p>We&#8217;re not sure where today&#8217;s &#8220;Xcode iOS Mobile Development Distribution Development Certificate&#8221; topic fits <i>into one of<\/i> exactly &#8230;<\/p>\n<ul>\n<li><i>Start Game<\/i><\/li>\n<li>Middle Game<\/li>\n<li><i>End Game<\/i><\/li>\n<\/ul>\n<p>?  Sometimes, as you are in Xcode developing Swift or Objective-C code you are attending to the &#8220;Development&#8221; aspects to the <a target=_blank title='Apple Signing Certificates' href='https:\/\/developer.apple.com\/support\/certificates\/'>Signing Certificates you need from Apple<\/a> to develop  and distribute iOS mobile applications that eventually end up at the Apple <a target=_blank title='Apple Store' href='https:\/\/www.apple.com\/au\/ios\/app-store\/'>App Store<\/a>.   But when it comes to the &#8220;Distribution&#8221; certificates, we were emailed by Apple that ours was going to expire within the next month.<\/p>\n<p>With such matters, we prefer to deal with these matters there and then, and that is why we are writing this blog posting, because it is not a thing that can be done with a single click of a link &#8230; though the process starts that way.   So what is involved with what amounts to &#8220;Requesting a New iOS Distribution Certificate for Use with Xcode&#8221; to solve this issue now, rather than rushing it in a month&#8217;s time &#8230; or forgetting to do it?<\/p>\n<ol>\n<li>Click\/touch the link on the Apple email &#8220;Certificates, Identifiers and Profiles&#8221; &#8230; takes you to an &#8230;<\/li>\n<li>Apple Developer login screen asks for your Apple ID credentials &#8230; and then takes you to the &#8230;<\/li>\n<li>Certificates, Identifiers and Profiles webpage of the Apple Developer website makes it apparent that our &#8230;\n<ul>\n<li>iOS Development certificate will expire on March 5, 2019 &#8230; not as much of a worry as &#8230;<\/li>\n<li>iOS Distribution certificate will expire on June 14, 2018 &#8230; so we &#8230;<\/li>\n<\/ul>\n<\/li>\n<li>Click\/touch the &#8220;Production&#8221; link on the (left hand side) &#8220;Certificates&#8221; menu &#8230; and then &#8230;<\/li>\n<li>Select the &#8220;App Store and Ad Hoc&#8221; radio button in the &#8220;Production&#8221; section (not the &#8220;Development&#8221; section) on the right hand side &#8230; then &#8230;<\/li>\n<li>Click\/touch &#8220;Continue&#8221; button<\/li>\n<li>Now we are at the &#8220;Request&#8221; tab (2 of 4) in a web page called &#8220;About Creating a Certificate Signing Request (CSR)&#8221; &#8230; the instructions of which will get you to &#8230;<\/li>\n<li>Open &#8220;Keychain Access&#8221; application &#8230; and select &#8230;<\/li>\n<li>Keychain Access (menu) -&gt; Certificate Assistant -&gt; Request a Certificate from a Certificate Authority&#8230; &#8230; and as advised previously &#8230;<\/li>\n<li>Fill in &#8220;User email address&#8221; (but skip the &#8220;CA email address&#8221;) and choose the &#8220;Saved to disk&#8221; radio button &#8230; before &#8230;<\/li>\n<li>Click\/touch &#8220;Continue&#8221; button<\/li>\n<li>Gets you saving that CSR to a file on your computer &#8230; asked for by &#8230;<\/li>\n<li>Now we are at the &#8220;Generate&#8221; tab (3 of 4) in a web page called &#8220;Generate your certificate&#8221; with a &#8220;Choose file&#8221; button &#8230; then we find that file last referenced to &#8230;<\/li>\n<li>Click\/touch the &#8220;Open&#8221; button<\/li>\n<li>Click\/touch &#8220;Continue&#8221; button<\/li>\n<li>Now we are at the &#8220;Download&#8221; tab (4 of 4) in a web page called &#8220;Your certificate is ready&#8221; &#8230; and we &#8230;<\/li>\n<li>Click\/touch &#8220;Download&#8221; button<\/li>\n<li>Double click the downloaded &#8216;ios_distribution.cer&#8217; certificate file &#8230; which brings back into play &#8230;<\/li>\n<li>&#8220;Keychain Access&#8221; application displays a dialog box &#8220;Do you want to add the certificate(s) from the file &#8216;ios_distribution.cer&#8217; to a keychain?&#8221; &#8230; and we &#8230;<\/li>\n<li>Click\/touch &#8220;Add&#8221; button &#8230; so that&#8230; voila &#8230; when we, now, open the &#8230;<\/li>\n<li>Certificates, Identifiers and Profiles webpage of the Apple Developer website makes it apparent that our &#8230;\n<ul>\n<li>iOS Development certificate will expire on March 5, 2019 &#8230; not as much of a worry as &#8230;<\/li>\n<li>iOS Distribution certificate will expire on June 14, 2018 &#8230; but there is also one extending to &#8230;<\/li>\n<li>iOS Distribution certificate will expire on May 17, 2019 &#8230; yay!!!!!<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>The upshot of this is that Xcode iOS <b>development as<\/b> &#8230;<\/p>\n<ul>\n<li><i>Start Game<\/i><\/li>\n<li><b>Middle Game<\/b><\/li>\n<li><i>End Game<\/i><\/li>\n<\/ul>\n<p> &#8230; work will not be hampered by the threat of expired certificates, for a while, <b><i>as will<\/i><\/b> &#8230;<\/p>\n<ul>\n<li><i>Start Game<\/i><\/li>\n<li>Middle Game<\/li>\n<li><b><i>End Game<\/i><\/b><\/li>\n<\/ul>\n<p> &#8230; distribution of those apps to the App Store not be hampered by the threat of expired certificates, at least for a while.<\/p>\n<p>You can see us doing this with this <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/Mac\/Xcode\/certificate.pdf\" title=\"Click picture\">PDF slideshow<\/a> presentation.<\/p>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d38257' onclick='var dv=document.getElementById(\"d38257\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/keychain\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d38257' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n","protected":false},"excerpt":{"rendered":"<p>We&#8217;re not sure where today&#8217;s &#8220;Xcode iOS Mobile Development Distribution Development Certificate&#8221; topic fits into one of exactly &#8230; Start Game Middle Game End Game ? Sometimes, as you are in Xcode developing Swift or Objective-C code you are attending &hellip; <a href=\"https:\/\/www.rjmprogramming.com.au\/ITblog\/xcode-ios-mobile-development-distribution-development-certificate-tutorial\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,20,37],"tags":[91,2551,2196,380,626,1908,1909,1807,725,795,796,1319,1473],"class_list":["post-38257","post","type-post","status-publish","format-standard","hentry","category-elearning","category-ios","category-tutorials","tag-apple","tag-certificate","tag-csr","tag-email","tag-ios","tag-keychain","tag-keychain-access","tag-link","tag-mac-os-x","tag-mobile","tag-mobile-app","tag-tutorial","tag-xcode"],"_links":{"self":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/38257"}],"collection":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/comments?post=38257"}],"version-history":[{"count":10,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/38257\/revisions"}],"predecessor-version":[{"id":38277,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/38257\/revisions\/38277"}],"wp:attachment":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/media?parent=38257"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/categories?post=38257"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/tags?post=38257"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}