Fastlane: Using App Center plugin -- Testflight group not being found to Distribute - testflight

I have Testflight connected for my iOS app in Microsoft App Center.
When I look at the Distribution-->Stores section in App Center, I can see all of the Testflight groups I created -- specifically, I can see the "QA" and "Beta" Testflight groups in the list.
I run appcenter_upload with the following args:
appcenter_upload(
api_token: ENV['APP_CENTER_IOS_API_TOKEN'],
owner_name: ENV[APP_CENTER_OWNER_NAME],
owner_type: "organization",
app_name: ENV[APP_CENTER_APP_NAME],,
destination_type: "store",
destinations: "QA", # <-- Name of Testflight group
file: 'blah.ipa',
notify_testers: false,
release_notes: release_notes_contents,
)
I get this error:
ERROR [2023-01-23 11:22:41.20]: Not found, invalid distribution store name
ERROR [2023-01-23 11:22:41.20]: store 'QA' was not found
Any idea what is going on here?
The "destinations" array documentation says:
Comma separated list of destination names, use '*' for all distribution groups if destination type is 'group'. Both distribution groups and stores are supported. All names are required to be of the same destination type (default: Collaborators)
Any idea why App center isn't finding the Testflight group name I specified?
Doing the same action with "group" specified as the destination_type and passing in an App-Center group name for destinations works fine.
The problem is changing the dest type to "store" and putting the Testflight group name in
destinations

For anyone who has this problem in the future, here is the cause of the Testflight group not being found:
For Testflight destinations you have to FIRST do a manual publish to that group from the App Center website. Once you do that, that group is now added as a valid destination for the appcenter_upload fastlane action.
If you don't distribute the first release yourself from the website, the App Center API endpoint will only return "Production" as a valid destination.

Related

How to upload directly to the app / play store using fastlane's action 'appcenter_upload'

I have been trying to use appcenter_upload() in my fastfile to upload our builds to the appcenter and the play / app store. It successfully uploads to the appcenter but it doesn't successfully upload to the stores. It tells me 'Not found, invalid distribution store name, store 'App Store' was not found'.
The arguments I am using look like this:
appcenter_upload(
file: options[:BUILD_OUTPUT],
destinations: "App store",
destination_type: "store",
upload_build_only: true)
It doesn't recognize 'App store' as a name for a store. I have looked through the documentation and this one (link below) shows the 'destinations' as Alpha. I did try alpha but it tells me 'Not found, invalid distribution store name, store 'Alpha' was not found'. Example can be found above and at the link below
(Link: enter image description here)
In the 'fastlane-lugin-appcenter's readme, it says that 'Comma separated list of destination names, use '*' for all distribution groups if destination type is 'group'. Both distribution groups and stores are supported. All names are required to be of the same destination type (default: Collaborators)'
What I am trying to accomplish: upload our builds to the app center (already done, have multiple builds in there) AND have it be uploaded to both the Google Play Console and the App Store Connect.
The main question I have is: What are the values that can be used for 'destinations' when we are trying to upload to a store and not a group of testers within AppCenter? Can anyone help me with this I would REALLY appreciate it, thank you so much in advance!
Fastlane action documentation (repo): https://github.com/microsoft/fastlane-plugin-appcenter/tree/f46cb07ae3fad3cadd57e349c662f80cd769121f
I tried using the arguments suggested here: https://github.com/microsoft/fastlane-plugin-appcenter/blob/f46cb07ae3fad3cadd57e349c662f80cd769121f/lib/fastlane/plugin/appcenter/actions/appcenter_upload_action.rb#L709-L716
It successfully uploads to the app center, but it doesn't recognize the store name so it doesn't upload to the store. We already connected our team's store accounts from within the AppCenter. It is being uploaded through Jenkins so I am not directly uploading it so I don't think that I would need to login with my credentials to send the build.
I expected to have the build upload to the app center (already done) AND have the build upload to the stores as well. The documentation states that I need to simply state the 'destination_type: store' and the 'destinations' as the store's name.
What actually happened was that it uploads only to the app center and it doesn't recognize the store's name so it doesn't upload to the stores. We are trying to automate the process but we are blocked on this step specifically and there isn't too much documentation related to it. (specifically uploading to the stores AS WELL as uploading to the app center.) The readme states that it is possible but I can't get it to work. Any help would be VERY appreciated!!

Azure optional claim return object Id - need Group name

i have tried to get user group name as value in auth/me URL, but it returns only objectId of group.
How to get the group name instead of objectId.
In my manifest i have added
"groupMembershipClaims": "SecurityGroup"
optional claims also added
i don't have any onpremises AD connect
I need the manifest configuration to get the group name in auth/me url
I have tried this in my lab and it is working for me.
This option is available only if you select "groups assigned to the application" option.
If you select any other option apart from this, "cloud-only group display names (preview)" it will be greyed out.
Since this option is still in preview, there is some enhancements going on at backend.
For more information, you can also refer this documentation Configure group claims for applications.
I tried to reproduce the same in my environment:
Manifest:
"given_name": "kav",
"groups": [
"xxxf-94bc-xxxxxx7d",
"xxxx-2459exx5a"
],
The jwt cannot contain group name but it gets Id’s of the groups
You can customize group claim name following Configure group claims but it required Onpremise AD which you mentioned is not there as sAMAccountName option is the option present on Group objects synced from Active Directory.
Else You can check all the default properties using Microsoft graph Api Graph Explorer | Try Microsoft Graph APIs - Microsoft Graph
https://graph.microsoft.com/v1.0/groups/<groupId>

How to hide the app from the play store for only specific search

Let's assume the name of the app is "Alpha" and there are three apps for "Alpha".
First (main app) => Name: "Alpha", bundle name: "com.alpha.customer"
Second (delivery partner app) => Name: "Alpha Delivery Partner",
bundle Name: "com.alpha.delivery"
Third (rider app) => Name: "Alpha Rider", bundle Name:
"com.alpha.rider"
Now what I have to do is when the user types "Alpha" on the play store then he/she is only able to view First (main app) only, not the other two apps (currently it shows all three apps).
And for the other two apps, they should only be visible when the user types the whole name of the app.
Your title should be unique and accessible, avoid standard terms, and reinforce what your app is about.
Keep your title focused. Long labels may be shortened on some devices that your users are browsing on.
Avoid using subtle misspellings of general terms, as users may
correct misspelt search terms.
Source - Google
You can check it from here
Make sure your app SEO is good and also make sure your app must be shown on the web search too.
Make your app name unique and use the same name in the developer app file.

iOS Fastlane deployment (TestFlight) - how to include BETA demo credentials?

We’re starting to use Fastlane for automated deployment, and it’s a very impressive toolset.
One mystery, though:
When submitting a BETA build to Apple’s TestFlight, how do you pass in the Demo Account credentials (username and password)? The docs don’t seem to say.
There seem to be a couple of clues here:
https://github.com/fastlane/fastlane/blob/master/spaceship/lib/spaceship/test_flight/beta_review_info.rb
https://github.com/fastlane/fastlane/blob/master/spaceship/spec/test_flight/app_test_info_spec.rb
And there does seem to be a way to pass in this info for actual App Store submissions:
https://github.com/fastlane/fastlane/blob/master/deliver/Deliverfile.md [see app_review_information]
... but not for TestFlight betas.
How do you do the equivalent for BETA uploads?
Thank you very much!
You need to use Appfile, pilot use it like deliver
Here is the doc.
https://docs.fastlane.tools/advanced/#control-configuration-by-lane-and-by-platform
My Appfile for ex. is:
app_identifier ENV["app_identifierEnterprise"] # The bundle identifier of your app
apple_id ENV["accountAppleId"] # Your Apple email address
team_name ENV["teamNameEnterprise"]
team_id ENV["teamIdEnterprise"]
for_platform :ios do
for_lane :releaseBeta do
app_identifier ENV["app_identifier"]
apple_id ENV["accountAppleId"]
team_name ENV["teamName"]
team_id ENV["teamId"]
end
end
I use .env (a file to set this variables), but you just need to replace ENV[""] with "ValueYouWant"
Hope this helps.

Bundle Identifier mismatch in iTunes Connect

My App is named 'This & That'. Well, that's not my App's real name. 'This' and 'That' stand in for the two actual words I'm using.
In Xcode > Targets > General > Identity > Bundle Identifier shows:
com.domain.This---That
So, it looks like Xcode replaced the two spaces and the ampersand in my App name with hyphens in order to generate a bundle ID it liked.
Over in iTunes Connect under App Information > Identifiers, the Bundle ID shows:
'This---That'
I think that's wrong. This was due to a misunderstanding on my part when I entered the data. I believe I should have entered 'com.domain.This---That'
I discovered this issue when I made an Archive of my App in the Organizer and submitted it for Validation.
The Validation failed with one fault and I got the following back:
"The bundle identifier cannot be changed from the current value, 'This---That'. If you want to change your bundle identifier, you will need to create a new application in iTunes Connect."
Maybe I'm being too literal here but when it says,
"...you will need to create a new application in iTunes Connect."
it seems to me that before I can do that, I will need to delete the application I have in iTunes Connect now (the one with the wrong bundle ID).
I read about how to delete an App in iTunes Connect and says that if I do that, I cannot reuse the SKU or the App name in the same organization.
That could be a real problem for me because I really like the App name I have now. The two words I've chosen work really well for what I'm doing. So if I can avoid it, I do not want to do anything here to fix my problem that will preclude me from using the App name I've chosen.
Any suggestions on how I might sort this problem out?

Resources