Build an Xcode project on Windows - ios

I need to compile an Xcode project on Windows. I don't need to make one, because it is automatically generated. I am new to iOS development, and I don't plan to submit to the App Store or pay Apple 100$ to sign it, I just want to build an IPA I can install on my jailbroken device. This is just for personal use. When I tried setting up a vitrual Mac it always fails to boot. Is there any fix to that? Is this even possible?

Your best bet would be building a hackintosh or getting ahold of a mac to use/buy.
If you have an intel computer that is somewhat modern, chances are you can install OS X on it (there might be a few inconsistencies that you may be able to iron out with a little time and money). Just do some research on your chipset. Maybe somethings are compatible and some aren't; you can fill those voids through buying considerably cheap hardware to get a fully working machine. Consult this page: CustoMac: Component Buyer's Guide to get a repository of confirmed supported components. There is also a huge community on reddit that is more than helpful at assisting others who are trying to get their hackintosh working.
If you do have an AMD there is still hope, I had my 8350 working on yosemite before I upgraded to an intel. I can't link you to the unsigned iso, but you can search for it. The distro is by "Nerish", you can download the iso or find the kernel and manually install it.
I'm currently running an i7 6700k CPU with an Asus Sabertooth z170 Mark1 motherboard, 16gb ddr4 corsair ram, and a GTX 970. Everything is working well. I have both windows and OS X sierra installed so that I can do my normal business work and easily develop in XCode.

No, it's not possible (as of now). To build an Xcode project you need an environment, that is just not present on Windows. I mean a lot of libraries, frameworks and tools that are shipped with macOS.
One possible way is to try to find a working macOS VM / install a "Hackintosh", but be warned that both actions are illegal according to macOS ToS.
By the way, you don't need to pay Apple 99$ to install your software on a device. You just need a Mac.

Related

How to build a react native project for iOS in windows pc [duplicate]

We are starting to work with react-native at my company. We have one mac and the rest of the team is running on windows.
Is there a way to write the app on windows with the ios device connected to the windows machine or local wifi. Then launch the build on the mac (from the windows pc) and get the app launched on the ios device ? So it would like using the mac only as a build/package server.
Hope i am clear enought.
Thanks.
We can launch the build on windows using Virtual Machine, the detailed steps for doing that can be found in the following link:
https://blog.udemy.com/xcode-on-windows/
Honest advice
The functionality of developing IOS apps on windows is something that Apple intentionally wants to block and hence tries to give you hard time doing that by purposeful hindrances in the software that slow you down in such attempts.
To do that, you will need to install Xcode, which requires MacOS, which you would have to install on a virtual machine if you ever want to use on windows, which itself is against the apple terms and policy
So, even if it works, you wouldn't be smoothly developing in such blocked environment. So I believe it isn't worth spending time on.
I am writing this since I have tried it myself, and want to help you to not waste your time. Since most websites during search including on youtube, this subject is for clickbait with videos with more dislikes than likes. The most you can get is the following
Use cloud services like MacInCloud, MacStadium, XcodeClub ( They are expensive )
Install MacOS on virtual machine like VirtualBox or Vmware ( Apple intentionally hinders such activities and you will have hard time installing it let alone using it for bearable development )
Build and use hackintosh ( expensive, I prefer buying mac )
I hope this saves your time
You should explore the option of running macOS in VMWare on Windows machines for building purposes.
EDIT:
Now using:
expo build:android
expo build:ios
Way simpler.
Old question, but for’people who are still searching for an easy solution, take a look at https://appcenter.ms
App center let you to build iOS app in the cloud, it’s free (unless you need lot of builds), easy (you just need to know how provisioning profile and certificate works and host your code on a online fit repo).
We use it to build and deploy app on iOS and android for 3 year (even if we work on Mac)
We only have 2 main issues: it’s slow 30 minutes for an iOS build, and not extremely stable. Sometime we need to relaunch build 3-5 times.
Well, you can setup a virtual machine.
Install VM Ware software and add MacOS image to run the operating system.
Then setup Xcode and build the react native iOS app.

React-native: How to build for ios from windows

We are starting to work with react-native at my company. We have one mac and the rest of the team is running on windows.
Is there a way to write the app on windows with the ios device connected to the windows machine or local wifi. Then launch the build on the mac (from the windows pc) and get the app launched on the ios device ? So it would like using the mac only as a build/package server.
Hope i am clear enought.
Thanks.
We can launch the build on windows using Virtual Machine, the detailed steps for doing that can be found in the following link:
https://blog.udemy.com/xcode-on-windows/
Honest advice
The functionality of developing IOS apps on windows is something that Apple intentionally wants to block and hence tries to give you hard time doing that by purposeful hindrances in the software that slow you down in such attempts.
To do that, you will need to install Xcode, which requires MacOS, which you would have to install on a virtual machine if you ever want to use on windows, which itself is against the apple terms and policy
So, even if it works, you wouldn't be smoothly developing in such blocked environment. So I believe it isn't worth spending time on.
I am writing this since I have tried it myself, and want to help you to not waste your time. Since most websites during search including on youtube, this subject is for clickbait with videos with more dislikes than likes. The most you can get is the following
Use cloud services like MacInCloud, MacStadium, XcodeClub ( They are expensive )
Install MacOS on virtual machine like VirtualBox or Vmware ( Apple intentionally hinders such activities and you will have hard time installing it let alone using it for bearable development )
Build and use hackintosh ( expensive, I prefer buying mac )
I hope this saves your time
You should explore the option of running macOS in VMWare on Windows machines for building purposes.
EDIT:
Now using:
expo build:android
expo build:ios
Way simpler.
Old question, but for’people who are still searching for an easy solution, take a look at https://appcenter.ms
App center let you to build iOS app in the cloud, it’s free (unless you need lot of builds), easy (you just need to know how provisioning profile and certificate works and host your code on a online fit repo).
We use it to build and deploy app on iOS and android for 3 year (even if we work on Mac)
We only have 2 main issues: it’s slow 30 minutes for an iOS build, and not extremely stable. Sometime we need to relaunch build 3-5 times.
Well, you can setup a virtual machine.
Install VM Ware software and add MacOS image to run the operating system.
Then setup Xcode and build the react native iOS app.

How to develop iOS applications, if I can't afford a Mac?

I'm learning, how to create mobile applications. The Android part is ok, I can test it well. But to learn, and test for iOS, I have to install iOS simulator, which works only on OSX. But I can't afford to buy one. Here in eastern europe the used ones are also really expensive.
I tried to install OSX (Hackintosh) to a virtual machine. But it doesn't really works, because my laptop has an old AMD processor.
Is there any way, to write and test iOS application on Windows7? I am very desperate now. I see no chanche to write an iOS application. Everywhere I ask it, people just respond: "buy a mac". If you close my question, please help, where should I ask it.
Somebody has asked this before: How can I develop for iPhone using a Windows development machine?
If you have a fast Internet connection, this might work too: http://www.macincloud.com Or, if you want to spend some money but not too much: Mac Mini from eBay
This answer has already been in the rounds, but i'll say it once more, if you've got a PC with minimum core i5 and 4GB RAM, you can run OSX Mavericks on VMWare (comfortably with XCode 6, iPhone 5s Emulator and Safari all running at once). There is a good detailed tutorial on Youtube which works 100%. (I can't give you the links as it suggests illegal way of procuring the OSX Mavericks image)

Cordova development on Windows for iOS

I'm a longtime Windows desktop developer (25+ years) who has been doing native Blackberry 10 mobile development for 18 months. For my next app I have to hit as many mobile platforms as possible and have decided on Cordova (NOT PhoneGap) for the job.
I have successfully built and deployed a test app on Blackberry 10 and Android with the Cordova CLI. Now I need to get the workflow for iOS figured out before I start actually coding the real app so I can test on all platforms as I go along. I have OSX Mavericks running in a VMware VM from Windows 8.1 and have Xcode installed on OSX. I'm only slightly knowledgeable in OSX, but I know that I must use it to build for iOS. What I'm trying to figure out is how much duplication of effort I have to expend within OSX to build for iOS. I suspect the challenges would be the same if I was using a physical Mac to package and test for iOS so hopefully there are others out there who have figured out the cleanest way to do this.
Can I use Cordova on Windows to create the iOS project and source or do I have to create a duplicate project platform using Cordova on the Mac and keep duplicate source code there too? If I can do all that from Windows, do I just copy it over to Mavericks after every Cordova build and use Xcode to package and run it in an emulator? If anyone out there is running OSX in a VM for this like I am, is it possible to map a host path into OSX so I don't have to recreate the platform source at all after I build it from Windows? I'm assuming there is not way to automate the whole thing from Windows Cordova like there is for the Android and Blackberry platforms, am I wrong?
My desire is to do ALL coding in Windows and only use Maverick for the final bundling for iOS. After 25 years of pro development I'm not used to being a complete newbie and I'm not crazy about it. LOL
Learn Mac OS X. I know you feel out of sorts in this environment, but honestly -- it's not that difficult. In fact, I made the transition from Windows 7 rather than upgrading to Windows 8, and I was comfortable very quickly. (Far more comfortable than I am with a Windows 8 laptop others in my family use.)
Remember that Mac OS X is a Unix underneath (BSD). This means that if you are in any way familiar with Linux or Unix but are put off by working with the Mac GUI, you can almost always fall back to the terminal. (In my not-so-humble opinion, Mac OS X makes for a very nice *nix machine!)
Your VM should be able to share drives across the network, just like it would if it were a real machine (Apple supports SMB reasonably well). This way both environments could point to the same Cordova project without having to worry about copies. (You can copy the projects around, but it would be easier, in my opinion, just to share across the network. Less risk of accidentally doing something stupid.)
The only things that require a Mac are:
Creation of certificates / provisioning profiles (and there are ways around this on Windows, but it is not supported)
Submission to the app store
Remote debugging using Safari (You can use Weinre to come close, but it doesn't support breakpoints and such)
Local compilation of your code (and there are other toolchains available that do this on other OSes, but again, not supported by Cordova).
Running the app in a simulator
The above means that you can develop your app on Windows and only run to the VM for compilation / submission. With the advent of the Phonegap Developer app (http://app.phonegap.com), you can skip the (re)build step during development and testing as well (as long as you use only core plugins).
Note: I know you indicate you are using Cordova and NOT PhoneGap. What's nice is that, ATM, the Phonegap Developer App works just fine with Cordova projects (whereas PG Build often requires config.xml to be moved and plugins to be handled differently). It does require the PhoneGap CLI to be installed. As long as you are using core plugins, it definitely saves time by eliminating the rebuild steps.
The Cordova project can be created on any platform -- but I know there was a time when adding the iOS platform to your project (cordova platform add ios) would check that all pre-reqs were met, but I'm not sure if that is still the case. It can't hurt to try. But if it is required, use a network share and add the platform on the VM. Keep in mind that the platforms should be thought of as build artifacts -- your app code should live in the root www, which doesn't depend on the added platforms.
Do not rely on the iOS Simulator to tell you anything about how the app works or performs on a real device. The simulator has all the power of your desktop (processor speed, memory, etc.) and lacks many on-device features as well. I suspect the visual performance of the iOS Simulator will be horrid, since it will rely on the GPU as routed through the VM. (Frankly, it's not always great on a real Mac.) You really, really, really must have a real device to test on. (Again, the PhoneGap Developer App can ease the pain of repeat deployments for testing.)

Starting iPhone app development in Linux? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I've heard that you need to get a Mac if you want to develop iPhone apps. Is this true?
Is it possible to develop iPhone apps using Linux? If yes, what do I need and where do I download the necessary tools?
To provide a differing response, I'm running OS X and Xcode on a virtualised (VMware) machine on Linux. CPU is a Core2Quad (Q8800), and it is perfectly fast. I found a prebuilt VM online (I'll leave it to you to find)
Xcode/iPhone development works perfectly, as does debugging via USB to the phone itself.
It actually surprised me a lot - but I've had no issues at all.
The answer to this really depends on whether or not you want to develop apps that are then distributed through the iPhone store. If you don't, and don't mind developing for the "jailbroken" iPhone crowd - then it's possible to develop from Linux.
Check this chap's page for a comprehensive (if a little complex) guide on what to do :
http://www.saurik.com/id/4
It seems to be true so far. The only SDK available from Apple only targets the macOS environment. I've been upset about that, but I'm looking into buying a mac now, just to do iPhone development. I really dislike what they are doing, and I hope a good SDK come out for other environments, such as Linux and Windows.
Obstacles regarding the SDK:
The iPhone SDK and free software: not a match
Apple's recently released a software development kit (SDK) for the iPhone, but if you were hoping to port or develop original open source software with it, the news isn't good. Code signing and nondisclosure conditions make free software a no-go.
The SDK itself is a free download, with which you can write programs and run them on a software simulator. But in order to actually release software you've written, you must enroll in the iPhone Developer Program -- a step separate from downloading the SDK, and one that requires Apple's approval.
I think it's rather elitist for them to think only macOS users are good enough to write programs for their phone, and the fact you need to buy a $100 license if you want to publish your stuff, really makes it more difficult for the hobbyist programmer. Though, if that's what you need to do, I'm planning on jumping through their hoops; I'd really like to get some stuff developed on my iPhone.
There used to be a project dedicated to solve this defect: iphone-dev
The goal of the iphone-dev project is to create a free, portable, high quality toolchain to enable development for the Apple iPhone and other embedded devices based on the ARM/Darwin platform.
Regarding the alternative tool chain, Saurik's site is useful but for latest firmware development he indicates building on the iPhone itself and stays clear of indicating that you may need to copy necessary iPhone firmware files to your Linux environment. It's not impossible, but just requires additional work, especially for signing the code (there are open alternative solutions out there as well).
Also, take a look at other guides (for the same tool chain) that approach it more methodically.
I'd suggest to still do the final build and code signing and packaging in XCode (which may mean borrowing someone's Mac) in case you run into problems when submitting the application to Apple. Using the alternative tool chain opens up (at least on the Mac) the possibility of using other IDEs other than XCode for developing the application and again resorting to XCode for the deployment and testing with the simulator.
Of course if you do get the code signing / certificate generation working from the command line outside of XCode then you can install a certificate on your actual iPhone and test there (installing the app via iTunes w/your certificate).
The only way I know of doing development in Linux for the iPhone would be to install Vmware and work on getting OS X running in a virtual machine. With that said there are some "legal" concerns in doing that. It is reported that OS X Server can be virtualized but as far as the development story on that I don't know.
If you are truly serious, that's the what I'd investigate.
Good luck.
You can use Tersus (open source), and it lets you export the app as an Xcode project.
You might be able to write code on a Linux box that will eventually find itself on an iPhone or iPad, but ultimately you would need a Mac to test or deploy the code to the iPhone or to submit it to the App store. So ultimately you need a Mac, so you might as well do the work on the Mac too, with all the tools that Apple provide. There are alternatives to Xcode & Objective-C, such as Monotouch - but these utilize the Apple tools too.
You can with some work run OS X in a VM on Linux. However I should point out that this will break the OSX license agreement, even if you buy the copy of OSX - as it is only licensed to run on Apple hardware.
Sorry to give you this news - the ecosystem around the iPhone/iPad is very tightly controlled.
EDIT: One major exception to this is writing a web app for the iPhone. There are some excellent web apps for the iPhone which are almost as good as user experience as a native app. However I did interpret your question to be about native app development. Web apps, although the user can create an icon for launching them - are still 'second class' citizens.
I've had success building iOS apps on linux using the iOS clang toolchain by cjacker. Basically it consists of the upstream clang and llvm tools from your linux distro, a linux port of apple's linker and some extra tools to help simplify the build process (such as converting xcode projects to Makefile format).
It does take a few steps to install, but you're a software developer so you'd be used to that. I posted an up to date howto for Debian 7 (Wheezy) online:
https://rogerkeays.com/how-to-build-an-ios-toolchain-for-linux-debian-7
Otherwise you want to go with the generic instructions which are a little older:
http://code.google.com/p/ios-toolchain-based-on-clang-for-linux/wiki/HowTo_en
Good luck.
There's a framework called Rhodes.
The concept is based on Ruby on Rails and you develop your mobile app in Ruby and HTML, and you can write your code in a Linux environment. You can then create an account at Rhohub, where you add the code (through GitHub), and it allows you to compile it for iPhone, Blackberry, Android, Windows Mobile and Symbian, all off the same code. You don't have to code in Objective-C for iPhone, nor Java for Android, etc. It does the conversions for you. All you need to do is stick to the Rules for creating an iPhone application (or the Phone's you want to develop for) so it can be accepted at iTunes (or the equivalent market).
This will allow you to add the app to iTunes as well.
I have not found any emulators, however, which means that to test your app you need to put it on an iPhone, which is a mission.
I am using this option as I want to create apps for all phones and I use Ruby on Rails already. If you just want to make an app for an iPhone, then invest in a Mac.
Hope this helps.
You're right non-jailbroken phones are limited to Apple's App store and Apple "has the right" to enforce whatever rule, it's totally nonfree territory.
However while developing, one won't have to deal with Apple at all. You can use e.g. rsync to upload the code to the device and test it.
To a certain extent, yes, it is possible. You can type Objective-C code and set up your projects. You can even test the C and C++ parts of your code with gcc.
What you cannot do:
Use Interface Builder to set up your interface, as it's Mac-only. (Not required, but recommended.)
Compile code that uses Apple's Cocoa classes - they don't exist on Linux.
Test code in the Simulator - there isn't one for Linux.
Compile code for real devices or for the App Store - all this requires tools that Apple only provides for OS X.
You need to get mac for it. There are several tool chains available (like win-chain) that actually lets you write and build i Phone applications on windows. There are several associated tutorials to build the Objective C code on Windows. But there is a problem, the apps hence developed will work on Jail broken i Phones only.
We’ve seen few hacks to get over that and make it to App Store, but as Apple keeps on updating SDKs, tool chains need regular updates. It’s a hassle to make it up all the time.If you want to get ready app you can also take help from arcapps its launches apps at a reasonable price.
iphone app development
I did an attempt to port cocos2d-iphone to GNUstep so that you can Develop game based on cocos2d. However for publishing you need a mac. cocos2d-GNUstep.
I would recommend getting a mac because the ios simulator is amazing for testing in the early stages of an app. But I do know of a small company we work with that develops using Unity so they don't need a load of macs. That way they only need one mac for the office and that's just to compile the final build. It also means it works on android but it really depends on what your building because it's a games engine. You may want to look into web apps using frameworks like Sencha Touch Mobile
Unity: http://unity3d.com/
Sencha Touch: http://www.sencha.com/products/touch/
If you value your time, buy a Mac! I don't know enough about Linux development options to offer a viable solution, but it seems the proposed methods involve some pretty roundabout work. If you plan on seriously writing and selling iPhone apps, I think you could easily recoup the cost of a Mac Mini or Macbook. :-)
You will never get your app approved by Apple if it is not developed using Xcode. Never. And if you do hack the SDK to develop on Linux and Apple finds out, don't be surprised when you are served. I am a member of the ADC and the iPhone developer program. Trust, Apple is VERY serious about this.
Don't take the risk, Buy a Macbook or Mac mini (yes a mini can run Xcode - though slowly - boost the RAM if you go with the mini). Also, while I've seen OS X hacked to run on VMware I've never seen anyone running Xcode on VM. So good luck. And I'd check the EULA before you go through the trouble.
PS: After reading the above, yes I agree If you do hack the SDK and develop on Linux at least do the final packaging on a Mac. And submit it via a Mac. Apple doesn't run through the code line by line so i doubt they'd catch that. But man, that's a lot of if's and work. Be fun to do though. :)

Resources