GameCenter Challenges do not work in Sandbox? - ios

We have been trying to integrate GameCenter challenges into our latest release. Everything else works just fine in the Sandbox, however, Challenges do not.
When we submit a challenge, the delegate returns that it was not sent and nothing shows up in the native GameCenter view controller.
Does anyone know if this is expected? How should we test Challenge code if not in the sandbox?
Extra Credit Has anyone seen documentation that is actually current on Challenges? Everything we have seen references old deprecated functions.

They can work in the sandbox, but my experience is that you need two iOS devices (not the simulator) both logged in to separate GC accounts when testing them. Do this and you will see the challenges appear fairly quickly, otherwise it's a bit random whether they will turn up at all.

Related

Force removal/invalidation of iOS app from user devices

Assuming you created an app that users have downloaded that is just awful and you neither want to fix it nor have anyone continue to use it so that it won't tarnish your brand, is there a way to end its life on user's iOS devices?
Curious if there is some store setting to force it to work with earlier versions of iOS and invalidates the current app, or code that would force an update that says the app is no longer available.
As many have confirmed, there is no way to remove an application from someone's device. For these cases though, many companies have servers that the application sends a request to on launch, that returns either a need to update the app, a message, or to tell the user the app has been discontinued and that the app cannot be used anymore, stopping them from using the app from there on.
The last use case might be useful to you, but of course this is a proactive solution, not a reactive one.

Changing test ads to real one

I'm almost ready to publish my first app to the App Store. I use AdMob banners and reward videos. I used test ID for both all the time as it said on AdMob website. But now I'm not sure about few things and I can't find direct answers anywhere.
Before sending app for review I should change test IDs to my personal. As far as I understand I can't test my app with real IDs before sending, even if I won't be clicking any ads. So, can't I test it few times to make sure real ads work? And do I need to do this? Can I be sure if test ads work flawlessly real ads will work as well?
After my app is published, should I change IDs to test ones again to continue working on my app?
I also've seen an option to enable test devices, but I constantly using different simulators and real devices to make sure app looks right on all of them. And it just not too convenient to list all of them on every page.
If test ads were already shown successfully, I will only need to make sure you switch your TestAd IDs with your RealAd IDs correctly (No typos).
Please note that test ads operate through the same channels as live ads. Being able to return a test ad ensures that your application is communicating properly with our network.
Source: https://support.google.com/admob/answer/2993019?hl=en
And yes, I think you should switch back to TestAd IDs if you are reworking your app. Perhaps make a simple if/else statements to simplify the process of going back and forth between RealAd and TestAd.

Problems activating Facebook Ads in iOS App

I am trying to integrate Facebook Ads in my iOS App.
I have the SDK installed and I also already receive test-ads. So everything seems to work fine.
BUT...
On the Facebook page inside the Monetization Manager there is a 4 step tutorial on what I need to do.
was Choosing the ad format -> Banner -> Done
Integrating the SDK (I'd say it's done cause I see Test-Ads inside my app) but here's the problem... Cause there is no Checkmark there.
Is the payment info. That's done.
Would be the Review that I'd like to do, but that seems to be deactivated...
So... It also says there, that I need to be logged in to facebook on my phone with an associated Account. I am!
I don't know what else I'd need to do in order for Facebook to recognize that I already successfully displayed a Test-Ad and I just can't find any contact phone number to ask somebody.
Any hints are very much appreciated.
Btw. I already tried yesterday evening (in case the activation process simply takes longer...)
I finally found the Problem after trying every single Setting on the Facebook page...
The problem was that I added my device as Test-Device.
So after removing FBAdSettings.addTestDevice(FBAdSettings.testDeviceHash()) it was working.
Did cost my a lot of time and nerves :) But now everything works as expected!

My Own Impressions on AdMob?

I successfully made an app and its waiting for review right now. But meanwhile i've been playing the game on my mom's phone because, one, i dont have an iphone and its for iphone, and two, I actually like playing it. But I looked at my admob because i wanted to make sure i wasnt messing with it by playing my own app but it turns out i have 100 impressions! D: No clicks though, and i know im not supposed to click on my own ads. What do the impressions do? what are they? Am I going to get in trouble? I stopped playing the game now.
btw my moms iphone no longer has my developer Apple ID signed in on it, but it can still play the app and the UDID is still registered with the developer account if that matters.
Nothing to worry about.
Impressions are when an ad is displayed.
Requests are when an ad is requested.
Clicks is when you clicked on an ad (you haven't done that so nothing to worry about).
It's probably a good idea to add some quick code that differentiates between you and every other user. "If username == 'MobileGamer', don't display ads", or something similar. Just to be safe.
For example, I have several websites where both the ads and the stats-tracking code is omitted if I'm the logged-in user. That way, Google can't claim that I'm trying to steal money from them when I'm using my own website (they've tried before), and my user stats aren't skewed by huge activity spikes whenever I'm adding features or testing.
I haven't used AdMob specifically, but ad companies are famously strict with this sort of thing. I was once kicked from an advertising plan simply because my roommate, who was on the same network as me, clicked on an ad no my website once.
Better not to risk it. Just don't show the ads at all, for you or your testers.

Counting missing calls on iPhone/iOS

I'm quite new at iOS app development.
I'm starting to work on an app that should in somehow be able to count the missing calls that the iPhone has registered since the app is running.
I've read that in no way Apple is going to let me intercept incoming calls, answer them, reject them, or "whatever" them, but I wonder if we are allowed to count them.
I've found some people that say it can be done (well, I knew it is possible, cause LockInfo does, for instance), but I don't know if it's attached to jailbroken iPhones only.
Anyway, as far as I have seen, it must be done with some methods related to kCTCallStatusChangeNotification from CoreTelephony.h if I'm right (as seen in http://blogs.oreilly.com/digitalmedia/2008/02/when-it-comes-to-the.html), but I coudln't find much more info about it.
Hello and welcome to iPhone Development! :) As you have already pointed out, you can be informed through a notification if a call is happening. Great! But here comes the dark side of iPhone Development:
That's the end of the road. 95% of the "Phone Functionality" of the iPhone is private API and you don't technically have access to it.
Of course, you could header-dump the private frameworks and use them anyway, but that will get your app instantly rejected from the AppStore, which wouldn't be fun for anyone.
LockInfo is an extension for jailbroken devices - those guys are known for not caring too much about Apple nor Private APIs ;) Also, as you may have seen, LockInfo isn't on the AppStore because it would've never made it that far.
So Apple, why is there CoreTelephony?
Well, it's there for some very specific reasons. I personally use it to obtain the carrier name of the device for certain country specific restrictions in my application. The notification you talked about, along with others, tend to be used by developers to prepare your app for going into an inactive state (when the call comes in, your app is put in the background), so its used to pause tasks etc... CoreTelephony has never been intended for any deep level access to the telephone system of the iPhone.
So sorry, you can't obtain the information you're looking for using public APIs.

Resources