Cross-Platform Game Center Matches between iOS & Mac? - iphone

I'm using GameKit in my game, which is built both as a Universal iOS app and a Mac OSX app. As far as I can tell, there's no way to allow Mac users to play against iOS users, because each of the two are sandboxed into their respective app stores: Mac and iOS apps must each have their own (unique) Bundle IDs.
I tried adding both the Mac and iOS apps to the same Game Center "group." I am successfully able to see the same leaderboards from both the Mac and iOS app. Unfortunately, GKTurnBasedMatch loadMatchesWithCompletionHandler returns different matches for the same user on different platforms, and users from Mac cannot seem to be matched with iOS (and vice-versa).
Is there any way to enable truly cross-platform support with GameKit, or am I doomed to only allow Mac<->Mac and iOS<->iOS gameplay?

As of iOS 6.1, GameKit connects devices on their respective platforms only. I asked about this at WWDC '13 and was given that answer by an Apple engineer.

I still haven't tried it, I was doing research to check if it was doable, and it looks like so: I found a video from wwdc 2012 that talks about it: here, around minute 21 he's talking about "multiplayer compatibility". I'm not sure what the problems would be, I plan on doing some testing soon tho.
Am I understanding your question correctly?

Related

iOS development on Windows [duplicate]

This question already has answers here:
Closed 10 years ago.
Possible Duplicate:
How can I develop for iPhone using a Windows development machine?
I've read a lot of questions and answers about developing iOS apps on Windows:
iPhone development on Windows
How can I develop for iPhone using a Windows development machine?
But most of the ways to accomplish this is because the people with this problem (make ios apps on windows) want to make apps for themselves. Also, some of them suggest web apps.
I'm working for a company who needs to make a little App (later other companies will need more) and the person who is in charge of all about IT told us that we need some facts so we can demonstrate that we really need a Mac for developing apps for iOS legally.
First, I don't know if all that says on this page would be enough https://developer.apple.com/support/ios/ios-dev-center.html
To develop with the iOS SDK and Xcode, you must have an Intel-based Mac
running Mac OS X Snow Leopard or later and you must be registered as
an Apple Developer.
Now I have some questions:
Is there a legal way for a company to make iOS apps on Windows?
If one of those ways is running OS X under a Virtual Machine... Is it possible to do it with OS X Lion USB Thumb Drive?
I know there are some SDK such as Marmalade, Corona, DragonFire... and they give us licenses but are they 100% reliable? Would apple give us support if we use one of these SDK?
Does Apple check if the app was created over a legal OS X copy? I mean, when the code is compiled, is there a sign so Apple can check that the app was made without cheating?
Creating games on OS X (VM) would be hard?
In the case we get the Mac (mini)... Would we need the Magic Touch or Magic Trackpad to test multi-touch? Or is only possible doing it by pressing one of the keys plus the left click?
Creating Web Apps would be a solution? I know that we can't use the Camera of the device using Javascript but is the rest ok?.
Testing
Some of our co-workers have iTouchs but we don't know if the company should buy a new one. Also, Would you suggest to get the oldest generation of iPod Touch for testing purposes or only the 3rd and 4th generation?
I hope you could understand me. Thanks in advance!
Update:
I got this answers:
You will work over Windows with the respectively SDK
Me: I know there isn't an official SDK for developing iOS apps on Windows from Apple.
The programming language that we will use is the same it would be install on a PC or MAC.
Me: Impossible?
Update
We got the Mac. ":D"
While there are things like FlashBuilder, these solutions don't provide the performance or flexibility of an actual native application. As for virtualizing OS X, this is not an option. The EULA for all versions of OS X specifically prohibit hardware virtualization (though I believe Lion allows for it but only when running directly on genuine Apple hardware. In other words, there is no way to run OS X on any computer other than a Mac without violating the EULA.
I dont have a Mac, but i setup a hackintosh (MacOSX running in pc) by following guide from this blog http://tonymacx86.blogspot.com/. If your pc spec is compatible, the Mac OSX will running flawlessly, just like in normal Mac.
Since you ask this question, I assume you dont want to fork a money to buy Mac, so setup a hackintosh machine is the best option for you. You just need to spend some money for buying legal copy of Mac OSX. Yeah I also setup the hackintosh in order to develop iphone apps on a pc.
Although there are always hacks and work-arounds you'll need a Mac for any serious iOS development. You can pick up a Mac Mini for under $1000, I'd be surprised if you could setup a Windows machine that could build iOS Apps for fewer than $1000 worth of man-hours... plus you'd probably end up having to constantly tinker to keep it working.
AFAIK, Mac OS X doesn't reliably run in a VM on a Windows Machine, but that could have changed since I last checked.
Most of the cross-platform development tools fall back to HTML/Javascript-based technology that is run in an embedded browser and packaged with a custom tool, I'd tend to avoid those as the Apps that they produce will not feel native.
I don't believe that Apple checks to see where the code was built. Adobe's FlashBuilder can export to an iOS binary, those Apps are accepted by Apple.
Creating them shouldn't be hard... testing them may be a little slow, but you'll definitely want to test on real hardware early and often.
If you get the Mac Mini you may hold option and click to simulate a dual touch in the iPhone simulator, but for more significant multi-touch testing you'll need to target a real device.
Depending on your goals, a web app may be a good solution. You'll potentially lose some performance, and some control, but you may not need all that much to accomplish your task.
My personal experience with IT has always been like pulling teeth to get them to allow/support any Apple product. Don't let them talk you into some patch work alternate system for making apps. Straight up OSX is far and away the best way to go, especially since you guys are talking about doing more later. Do it right from the start.
Now with adobe flashbuilder you can make iphone apps through windows http://www.adobe.com/devnet/air/articles/packaging-air-apps-ios.html it would all be coded in actionscript just like flash however looks pretty much alike. Personally I have never used it, i own a mac, but my school does cheers
Also I know you can put apps from this builder right into the app store just like the OS X process
You cant put it directly on a thumbdrive because OS X boots differently, you would need to install a new boot loader on you computer, but it can be done, look up Hackintosh
Finally , you do not need the magic touch pad, it is not possible to do multitouch while running on the simulator via OS X, you must put the app on your phone to test multitouch
Is there a legal way for a company to make iOS apps on Windows?
My advice is to try as hard as possible to get an Mac.
But just to provide another alternative :
Try Phonegap. It's basically a HTML5 wrapper, mainly used by app that needs to be published in multiple type of devices. However it also able to access native resource like camera and storage, which you can see in their feature page.
If your concern is more into development machine, by using Phonegap you can develop an app in any OS. You don't need to buy multiple mac for all the developer.
PhoneGap also have a service called PhoneGap build which is actually a cloud service that able to build your code to multiple platforms, including Iphone. This is legal and you can publish it App store.
If one of those ways is running OS X under a Virtual Machine... Is
it possible to do it with OS X Lion USB Thumb Drive?
No, You can only run OSX virtual Machine in OSX also.
Creating games on OS X (VM) would be hard?
It depends on the developer. But since the game should be tested in emulator, your question is not that relevant.
In the case we get the Mac (mini)... Would we need the Magic Touch or Magic Trackpad to test multi-touch? Or is only possible doing it by pressing one of the keys plus the left click?
Xcode Emulator able to simulate that. Read this blog
Creating Web Apps would be a solution? I know that we can't use the
Camera of the device using Javascript but is the rest ok?
If you are using PhoneGap, it's basically web apps wrapped by native. It's still give you access to resource like Camera, Compass, Storage etc.
Would you suggest to get the oldest generation of iPod Touch for
testing purposes or only the 3rd and 4th generation?
The iOS 5 SDK has many new features that make app development easier. By the time your app is ready for release, most users will have moved on to iOS 5. It is my understanding that iOS 5 does not support 3rd-gen devices, so there's no point in obtaining those if you're going to use SDK 5.

Beginner iPhone/iPad app question

I am a beginner in iPhone and iPad apps and wanted to learn to code(guessing they are here to stay for another 4years least)..
I run a Win 7 PC with dual core. I didnt want to change OS to mac just for this as my games may not work in MAC :( lol
So i came across Dragon Fire SDK. Is this correct way to do it on windows.
Will i get all functions to learn.
Can i distribute it via app store? i.e it should work in normal iPhone and not in jailbreak ones.
So before i begin i wanted to ask if this way is ok. I know installing it on a MAC is 100% ok
But i wanted to know if this way is fine to go ahead with and develop some apps for the iPhone without any worries about this being fake
(paraphrasing) Is this a fine way to develop apps?
Define "fine". You probably can get an app in the app store* but it's not the best way, and could potentially backfire.
I strongly recommend getting a Mac if you want to develop iPhone apps, for a few reasons:
There is an enormous community to leverage. There are tons of tutorials, books, and helpful folks on SO and Apple forums that can help you if you get stuck.
New features come out all the time (for example, the iOS 5 beta was released on Monday) and you'll have access to features in the latest beta SDKs immediately. Third-party tools have to play catch-up.
Xcode 4 is a pretty awesome upgrade from previous versions, and I dare say it's a joy to work with now. But to make this point more objective, let's just say "There is very good tooling support"
It's the recommended way from Apple, and they could decide to reject your app because it wasn't written in Objective-C (they did add a clause in their dev agreement to that effect, but I think it has been removed)
*I have nothing to base this on, except Dragon Fire's website.

Should I obtain a Mac to develop or test my iPhone web app?

I've been developing an iPhone web app on a Windows XP box using
MobiOne Test Center and Safari for testing and debugging and
occasionally using a real iPhone for testing. The problem is that
MobiOne, Safari (desktop), and the iPhone all produce different
errors. Obviously I am most concerned with the errors that occur on
the iPhone, since that is the target device. (An example of the type
of error encountered is that an image that ordinarily appears as
expected occasionally cannot be displayed, so the little question-mark
icon appears instead.)
I have the opportunity to obtain a Mac for development, but I need to
know whether using a Mac will make a difference.
Have any of you moved to the Mac for developing or just testing a web-only iPhone app?
Is doing so worthwhile? Why?
Does the iPhone simulator in the SDK simulate an iPhone better than Safari on the Windows desktop?
Is there a reason I would need a paid subscription to the Apple iOS Developer Program?
Thanks!
In short: no, I don't think a Mac is necessary for developing iPhone web apps, especially seeing as you have access to a device to test on, and you seem to be fine in your progress of development.
If you're not aware, there's a debug console available on Mobile Safari on your iPhone. Go to Settings > Safari > Developer (at the bottom) > Debug Console and turn that on.
When developing an iPhone web app, you do not need to pay for the iOS Developer Program. That program is for developing native apps to deploy either to your company or the App Store only.
Web apps, on the other hand, are nothing more than web sites that are designed (i.e. include certain meta tags, have mobile-friendly interface designs) to be run similarly to native apps on a device, and harness certain Web technologies such as geolocation that are available to devices. Users view them in Mobile Safari like any other web site, but for the best experience are asked to tap on the + sign and add your web app to their home screens to be accessed as such.
The iPhone Simulator certainly does a better job than desktop Safari on either Windows or Mac OS X since its user interface shares that of the iPhone device, but I don't think you'll need it for testing and debugging if you have a device to test on.
The iOS SDK has a tool called Dashcode but I don't think it's much of a difference from the web dev IDEs that the rest of us use every day. As far as I can tell, Dashcode doesn't give your web app any additional features that can't already be implemented using the standards we're familiar with.
I would not buy a Mac or a paid subscription to the Apple iOS developer program unless I was writing native iPhone applications.
You should be fine with your current configuration. Just make sure you do the bulk of your testing on the actual iPhone, that is what your customers will be using.
Does the iPhone simulator in the SDK simulate an iPhone better than Safari on the Windows desktop?
Yes - there are some significant differences between MobileSafari and Safari for Mac/Windows - but you've got an iPhone to test on. The iPhone Simulator offers no additional debugging tools for iPhone web apps, so you're not going to be better off having it available than just testing on the device.
Testing on an actual device is better than testing on any of the Simulators, since that is what you mobile customers will actually be using.
If you are strictly building web apps, your money might be better spent on more test devices (devices with and without a Retina display, iPad, maybe an old used iPod Touch running some prior version of iOS for regression testing, etc.) If you are choosy about your colors, the color can vary quite a bit across devices, so it may help to find one warm display and one cold one (from old/different manufacturing lots, etc.).
So you don't NEED a Mac (unless you have other reasons for acquiring one).
Buy an iMac. You will enjoy the experience better.
It is my understanding that your application needs to be compiled on a mac before it can be sold in the app store.

Can I restrict my iPhone app from being used by iPhone3G's?

My iphone app doesn't run well on the iPhone 3G. Can I make it so users with these models can't download the app? If so, what does a 3G user see when they search for my app in the app store?
Does it appear in the store at all for them? If it does, when are they notified that they can't download the app?
I recommend you use the UIRequiredDeviceCapabilities key in your info.plist. This lets you tell the App Store exactly which capabilities you require instead of which device you require.
If your app "doesn't run well" on a 3G I'll guess it is because of performance and therefore you'd want to require a newer processor. Look into setting arm7 as one of your required device capabilities.
For more info look here:
http://developer.apple.com/iphone/library/documentation/General/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html#//apple_ref/doc/uid/TP40009252-SW3
Make it run better. Or if it's not completely unusable, just let them use it anyway. People with old devices expect them to be a bit slow.
According to the iTunes Connect Developer Guide (which links to the iOS Application Programming Guide), you can't prohibit certain devices. You can, however, require certain features which are only present on new devices:
armv7 is what I'd recommend (older devices are armv6)
magnetometer, because older devices don't have one. Apple might look at you funny if your app doesn't actually use the compass though.
opengles-2, because older devices only support 1.1. Apple might look at you funny too.
auto-focus-camera, except the iPad and all the iPod Touches don't have one. Probably not what you want.
iPhone 3GS uses iOS 6.1.x so if your app support iOS 7+ it will not be able to install on iPhone 3GS, this is the best possible way to avoid download on that device.

I need to work on multitasking in Iphone SDK 4.0

Actually I am looking for Multitasking in Iphone SDK 4.0 and want to run to apps at the same time as it does in Ipod application for Iphone like songs while u can use different apps also. Is there any idea that how to use that feature in Iphone SDK 4.0 beta.
I have tried multiple NSThread but runs on same view or differnt but cant figured out to run 2 apps at same time.
I think the spirit of the NDA needs to be honored, and details, as well as specific API calls or even links to specific docs for 4.0 should not be posted.
At the same time, in my mind, there's some leeway to talk about fundamentals like this question that have been asked in variants again and again here, since there's clearly no harm in setting fellow developers on the right track.
That said, here's my answer: 4.0's interpretation of Multitasking can't run arbitrary third party apps as full blown background processes. You can't keep any code running in the background. They have to conform to certain types of approved services that Apple has chosen for 4.0, based on common app and developer demands.
If you're asking specifically about an app that plays music in the background (similar to a new Pandora app will under 4.0), you want to support the 'audio' background mode, as discussed in the document titled 'Supporting Multitasking In Your Applications' and linked from the 4.0 SDK section of the Apple developer site. This has been discussed in public keynotes, which is why I think it's fair game to give as an answer here.
If you have further questions, and are a paying Apple developer, you can discuss the 4.0 SDK on their developer forums.