Why Doesn’t My Game’s Trial Play Function Take Effect? - huawei-mobile-services

I have integrated the trial play function provided by the HMS Core Game Service SDK 5.0.1.302 into my game and completed the following as instructed by the official documentation:
1.Applying to enable the forcible identity verification function.
2.Adding code snippet for implementing trial play to my game code.
However, when my game was launched and the identity verification pop-up was displayed, the trial play option was not available, which means that the function did not take effect. How can I make the function take effect?

The following are some of the prerequisites for enabling the trial play function:
The integrated Game Service SDK version must be 5.0.1 or later.
The forcible identity verification has been enabled.
Code relating to the trial play function has been added.
The default authorization parameter of the game must be DEFAULT_AUTH_REQUEST_PARAM_GAME.
For Details,check Docs.

As Shirley already pointed out, please double-check all those 4 prereqs, make sure they are all in place. One common mistake people usually made is as follows:
Please see if that falls into your category. If you still encounter errors, please refer to this link to find out more error code info.

Related

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).

Unity problems with Play Game

I am having problems connecting to Play Games from Unity.
I keep on getting these messages in logcat:
Play Games callback indicates connection failure.
UI interaction required to connect to Google Play.
I have seen other places where they recommend checking the SHA-1 key set to see if it is set to the upload key.
I have double and triple checked and it is definitely right.
I also tried defining both of the keys to be sure but to no avail.
Edit:
I checked the SHA-1 key that appears for the linked application within the Games console. There it appears with the signing of and not the upload one.
First make sure that you've followed the setup here, Setting Up Google Play Games Services. It's involves quite a number of steps so bear with it.
Then follow the thread in this github forum:
on Game Services Turn on Saved Games
always make build with your keystore and password
add your mobile email id in game service's tester section
After much hard work and searching I discovered the problem and am posting it here for others who may encounter it.
Simply said, if you intend to use Google Games Play in you Unity app DON'T use Google signing. ONLY sign with your own signing key.
Otherwise, it simply won't work.
In the end I just discarded the entry in the market (you can't opt-out Google signing once you have opted in) and made a new one.
Worked first time.

Launch installed app on tethered iPhone

I'm working on trying to launch an automated testing solution for some iOS applications. I'm using fruitstrap to transfer and install a compiled app over to the connected iPhone, but I'm struggling to find a way to automatically launch the application after the installation is complete.
Fruitstrap has an option to run the app in the GDB debugger, which works. Unfortunately there are some test cases which will require the app to be run without the debugger attached (special crash handling). I've spent a good amount of time muddling through the resources available on MobileDevice Library which is what Fruitstrap uses, but I haven't been able to turn anything up on launching an App.
Any ideas?
You can do what you want by using fruitstrap or Xcode to start a "bootstrap" program that causes your target application to run via a custom URL as described by Michael.
While the bootstrap program would be running under the debugger the URL-invoked program would be running normally.
Creating a bootstrap program and using URL Schemes may be an option for some people, and certainly should be considered, but it doesn't fit into my requirements.
What I ended up doing was to launch the app with the debugger through fruitstrap. I re-compiled fruitstrap to include the following prep commands (In the GDB_PREP_CMDS define):
handle all noprint pass nostop
continue
The handle will pass the signal on to the program so the custom signal handler (crash handler in this case) will handle the signal. The continue was something I needed so that the app would actually run once the debugger started.
There is one unfortunate flaw in this, which unfortunately I do not know a workaround for. The ARM7 version of GDB does not have the 'set dont_handle_bad_access' command like the darwin version does. For some reason passing EXC_BAD_ACCESS signals to the program does not work and the app hangs. This is significant since this is the signal for most crashes. But as it stands now, its the best I can do, and at least its handling uncaught exceptions.
I believe you may be looking for some sort of Custom URL Scheme.
Have a look at the following document and scroll down to: Implementing Custom URL Schemes
http://developer.apple.com/library/ios/#DOCUMENTATION/iPhone/Conceptual/iPhoneOSProgrammingGuide/AdvancedAppTricks/AdvancedAppTricks.html
You can also google URL Schemes in iOS to see if you come across something similar to what you are trying to do.
Let me know if this helped you out. Would be interesting to hear if you had any success.
Cheers.

Recording User Actions using Instruments

I've tried looking for a while, but is there a way to record user actions on iphones/iphone simulators for testing with Instruments? Mainly I want to be able to target an app and record whatever user input I enter, then have that be able to play back/get data for that. Thanks!
There are 2 options in Instruments:
1) Use User Interface recorder instrument, that will record mouse move and clicks of the user and allows to replay these. (Unfortunately it seems that Phone Simulator do not expose your app accessibility elements to UI recorder).
2) Simulate interactions with Automation instrument in javascript using UIA classes - useful for writing interface tests for the app or simulating user interactions. You can read intro about using Automation in this blogpost by Alex Vollmer.
FoneMonkey is a promising third party solution, I had that working on a recent project and whilst it wasn't perfect, it does let you record user actions, play them back and so forth. Plus it seems to be open source so you can extend it yourself if required.
There is also the UIAutomation framework in iOS but I have no direct experience with it.
As Roger said, you're going to have to use the UIAutomation framework. Apple's documentation should get you where you need to go. Also, take a look at this.
You have to write the automation in JavaScript. Annoying, I know, but with enough examples in front of you you should be able to pick it up in under an hour.

How to show related city name according to the incoming call on iPhone?

I want to add something (eg. the related city name) into the UI view when I make a phone call or received a phone call on iPhone. However, I can't figure out a good solution for this idea. Could anyone who has experience on this subject gives me some suggestions?
My currently solution is, try to write an extension based on mobile substrate and hook functions in SpringBoard. So many difficulties existed and following are my current big questions,
How to develop such a extension? I downloaded some examples from google, unfortunately they cann't even be compiled on my toolchain.
I can't figure out which ui view for the related screen I should use to insert my own component. I get header files of SpringBoard via class-dump, but no docs and no comments about its usage. Could someone share his discoveries with me?
How to build a trusted cross-compiling enviroment on leopard? All kinds of confusing errors pop up when I try to build others's codes. I've tried Zdziarski's instrunctions in his book, it works with iPhone OS 1 and can compile common projects with open sdk, but how should I do to make it works when comipiling ms plugins?
Also, is there any other solution to translate my ideas to codes? I start iPhone development one month ago, no experience with cocoa/Obj-C before. So your suggestions are very appriciated.
~ Link Bian (卞林扣)
Email/MSN: linkou.bian#gmail.com
I think you are asking for too much. It wont be possible to manipulate incoming/outgoing call screens. Ethically, that is.
Zdziarski is a hacker and from his book, you will get many undocumented API calls which will make Apple reject your app. Same goes for Erica Sadun's iPhone Developer's Cookbook.
Something that really helped me get dylibs compiled was using SkylarEC's Xcode template and just appended an extension of '.dylib' onto the binary and sshing it into /Library/MobileSubstrate/DynamicLibraries. I suggest hooking SBCallAlert or SBCallAlertDisplay to get the id of the caller which is usually just an NSString. Play around with it a little bit, those are all the visualizing methods of a call. If you put in an nslog in your custom override method, you can view the output in iPhoneConfgurationUtilitie (windows) or the console in Xcode. From there you would most likley need an index of area codes to comare the callers to. I don't believe you can add subviews to the call, on I intercept and reissue the strings for the views already there.
But you know, apple doesn't like this :P
lemme know if this helps