iPhone Development on Hackintosh - iphone

My question is in regards to developing code for the iPhone / iTouch.
What with Apple's transition to the Intel platform for their chip, it is obviously now possible to run their OS on a PC.
So, with that, and my inherently cheap nature, I was wondering if it was possible to bypass the purchase of a refurbished Mac by running the iPhone SDK on a Hackintosh?
As I am more of a hobbyist then a serious developer at present, I'd basically like to get my feet wet before fully committing to this endeavor. In the long term I know that it would be better to purchase a Mac...

Yes, it's totally possible. I developed my first app on a Dell running the iATKOS OSX patch.
Whether it's worth it or not really comes down to how difficult it is to get a hackintosh install (Kalyway / iATKOS) running on your PC. With some PCs it's trivial and everything works. For others it's a nightmare and your networking/audio/graphics will never work completely. If you need to run a patched kernel (e.g. you don't have an Intel Core 2 Duo chipset) things become really awkward.
Your best bet is to take a note of the hardware in your PC and do some research on the various OSX86 forums.
Assuming you get everything working the only future concern is software updates. iPhone SDKs generally require the very latest OSX update (e.g. 10.5.6), but installing updates on hackintoshes with patched kernels is a nightmare.
If you enjoy tinkering with this type of thing and are comfortable partitioning your HDD and playing with boot flags then I'd say go for it. If not, consider picking up a used Mac-Mini on eBay/craigslist or something. If you find out that iPhone development really isn't for you then you can resell it lose practically nothing.

Yes, you can, but save yourself some time and pain.
Pick up a Mac mini or an iMac.

It's possible. But you are restricted to the choice of hardware for the hackintosh. Even if you get it right, no one can guarantee everything will work (sound, lan, etc.). If you can run the OS, you can run xcode with the SDK. But I don't think you'll be 100% satisfied with the end result.
As I see it if you want to run os x it's better to invest in a mac mini than in hardware for a hackintosh. Asuming you'll be buying all the components for the hackintosh.

I was in this dilemma recently, and decided to go with a real Mac rather than a Hackintosh after hearing the stories of my friend (who is doing it specifically for iPhone development). He was able to get iPhone development working, but his hackintosh is always having one issue or another; the most recent one was a constant boot cycling, wherein the machine would immediately reboot after loading the OS.
Look on the bright side: Apple products are popular and easy to sell. If you get one and sell it before the next generation comes out you can get most of your money back - money that would have been spent anyways on a new hard drive (to quarantine your hackintosh, heh) or OSX (assuming you meant to get the software in at least a remotely legal fashion).

Yes, you can. I have. But is it worth it?
If you are doing it for fun it's worth it.
If you are doing it for a real, useable Mac it's not worth it.
Now you will have a billion guys come down on me for saying that because some guys have built some truly impressive rigs but they are missing the point of a Mac. Macs just work well and are a pleasure to use while PC's just get stuff done and you probably secretly hate it.
I did it just for fun but I ended up spending more on a Hackintosh than I would have if I just bought a Mac Mini. Of course my computer is 4x as fast but it's just not the same as a real Mac. On Mac's everything just works... it's really nice. But on my Hackintosh nothing works without direct intervention on my part... not very nice.
I always planned on using that computer for windows development anyway so it wasn't a waste but otherwise it would have been a HUGE waste.

You can do it. I have 3 hackintoshes that we develop on, but at the end of the day you will need a real mac to be an apple developer.

One problem I see with the Hackintosh approach is that if you get it working now, you are not guaranteed to have the same machine working when an update to Mac OS comes out in the future, and this could be especially important if the iPhone SDK and/or developer tools that you want to use are hosted only on the next generation of the system software.
In the long run, I think it'll be better to go with a cheap (and even a used) Mac of some kind, like a mini or a MacBook.

You can do it, I started learning iPhone/Objective-C/Cocoa development using a virtual machine and an image of OSX (it was a pain to setup though and I think I could only use OSX 10.5.2)
It's just not worth the hassle, in the end I just stumped up £365 or so for a second-hand 2007 model MacBook off eBay and it's been smooth sailing ever since.

On a $10 P4 2.4GHz, 1GB RAM, hackintosh works fine and xcode/iphone sdk works as well. Its a little slow, but stable, and a very viable option for someone looking to just test the water of iphone development, without committing the cash.

Yes you. right now I am learning iphone app development in a Hackintosh (iATKOS S3 version2).
See http://wiki.osx86project.org/ and http://insanelymac.com/ for any problem with installing hackintosh

Hackintoshes are a great value. You can spend anywhere from $400 to $4000 and get an extremely capable machine.
You want to go with a Gigabyte brand Z87 motherboard, Intel Core i CPUs, Nvidia graphics, and SSDs. Avoid budget hardware, it usually isn't compatible. Or you could go the Intel NUC route and get a NUC, a small PCIe SSD (32GB or 64GB should do the trick), and some laptop ram.
Do your research and you're good.

Current version of Visual Studio (2019) and Xamarin Forms will enable to develop IPhone apps by utilizing Xamarin Hot-Restart (Preview) feature without requiring a Mac.
In my case, I have an IPhone and would like to develop an IPhone app however I was being forced (until this day) to buy a Mac (or at least chosing the Hackintosh way) develop an IPhone App. Now I can write and debug my app directly on my IPhone (which is fair!).
Details here:
https://nicksnettravels.builttoroam.com/ios-dev-no-mac

If you have so little belief in yourself that you feel the need to save a couple of hundred dollars by hacking a pseudo-Mac together just don't bother trying in the first place.
Furthermore you will pretty certainly fail (or spend so much time trying to succeed you'll have wasted vastly more time getting things to work than you saved on cost). The two clinchers are
You have to run code on a iPhone or touch, because the emulator is not perfect and will mislead you without you even being aware of it - I have code that runs on the emulator but not as expected on hardware
Apple's key signing is hard enough to get working with the real thing, it took me a couple of hours and I'm not alone - there's a great many posts out there on development forums from people having difficulties managing it. Getting it working on a Hacked machine - well you may be lucky, but are you prepared to gamble?

Related

Monotouch and Hackintosh

I have developed an app on monotouch-5.2.5 evaluation version.
Now i want to deploy on Apple Store and to do it i have bought a full monotouch version (5.2.10) and i have installed all certificate and provisioning profile.
When try to build my app i have the following problem:
mtouch exited with code 99
i have this configuration:
monodevelop 2.8.6.5
mac os x version 10.6.7 (is an HACKINTOSH)
Do could it be a incompatibity problem beetween HACKINTOSH and MonoTouch?
...This it'll seem strange because i've develop on it without problems.
The Xamarin.Mac / Xamarin.Ios licencing does some kind of hash of the Mac hardware to give your machine a unique ID. This locks the MonoTouch licence to your machine.
I know previously when people have changed hard drives etc. it has broken the key, this is because they use the Hard drives serial number as part of the hash. They may also use hardware MAC addresses and other IDs.
I imagine something they use in a Genuine Mac is not available in your Hackintosh.
Xamarin states on their website they do not support Hackintosh. They claim it is too hard to ensure their compiler works properly in such a system, but they do not stop there. They also make it impossible to install a key on a Hackintosh or on a Mac running in a VM!
I can understand they wont provide support for issues happening in such an environment, but to force developers to buy a Mac is a bad move. Especially considering a lot of their customers choose Monotouch exactly because they are comfortable with Windows/.net already and are not eager to migrate 100% to Mac OS, it is pretty obvious many prefer to work in a VM or use their existing PC hardware.
I used the trial version in a VM without any issues whatsoever, so whatever technical issues they might be worried about seems irrelevent. So I think this is more a political issue than a technical one.
I can only hope they will change their policy, or that someone gets annoyed enough to crack their compiler so that we can all use it the way we prefer.
I have a Hackintosh, I just encountered the same problem, and I also can not login app store, because ethernet card not built-in, I modified the DSDT to complete built-in, it is OK.
It is obvious that you need to contact Xamarin Support because they know better whether this is the exact problem or not. but....
A Statement in Xamarin Page demonstrated that it is impossible to use MonoDevelop/MonoTouch on Hackintosh.
I have some misunderstands that I need to know:
1. What do you mean building? (Bundle/Deploy to device/Build on Simulator)
2. Did you tried deploying to device?
I googled this issue and there are many that had this error code, but their problem was MonoTouch Activation, I think you can reactivate MonoTouch to make sure. (if you want to build on device)
But I do not attribute this error code to Hackintosh, because one of my friends-who is working with Unity (Mono) on Hackintosh, can easily build on device.
Regards,
Peyman Mortazavi

Should i use iOS 4 new features in my app? and why?

I am updating one of my apps and I have a dilemma:
In places I wanted to add iOS 4 unique features I had no choice but to implement them only for supported devices - no dilemma here.
The dilemma is when I have 2 ways to achieve the same effect, one in the "old way" and one in a "new way".
A good example is using blocks for animation, I can use this syntax:
[UIView animateWithDuration:2 animations:^{
self.segmentedControl.alpha=0;
}];
that will be supported in iOS 4.0 only. or use the old way which will be supported in all versions including 4. (There are many other similar examples.)
What do you do and why?
The blocks are really great but I will have to write more code if I want to support previous versions? What do I earn from using them in that situation?
Generally, the rule is to support the lowest version of the OS that provides the capabilities that enable you to deliver the product you want to. I made all of my applications require iPhone OS 3.0 about a month after that launched because I needed to support custom copy and paste, as well as in-application email. For the free version of one of my applications, I wanted to try out iAds, so I made that 4.0-only.
The possibilities for internal code improvements that are provided by a new OS are a little trickier to make rules about. As Joe points out, the time you spend struggling against an old way of doing things, that could be saved by moving to a new OS version, is time that you aren't fixing bugs or adding that next great new feature. At some point, the elegance of a new way of doing things (like blocks and GCD) is just too compelling to ignore, even though it may not directly add any new features to your application.
On the Mac, many developers maintain support for the current version of the OS plus the previous one released by Apple (Snow Leopard and Leopard, at this time). Only when a new OS comes out do they drop support for the previously one-behind version. Others, like Wil Shipley, advocate jumping on board the new OS exclusively right away and ignoring old versions. The argument here is that people who won't pay for Apple's new OS versions or who don't keep their systems up to date are much less likely to buy your third-party application.
I've seen this as well on iOS. For example, I ran a test of ads targeted to different versions around the launch of 3.0 (when iPod touch users still had to pay for their OS updates). While downloads of a free version of my application were relatively consistent between 2.x vs 3.x users, almost no 2.x users paid for the application while 3.x users did.
No one complained among my paying users about the early move to 3.0 (they did speak well about the new features, though) and only two people have complained about my free version going 4.0-only, compared to 56,000 that have upgraded without a problem. While I would give a little time for a transition period, I believe in moving to new OS versions relatively soon after they launch. Right now, I'm in the process of making everything of mine 4.0-only so that I can modernize the codebase.
Finally, one last benefit you get from going with the new OS version is that you become much more attractive to Apple, who always wants to promote applications using new features in their new devices and OS versions.
What is your goal for developing this app?
If it's revenue (or fame from high download counts), then look at the size and purchasing power of the additional market segment versus the development (and test and QA and support) costs.
Old device owners and old OS users are (1) a minority (check the analytics for the current number, on the order of 10% or less and dropping), and (2) they buy far less apps on average than people with the latest devices and OS versions. For non-blockbuster apps, this small additional percentage of potential downloads may not be worth the extra device testing and QA time that supporting these customers requires, much less the development effort.
If you are doing an app for charity or learning, then go ahead and donate your hours of effort to the 1 guy (or other small number) who likes new apps for their old device. It's good skill set to have if you want to jump to using some super new feature in the latest OS release just as it comes out, a few weeks before the majority of users upgrade their device's OS to match.
If you're trying to make money selling your software, by all means you should support as many versions of the OS as possible, and the easiest way to do that is to write one piece of code that will run on all versions - hence, use the old style of animation blocks.
With the new animation way you can use a block for completion, rather than having to create a separate method, it's much cleaner if you have multiple animations that need to do something on completion. Also it's easier to read, because its not so spread out. There's bound to be some technical advantage but I don't know about that side of things.

Can the Windows Phone 7 Series emulator be made to run on Windows XP?

Well thats all there is to it...is this possible? I understand that officially it's not supported but has anyone figured it out? I have some work to do where XP would be the preferred platform. I would expect that users of the actual device are not required to use Windows 7 so it stands to reason that this can be done. Any poitners in the right direction would be greatly appreciated.
Thanks,
brian
I work for a large mobile silicon vendor with many, many developers working on WP7. Our corporate standard is Windows XP, and I can promise you that a bunch of very bright people have spent a lot of time trying to get this to work.
Bottom line is that we've never succeeded reliably enough to make it usable as a working environment, so our IT department has rolled out Virtualized Windows 7 images to run on XP desktops.
If it's an option for you, Vista is alleged to work - I've never checked as we did not roll out Vista corporately.
Sorry not to have a more helpful answer.
P.S. Wanted to add that the final devices most likely will not support XP. At least today, the connectivity apps and the like require Vista or Windows 7, and I very much doubt that this will change.

Could SqueakNOS or PharoNOS made to run an iPhone or iPad to Form a DynaBook?

Not considering legal issues I would be very interested if it would be possible to run one of those on the bare metal of the iPad/Phone ARM-Architecture.
Squeak is running on the iPad as of today!
Considering that iPad has already been jail-broken, I think it's really possible. Also, being made with an ARM processor makes it even more plausible, you already got compilers for that architecture and there seem to be ports of squeakvm to it. It would require some work though.
I know how to get it done, if that helps: send an iPad and a million bucks to Tim Rowledge!
Edit: Someone's got Android working on an iPhone, which is a pretty big step towards a SqueakNOS. In particular, I imagine if you figure out how they do the bootloading, and how to get the image on the phone, you're pretty much there?
Edit #2: Andreas Raab's ported Squeak to Android, so as an interim step one could always run Squeak on Android on the iPhone.
I think it's a silly attempt. The charm of an iPhone, the thing that distinguishes it from Android is that it's a controlled environment. John Gruber calls it an app console. You can find that silly if you want, but remind me again why out of the two major mobile platforms, you choose to breach and extend the one that does NOT brag about its openness and clear documentation and freedom for third party developers. PharoNOS on Android sounds like fun, PharoNOS on the iPhone sounds like PharoNOS on a Wii. That is: You could do it, but why would you?

Develop iPhone app without a Mac? [duplicate]

This question already has answers here:
Closed 13 years ago.
Possible Duplicates:
How can I develop for iPhone using a Windows development machine?
I'm looking to build an iPhone app for my wife's phone, but am not interested in buying a Mac as a development platform for a one-off piece of work. The app:
should run standalone on the iPhone (i.e. without network connectivity)
would be perfectly acceptable with a GUI created using one of the iPhone Javascript libraries that are around
will do some database IO to read and update data
has no commercial value and will never be used by anyone else
Here's my thinking:
jailbreak the iPhone
install Ruby + Sinatra on the iPhone
write the app using Sinatra, hitting a database (SQLite?) on the iPhone
To access the app on the iPhone:
start the Sinatra app in the
background (is this possible?)
start a Safari browser session
navigate to the Sinatra app at e.g. http://localhost:12345
etc.
This seems like a strange approach, but I can't think of a simpler way of writing a standalone iPhone app without buying a Mac. Is there a better way of doing this?
The only reliable info I could find is at the always-excellent MetaFilter
http://ask.metafilter.com/110466/Anyway-to-develop-iPhoneiTouch-apps-without-investing-in-a-Mac
The answer is apparently no.
You absolutely need an Intel Mac of some description.
The entire iPhone build process is too deeply ingrained in XCode to build elsewhere; and the only other Objective-C compiler I know is gcc, which doesn't support any Apple's additions to the language (nor their libraries).
And, in direct opposition to what people are saying above, Objective-C is absolutely my favorite native, compiled language. Elegant, small (only a few changes from C), late-binding, dynamic, straightforward. It's what C++ should have been.
Lots of people recommend picking up a secondhand Intel (remember, must be Intel!) Mac Mini as the cheapest "port of entry".
What you have described is a viable solution, however you should consider using the open toolchain for the iphone.
You don't need a mac then, only need to jailbreak the phone to make sure your app will work.
For all those who say it can't be done, this was the only way to make Apps for the iphone before the SDK was out :)
Also if you are after a guide to using the open toolchain then I highly recomend this book
If you're considering creating a GUI using a javascript library anyway, why don't you just write a web app instead of an iPhone-native one? It seems like overkill to jailbreak the device just so that you can install a ruby + sinatra web app on it. Can't you just put the ruby web app on a server and create a Safari shortcut to it on the home screen? If you don't have a server, you could always run the website off a PC in your home...
Jailbreaking the OS and running a ruby app onto it would be technically cool, don't get me wrong - I just think it'd end up being a time sink.
Just my 2c!
Depends on what your time is worth, I guess. That seems like a terribly convoluted way to get what is otherwise a simple app on the phone to avoid the US$400 purchase of a used Mac Mini.
There is the hackintosh route, which may work on your existing hardware, but again one has to put a price on time. It's what got me started before I dropped big coin on a Macbook Pro, an MSI Wind then a home-built. It's of questionable legality (the right thing to do is fork over US$129 for Leopard regardless), but you are already talking about jailbreaking. :-)
Get someone else to do it, or rent the resources that you need.
Another option is to find nearby iPhone developer who has it all setup and either get him to write the app or do it together, he provides development environment you code the solution or code it together.
The only problem is that you wont be able to update maintain it.
I would still consider getting older gen Mac or Mac mini - all the other options sound more complicated.
If you are going to be stubborn about not using a mac, but you want an app that will work offline with the iPhone / iPod Touch and Android devices, then I would use HTML 5 to create an offline app.
You can do a lot now with HTML 5 - Google have an email client that uses HTML 5 for the iPhone now and it can work offline etc. If you do this and get the user to add a bookmark to their home screen for your app - it will be almost as good.
If I was you I'd fork out for a mac - or look to see if you could borrow one - or time-share with someone - you will not create a very good quality app without it.
You can jailbreak the phone and install Python. There are some sample applications in Cydia for it (it's called iPhone/Python. Search for Python in cydia).
Then you will have a "native" app, not a web application and you can use the entire iPhone UI library (the part of it that is accessible via py-objc anyway) and you don't need to run a web server in the background.
You can do your development on the phone itself via SSH or you can use an iPod Touch for it. Packaging is also easy (should you need it), just create your own Cydia repository and host your package(s) in there.
Look at iPhone applications in Python for more information.
Come on, just look on eBay for the cheapest intel mac mini you can find. Even a Mac laptop with a busted screen (that you could hook to an external display) would work. You're talking just a few hundred dollars probably and then you can maintain it as her phone/Touch is upgraded.
there's some special meta tags you can put in a webpage to make your web app savable and full screenable to the iphone hard drive. (so it can work offline) Here's an example : http://mrgan.tumblr.com/post/125490362/glyphboard2
There's also frameworks like phonegap that let you access cocoa apis from javascript, but it sounds like you don't need that.
Does your wife enrolled in any kind of data plan? If so, you can simply write a small webapp which runs on some cheap webspace and access it via MobileSafari.
If you need a full grown iPhone application, you better look after one of the first intel-based mac minis on eBay, should be to expensive, in my opinion. And as a plus you avoid the hassle of a jailbreak.