{"id":4432,"date":"2016-11-22T21:56:52","date_gmt":"2016-11-22T13:56:52","guid":{"rendered":"http:\/\/1darray.com\/blog\/?p=4432"},"modified":"2024-09-24T15:33:39","modified_gmt":"2024-09-24T12:33:39","slug":"publish-ipa-file-from-windows-pc-to-ios-without-mac","status":"publish","type":"post","link":"https:\/\/unitycoder.com\/blog\/2016\/11\/22\/publish-ipa-file-from-windows-pc-to-ios-without-mac\/","title":{"rendered":"Publish .ipa file from Windows PC to iOS without Mac"},"content":{"rendered":"<p>With Unity Cloud Build service, you can create iOS apps, without ever needing Macintosh+XCode!<\/p>\n<h3>First steps<\/h3>\n<p>&#8211; Register as an Apple Developer : <a href=\"https:\/\/developer.apple.com\/programs\/enroll\/\">https:\/\/developer.apple.com\/programs\/enroll\/<\/a><br \/>&#8211; Join Unity Cloud Build (if you haven&#8217;t already) : <a href=\"https:\/\/unity3d.com\/services\/cloud-build\" target=\"_blank\" rel=\"noopener\">https:\/\/unity3d.com\/services\/cloud-build<\/a><br \/>&#8211; Follow cloud build instructions there, its quite simple to setup iOS project<br \/>(but you&#8217;ll need to have the project at source control somewhere, for example github.com, bitbucket.com)<\/p>\n<h3>Registering your Devices<\/h3>\n<p>&#8211; You can only install on devices that are registered<br \/>&#8211; Go to https:\/\/developer.apple.com\/account\/resources\/devices\/list<br \/>&#8211; Add you UDID there, you can get UDID from https:\/\/showmyudid.com\/<br \/>&#8211; Info: https:\/\/www.igeeksblog.com\/how-to-find-iphone-udid-number\/<\/p>\n<h3>Creating .CSR file in Windows (Certificate Signing Request)<\/h3>\n<p>&#8211; Download openssl binary : <a href=\"https:\/\/indy.fulgan.com\/SSL\/\">https:\/\/indy.fulgan.com\/SSL\/<\/a> (i used <a href=\"https:\/\/indy.fulgan.com\/SSL\/Archive\/openssl-0.9.8r-x64_86-win64-rev2.zip\" target=\"_blank\" rel=\"noopener\">this version <\/a>)<br \/>&#8211; Unzip it<br \/>&#8211; Open Command Prompt on that folder\u00a0 *Note: Must run command prompt as an Administrator!<br \/>&#8211; Download missing openssl.cfg file from this page <a href=\"https:\/\/docs.oracle.com\/cd\/E19509-01\/820-3503\/ggeyz\/index.html\">https:\/\/docs.oracle.com\/cd\/E19509-01\/820-3503\/ggeyz\/index.html<\/a> and place it to the same folder with openssl (with filename openssl.cnf)<br \/>&#8211; Enter following command&gt; <em>openssl genrsa -out mykey.key 2048<\/em><br \/>&#8211; Enter following command&gt; <em>set OPENSSL_CONF=c:\\YourOpensslFolder\\openssl.cnf<\/em><br \/>&#8211; Enter following command&gt; <em>openssl req -new -key mykey.key -out CertificateSigningRequest.certSigningRequest\u00a0 -subj &#8220;\/emailAddress=yourAddress@example.com, CN=YourName, C=US&#8221;<\/em><br \/>&#8211; Now you can upload the generated &#8220;CertificateSigningRequest.certSigningRequest&#8221; file into Apple Developer site (when creating the Production Certificate in next step)<\/p>\n<h3>Setting Up Apple Developer Licenses<\/h3>\n<p>&#8211; Login into Apple Developer Account<br \/>&#8211; Create App ID (make it wildcard, so you can use it for many apps) <a href=\"https:\/\/developer.apple.com\/account\/resources\/identifiers\/list\" target=\"_blank\" rel=\"noopener\">https:\/\/developer.apple.com\/account\/resources\/identifiers\/list<\/a><br \/>&#8211; WARNING: Bundle ID is CASE-SENSITIVE!<br \/>&#8211; Go to &#8220;Certificates, Identifiers &amp; Profiles&#8221; <a href=\"https:\/\/developer.apple.com\/account\/resources\/certificates\/list\" target=\"_blank\" rel=\"noopener\">https:\/\/developer.apple.com\/account\/resources\/certificates\/list<\/a><br \/>&#8211; Create Distribution certificate (&#8220;iOS Distribution (App Store and Ad Hoc)&#8221;, cloud build says so)<br \/>&#8211; *If you have too many added (cannot add new), need to revoke some old cert first<br \/>&#8211; Upload signing certificate (its the file you created in earlier steps here)<br \/>&#8211; Download it (ios_distribution.cer)<\/p>\n<h3>Creating .p12 file in Windows<\/h3>\n<p>&#8211; Download your &#8220;ios_distribution.cer&#8221; from previous step (and copy it into your openssl folder)<br \/>&#8211; Open command prompt (NOTE run as administrator)<br \/>&#8211; Enter following command&gt; <em>openssl x509 -in ios_distribution.cer -inform DER -out developer_identity.pem -outform PEM<\/em><br \/>&#8211; (Uses the mykey.key we created in CRS creation)<br \/>&#8211; Enter following command&gt; <em>openssl pkcs12 -export -inkey mykey.key -in developer_identity.pem -out iphone_dev.p12<\/em><br \/>&#8211; enter password (write it down, as you will need it later) *Note: if you paste the password in from notepad, it might not work(?)<\/p>\n<h3><strong>Creating .mobileProvision file<\/strong><\/h3>\n<p>&#8211; Register a New Provisioning Profile at <a href=\"https:\/\/developer.apple.com\/account\/resources\/profiles\/list\" target=\"_blank\" rel=\"noopener\">https:\/\/developer.apple.com\/account\/resources\/profiles\/list<\/a><br \/>&#8211; Select Adhoc, continue<br \/>&#8211; Select AppID (select your wildcard id from there), continue<br \/>&#8211; Select certificate from list (should be todays date), continue<br \/>&#8211; Select devices (all, you need to have them added first in devices place), continue<br \/>&#8211; Set &#8220;Provisioning Profile Name&#8221;<br \/>&#8211; Click Generate<br \/>&#8211; Click Download &#8220;yourfile.mobileprovision&#8221;<\/p>\n<h3>Building .ipa with Unity cloud build<\/h3>\n<p>&#8211; Go to unity cloud build: <a href=\"https:\/\/cloud.unity.com\/home\" target=\"_blank\" rel=\"noopener\">https:\/\/cloud.unity.com\/home<\/a> &gt; Dev Ops &gt; Configurations &gt; Edit your config, add new credentials<br \/>&#8211; Create new IOS Project (just follow the instructions on the site, its quite simple)<br \/>&#8211; And when it asks for the Mobile Prov File and .p12 files, you now have them!<br \/>&#8211; If you want to Update your signing cert inside cloud build, do these steps:<br \/>&#8211; Go to dev ops, Build automation, Settings, Credentials \/ <br \/>&#8211; Edit existing configuration (&#8230; update credentials)<br \/>&#8211; Select your mobileprovision file<br \/>&#8211; Select your .12 file<br \/>&#8211; Enter password<br \/>&#8211; Then hit Build and download your .ipa file<\/p>\n<h3>Copying .ipa to iOS Device<\/h3>\n<p>&#8211; Note this is not tested on 2022.. since there is no itunes access to pad anymore either? (but you can use those generated cert files in Unity Cloud build)<br \/>&#8211; Install iTunes<br \/>&#8211; Connect ios device to your pc<br \/>&#8211; Click [&#8230;] and select Apps (shows all available apps on this machine, not from the ipad)<br \/>&#8211; Remove your old app from the list (if its there), right click, delete<br \/>&#8211; Then drag and drop the cloud build .ipa file here (cannot drag and drop it directly to the ipad)<br \/>&#8211; Then click [] Ipad icon to view your ipad<br \/>&#8211; Click Apps (in left panel)<br \/>&#8211; Scroll down to see your .ipa app listed there<br \/>&#8211; Click Install (or Update) button *it changes to Will Install or Will Update<br \/>&#8211; Click Apply button at the bottom<br \/>&#8211; Done! You can now run the app on ipad<br \/>*Note: First you need to authorize and sync the ipad to this machine<\/p>\n<p>&#8212;<\/p>\n<h3><strong>ALTERNATIVE WAY TO BUILD ON WINDOWS PC<\/strong><\/h3>\n<p>&#8211; Can use IOS Builder plugin from asset store (its bit complicated to setup, but it does work!) https:\/\/assetstore.unity.com\/packages\/tools\/utilities\/ios-project-builder-for-windows-15522?aid=1101lGti<\/p>\n<h4><strong>References:<\/strong><\/h4>\n<ul>\n<li><a href=\"https:\/\/unity3d.com\/learn\/tutorials\/topics\/cloud-build\/your-first-cloud-build-project\">https:\/\/unity3d.com\/learn\/tutorials\/topics\/cloud-build\/your-first-cloud-build-project<\/a><\/li>\n<li><a href=\"http:\/\/help.adobe.com\/en_US\/as3\/iphone\/WS144092a96ffef7cc-371badff126abc17b1f-7fff.html\">http:\/\/help.adobe.com\/en_US\/as3\/iphone\/WS144092a96ffef7cc-371badff126abc17b1f-7fff.html<\/a><\/li>\n<li><a href=\"http:\/\/help.adobe.com\/en_US\/as3\/iphone\/WS144092a96ffef7cc-371badff126abc17b1f-8000.html\">http:\/\/help.adobe.com\/en_US\/as3\/iphone\/WS144092a96ffef7cc-371badff126abc17b1f-8000.html<\/a><\/li>\n<li><a href=\"https:\/\/www.tbs-certificates.co.uk\/FAQ\/en\/openssl-windows.html\"> https:\/\/www.tbs-certificates.co.uk\/FAQ\/en\/openssl-windows.html<\/a><\/li>\n<li><a href=\"http:\/\/docs.telerik.com\/platform\/appbuilder\/cordova\/code-signing-your-app\/configuring-code-signing-for-ios-apps\/create-distribution-certificate\">http:\/\/docs.telerik.com\/platform\/appbuilder\/cordova\/code-signing-your-app\/configuring-code-signing-for-ios-apps\/create-distribution-certificate<\/a><\/li>\n<\/ul>\n\n\n<p><strong>Errors:<\/strong><\/p>\n\n\n\n<p>&#8220;Failed to update credentials! The provisioning profile and .p12 file are not compatible (certificates did not match)!&#8221;<\/p>\n\n\n\n<p>Generate your keys again, probably used wrong file or wrong password in some step..<\/p>\n","protected":false},"excerpt":{"rendered":"<p>With Unity Cloud Build service, you can create iOS apps, without ever needing Macintosh+XCode! First steps &#8211; Register as an Apple Developer : https:\/\/developer.apple.com\/programs\/enroll\/&#8211; Join Unity Cloud Build (if you haven&#8217;t already) : https:\/\/unity3d.com\/services\/cloud-build&#8211; Follow cloud build instructions there, its quite simple to setup iOS [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4433,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":true,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"Publish .ipa files for iOS without Mac #unitytips","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[420,3],"tags":[947,946,428,196,943,944,171,235,945],"class_list":["post-4432","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","category-unity3d","tag-apps","tag-cloud-build","tag-create","tag-ios","tag-ipa","tag-mac","tag-unity","tag-windows","tag-without"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2016\/11\/logo-apple-developer-2x.png?fit=636%2C396&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/p1KTaT-19u","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/posts\/4432","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/comments?post=4432"}],"version-history":[{"count":21,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/posts\/4432\/revisions"}],"predecessor-version":[{"id":5905,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/posts\/4432\/revisions\/5905"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/media\/4433"}],"wp:attachment":[{"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/media?parent=4432"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/categories?post=4432"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/tags?post=4432"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}