Temporary iOS Development on Windows [duplicate] - objective-c

This question already has answers here:
How can I develop for iPhone using a Windows development machine?
(42 answers)
Closed 5 years ago.
I am currently designing and planning an app that I intend to release for iPhone and iPad. I don't currently have a Mac, so I really have no way to actually publish the app, but I don't really want to buy a Mac either just for the development of the app.
Is there any way that I can write (and maybe even test) the app on Windows, then, once I have a finished product, buy a Mac or borrow a friends Mac to publish it.
I know that there is no way to publish to the Apple App Store without a Mac, but I was wondering if there is a way that I could develop and test the app (in Objective-C) on Windows.

I was wondering if there is a way that I could develop and test the app (in Objective-C) on Windows.
No, there is not. XCode is required for iOS development, and it is only available on Mac OS.

You could get a second, cheap hard drive, and install OS X on the hard drive to make your computer into a Hackintosh. You'd need a copy of OS X, and a willingness to break the TOS for the operating system.

This is actually a very frequently asked question, and I'm afraid the answer is no, you cannot do iOS development on Windows.
Back in the iPhone OS 2.0 days there was a cross-compiling framework that did accomplish this but it's abandoned and doesn't work for years now and AFAIK nobody bothered to make it work again (it's a lot of work and requires intimate knowledge about cross-compiling and hunts a constantly moving target).
The usual recommendation is to buy a used Mac Mini since they're cheaply available on sites like eBay.

duskwuff is right to a point... XCode itself is not actually requred in fact there is IDEA's AppCode IDE. Unfortunately, that only runs on OS X. The best thing you can do (other than get a cheap Mac) is install GCC on windows or a Linux VM compile from the command line, as GCC can compile Objective-C. However, that still is not a good solution since you won't have Access to Cocoa Touch and all those calls will error out as undefined or undeclared....

No, you can't. If your going to buy a Mac to publish in the future, why not just buy it now?

You can use OS X in a virtual machine on your windows system. I have read few articles on the internet how to do it using VirtualBox for that (google for it). Even if it's not officially supported by VirtualBox, it's possible. This breaks the TOC for OS X, and you need to buy a copy as well, but VirtualBox is free.

Yes you can!!!
Use virtual box.
Search some guides on "lifehacker.com" about getting mac on virtual box.
It's what I always used before getting a mac.

Related

Is there a way to run IOS Simulator on Windows 10?

I want to run IOS Simulator on Windows 10.
Is there a way to do this?
I dont think its possible to get the iOS simulator working on Windows. But if you are willing to explore a dual boot setup, have patience (and a supported motherboard/processor), then you could use OpenCore or Clover to get a macOS running on your pc. This will give you access to the iOS simulator and the other xcode tools.
If you take this route then you should know that macOS doesnt support ntfs writes out the box. This means that if you decide to create a shared volume that both the mac and windows partition would read and write from, then you would either need a 3rd party ntfs drive (e.g. macfuse) or to format your volume to exFAT (this gave me the best results and was free)
If you intend to run the latest macOS I would recommend going with OpenCore. The latest Clover versions ports pieces of OpenCore to it, and finding documentation on configuring the new Clover was a hassle for me. If you are fine with running Catalina and using an older xcode (and thus older iOS simulator), then I would recommend giving tonymac tools a shot. Building the installer took with very little effort. You need an account to download the tools (this is free but they ask for motherboard/gpu model for community posts and verification that you can actually run their software)
Native testing of iOS apps is only possible on an Apple device. But there are some ways to overcome that.
Some reference to external iOS simulating platforms: https://fossbytes.com/best-ios-emulators-pc-windows-mac/

Does React Native support Apple's M1 macbook pro?

Can ios apps be compiled on the new M1 chipset?
Is there any schedule for official support?
The short answer is yes.
The latest version of XCode (version 12) is compiled as a universal app. This means that it runs on both Intel-based and Mac Sillicon machines natively. From Apple's website:
Xcode 12 is built as a Universal app that runs 100% natively on Intel-based CPUs and Apple Silicon for great performance and a snappy interface.* It also includes a unified macOS SDK that includes all the frameworks, compilers, debuggers, and other tools you need to build apps that run natively on Apple Silicon and the Intel x86_64 CPU.
This means that you should be able to compile iOS with the latest version of XCode without a problem. It would be kind of crazy for Apple to release professional hardware (MacBook Pro) without this capability.
Keep in mind that a number of third party applications may not work well on the ARM machines yet. VSCode is not currently supported on M1 devices (although Microsoft have said that it's coming). VSCode is an Electron based app which currently can't be emulated with Apple's Rosetta II platform. You might not use VSCode, but keep in mind that any Electron based apps that you use may not work straight away.
If you exclusively use XCode and don't critically rely on any third-party apps you should be ok.
EDIT: I just noticed that you tagged your post for react-native. Information is pretty slim for compatibility at the moment, so I would be cautious. If you need a Macbook Pro to do commercial work or school projects right now then you run the risk of things not working as intended. The M1 MacBooks will undoubtedly support everything that you need as a developer in the future and they're particularly great candidates for iOS development because of the parallels made possible by the shared ARM architecture.
If you're relying on a new machine to get work done right now, going with an Intel-based machine is probably the best option. For reference, I recently got an Intel-based 16" MacBook Pro with work because I need to get things done right now without any issues. The commercial value far outweighs the potential benefits that an M1 machine might bring in a year or two. If you're ok with running into some issues over the next few months, I'm sure that the M1 machines will provide plenty of value for years ahead.
While there are problems that do not allow compiling the application.
brew and cocoapods are installed in the console with rosetta enabled.
pod install / update fails because flipper and some parts of RN are not supported by the platform
if you use expo - without cli then everything is ok
updates: now cli working (after update all - homebrew, cocoapods and other to last version)
from what I know, iOS app only compiles on Mac os, so it should work with whatever macOS uses.

Is there any way can make a cocoa application which use base SDK 10.10 can run correctly in OS X 10.9

I have created a cocoa application which used the base SDK OS X 10.10. Some APIs which only exists in 10.10 are called. So it doesn't run correctly in the system which version is lower than 10.10.
So, i wan't to know is there any way can make my application run correctly in OS X 10.9 except rewrite it use lower SDK.? If not, What is the value of these new API. because i can't use it. If i used it application can't work in lower system.
Thanks!
You should use 10.10 as your Base SDK, and set your deployment platform to 10.9. You can then use respondsToSelector: and NSClassFromString to know if the class/method you're trying to use is available on the current OS, and degrade gracefully (for example, only make a feature available if you're running on the latest OS).
No, you'd have to rewrite it to use API calls which are available in 10.9.
The point of adding new calls to the API is because eventually everyone will have a device running the newer software - especially with Apple products - and then you'll be able to use it. Also, some people don't mind not being able to run on an older device. If they never added anything to the API then we would still be using the same things from 20 years ago.
If you think this is bad then try writing software for Android. The majority of devices are still running old API versions.
Essentially the answer is NO. You can't make an app which is built using the latest API's for 10.10 run in 10.9.
What the value of using the latest API's is depends on what you want to achieve. If you want to take advantage of the latest Apple technologies like iCloud Drive and CloudKit then you need 10.10. However, if your project doesn't need the these technologies then it may be worth making your app using a lower SDK.
It's worth noting that OS X 10.10 is free so you probably won't be alienating anyone by using the latest SDK. It's a different story for iOS where usually only the latest few iPhone and iPad models can be upgraded (e.g. iOS 8 from iPhone 4S and upwards).
Hope this helps.

ps3 applications development [duplicate]

can anyone tell what to do develop ps3 applications (or) games after we install linux on ps3.
and other thing is that can we develop ps3 games on window platform for that what tools needed,its little bit of confusing.
can anyone clarify this?
Currently, the only legitimate way to develop for the Play Station 3 is to buy the development kit and a license from Sony. Recent hacks enable homebrew applications but there's currently only Sony's leaked SDK - building applications with this would probably be illegal.
A Homebrew SDK is in the works, but you would not be able to distribute your applications or games through official methods using this SDK.
To compile homebrew on Windows, you will likely need to use Cygwin and an available PS3 Tool Chain. It's unlikely that a compiler will exist or even be made for Windows, but Cygwin should allow you to emulate the linux tools available.
In summary, if you want to do it legit then you need a license and a dev kit from Sony. If you're just doing it for fun then I suggest you use Google to find more information on PS3 homebrew development.
See the Wikipedia page on OtherOS for some basic information and plenty of pointers. Beware that you're going to be restricted in what you can do, Linux does not have access to the full machine.
I am by no means an expert - but:
To develop PS3 games you need a PS3 developer kit. Afaik it can't be done simply by installing linux on a PS3. The developer kit is licensed from Sony and - to the best of my knowledge - require some kind of license payment and/or approval process as an official PS3 developer/house.
Sony released a small home-development kit, including a keyboard, mouse and harddrive for the old (non-slim) PlayStation 2 back in the day. That kit was linux driven and contained libraries to utilize graphics and controllers. The last I heard that idea was scrapped by Sony.
There was a method to install another OS on the PS3, and a lot of people installed Linux. Look through your docs (and maybe on the web) for "PS3 OtherOS" or "PS3 Other OS". Unfortunately Sony has recently removed the ability to install another OS, so you need a unit that hasn't had a recent firmware update.
Installing Linux means you have (most of) the system at your hands.
As far as I know, you need an official Development Kit from Sony in order to develop games for the PS3. I believe it does run in a modified Linux environment, but I cannot confirm this for sure (perhaps we have someone on SO who develops PS3 titles and can fill us in?)
You'll need a PS3 dev kit to do it properly. While one used to be able to install Linux on the PS3, it's a feature that has now been disabled. Even if you do manage to find a PS3 that is still able to accept Linux you'll be using a largely divergent API (from what commecial PS3 games are built on) and you wont' have access to many of the more powerful graphical functionality.
While you can build a game largely on Windows you'll need to port it property to run on PS3. You can't just hit compile on Windows and have it run on the PS3.
Although this is an old thread, I see that no one has yet mentioned an alternative option that has been available for both PlayStation 3 (and later) and Xbox One (and later) from the very beginning: Blu-ray Disc Java, abbreviated BD-J.
These consoles feature a Blu-ray Player, and all Blu-ray players can run JavaME as part of the Blu-ray specification. This means you can actually code games and apps with JavaME, and run it on these game consoles from the very same disc.
So if you're just looking to create some homebrew games for fun, then BD-J is a very attractive option. Because:
you can run your homebrew games on many gaming consoles from the very same disc
there's no expensive SDK to buy, you simply code JavaME in whatever IDE you want
there's no approval process, you just create your own disc and make the ISO downloadable
Here's a few YouTube example videos of various BD-J Xlets running on PS3, showing that the platform is quite capable of running homebrew stuff:
https://www.youtube.com/watch?v=M_E9VaXywG0
https://www.youtube.com/watch?v=NxMpLB_ZsDs
https://www.youtube.com/watch?v=bKadWBm9CQA
https://www.youtube.com/watch?v=1bC5FV-2AY4
And a few useful links:
http://www.oracle.com/technetwork/articles/javame/bluray-142687.html
http://www.tvwithoutborders.com/
http://www.java-gaming.org/index.php?topic=38044.0

Is there anyway to compile mac binaries from a windows machine?

Seems like there wouldn't be, but it would help us out if there was. I wish to pull the source down to a windows server and compile it and have it be the same as if I had pulled the source code down to a mac machine and used xcode on it. Any Ideas?
Reasons: Release Engineering and IT are much more familiar and comfortable on windows, so it would be easier on us, and LaunchD sucks.
Your original question had less detail... I think you are creating more problems than you are solving buy not using a Mac. Is it really that hard to learn to compile under Xcode or type make in the console?
Anyway...
Apple uses a modified version of the GCC C/C++/Objective C compiler with a proprietary runtime library... You could develop using a port of this code to Windows. See GNUStep.Org. This is not binary compatible though but it isn't impossible that you could rebuild it to cross compile to something that was Mac OS X compatible.
Another idea would be to develop using c# .NET and then move the binaries across to Mac OS X and run the binaries using Mono....
None of these options are robust enough to allow you to do this blind without a Macintosh to test and get up and running in the first place.
You can compile cross app with Cocotron but only on Mac
Why do you need launchd? cron works just as well on Mac as it does on Linux, just have a cronjob that does (Extremely simplified version ahead):
cd /my/source/dir
git pull # You are using Git, right?
xcodebuild MyCoolProject.xcodeproj
cp -r build/MyApp.app /the/distribution/folder