Testers could not download app from Firebase App Distribution [closed] - ios

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 1 year ago.
The community reviewed whether to reopen this question 1 year ago and left it closed:
Original close reason(s) were not resolved
Locked. This question and its answers are locked because the question is off-topic but has historical significance. It is not currently accepting new answers or interactions.
We pushed iOS app to Firebase distribution and sent invitations to every tester. Our testers followed all steps and get ready to test the app. Unfortunately, the testers get the message “ The developer needs to update their app so that it can run on your device. You'll get an email once the app is ready to test.“ once they tried to download the app to their iOS. We can be sure that we built the app as a production version.
Can you guys give me ideas for the issue?

I finally got to resolve the problem.
The whole problem has to do with Provisioning Profiles.
When you have to export for Firebase App Distribution is clearly stated in their docs that an ad-hoc export should be used, but the whole procedure and options are sparsely explained..
So here are the necessary steps:
In your developer account generate a new Distribution certificate.
Generate a new profile for distribution.
For the new profile select the right AppId, the Distribution certificate, choose ad-hoc, and select the Device UUIDs you want(the tester's)
In Xcode keep Automatic signing checked, and use your Developer profile.
Make sure to update your profile:Xcode/Preferences `Download Manual Profiles' button.
Make sure that in both Target/Building Settings/Signing and Project/Building Settings/Signing shows you iOS Developer profile under both Debugand Release not the Keychainone, but the Automatic one, else select it yourself.
Archive the project. Product/Archive.
Export the .ipa:
If Xcode doesn't get you to the organiser window open it Windows/Organizer
Select the proper App(from the left ìOS Apss`column) and archived file ( the latest is at the top of the list.
Choose Distribute App button.
Select a distribution method (Ad Hoc in this case)and click Nextbutton. Keep in mind that Each method require its own Certificate and Provisioning Profile..
Choose options ( I left it as is..) and click Nextbutton.
Re-signing the App is where things go wrong, keep Automatic ( here is where Xcode connects to your Developer account and sign the app with the Distributioncertificate and profile.
Once all the compiling has finished just click Export button.
Choose where to store the files on your computer and click Export.
Hope this step-by-step guide will be helpful to others..as the whole process is described very unclearly explained by the docs and puzzling all the info is quite frustrating..
Cheers.

Thanks guys. My issue is I built my app with export_method was app-store, the right method should have been ad-hoc. I changed my export_method to ad-hoc and it works as I expect.
If someone changed the export_method and still get the error. Please check Vincenzo's answer

That message from your tester means that the tester's udid isn't in the provisioning profile of the uploaded app. When a tester registers their device with App Distribution in the tester onboarding flow, App Distribution collects the udid and sends it to you. Thus you would need to add the udid to the provisioning profile, rebuild the app and send it out again.

As I'm using the service for the first time, I initially thought I didn't understand how it actually works, or it was too stupid to be true, but then it actually behaved as expected.
My first experience worked like this:
I exported my app with my current provisioning file (Developer, not Enterprise) and uploaded it to firebase distribution (1st time).
I sent to my testers a link to download and install an app that they can't use because their device UUID is not registered in my provisioning file.
I got a mail with their device UUID of my first tester and add it to my provisioning file.
I exported again the app and upload it again (2nd time).
It created a new distribution so I sent him a second link to download and install the second version that now should work.
My second tester accepted and I received a second mail..added, exported and uploaded (third time).
This time on console it show a big blue rectangle with the message that the version was updated with new devices and testers will be notified by mail. ( this is how I actually expected it to work ).
What can have happened on my 2nd upload? Would an Enterprise certificate avoid all this device UUID registering part?

I got this error by disabling arm64 via EXCLUDED_ARCHS for Any iOS SDK, including iOS devices (see the problem?). The archive worked fine as well as the upload, but after the user downloads the app, I get this message.
If you have a Podfile that sets EXCLUDED_ARCHS, you need to make both the app and the pods consistent (include arm64 for sims only).

Related

error: Embedded binary is not signed with the same certificate as the parent app. Xcode [duplicate]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 1 year ago.
The community reviewed whether to reopen this question 1 year ago and left it closed:
Original close reason(s) were not resolved
Locked. This question and its answers are locked because the question is off-topic but has historical significance. It is not currently accepting new answers or interactions.
We pushed iOS app to Firebase distribution and sent invitations to every tester. Our testers followed all steps and get ready to test the app. Unfortunately, the testers get the message “ The developer needs to update their app so that it can run on your device. You'll get an email once the app is ready to test.“ once they tried to download the app to their iOS. We can be sure that we built the app as a production version.
Can you guys give me ideas for the issue?
I finally got to resolve the problem.
The whole problem has to do with Provisioning Profiles.
When you have to export for Firebase App Distribution is clearly stated in their docs that an ad-hoc export should be used, but the whole procedure and options are sparsely explained..
So here are the necessary steps:
In your developer account generate a new Distribution certificate.
Generate a new profile for distribution.
For the new profile select the right AppId, the Distribution certificate, choose ad-hoc, and select the Device UUIDs you want(the tester's)
In Xcode keep Automatic signing checked, and use your Developer profile.
Make sure to update your profile:Xcode/Preferences `Download Manual Profiles' button.
Make sure that in both Target/Building Settings/Signing and Project/Building Settings/Signing shows you iOS Developer profile under both Debugand Release not the Keychainone, but the Automatic one, else select it yourself.
Archive the project. Product/Archive.
Export the .ipa:
If Xcode doesn't get you to the organiser window open it Windows/Organizer
Select the proper App(from the left ìOS Apss`column) and archived file ( the latest is at the top of the list.
Choose Distribute App button.
Select a distribution method (Ad Hoc in this case)and click Nextbutton. Keep in mind that Each method require its own Certificate and Provisioning Profile..
Choose options ( I left it as is..) and click Nextbutton.
Re-signing the App is where things go wrong, keep Automatic ( here is where Xcode connects to your Developer account and sign the app with the Distributioncertificate and profile.
Once all the compiling has finished just click Export button.
Choose where to store the files on your computer and click Export.
Hope this step-by-step guide will be helpful to others..as the whole process is described very unclearly explained by the docs and puzzling all the info is quite frustrating..
Cheers.
Thanks guys. My issue is I built my app with export_method was app-store, the right method should have been ad-hoc. I changed my export_method to ad-hoc and it works as I expect.
If someone changed the export_method and still get the error. Please check Vincenzo's answer
That message from your tester means that the tester's udid isn't in the provisioning profile of the uploaded app. When a tester registers their device with App Distribution in the tester onboarding flow, App Distribution collects the udid and sends it to you. Thus you would need to add the udid to the provisioning profile, rebuild the app and send it out again.
As I'm using the service for the first time, I initially thought I didn't understand how it actually works, or it was too stupid to be true, but then it actually behaved as expected.
My first experience worked like this:
I exported my app with my current provisioning file (Developer, not Enterprise) and uploaded it to firebase distribution (1st time).
I sent to my testers a link to download and install an app that they can't use because their device UUID is not registered in my provisioning file.
I got a mail with their device UUID of my first tester and add it to my provisioning file.
I exported again the app and upload it again (2nd time).
It created a new distribution so I sent him a second link to download and install the second version that now should work.
My second tester accepted and I received a second mail..added, exported and uploaded (third time).
This time on console it show a big blue rectangle with the message that the version was updated with new devices and testers will be notified by mail. ( this is how I actually expected it to work ).
What can have happened on my 2nd upload? Would an Enterprise certificate avoid all this device UUID registering part?
I got this error by disabling arm64 via EXCLUDED_ARCHS for Any iOS SDK, including iOS devices (see the problem?). The archive worked fine as well as the upload, but after the user downloads the app, I get this message.
If you have a Podfile that sets EXCLUDED_ARCHS, you need to make both the app and the pods consistent (include arm64 for sims only).

iOS 9 new feature Free Provisioning (Run your app on a device, just with your Apple ID, without Apple developer membership)

Would like to know about the new feature Free Provisioning introduced in iOS9 & Xcode 7.
How Apple is now achieving that, as before we knew our device ids were enrolled in the profiles and hence it was possible to deploy the app on devices.
Now only with Apple ID how the things in the background are achieved, also is there any restrictions on how many number of devices I can add my build with Free Provisioning.
Any help is greatly appreciated thanks...
1. How it works?
Apple Ref : How to use free provisioning
As stated in above link under Launch Your App on Devices Using Free Provisioning point 6. "Xcode creates a free provisioning profile for you"
Update: Above point 6 is removed from link, but there is no change in the way it works and steps in above link still work!
Profile created in this way is tied to your apple id, when you try to run app on new device that device's UDID gets added in this profile.
2. How to use free provisioning?
Requirements: Apple ID, XCode 7 or above
Steps:
Go to XCode Preference
Go to Accounts tab and hit plus "+" button on bottom left to add your Apple ID.
After successfully adding Apple ID click on view details on bottom right
Click the Create button next to "iOS Development"
Connect your device and select your device as build destination.
In target's general setting,
a. Set app identifier you want to give to your free profile
b. set team id as your apple id
c. If using XCode 7, hit Fix Issue button below provisioning profile warning.
If using XCode 8, there is no Fix Issue button XCode will automatically do this.
In both cases of XCode versions, Xcode will either create new profile if not found for your apple id or add new device to your existing profile.
Run the app, this will install app.
Click app icon to start app manually, you will get "Untrusted Developer" dialog. To trust your apple id, Go to iPhone setting > General > Device Management > Select your apple id and click trust.
After step 8 you can run and debug app using free provisioning.
3. What are the Limitations?
I tried to install app with free provisioning and could run/debug app. But there are few catches. Profile created by XCode is bit different than our usual developer profiles
From profile raw file
There is new key LocalProvision with value true
<key>LocalProvision</key>
<true/>
Many services like following are not available, See full list of services
Apple Pay, Game Center, iCloud, In-App Purchasing, Push Notifications, Wallet (Was Passbook)
Expires in 7 days (this was changed sometime in May, previously it was 90 days).
<key>TimeToLive</key>
<integer>7</integer>
Old: 90 days
New: 7 days
Under <key>ProvisionedDevices</key> there is list of devices on which I tried to install app, still unknown maximum number of devices possible, I tried to install on 3 devices which worked successfully.
This is not alternative to publishing app for free on app store, you still need to enroll to developer program to publish apps.
Testflight based internal / External testing is not possible.
Apple haven't disclosed the thing like, how they are managing on their developer portal. But I think they just removed the restriction of Paid Developer program & rest of the thing kept as it is.
For standard developer Program Apple support 100 device so I think same will apply here.
Refer this link for more info..
Copied from: https://developer.xamarin.com/guides/ios/getting_started/installation/device_provisioning/free-provisioning/
Limitations
Apple has imposed a number of limitations on when and how you can use free provisioning to run your application on an iOS device, ensuring that you can only deploy to your device. These are listed in this section.
Access to iTunes Connect is also limited and therefore services such as publishing to the App Store and TestFlight are unavailable to developers provisioning their applications freely. An Apple Developer Account (Enterprise or Personal) is required to distribute via Ad Hoc and In-House means.
Provisioning Profiles created in this way will expire after three months, Signing Identities after one year. Furthermore, provisioning profiles will only be created with explicit App IDs and so you will need to follow the instructions above for every app that you wish to install.
Provisioning for most application services is also not possible with free provisioning. This includes:
Apple Pay
Game Center
iCloud
In-App Purchasing
Push Notifications
Wallet (Was Passbook)
Some more informations.
You can archive app with free provisioning profile. But You can't export ipa in "XCode 7"
But you can use XCode 5 or Command line "xcodebuild" to export ipa file.
I tried using OTA to install this ipa file. And it's work!
So... If there has a way to add UUID to your account without XCode (REST api calls). You can distribute your app to anyone you want.

iOS & XCode5 App publishing fails - Error ITMS-9000: "The binary you tried to upload was invalid"

I was already looking through some other threads here with the ITMS-Error 9000, but they didn't help me to get my App passing the submission to the App Store.
I have NO errors or warnings inside XCode.
The App is perfectly working on iOS Devices & Simulators.
EDIT: What I have already tried:
Changed Deployment Target from iOS 7.1 to 7.0
Checked the Bundle ID in iTunesConnect and inside Xcode
Checked for any errors and warnings --- removed / fixed them
Do you have any additional ideas what it could be? Without any errors or further information it is hard to find out what the reason is.
UPDATE2::
If I try "just" to "Validate" instead of "Distribute" in the organizer after Archiviing it i get the following Error
Its an Issue with Apple's Server I tried validating the app it said "Unable to process app at this time due to general error" a quick search about it on SO said its got nothing to do with our code or project but some process running at Apples server
Assuming that your binary icons does not meet as per apple's human interface guidelines.
It most probably seems to be the issue with the profile you are signing your app with. You got to make sure that your are signing the app rightly with proper distribution profile. Also check out for the bundle identifier and make sure that it is same as the one you have given in itunes connect.
Check this link!
You should be creating the binary with the simulator or some device connected.
Try it:
Unconnect iOS device from your Mac,
Dont select any simulator, just leave it as it is, iOS device option
Archive it
Publish it
Make sure you're using a provisioning profile for the App Store (not for Ad Hoc distribution)
Then select this profile when building your app.
I would guess this all has something to do with Apple making system changes to prepare for iOS 8 and in doing so somethings got broken.
The issues look to have just been resolved by Apple. I just successfully submitted an app that was previous showing the same problem you had. If you look at your Provisioning Profiles, you should notice that Apple has removed your app's previous Distribution Profiles.
To get your submission working again, all you have to do is recreate your App Store and Ad Hoc provisioning profile, but make sure to use a new name and you should be good to go. You were not alone on this one. A bunch of people experienced the same problem and there were a lot of posts about it on the official Apple Dev forums.
Please check the Distribution Profile that you are signing your app with at iTunes Connects. make sure that it is still valid. I had same issue couple days back and after a struggle , i found out that somehow my provisioning profile was not valid anymore. Creating a new profile and submitting app with it solved my issue.
Apple have deleted corrupted provisionning, you just have to regenerate it and make submission works again !
Connect to your iOS Developer
Certificates, Identifiers & Profiles
Provisioning Profiles / Distribution
Here you can see some certificates missing. You have to re-create (Distribution / AdHoc). Note, you have to change certificates name !
In Xcode, refresh your certificates, set the right one in Build Settings, and submit...
I called today the Apple Developer Support and i get one very very simple answear to this issue.
You have to create all your certificates, provisioning profiles etc with Apples SAFARI browser.
It is not working "always" proper with Mozilla Firefox or other Browsers. So if you get such an error, try to recreate it with Safari! It worked like a charm!

provisional profile is not found for the device

I know that it has been asked a thousands of times, but I am struggling 4 hours with every possible sollution I read but still I cannot beta test my app in my device.
Here are the facts:
1) My app is uploaded in the IOS store, so I have created a provisioning profile, app id's and so on. I just now want to test it in my iPhone4, with target iOS 6.0.
2) I added my device UDID in the devices, in my developer account.
3)I set the code signing for debug to my provisioning profile.
4) I plugged in my ios device in the mac and I see that picture.
As you can see there is no provisioning profile.
5)If I run the app to my ios device (which is listed in the Xcode) I get the error
No provisioned iOS devices are available with a compatible iOS version.
I tried so many solutions that I found that I cannot even remember all of them. I am following all the steps one by one.
-someone said to log out from developer account
-other said to change deployment target
-other said to change the "edit scheme" to debug.
Can anyone help me? I do not understand what is missing since app is published and I only want to test it in my device. Should I change anything else?
EDIT: I selected the device as Ganee said. Then in my organiser I see the following picture:
If I press refresh, I see "Too few items in team".
So If I remove the provisioning profile, how do I download the new one? I suppose I enter my developer account and press download in the distribution profile under the provisioning tag, right? But is this updated with the selected device?
Here is my picture from the developer account:
I think you followed all steps, but still you have to conform the following steps.
After you added device to developer account, you have to select that device in your provisioning profile.
Remove old profile from your organiser, download new modified profile and install it on your Mac.
Please check wether you modified developer/ distribution profile and select it on your xcode.
Hope this will give some clarity.
I remember having similar problem in the past. I am not sure if yours is similar. But awhile back when I upgraded my iOS device, it was no longer compatible with the xcode version I was running. I had to upgrade to the latest version of xcode. What is Xcode version are you running?
Finally the problem was that I had a distribution profile set up, and not a developer. Thanks for the help!

App Store Submission: No Identities [duplicate]

This question already has answers here:
Closed 10 years ago.
Possible Duplicate:
No identities were available - administrator request
OK I was going to post an image but SO won't let me. It's an error box with a yellow triangle exclamation mark and the text "No Identities were Available, An administrator must request identities before they can be downloaded, [Button] Download Identities... [Button] Import Develop Profile..."
Has anyone got any idea what is going on with this error? Appears on clicking "validate" in the organiser after building for Archiving in the "Release" configuration. The Developer Profile is installed (I have re-downloaded and re-installed it heaps of times to try and get past this...). The app exists in iTunes Connect and I have created an App ID for it in Dev Center, and provisioning profiles, etc. It builds and runs fine....
I can't make head or tail of the help articles on the Developer Portal as they seem to be for some old version of Xcode and I have only ever really used version 4. Any ideas what is going on here?
Oh, "Download Identities" does nothing either, it just shows a spinner for a while and redisplays the error.
I just had this same issue. For me the solution was that I had made provisioning profiles in Member Center, but they were for Development rather than Distribution. As soon as I made a Distribution profile (on a separate tab in the Provisioning Portal), I was good to go.
I hope that helps!
Answer: App IDs are case sensitive, and must match between the App ID in the Developer Portal and the App ID in Xcode. Exactly.
You are missing the Distribution mobileprovision file. Get your admin (or login as admin) to create and download one for your app from iOS Provisioning Portal - Provisioning - Distribution.
Update:
Here's "About App Distribution" instructions by Apple. Not duplicated here, since Apple keeps updating their system and a link to Apple's docs is more likely to remain uptodate.

Resources