Amazon s3 anonymous tvm upload works only on simulator - iphone

I am using amazon s3 for my data storage and am setting a anonymous vending machine token (tvm) for upload via the app.
Everything seems to work fine when I am using the simulator.
However as soon as I switched to the actual device, the response from the getToken method of the AmazonTVMClient object was not successful.
It returns code 408 with a message "Timestamp is not valid"
I cannot figure out why that it works on the simulator but not on the device. I have seen another post mentioned that it could be related to upper/lower case issue. But I doubted that it's the case.
Basically it will do anonymousRegister just fine but unable to get the token.
Any help will be appreciated. Thanks.

Related

Could not signal service com.apple.WebKit.WebContent: 113: Could not find specified service _after_ implementing AdMob

I just integrated AdMob into my project and I get a whole bunch of these error messages in the Xcode output.
The app does not communicate w/ the internet and does not open up WKView (all I found n SO was references to WKWebView like this https://stackoverflow.com/a/44623268/14414215 but doesn't seem to be related to me since I don't use WKWebView). All I did was integrate Google-Mobile-Ads using cocoa pods and followed the Admob support pages.
Some SO Pages talk about ATS, but google support pages don't have the same error message (https://developers.google.com/admob/ios/app-transport-security)
App Transport Security has blocked a cleartext HTTP (http://) resource
load since it is insecure. Temporary exceptions can be configured via
your app's Info.plist file.
Its happening both on simulator and real device. Is this a real issue or something I can ignore?
Also, there's a ton of messages coming out from the Admob SDK, it's frankly a bit annoying to filter through.
The Messages in the console remains and does not seem to affect the app performance (AFAICT) and while it is excessive, I have silenced them some-what using environment variable ( https://stackoverflow.com/a/64471106/14414215) in my scheme. (per below pictures)
Take note however, if you do have issues w/ Google-Mobile-Ads, please be reminded to remove this such that you will be able to see the console messages.

Unity play games services cloud save internal error

I have used the same code given by https://github.com/playgameservices/play-games-plugin-for-unity to add the cloud save game functionality, enable save games have been called at the beginning of the code and save games are enabled from the google play console as well. The leaderboards and achievements are working fine.
The OnSaveGameOpened function gets an internal error as SavedGameRequestStatus status.
I am not able to find the cause of this (internal error being received as the status), can anyone help me out please? How can I solve this.
P.S. Serialized data (in the form of bytes[]) was fed into the SaveGame function, serialized using the binary formatter.
Edit:
I was able to debug this further, I get an error on the activation of save games in the play console. I have activated the save games feature and published it (this was done a few days ago). I have also confirmed that the Drive API, Play Games Services API and Play Games Management API are enabled under the API console project. I get following error,
Cannot use snapshots without enabling the 'Saved Game' feature in Play console
log from running on an android mobile.
The answer to this question
Google Play Games :: Cannot Use Snapshots Exception
states that it will activate within 24hrs, but it is not active even after multiple days.
There are several causes of an internal error; there should be other logs indicating the root cause. You might want to take a look into the source code to know what logs to expect.
If you're testing in an emulator, make sure your play services and play games are up-to-date.
Reference:
https://github.com/playgameservices/play-games-plugin-for-unity/blob/master/source/PluginDev/Assets/GooglePlayGames/Platforms/Android/AndroidSavedGameClient.cs
The problem was solved. It was not a problem from my end, it took well over 24 hours for the saved game services to activate. The problem solved itself once the saved games were enabled by google (there was no notification that the saved games were enabled, instead the app started working properly).

iOS Google Cloud Storage API Service Account Access

I can't seem to find any documentation on how to access Google Cloud Storage using a service account from iOS. The iOS application writes images to Rails and I've used a service account with the ruby apis to save the image to Google Storage. I'm trying to read those images from iOS but it seems like the ability is not there and I'm not sure why. The only way I can make it work is to use an API key and set the predefinedAcl to 'publicRead'. This means my application's images are open to the internet.
What am I missing? Is there a reason this functionality isn't there in the iOS library? Any plans in the future?
Thanks
I think you are heavily compromising your security while following a really bad practice. Here's are two strategies on how to fix it:
When you save your images to Google Storage, you should create a signed URL for the same and use that as end point for clients/app. OR
Save original Google Storage URLs to user's account, inaccessible via user api, and during runtime when a request for image is received, generate a short duration based signed URL.
Service key based approach is really faulty as first you are giving away your project credentials and moreover you can never even expire those keys since they might be used in one of many end devices.

Sending custom app logs to developer

I'm planning to release a new app in the future.
I have a custom logging function which logs some application data (not crashes) into a file (location manager state, app foreground-background transitions, main actions...). These logs helped me a lot to debug problems which were app-related, but not causing a crash. Until now these were in the documents directory (shared in iTunes) and the testers sent them to me after they saw some incorrect behaviors, however I don't want to share them anymore because this directory contains the app's database too.
I'd like to obtain these logs even when the app will be on App Store, but I don't know how this should be done. As I wrote, it is a new app and even after the test phase may exist minor bugs. I know that the users can report problems in iTunes or on the Dev site, but without a detailed scenario or log it is really hard to correct a bug. Should I make some kind of in-app bug report functionality (even if this creates a wrong user impression) ? How is this usually handled ?
Edit1 : I'd want these logs only if the user thinks something went wrong and should be analyzed, otherwise I don't really need them. I think some kind of user action is needed to confirm that something isn't working as intended, that's why I asked about making a functionality ( like the "Report a problem" in the Maps App ).
Thanks
If your app is gonna crash, don't submit it to AppStore because more likely it will be refused.
I don't know your app but usually logging slow down things. But if you really want logging I would suggest you to first find out if application crashed. For instance in your appDelegate when the app is terminated without problems set some NSUserDefaults value like closedSuccesfully=YES. Just after you start app set closedSuccesfully=NO, but if it was set to NO before it means your app crashed last time. In that case you could grab your previous logs and try to send them to your server via http post message. On your server there might be very simple php script to get that data. That way it will be automated and your users wouldn't have to do anything and you would get all crashes even these not reported.

iphone app unable to access server - previously working

I've run into a funny problem. Our app, which was working prior to Saturday, can't connect to the server to get the necessary data. The server is fine, everything is up and running and I have rebooted it. The Support Tech has said the same. So it points to either the code having something that didn't change, or the ip/database info changed and the code is using the old info; as far as I know, we've changed nothing. Will I have to check the code?(I didn't write it, someone was hired to do it) or is there something else that could be causing the problem?
The error message:
"The app is currently unable to connect to the server. Please try again."
It's a very unspecific error message so I'm assuming the developers of the app put that specific message in themselves.
Assuming you have the app on an iPhone you may be able to diagnose (but not necessarily fix) this without getting into the code. Download Fiddler and use this tutorial to setup the iPhone so you can watch the network traffic. This will allow you to see exactly what requests the app is making to the server and you may be able to figure out the problem. Either your request isn't making it to the server or the server is returning an error message. Either way Fiddler should be able to give you that answer.
EDIT:
HTTP Scoop is a pretty easy to use client for the Mac that does what Fiddler does for PC. You can use it for free for 2 weeks so that should be enough to help you out.
Charles would also work. I know you can get a free trial for that as well.