We have a custom B2B app that the customer would like now to distribute privately to their contractors in addition to their current EMM process for internal staff. As we understand there are no options provided through the Play Console for private apps in a production environment relying on sideloading only and all it's issues. An alternative suggested by many on SO is to run a closed testing track by invite. We accept it is a poor workaround but at this stage we are not aware of other options.
The organisation deploying the app has a G Workspace using their own domain and have created a G Group for contractors with "Allow members outside your organisation" enabled. The idea being that the G Group can be added to the closed track testers in the Play Console (using the G Group option) and the organisation can then add their contractors to the group as needed.
The G Group is running fine and members can see the group and post as needed. The G Group email however is not recognised by the Play Console even after 24 hours (see example below). The group email uses the organisation's domain (eg group_email#org_domain.com) as required in the group set up from the admin console rather than the standard group_email#googlegroups.com. Testing with other public group emails work fine.
We have submitted requests unsuccessfully to Google over the past month about options here so are wondering now if the above scenario is in fact technically valid and if there is something we are missing to get this going?
After more testing it seems whilst the concept is valid, Google Groups created within GSuite, regardless of whether "Allow members outside your organisation" is enabled, cannot be used for testing releases in the Play Store where your organisation domain is used.
Instead when creating a group from within a GSuite account ensure to use #googlegroups.com in the options for the group email.
Related
I am quite new to Teams and to building bots for it.
Using NodeJS, I built a simple prototype one that can receive notifications and send requests to my software.
However, my software is installed on-premises, which means all users using it have a different domain name for it (xxx.com, abc.com…). To be able to use it, the app needs to know what is the endpoint of the requests.
I wonder how I can build my bot app in those conditions and have it in the Teams Marketplace.
My question is :
I assume I want a team admin to set the domain name in some app settings before installing it for a team and users to use.
Is that possible somehow? Is it even possible to build such an bot app?
I suppose it is possible to achieve that by having the users install a custom app, but then the app cannot be in the Marketplace.
I also suppose I can ask individual users to first enter the name of the domain, it sounds repetitive and the info would then be stored in some userData.
Isn't there some teamData instead? Could it mean having one user set those information and have them stored for everyone?
We've had a DevOps member leave recently and have had complaints that all of the integrations (incoming webhooks) that they had set up have stopped working... (once the user was disabled).
One suggestion for dealing with this was to notify the affected channels when we deactivate the user, but I can't find in the API methods a way to look up which channels a user might have configured these webhooks for...
Anyone had to do something like this?
To get the apps and internal integrations that have been installed by a specific user use the API method called team.integrationLogs.
This method lists the integration activity logs for a team, including
when integrations are added, modified and removed. This method can
only be called by Admins.
For a programmatic solution you will need to go through all log entries for one user / app to find out its latest status.
However, it might still become difficult to reinstall all that apps / setup all that webhooks again properly after a DevOps member has left depending on how good your documentation is. We have therefore started using a generic admin user (e.g. "slackadmin") as main installer for all important apps / integrations for our workspace.
I have two different types of Apps(Shopping & Games) & don't want to publish under same Google Play Developer account. I want one Google Play Developer account named: "online shopping" and other named: "Amazing Games"
Q#1: Will I create two different Google Play Developer accounts($25+$25) or there is any option to create 2 accounts with different names in single Google Play Developer account?
Q#2: If I create two different Google Play Developer accounts, then can I create it with different name & emails with same Laptop & IP?
Q#3: Then can I connect both with one Admob account?
Q#1: Will I create two different Google Play Developer accounts($25+$25) or there is any option to create 2 accounts with different names in single Google Play Developer account?
There is no option to create 2 stores under 1 google play account. So the only option you have is to create 2 separate google play accounts (one for online shopping and the other for Games) Which is $50.
Q#2: If I create two different Google Play Developer accounts, then can I create it with different name & emails with same Laptop & IP? Q#3: Then can I connect both with one Admob account?
Yes, You can create different name & emails with same laptop & IP, but I don't recommend that because whenever you got a termination on one of your accounts the other get terminated also (Google states that in their Policies).
Here's example of how google can detect multiple accounts and get all of your accounts suspended whenever one of them get terminated.
2 Accounts Under the same Laptop & IP
2 Accounts with Gmails created under the same laptop (Even if you connect them separately)
Same credit card used for the 2 accounts.
How to avoid that?
Use separate laptop and separate connection for your accounts (You can use RDP or Proxies, Be prudent with that and use some premium proxies,RDPs or Socks)
Use some OLD gmails, You can either purchase them or create new ones separately like stated above.
Purchase your accounts with separate credit card (You can use Gift Cards, Don't use service like Entropay, Google Don't love them and your accounts won't last long).
At last and not least, don't violate Google Policy to not get your account banned (Use your own Graphics, use keywords wisely and don't use copyrighted graphics or keywords).
Enjoy Google Play.
I have an application for various platforms. Let them be iOS, Android and Windows. In order to use a app, a monthly fee needs to be paid, but it just needs to be paid once in order to use all platforms. It is the same as with Spotify, so by paying once, every platform can be used.
According to the guidelines of Google and Apple, I need to offer In-App Purchases for the monthly fee. The system is connected to user accounts, which are managed by a server, which is in my control. I am storing the subscription data of users, so if a user uses the In-App Purchases on iOS, the information is transmitted to the central server in order to unlock the Android-App as well (in case it has been paid on another platform already)
The problem is the following scenario:
A user has a valid subscription which has been payed via Google Play. The iOS and Windows apps are unlocked as well. Now the user uninstalls the Android app, goes to the Google Play website and cancels the subscription. In the current scenario, I am not able to detect this and the subscription will be valid for all other platforms.
The question is:
Is there any pattern to circumvent this problem? Spotify and co are solving this issue as well, so there must be a solution for this
Well, the server that handles the authorization of the user (that is, your server) should query the Google Subscription API, to check if the current subscription is still valid. Each SubscriptionPurchase Resource contains information about when the subscription expires.
(see https://developers.google.com/android-publisher/api-ref/purchases/subscriptions)
For Apple, the same stuff applies: You will get a receipt, and with that receipt, you can query the server at any time to check if that subscription is still valid.
There is a slide which summarizes these points and the pitfalls very well: https://speakerdeck.com/rosapolis/the-recurring-nightmare-cross-platform-in-app-subscription-purchases
Bottom line: You won't be able to make that happen without a server that does the communication between the two stores. It comes with issues, though, as the slide shows.
Bonus: The talk from which the slides are taken is also on Youtube
I am trying to recruit some beta testers for an app of mine using Test Flight. None of the testers will be in house employees or anything like that- just some folks I know who would like to help test my app (I'm a hobbyist and don't have any employees anyways).
When I went to add somme users in ITC for test flight it made me assign them a role. The only role that made sense to me was "Technical". However, I am worried that assigning somebody I don't know well the technical role will allow them to make changes to my app descriptions, reject or submit binaries, and things like that.
Is that something I need to worry about? Is there a way to assign a user the role of JUST tester without giving them access to my apps via ITC?
Apple's documentation does not seem to explicitly state what users with various roles can do.
No, this isn't really safe, and it's not a good idea to give the 'Technical' role in iTunesConnect to someone you don't fully trust.
The iOS 8 TestFlight system has a way to setup external testers, see the "External testers" section on https://developer.apple.com/app-store/Testflight/
The downside is that your app has to go through the review team each time you make any major changes before it goes to external testers (hence if the tester is really a close part of your team it is still advantageous to add them as an internal tester by giving them the technical role). The reviews don't take as long as a normal App Store review.
Alternatives (that don't involve a review) are Crashlytics Beta Distribution (owned by Twitter) or HockeyApp (owned by Microsoft). There are other services too, or you can host IPAs on your own website (using the mechanism designed for enterprise apps) but generally doing this means you miss out on other features you get when using the more integrated solutions.
Short answer: no. It is not safe to add testers with technical role.
Long answer:
According to iTunes Connect, the user must have Admin or Tech.
After reading the comments, I will complete my answer with this.
There are Internal Testers and External Testers.
External Testers are not available as of yet (see https://developer.apple.com/app-store/Testflight/).
Only Internal Testers are allowed by now (which means, your testers WILL be able to change your apps).
Since you need the user to have minimum rights, you should add the user as Technical (the less risky, but still dangerous).
I see that there is a checkbox in iTC that lets you enable the Internal Tester role:
What permissions will the users have? Theoretically, they will only have access to the beta versions (but that is a guess, since I have not tried it yet). You could create an account for a fake internal tester and check that you can't modify apps with that role.
A technical users will have access to the 'My Apps' section of iTunes Connect. This means that they can change the description of an app in the app store, update prices and even remove an app from sale.
There is no way to have a user with just an 'internal tester' role. That's what external testers are for.
It is possible to grant someone access to test as an internal tester, but not have them be able to log into iTunes Connect.
Create an iTunes Connect User with the "Technical" role with an email address that they can receive. Then have them accept it with a different Apple ID.
As long as they cannot log into iTunes Connect with the email address you added as the "Technical" user, they cannot misbehave.