Add new device for an existing tester on Crashlytics - ios

How can I add a new UDID in Crashlytics for an existing tester? The UDID is on the distribution profile but because it's not listed in Crashlytics the user cannot open the app

I didn't know this about using Fabric. I thought you just enter an email address and the tester can install your app but that ONLY works for enterprise Apple Dev Accounts. If you have a personal account, how you get your app on a new tester's device is:
1) Archive/distribute your app, add their email to the tester list in crashlytics. They get an email to register.
2) Then you (as the distributer) will receive an email that says they registered and it has their device UDID in it.
3) You need to then go to the app dev website and add this UDID to your device list.
4) Then you need to go to your Xcode preferences and refresh your dev account profile to make sure it's aware of the new device ids (Xcode/ Preferences/Accounts/ Download Manual Profiles).
5) Then you need to re-archive/re-distribute the app again.
On this second email, they can finally install the app.

You have to open the link in the invite emails on the new device. The original invite will say "Let Me In" and new build emails will say "Check It Out". Then it'll take you to the page where you can register your new device.
After the device is registered with Crashlytics you should be able to do open the app, seeing that your UDID is already in the provisioning profile.

I've also had a similar problem.
It took some time but I realized that Crashyltics wasn't using the provisioning profile I was expecting. I had to change my build settings for the Provisioning Profile to not use the Automatic setting but to use my Ad Hoc Profile.

Here is a through guide for this:
https://docs.fabric.io/ios/beta/introduction.html

Hemal from Crashlytics here. Once you added the UDID in the provisioning profile, did you redistribute the app again? Also, be sure to double check that the updated provisioning profile is the selected profile of choice in Xcode (and shows up in the top of the Mac app when you build). This way, the latest distribution will pick the most up to date permissions!

I had this issue and I ended up having to go into XCode > Preferences > Accounts > [my dev team], and I manually right clicked on each profile and hit "move to trash". I then emptied the trash, cleaned (cmd+shift+k), cleaned build folder (cmd+alt+shift+K), deleted DerivedData (google this one), restarted my OS, and finally downloaded all provisioning profiles using the "Download All" button in the same place in XCode after restarting and it worked :)
(not all of these steps might be necessary, but just to be safe...)

If you distribute your app internally with enterprise signing, adding a new device can be tricky, especially if it's a test device that you don't want to setup your email/password manager on. What I've done is open the original invite link from email on my laptop and it will say to open on your device to start testing. (I used an email from months ago, so they don't seem to expire.) From this page, you can AirDrop the link to your new testing device. In the past, I've manually typed the invite link and this is much, much easier.

Related

Firebase App Distribution - "Waiting for developer" message

I'm developing an iOS application and using App Distribution to distribute my test releases to QA Team, I didn't had any problem before, everything was smooth and pretty (estrange considering iOS development hehe)... but recently I face a problem that I can't resolve and I didn't found any documentation about it.
I constantly adds new Testing devices to the project (as the QA team grows) and follow the same steps...
Adds the new account to my tester list in Firebase.
Get the register attempt with the UDID of the new device.
Register the new device UDID in the Apple Developer Console
Distribute a new release of the app through App Distribution.
Install the certificate in the device
And voila, download the new distribution.
But this case is different... because in this iPhone XS Max with the latest iOS version, the download button never appears, and we just can see the following message: "Waiting for developer".
I try a lot of different solutions, redownload and import the Profile, to redistribute the app, create new profiles, force new devices in Fastlane, delete and readd the UDID in developer console... dammit... I create new certificates in my rage hahaha... but the problem persist, anyone face this problem before?
Update
I sent a ticket to Firebase support center, and they told me that the UDID wasn't in the distribution profile, so my solution was recreate the profile, because download and import the ad-hoc profile didn't work.
This issue isn't a Firebase problem, it was a classic issue related to iOS signing hell.
I had the same problem when tried to add device for Firebase Testing.
I made all instructions from Firebase troubleshooting.
If you're installing an Ad Hoc distribution, the Waiting for developer
button appears when the developer hasn't yet configured their app to
run on your test device. To make their app available to you, the
developer must complete the following steps:
Add the test device's UDID in the Apple Developer portal (the UDID is emailed to the developer when you register the device to
Firebase).
Include the device in the app's provisioning profile.
Build the app using the updated provisioning profile.
Distribute the new build using the Firebase console, the CLI, or fastlane.
https://firebase.google.com/docs/app-distribution/troubleshooting?platform=ios#waiting-dev-ios
Than I noticed that all of my provision files (for me it was folder /Users/user/Library/MobileDevice/Provisioning Profiles) not include UDID of new device. Every file can be previewed if you will choose view mode or right click on it, select "Get Info" and expand "Preview" block. If you will scroll to bottom you will see block "PROVISIONED DEVICES" with codes of your devices.
For me the problem solved when I found files which descriptions had "IOS Team Provisioning Profile: my.bundle.name" and "Developer Profile Name: my.bundle.name" ("Developer Profile Name" is profile name which you see in your Profiles list at https://developer.apple.com/account/resources/profiles/list).
I moved 2 files (which descriptions started from "IOS Team Provisioning Profile: my.bundle.name" and "Developer Profile Name: my.bundle.name") from /Users/user/Library/MobileDevice/Provisioning Profiles to another folder (I was afraid to lose it and not removed, just moved)
Opened XCode
Selected menu XCode -> Preferences
Selected Accounts
Chose my e-mail account name
Selected MyTeamName and clicked button "Download Manual Profiles"
Selected my Personal Profile and clicked button "Download Manual Profiles"
After it in the folder "Provisioning Profiles" appeared two new provision files and I found the name of my device in the bottom of their descriptions.
Than i cleaned project rebuild app-file and distributed it on test and all worked.

Xcode 8 asks for a device to be registered to create provisioning profile

I am trying to publish an app for testing, without having to connect a device in my mac.
I have created a developer account, created an app in itunes, generated bundle id, signed into xcode with the developer account, generated a distributor certificate.
When I tried to archive the app, I got the error "conflict provisioning setting. app is automatically signed for development ..."
I read in this post and followed the tip of unchecking and rechecking the option "Automatically manage signing". After re-choosing my team, I get the error "There are no devices registered in your account on the developer website. Plug in and select a device to have Xcode register it".
The goal all along was that I wouldn't need an ios device, because I intended to immediately publish the application and invite people to test it via testflight. Is it not possible to do it like this? Am I missing something.
I have read lots of documentation, but being a first timer in this, everything seems confusing.
Edit: I created a provisioning profile as distributor. Even after creating and installing the distributor profile (it now appears also in xcode at Account -> provisioning profiles), I still get that same error. I also noticed that in signing, The signing certificate is iOS Developer. I am sure
I fixed it by plugging in my iPhone and going to the Product menu > Destination > iPhone (my device).
Then after clicking Try Again on this properties page the warnings went away.
Source
The solution (though I would welcome more elaborate, insightful explanations):
#General -> Signing, disable the option "Automatically manage signing"
#General -> Signing and certificates choose your team
Though in my case that was not the issue, I would recommend making sure that in the device list, you choose Generic iOS device in your target devices.
This really sucked to figure out.
What you do is add a distribution profile in https://developer.apple.com/account/resources/profiles/add. Don't choose development! Don't let the Xcode Automatically manage signing!!
Then, you download the provision.
Then, in the Signing & Capabilities -> Signing Section of the project.xcodeproj file, turn off Automatcially manage signing, choose import and import the file you just downloaded.
Then, in the top, you choose Any iOS Device (arm64, armv7) and then you go Product -> Archive.
What happened to me was that I was about to run my app on a physical device for the first time and I didn't have a Team. So I created it in the process before connecting my phone with the USB cable. After I created the team a message like the listed above appeared. I did some research on internet but nothing found.
So here's what I did: I connected my phone, did all the trusted process, then restarted Xcode, and it worked. I am not sure what happened, but it was some of my first experiences using Xcode. It could sounds silly but it helped me. Hope to you too.
If you do not wish to register a device follow this advice:
https://stackoverflow.com/a/44157307/499581
* In short use "Generic" as the device while archiving.
If you do wish to register a device then the solution to:
"There are no devices registered in your account on the developer
website. Plug in and select a device to have Xcode register it".
Is to physically plug-in your device (an actual iPhone, or iPad) so that Xcode can register it for development use (note: this will not affect the normal everyday use of the device). After the device is registered it can then be used for development testing, load provisioning profiles onto it, etc.
↳ Disabling and Enabling Devices Using Your Developer Account
For those who are trying to develop without a mac computer using MacInCloud don't follow the standard advice out there. Its will lead you down a hole. I have wasted hours of my time.
The reason it say something about "a device to be registered to create provisioning profile" is that you need to provision an iOS device that you can test on before you can get it signed. If you are using MacInCloud you probably can't physically connect an iPhone or iPad to the MacInCloud and therefore it can't automatically provision devices for you.
Before you get to far into this you will need to get your iPhone/iPad UDID. Which I was able to do with https://get.udid.io/ on my iPhone, but it didn't work on my iPad. Instead, with the iPad I had to download iTunes from the Windows store and connect my iPad. Then click on the little gray square in the menu that's inline with Library tab.
image of itunes
Then when it pops up with your device info (mine didn't come up with my info at first, I had to sync my device). You will see your SN. Click on your SN and it will change to your UDID. Once you have your UDID you are ready to create a provisioning profile. What is confusing is this isn't done in the appstoreconnect section of your account online. Its done in your developer account: https://developer.apple.com/account
developer.apple.com account screen shot
When you go there you will want to click: Certificates, Ids & Profiles
Here you will need to add your devices and then with auto signing checked in Xcode that made the problem go away. NOTE: I originally tried to create a profile, download it, and import into Xcode under the Provisioning Profile dropdown in Signing & Capabilities. As described in another answer here, but that proved more problematic and wasn't necessary.
Then you can chose Any iOS Device from emulator device drop down then go to Product > Archive > Distribute App and create a certificate to place it on the app store (TestFlight).
you can also plug an iphone, run the app the app on your iphone as the target, it will ask you to register the device and then the certificates will be generated
Have you paid the $99/year developer fee? TestFlight is only available for paid developers. I would highly recommend plugging in an iOS device, though. It's more fun and rewarding testing that way.

"Communication with apple failed" when signing in Xcode 8

Just created fresh user account to test that issue.
In new account open Xcode 8.0
Start new project
In General settings pressed 'Add account' button (else it fails to run on a device)
When adding a team (I did not enroll into $99 Apple Developer Program) it shows these errors:
Communication with Apple failed The response data was not a valid plist.
No profiles for '...' were found Xcode couldn't find a provisioning profile matching '...'.
How to fix?
Maybe I’m doing it completely wrong. Is it possible to run the app on a device without enrolling into $99 program?
UPDATE:
Ok, I know now that I should be able to test my app on the device even without enrolling.
Moreover it was working fine before I’ve tested the app on few more devices (iPhones of my friends). After that it stop working on my iPhone
If you have a device and free developer account, that's enough to install and test your game...
Go to General Settings, and set your Team. I can see its already done.
To make sure you logged in to XCode, Go to Xcode-> Preferences->Accounts,
give your developer account login credentials
Connect device, it shows up after 3-5 seconds, select the device and run.
XCode prompts it can't find a valid provisioning profile with "FIX NOW" button, just press it and run again....
I create a new Certificate in iTunesConnect than click try again,It works.
I don't know why

Provisioning New Device for Development Xcode

I am a new iOS developer, and although I have been successful in provisioning a device for development in Xcode in the past, I just obtained a new device and am having an awful time getting Xcode to provision it and allow me to test applications on it.
When I connect the new device to Xcode, Xcode does recognize and identify the device correctly, however when I run the application I get the following error message: "A valid provisioning profile for this executable was not found."
According to the Apple documentation, I am supposed to first request a development certificate in Xcode using the following steps:
Choose Window > Organizer > Devices
Select Provisioning Profiles.
Click the Refresh button at the bottom of the window.
Enter your user name and password and click Log in.
After you sign in to your account, a prompt appears, asking whether Xcode should request your development certificate.
I have followed steps 1 - 4 repeatedly and each and every time Xcode crashes before I can get to step 5. I have tried completely closing xcode, detaching device, cleaning project, restarting computer, etc. Is there another way to request a development certificate outside of Xcode?
Ok so then the docs say I should provision the device (granted I assume this step is contingent upon the success of the previous step which I cannot achieve, but I tried it anyway) using the following steps:
Connect your device to your Mac.
Open the Devices organizer
select your iOS device.
Click the “Use for Development” button. The first time you add a device ID to your account, Xcode creates the iOS Team Provisioning Profile using the iOS Wildcard App ID, your development certificate, and the device ID. The iOS Team Provisioning Profile is also installed on your iOS device. If the device was used for development in the past, the “Use for Development” button may not appear. If this happens, click “Add to Portal” at the bottom of the screen instead.
So the "use for development" button does not appear (it appeared the first time I attempted this and hasn't since), so I clicked the "add to portal button". Every single time I do this, Xcode crashes.
I currently have the code signing identity set to iPhone Developer (my name). I have also tried setting it just to iPhone Developer and even Do Not Code Sign. I also went to the iOS dev center and added the device there (not sure if I needed to do that or not).
In any case, can anyone suggest anything I might be missing or any other approach?
While I was sleeping, Apple completely abolished the Portal and created a new and apparently largely broken interface. It's like a kind of evil April Fools joke. Anyway, if you go to https://developer.apple.com/account/ios/device/deviceList.action there's a great big sign telling you that you must "reset your device list before adding any new devices". That sounds like it covers exactly your case. Good luck.
I also went to the iOS dev center and added the device there (not sure if I needed to do that or not).
You need to add the device there.
Steps You need to follow after adding device:
Next re-download the mobile provisioning profile again.
Go to organizer and delete the old mobile provisioning profile you had.
Double click the new mobile provisioning profile you just downloaded and see that it appears on the organizer.
Connect your device and you should see your device's name instead of iOS device.
hope this helps.
If you are looking to bypass the 'Register a Device' portion of the Provisional Profile registration simply upload the 'sample .txt file' they provide you and upload it. You will then be allowed to click 'Next' to finish the registration so this way you do not have to enter a device UID.

Testflight Workflow

I am trying to understand the testflight App distribution workflow
1.
When a new tester wants to join my testing team - I ask them to create an account on test flight.
2.
Next they need to give me their device UUID so that I can add that UUID to the Distribution profile.
Question - What is the best way to get the UUID from the tester. I do not want them to email it to me or give me the UUID over the phone. Since they have the testflight account and the iPhone - Can they upload their device UUID from the iPhone to the testflight account so that I can see that tester JohnDoe has UUID xyz - If so how? What do they(The tester) need to run on the iPhone so that their UUID shows up when I (The App Developer) log into TestFlight.
3.
When I (The App Developer) have the newly Added UUID - I need to update the Distribution Provisioning Profile on my Apple Provisioning Portal with the new UUID - Save the updated Profile and then upload it back to Testflight.
Question - Can this (adding the new UUID to a profile) be done via Testflight itself? - i.e. can Testflight update my Profile with a new UUID or can this only be done via the Apple provisioning portal and then be brought back into Testflight
There are similar questions but none answer exactly the two questions I am looking for.
Best way to get UUID - is copy it from testers TestFlight profile when he will register device for testing.
You can update provisioning profile only at Developer Apple portal. But you can update provisioning profile for existing build by pressing Update Profile on build page.
1) You can always export device ID-s from your TestFlight users - exported file is
ready to be directly imported in your Apple Developer Portal.
And you always get an automatic email when new user (or new device) is added to you
TestFlight account.
As for what is the best way: who knows, it's really a matter of choice.
2) No. TestFlight can't create a new provisioning profile with devices added.
You have to create it by yourself (Apple Developer Portal):
add new devices to your developer account
add this devices to provisioning profile
regenerate and download provisioning profile
update provisioning profile for TestFlight build (https://stackoverflow.com/a/14265876/653513)
It's really much simpler:
Create team
Invite people by email
When they signup, they automatically email you their device UDID
Here's what TestFlight FAQ says about it: How does it work?
Step 4 is to manually add device id's into Apple site, generate new provision files, download and install, rebuild (hopefully using jenkins or something similar) and upload a new build to TestFlight (did I mention jenkins :))
1>Go to Project,Archive app.
2>In archive,click on distribute.
3>Click on save for enterprise or ad hoc deployment and save ipa file to your desktop
4>open https://testflightapp.com/dashboard/ and login
5>After login,click on upload your build button
6>Next click on drop your ipa file.Select .ipa file from desktop and upload it.
7>Selct provisioning profile by tick check mark and click update and notify button.
8>After clicking update and notify,Please click on share build button below update and notify.
9>Also you can see this share option by clicking permission on right hand menu.
10>After clicking share button,you need to provide your email id for showing testflight app in your mail inbox.
11>open test flight mail into your device and click on install button.
12>app automatically open testflight in your device,Please login with testflight,click on install profile button
13>After all click on app just you upload,click on install button. app will automatically install in your device.
Please tell me in case of any query regarding this.
Thanks
try TestFlight.top
Simple to invite testers
When a user requests to participate in your application test, you do not need to do any operation. Applicants only need to click on the download link in the page to directly download the test application. It is as simple as using the App Store

Resources