Go to unity cloud build. Create a new IOS projects (follow the instruction on the site) And when it as for the provision profiler and.p12 files you now have those files. Then hit build and download your.ipa file. You do not have to purchase anything apart from the Mac mini. Well you need to purchase the apple developer license if you want to build and test the app on your iphone/ipad and ofc to publish to the app store. XCode itself is free. Just sign in to the app store on your mac and download it and all the tools you need. Hope that helps.
Published by on
How to develop and iOS app without ever touching an Apple device for development.
Rational
I have refined my tool-set for developing code over the past 20+ years and chosen Linux as my go-to operating system and platform. As a phone I havechosen to use an iOS device, mostly because my family and my colleagues at work use iOS, too. Recently, I wanted to create my first iOS app myself andrecognized only then how many obstacles Apple is putting in your way if you want to do that without touching an Apple device for development. This isclose to impossible! especially if you have no prior knowledge about the Apple / Xcode development eco-system. I managed to create my app on Linux,nevertheless, without ever touching an Apple device for development. In this blog post I’d like to share my learning.
Caveat
Just to make this clear up-front: I needed to sign-up for an Apple developer account for 99$/year in order to generate the required code signingcertificates to get the app on my iPhone.
It looks like there are some ways to get an iPhone app onto your device even without an Apple developer account, but either I did not fully trustthese approaches or they seemed overly complex:
If you happen to have mastered a way to get an iPhone app onto your device even without an Apple developer account, I’d like to hear about that. Justleave a comment below.
React-Native vs. Flutter
You can create cross platform apps with several different frameworks. I only looked in more detail atReact-Native and Flutter. WithReact-Native / Expo you can get really quickly an app to the point where you can interact with it on youriPhone via the Expo App as a sort of sandbox. But I was not able to create a standalone app for the iPhone without access toa Mac after that initial quick success. Therefore, I’ll describe below, how I managed to create a standalone app for my iPhone without ever touching anApple device by using Flutter and the Codemagic build service.
Setting-up the Flutter Hello-World Project
As my goal was to proof that I can develop an iOS app on Linux without the need to touch an Apple device I simply used the Flutter hello-worldexample without further modifications.
Using Codemagic as a Build Service
If you want to learn more about the background of Codemagic go ahead and read the following article: Nevercodepartners with Google and launches a dedicated CI/CD tool for Flutterapps.
The basic approach on how to get a Flutter app onto your iOS device is described in the following two articles:
- Developing and debugging Flutter apps for iOS without a Mac
- This article describes how to use Cydia Impactor. The article says: “You will be prompted to enter your Apple IDemail and password.” I did not trust the tool enough to give it my Apple ID email and password, but decide for yourself.
- How to develop and distribute iOS apps without Mac with Flutter & Codemagic
- You will also need to read through How to sign Flutter apps for iOS automatically without a Mac
- This is their Codemagic-Demo app and the most important piece of it is itsproject.pbxproj file.
The most difficult part here is to get the project.pbxproj file right! Normally this file and the required certificates are generated by Xcode andonce you have them in place you don’t need Xcode again. If you can save yourself the trouble to create these artifacts by hand by just using an Appledevice once (and you know how to do that) I’d strongly suggest you do that. I’ll describe next how you can create the required artifacts even withoutaccess to Xcode.
In Codemagic in the build settings you will have the option to let Codemagic
take care of the certificates for you,but this would require to give your Apple developer account credentials to Codemagic
. If you don’t have a problem with that then just go ahead. Thisis the quickest way to get the Codemagic
build running and you won’t need to read most of the below. But if you are like me and don’t like to handout your credentials of your Apple developer account to third party services like Codemagic then just follow the below steps to make it work.
Create Xcode Artifacts by Hand
You will need:
- iOS App Development Certificate
- Registered Device
- App Profile with App ID
iOS App Development Certificate
For more background about how to use OpenSSL to create Certificate Signing Requests (CSRs) have a look at:
But otherwise just create an ios-dev.cnf
file similar to:
Remember to replace First
and Last
to your first and last name respectively.
The value to put for OU
is what you see when you log-in to the Apple developeraccount and go to the Certificates, Identifiers & Profiles
section. Look at the right top below your name.
Then execute:
You can look at the ios-dev.csr
file via the gcr-viewer
application or similar:
Next go to the Certificates
section in the Apple developer account web-site andclick the +
right besides Certificates
. Select iOS App Development
, click Continue
and upload your ios-dev.csr
file. Once that is done youriOS App Development
certificate is created and you can download it.
App ID
As next step we’ll create an App ID
in the Identifiers
section of the Appledeveloper account web-site. For the description
you can put whatever you like. Iused “flutterHelloWorld”. For the Bundle ID
I used “dev.weisser-zwerg.flutterHelloWorld”. Then click Continue
and click Register
again. Once you’re done you will have created your App ID
.
Register Device
In order to be able to use the app on your device you will have to register your iOS device in the Devices
section of the Appledeveloper account web-site. The most difficult part here will be to get hold of theDevice ID (UDID)
. I only was able to do that via a Windows host and iTunes:
It seems that an alternative to using iTunes is via a Mac OS X device via its System Report
as described here:
“iOS App Development” Provisioning Profile
As next step we’ll create an iOS App Development
provisioning profile in the Profiles
section of the Appledeveloper account web-site. Chose iOS App Development
and click Continue
. Select theApp ID
you created before and click Continue
. On the next screen select your iOS Development
certificate we created before and clickContinue
. On the next screen select your device that we registered before and click Continue
. Finally provide a Provisioning Profile Name
(Iused dev weisser zwerg flutterHelloWorld devel
) and click Generate
. You’ll need to download the provisioning profile so that you can use it laterin the Codemagic
configuration. My downloaded file was called dev_weisser_zwerg_flutterHelloWorld_devel.mobileprovision
.
Adapting the project.pbxproj
File
We will use the Xcodeproj ruby gem to adapt our project.pbxproj
file. You find the project.pbxproj
file of your project in ./ios/Runner.xcodeproj/project.pbxproj
. First, we will create a copy of the folder
Then we install the ruby gem:
Then create a script adapt_xcode_project.rb
with the following content:
And make it executable and run it:
Once that is done commit and push the files to GitHub. Codemagic will take the files from there.
Setting Up the Codemagic
Build
As already said above, we won’t use the Codemagic
automatic certificate handling process, but set-up a manual signing process. In order to do thatwe’ll have to create an ios dev certificate in .p12 format. Via openssl you can do that via:
In the above command we used ./ios-dev.cer
. This is the certificate you downloaded from the Apple developer web-site. The file is originally calledios_development.cer
after the download. This means that you either adapt the above command or rename the certificate.
Now go to the Codemagic web-site and create your account. Then create your build-configuration by clicking at the righttop on + Add app from custom source
. You only need to adapt two parts of the build configuration.
In the Build
part I deselected all other build-targets except the iOS
target and left the Mode
at Debug
. Don’t forget to press Save
to makeyour changes take effect!
In the Publish
part, click on iOS code signing
and select Manual
. Then upload your .p12
file via the Code signing certificate
and providethe password you used to encrypt your code signing certificate. Then upload the Provisioning profile
file you downloaded above, which was calleddev_weisser_zwerg_flutterHelloWorld_devel.mobileprovision
in my case. Again: don’t forget to press Save
to make your changes take effect!
Once that is done, we’re ready to trigger our first build. Especially after changing configurations I noticed that the build does not always workreliably. When it does not work, I did not get any error message or similar, but the log output just stopped at a certain step and the clock continuedto run. In principle forever, until you stop the build manually. The whole build should finish in around 3 minutes. If it takes longer than 5 minutesyou can interrupt the build process and retry. Most of the time it worked for me on second attempt, if the first one stalled.
The most critical (means: if things fail then most likely here) step is the Building iOS
step. The first part of this step is:
And this should finish below 60s. It will say something like:
Then starts the code signing part and it will say something like:
and later
Until 2019-10-09 there was a bug that prevented the manual codesigning to work. But it should work now.
Codemagic
will send you an e-mail about the build success, which contains a link to the installable app. If you click on that link on your iPhonewith the Device ID (UDID)
you provided above you’ll be able to install the app on your device.
Afterthoughts
Apple’s attitude towards developers is inacceptable
Up to recently I was agnostic to the “consumer side” of IT and was not aware of this whole situation around how difficult it is to create an iOS appwithout access to an Apple device. I find Apple’s attitude absolutely inacceptable! Why force a developer to re-learn her/his whole developmentworkflow? Nobody else does that!
We as a family bought 3 MacBook Pro’s for my two children and my wife. I thought that at least then they’d use a Unix underneath and have the chanceto learn interacting to some degree with a Unix operating system. This actually worked out quite ok and my children at least know how to use a bashshell and similar. After my experience described above, I am not sure if I will ever buy an Apple device again, though.
Feedback
Have you written a response to this? Let me know the URL via telegraph.
How to Install Xcode on Windows and build your own iOS or MacOS apps
If you really want to make Apps for iOSand MacOS Without paying any single penny on Apple hardware (MacBook or iMac) then you are at right place.
Here, In this article, we have answers to all your queries.
You must have heard about this myth that if you really want to build apps for iOS or macOS then you must own a MacBook or an iMac which is certainly not true.
You can make iOS apps without using Macbook or iMac. Yes! it is possible.
The reason they say this is because of Xcode (an IDE which is only available for MacOS ).
This software is only meant for Mac machines but now with the help of certain tools, you can operate Xcode in windows as well.
Now the question arises How to use Xcode on windows? There are many ways to do that.
We will tell you about the most efficient ways by which you will be able to achieve your iOS development goal.
Different Ways to use Xcode in Windows.
1. Virtual Machine (Vmware Workstation)
The first and foremost way to use Xcode in your windows machine is the use of a virtual machine.
It is a software which is capable of running different OS (operating system) in the existing OS.
In simple words, you will be able to use and control macOs and that can be of any version by just by installing it on Vmware.
Vmware is a virtual machine software. It basically fools your computer to believe that its Apple iMac or MacBook so that Xcode can be run on it.
Now the harsh reality.
Everything offers some pros and cons.
Vmware also has some pros and cons with it.
Yes, you will be able to enjoy macOS free of cost but it won’t be as responsive and fast as a real MacBook or iMac.
Even if you have the strongest hardware you may face some issues like lag or heating issues.
So we won’t strongly recommend it to you but if you just want to have a taste of it then of course you can go for this option.
2. Rent a Mac
The second option in this list is renting a Mac online.
This service is widely used by many developers who can’t afford to purchase Apple’s expensive MacBook or iMac.
You can even remotely access a mac by sitting in any part of the globe.
The best thing about this option is that the cost is really low and it’s the fastest option to get up and running.
Now there are many companies that offer this fantastic service.
Ios Development Without Mac
Some of them are:
This is the most well-known service for renting a mac online. We personally witnessed it a few months back and was very satisfied with their plans and quality service. As We said this before that it will be a bit slow but do very justice with its price.
You can get more information by visiting their website or by clicking the name above.
This is another service offered to use macOS X remotely. After MacinCloud this is the second best choice to opt for. But here too the issues will be the same related to speed and smoothness.
Our third option in this category is XcodeClub. This service is run by a dedicated developer himself and if we see the reviews many people are liking it. If you can’t go with the choices above then I recommend you to give this a try. So now you can work without Xcode for Windows, if your machine is not resource-rich. You can head-over to this cloud solution.
Building a Hackintosh
What is Hackintosh
Hackintosh is basically a pc which is capable of running MacOS as smooth as real iMac and MacBook. Yes, it is possible. In this option, you don’t need to use any virtual machine ( VMware ) or any online mac renting service. This requires the most effort out of all the options above presented. However, it can work for someone who wants a separate physical computer running MacOS. Now you can use Xcode on Windows to modify an operating system. You only need few things such as bootable USB-drive etc. In order to learn more about building Hackintosh, you can visit many websites on the Internet or just YouTube it. There are numerous step-by-step guides to follow.
Third Party Solutions
Last but not the least option you have, is the use of the third party solutions. But again as we said earlier you have to compromise some features either its speed or something else. Here you won’t be using Xcode in these solutions but you’ll be able to generate an app that can run on iOS devices. Check out these great Xcode alternatives if you are not satisfied with Xcode
ReactNative helps you to create real and exciting mobile apps using JavaScript only. This is supported by both ios and Android platforms. React Native acts as a framework that builds a hierarchy of UI (User Interface) components to build the JavaScript code. With React Native Framework, you can render UI for both iOS and Android platforms. Also, this framework is open source. The big advantage of React Native is that its components have counterpart rights which allows you to reuse the components for building both Android and iOS app. You won’t need Xcode for Windows to run this application.
Xamarin is a software company founded in 2011. Recently in 2016, Microsoft acquired it. Xamarin provides developers with tools to develop cross-platform mobile applications. As per Xamarin stats, more than 15000 companies rely on their tools and the list includes many big names out there.
This allows you to built hybrid cross-platform mobile apps using HTML, CSS, and JavaScript. It’s an open-source cross-platform Mobile Application development framework by Nitobi Software (now Adobe) which allows web developers to build mobile apps. Despite the fact that you’re utilizing HTML/CSS and JavaScript to create applications, recollect that it’s not a customary desktop program environment and the client encounter example is fundamentally extraordinary.
Appcelerator is an open source framework that allows the creation of native mobile apps on platforms of iOS and Android. It focuses on streamlining development whilst using powerful native components from JavaScript code. The biggest benefit of Appcelerator for developers is the ease of cross-platform development. From a single code base, a developer can produce an app that will run on virtually every tablet and phone in the market.
Xamarin Build Ios App Without Mac
Also Read:
Download Ios App To Pc
Conclusion
Compile Ios App Without Mac
So these were some ways to develop iOS and macOS apps for Windows. To do that you will need Xcode for Windows or any alternative for developing Mac, iOS apps . Tell us what method do you like and want to follow, would love to hear that.