In-App Review doesn't show up in Internal Test Track - google-play

I can only get the review prompt to show up once, even when in internal test track, in order for it to show up again I need to clear data and cache of the Google Play Store.
I meet all of the testing requirements since I have another game which I'm using In-App Review and everything works correctly on that one.
No errors show up when logging.
I'm using the unity version of the plugin, here are some of the things I've tried and their results:
Popup works every time in the Internal App Sharing, submit button is greyed out since it wasn't downloaded from the store.
Clearing storage and cache from Google Play makes the review appear once, but it doesn't have the correct settings, even though it was downloaded though the internal test track, the comment is tagged as optional, and when trying to publish said review, either including the comment or not, it always gives the following error: DF-DFERH-01 Server Error
I've also tried multiple versions of the plugin, mainly 1.6.1, 1.7.0, and 1.8.0, without success on any of them (I did update proguard every time).
I also tried resolving dependencies with other versions of the External Dependencies Manager, .172 and .174, both without success.
I've tried another account also included in the internal test track, didn't work
On another game I published, the In-App Review works as intended, I'm using the exact same code.
What's weird to me is that it works correctly on the Internal App Sharing, the app is currently on Open Beta, while the other game which In-App Reviews work correctly is on production, but I doubt that's related.

I was able to confirm that this is an issue on Google's side, after releasing the game to production, the popup started showing up on the Internal Test Track every time while using the same version as before.
To anyone that is also having this issue, if the In-App Review works on Internal App Sharing, you should be safe to release it to production and the issue will fix itself.
I can't say for sure this will work for everyone, but it did for me.

Related

Is it still possible to publish an Electron app to the Mac Store?

I'm trying to successfully submit my Electron app to the Mac Store. I want to put it into TestFlight, similar to how I am submitting the corresponding iOS app. Ultimately, I want both of these processes to be part of a CI pipeline. The iOS version of this is ready to go.
For the Electron app, I'm using Electron-Builder to do the packaging and signing, and leveraging electron-builder-notarize to get past the Apple notarization step. After about a week of diving down several rabbit holes that became full-fledged rabbit warren metropolises, I finally have a working combination of configuration settings, certificates, plists, and pixie dust in place that my pipeline successfully builds and notarizes my "mas" target package.
I thought that once I had gotten past the rather hellish notarization step, I would be pretty much out of the woods -- after all, Apple 'notarized' it (and sent me an email to prove it). But when I use the Apple Transporter app to post it to the App Store (I'm using this manually for now until I prove this works, then later I'll use the CLI commands for it to complete my CI implementation) it reports the app is rejected with 5 issues. These are actually variations of the same thing:
Electron.app' is already in use by another application.
Electron.app/Contents/Frameworks/Electron Helper (GPU).app' is already in use by another application.
/Electron.app/Contents/Frameworks/Electron Helper (Plugin).app' is already in use by another application.
Electron.app/Contents/Frameworks/Electron Helper (Renderer).app' is already in use by another application.
Electron.app/Contents/Frameworks/Electron Helper.app' is already in use by another application.
I thought Electron-Builder was supposed to deal with these internal ids. My "mas" block of the config looks like
"mas": {
"type": "distribution",
"hardenedRuntime": false,
"provisioningProfile": "embedded.provisionprofile",
"entitlements": "build/entitlements.mas.plist",
"entitlementsInherit": "build/entitlements.mas.inherit.plist",
"entitlementsLoginHelper": "build/entitlements.mas.loginhelper.plist",
"publish": null
},
which I believe is what is needed to specify that these inner binaries are signed. Perhaps not. Copying others who also had to abandon the docs is not necessarily a guarantee of success. But these things did get me this far.
I've scoured SO and other Internet sites, and of course the poorly written and often obscure official documentation sources, but I can't find the answer to this.
In my travels, I happened across this blog which makes me think that even if I get past this part, there may still be a long bumpy road ahead, and it may turn out to be a dead end.
I notice a lot of developers have commented they chose to abandon the Mac store and instead simply self-publish with their own URL link for download. That seems to be a shame, at the very least, and certainly not my preference.
It makes we wonder if this is even possible. Many of the posts (not to mention the docs) contain outdated information, and few posts are more recent than more than a year. Many things have changed. Maybe everyone threw in the towel. Am I on a futile quest?
I believe I found the answer to the main question of "is it possible?" I may still run into other issues, but I've discovered the main problem.
My Electron project is in a different construction than that of the "Electron-quick-start" template, so the Electron-builder packaging and signing steps do not find what they are looking for in all the normal places.
I am not 100% sure I can successfully reconstruct my project into the 'canonical' format, but that appears to be the solution.
I was able to create a basic quick-start app and upload it to the App Store in a matter of minutes, so all the parts do in fact work. The project just need to be of the right construction.

Xamarin Notification Service Extension Problems

I have several issues with implementing this extensions.
I get the service to run in one project but then in another it doesn't fire at all.
I get the service to fire on some devices and not on others.
The service sometimes works in pulling a NSUrl call but fails on the identical call later on.
I have read the post:
Xamarin Notification Service Extension issue
Is there a better solution than reverting to Objective-C and replacing the appex and resigning? Also, has anyone else experienced the inconsistencies with devices? Any reason why it works for one project and then has trouble working in another?
I got it working after a LOT of tries. It only works in release mode.
It has to do with a bug in Debug mode. Details are here (in the comments).
https://learn.microsoft.com/en-us/xamarin/ios/platform/user-notifications/enhanced-user-notifications?tabs=vswin#working-with-service-extensions

Convert server-generated site to PhoneGap/Cordova app?

What's the lowest effort way to get a site with server-generated pages (in my case Laravel/PHP) running as a PhoneGap/Cordova app? I'd rather not have to convert the whole thing into a single page app before importing into PhoneGap/Cordova.
Is it possible to use PhoneGap/Cordova as a very thin wrapper and still load each page live from the server? And if so, how exactly please? I don't think we need any native phone APIs.
Reason for the whole thing is my client insists on "having an app" even though obviously our site will work in a mobile web browser and can have an icon on the user's phone.
Many thanks
Unfortunately for your app to pass Apple App store approval it will have to provide some basic functions and display correctly without an internet connection. This means at a minimum, if you plan to generate content on a server you will probably need the Cordova plugin for network information:
https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-network-information/
I would make sure you are familiar with the Apple Human Interface Guidelines:
https://developer.apple.com/ios/human-interface-guidelines/overview/design-principles/
You will probably also need to bundle any JavaScript. Apple is very picky about apps that download code (this can include JavaScript).
This is a section from the iOS developer Agreement.
3.3.2 Except as set forth in the next paragraph, an Application may not download or install
executable code. Interpreted code may only be used in an Application if all scripts, code and
interpreters are packaged in the Application and not downloaded. The only exceptions to the
foregoing are scripts and code downloaded and run by Apple's built-in WebKit framework or
JavascriptCore, provided that such scripts and code do not change the primary purpose of the
Application by providing features or functionality that are inconsistent with the intended and
advertised purpose of the Application as submitted to the App Store.
The following is my opinion only
My fear is that if you go at it in a low effort way, best case you will fail app approval. Worst case it will leave users with a poor experience or worse, a poor image of your client. Do it properly and give the app some extra functions that you can't have in a browser alone. I would advise your client of this and see if they would like a proper app that engages their customers and provides them with a great experience.

Xcode started to not work with downloaded docsets when offline

I had a lot of problems trying to download these docsets since updating to the latest Xcode. Various popups appearing saying it didn't know how to install it. Eventually after reading on here I just persisted and their servers started to work so i downloaded a few sets, iOS, WatchOS, and XCode so far. They're downloaded and show as having a tick box next to them.
However even though the docs are downloaded, when I go to use the documentation browser it requires an internet connection to show anything. Sometimes you see it rendering the webpage on apple's site to get the details and then it redraws in the usual documentation form.
I've a few docsets yet to download, but I'm not that bothered about them at this time.
Has anyone else encountered this and got any suggestions?

Is it possible to publish game update to AppStore and Google Play simulanously exactly at the same time?

When developing online game I would really like to avoid supporting different protocol versions. The server can check the version of a client and deny login until the client gets updated. But the problem here is that I need the app update to become available simultanously at the same time on AppStore and Google Play.
Is it possible to do? How do you solve such versioning problems?
Well, I am not sure how it works for the GooglePlayStore but if you choose Developer Release instead of automatic then you could just release it in the moment it approves on the GooglePlayStore and about 30mins. later your iOS app will be online and available as well. That's what I'd do.

Resources