Google API Changes causing problems on my App - ios

I have an iOS App on the App Store, and it connects to Google Drive. In the past week or so, I've noticed two new problems in my live app.
The App suddenly stopped logging in. I would get a 401 - invalid_client. I found a lot of questions/answers for this problem, but they were all for people who couldn't get it working. Mine was working for about two years and then stopped working a couple of days ago. After trying a lot of things, I found that I was using <id>#developer.gserviceaccount.com as my Client ID, and when I changed it to <id>.apps.googleusercontent.com it worked again. I don't know why this change fixed it, and even knowing that this fixes it, I can't find if this is the correct/appropriate solution.
I explain my second problem, which is very specific here, but skip to the next paragraph to get to the point. The second issue is a a result of Google changing the way their API calls respond, and this is why this wasn't an issue when we submitted the latest version of the App to the App Store. Google has changed the way the explicitlyTrashed property of their GTLDriveFile class. Per their spec, this property should be either an NSNumber containing Yes, or null. They have recently changed it so that it is always an NSNumber set to either Yes or No. This is what's breaking our functionality.
Anyway, these are two changes Google has made on their end recently that currently has my customers on hold since I have to fix this and push it out. My question is if there's a place to keep up with these changes that Google is making recently. Also, if someone knows or can point me to why the first issue is happening, I would greatly appreciate it.

For the first issue, the reason why it got resolved by using [id].apps.googleusercontext.com is because it it requesting an authorization token from an app to the server, as opposed to a Server to Server transaction using impersonation ([id]#developer.gserviceaccount.com). This is the right solution for both android and IOS apps requesting a token.
As for your second question, the best way to keep up to date with the latest changes is through their official blog: http://googleappsdeveloper.blogspot.com/
Another resource is the G+ Google Drive Developer community: https://plus.google.com/communities/107264319205603895037

Related

Get time difference in iOS when in offline mode

I have an app which works both offline and online. I have a request from the client to embed a functionality which will disallow the user from using certain functionality after some days, 7 days, for example.
If online I can easily achieve this task by comparing the time-interval between server time.
But in offline mode, this has been a problem. I have tried to achieve this by saving server timestamp in USerDefault and when the app comes in the foreground, compare the current NSDate with the one saved to get time interval. But, what I found is this can be hacked easily by manipulating the date and time in Settings and those functionalities in app works perpetually.
Another solution I have thought is to disable the app if date time is not set to automatically in the setting. But, found that Apple has not disclosed the API to access date and time.
I have searched for other answers on the internet, but could not find the solution to fix this issue. Also, tried some offline game app to check but found that I can change date and time to manipulate their functionality.
So, isn't there any robust solution to fix this issue? Any help is highly appreciable.
you can manage timings on the server through API calls when the user
goes offline or log out or something. so you can easily get to know
your exact timing and it is also not hackable :)

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 iOS app does not appear on Firebase dashboard

My app is live on the App Store and there are no crashes on the front end however when I log in to Firebase I cannot find it on the dashboard. I tried copy & pasting the database URL but I got the message saying that there was an error making the request and that I should try again later. Has anyone else encountered this issue and could advise me on who to contact to resolve it?
According to the Firebase Status Dashboard, there should be no issues with the Realtime Database at the moment.
Assuming that your app was associated with your Firebase account previously and just suddenly disappeared, I have not heard of/ encountered anything similar in the past.
One thing to try is to make sure you are logged into the correct account and have selected the correct project.
Since accessing the database directly through its URL says to try again later, this might be a temporary problem that is resolved shortly.
However to make sure, your best option at this point is probably to reach out to Firebase support directly using this form (requires sign-in).

Apple review team has rejected app because it can't connect to ASP.NET API

I run my own VPS in Amsterdam where I have a MySQL database that is being populated and maintained using ASP.NET. It's a Windows Server.
I use this API for four of my existing Android apps (published and working) with a few thousand users who never had any issues connecting to the API through those apps. Recently I finished one of the apps on the iOS platform and it got rejected because Apple couldn't get it to load any content, or it would get stuck on loading without ever returning anything (after we implemented a loading progress animation). After a lot of messaging between me and Apple's review team, they ended up accepting my app to be passed through review even though they never got it to work (or so I believe, they just said they would re-review it and it suddenly got approved after 7 rejects). None of my friends, family or users ever experienced any issues like this on either Android or iOS.
A good friend of mine who did most of the work on the API is also from the USA, which makes me doubt it's a location problem.
I must note that pretty much 99.99% of my users are Dutch and all my projects are build for Dutch users.
Does anyone have experience or ideas in this field? I'm about to publish an update for the already published app and I'm afraid they will reject it because of the same issue.
The exact message I got at first was:
Specifically, upon launch we found that the app failed to load any content.
Changing the API calls to be over HTTPS seems to have fixed the issue, Apple now has access to my API through all my apps.

Security of app using Parse servers

I am using Parse servers for my app, and I am concerned about people getting into the code of the app and changing the code that communicates directly with Parse.
For example, if I save a score to the database and I want to update it with a new score by the user, I have to write that code within the app. However, if someone were to change the code and hardcode in a score that wasn't earned, they technically could.
Is there a way to prevent this?
(When I say getting into the code, there is a way to do this using a jailbroken device. I don't know if Apple has fixed this, but about a year ago someone I know showed me the code to an app that is on the App Store.)

Resources