Let other user to debug my iOS app - ios

What is the easiest option to let someone debug my app's source code on his macbook?
Must he be registered as a developer in my Apple portal, or only registering his device UDID is enough?
Can I send him only the developer provisioning profile that contains his device or should I export my certificate from the Keychain (.p12) and send him?
Thanks!

Just send him the source code. He will be able to open it and run it like the other programs.. If you want to go for something more controlled use eg Github for sharing your code.

Create the Team Provisioning Profile
Xcode saves you time by performing multiple steps on your behalf to create the team provisioning profile. For example, Xcode automatically registers your device and requests your development certificate, both of which are needed to create a team provisioning profile. Xcode performs these steps when you click the Fix Issue button below the Team pop-up menu. Xcode may also perform these steps when you assigned a team to your project or refresh provisioning profiles in the Accounts preferences. If no warning message and Fix Issue button appear below the Team pop-up menu, Xcode already created your team provisioning profile and you can skip this section.
Read more...
CreatingYourTeamProvisioningProfile

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.

Unable to add device in Apple Developer Program

I am unable to add a new device in the Certificates, Identifiers, and Profiles section of the Apple Developer portal.
I have two developer accounts, one personal account and one account for a company. The account for the company, I am set as a 'member' for the team. This is the account that I am unable to add a new device for. (I am also not able to download the Distribution certificate, which I believe is a related issue that I need resolved too).
I have researched the other similar questions on SO, but neither of them applied to my scenario.
Here is a picture showing the + button disabled (greyed out)
From Apple documentation:
Team members can’t register devices and create development
provisioning profiles using their developer account.
Ask from someone who has Team admin or Team agent privileges to add you.
I figured it out. Team Members are unable to add a new device via the Developer Portal. However, they are allowed to add a new device to the provisioning file via XCode. I was working with Xamarin and didn't know that I needed to go back to XCode in order to add a new device to the provisioning file.
If you're working in Xamarin and experience this problem, you need to create a 'dummy app' in XCode with the same info as your Xamarin app. Then select your team and it should generate the correct provisioning file for you. After that, build and run your app on your device, then a pop up window should display telling you that the device is not in the provisioning file, then asks if you would like to add it. A simple click of 'Yes' will automatically add the device to the provisioning file which is then reflected on the Developer Account.
Hope that helps someone else! I spent many hours trying to figure this out.

Your account does not have permission to create iOS distribution certificates

I want to upload my app to testflight. when I upload the app Xcode shows this error:
your account does not have permission to create ios distribution certificates
Anyone help me?
This seems to be a bug or poorly described feature in iTunes Connect & the Apple Developer portal.
I had a developer that joined my team, initially as a "member", but wasn't able to create certificates, even after giving him admin access. It turns out, that I believe we were only giving him admin access to Itunes connect, but not to the developer page.
The correct fix was to go to the developer portal, click the "People" tab (or go to this URL https://developer.apple.com/account/#/people/), remove his access, then use the Invite as Admins to add him to the account. He then had to go into Xcode and remove his developer account information, add it back in, and then he was finally able to upload builds to Testflight without this error.
This should be the user permission issue. Please note that only user with Team Agent role has permission to generate certificates for distribution of app outside the App Store. I believe, you are not in Team Agent role. Please double check your permissions.
You can even generate a Certificate Signing Request and send it to your Team Agent. Get back the created certificate from the Team Agent and use it to sign apps.
Based on your comment "Yes, we have a developer account for Team" I am guessing that what you have is an Enterprise Developer account. If you have a Enterprise DA you cannot upload to the apple store/test-flight. You will need to create a personal developer account for that. Enterprise accounts are only good for in house testing and not for external. That's why you are getting this error.
Using keychain, export valid certificate on a computer on which iOS distribution signing identity works. You need two files, one is public - <fileNamePublic>.pem file, and other is private - <fileNamePrivate>.p12 file.
Put those files in a folder on computer on which you need signing identity to work.
Open terminal and browse to the folder you've put them in.
First, type: security import <fileNamePrivate>.p12 -k ~/Library/Keychains/login.keychain
Then type: security import <fileNamePublic>.pem -k ~/Library/Keychains/login.keychain
Open XCode, go to XCode>preferences>accounts>view details and refresh the apple id you are using
You should have signing identities enabled.
Perhaps your iTunes Connect account does not have the correct role?
I was receiving similar error and also, I had a permission to create certificate with my account which has developer role. I tried all of the solutions but none of them worked for me. Therefore, I downloaded provisioning profile from developer account and I used that provisioning profile from manual signing when I was archiving to my build then error disappeared.
Every thing was good with my account, no permission changed as already it was same email id used to purchase the account.
I fixed this problem by removing the account from Xcode preferences and again added it. What i did was immediately added credentials in Xcode preferences right after purchasing the account. I should have to wait for Apple to process the order.
For anyone finding this now: Team Agent no longer exists. If your role is Admin or App Manager you can upload builds and create provisioning profiles, etc. Note that if you get this error when you upload, then ask for the correct permissions and it still doesn't work, quit Xcode and try again!
Perhaps your provisioning profile was expired and even after updating it from Apple's developer website, Xcode doesn't try to fetch the new one.
Here's how to solve it:
Xcode -> preferences -> accounts
Select your Apple ID, and on the right bottom pane select your team and click View Details
Under provisioning profile, find your expired profile, right click, and click Move to Trash
You should be able to sign and upload your app.
If you are getting the same error...Create the .ipa file and upload to https://www.diawi.com/
you will get an link, which you can share with your client.It's not a solution for your question but it will help you.

Invalid team ID in signature

We are working on an app, that was originally created by other developers. They added our account to iTunes Connect as Admin role and to Member Center as Admin too. We added that account to Xcode and we've chosen "Team" setting under Target to match the right team.
When we are trying to archive and upload new version, Xcode returns error:
No accounts with iTunes Connect access.
But if I try to log in to iTunes Connect, it works normally.
I tried uploading new version by exporting .ipa and uploading in via Application Loader. After unsuccessful upload, I get a mail like the following:
Invalid team ID in signature - The code signature in bundle 'com.example' at 'example.app' has a team identifier value that is different from your team identifier 'EXAMPLE'.
Under keychain certificates, there is iPhone Distribution Certificate with that team name. How to resolve this whole problem?
Under the target of your Xcode project in the main settings page (when you first click on the target) you will see a drop down called Team. You need to make sure you have the right team selected that goes with the proper bundle I'd
I am not sure if this question is still relevant.
So what you would normally need to do is:
Go to the developer portal, and in the Certificates, IDs and Profiles choose Certificates > Production. You should be able to download the Distribution certificate.
Go to the Provisioning Profiles > Distribution (same page, menu on the left) and choose and download and double click the provisioning profile for your app.
Now you should be able to choose this Distribution Certificate/Provisioning profile combo in xcode to build and sign your app.
We develop white labelled apps, so our account actually manages over 40 other apple dev accounts (since apple guidelines say that apps need to be submitted by content provider even when developed by 3rd party).
About the error you received: when we transfer app from our main apple dev account to respective apple account of the client, we do get the warning you mentioned as well. Yet even after receiving the warning, our apps get uploaded/approved. This happens because in past the app has been developed under a different team (and apple prefixes the team-id from dev portal to the bundle-id to finally identify apps on dev portal/appstore connect, it seems).
So what happens to you I think is that you dont have the distribution certificate/provisioning profile sorted out properly. Do you use just xcode, or a different tool to build/sign your app(s) - like Visual Studio for Mac? You would need to sort the provisioning combo there as well.
If you look to your keychain, in the "My Certificates" section you should see the team that invited you as admin to manage their apple account, and this entry should have a little arrow next to it, if you click it, you should also see that there is a private key associated to this certificate.
You might need to manually download all of the provisioning files in the xcode tho, in my experience double clicking the provisioning profile file downloaded from portal sometimes doesnt do the trick. If its the same for you, go to the xcode > Preferences > Account > click on your account in xcode, and on the right you should see all the teams that you are part of. Click on the team and click on "Download manual profiles".
If you use Visual Studio for Mac, you also need to add your account in the Visual Studio for Mac > Preferences > Publishing > Apple Developer Accounts. If this is empty, just add your Apple dev account, login, and you will also see a list of teams you are part of. If it syncs well, you can actually just leave the certificate/provisioning combo on Automatic in Visual Studio, and it will manage it for you.

Certificates and Provisioning Profiles for Push Notifications

I'm having trouble with the process. I have got push notifications working for Development. I have read multiple guides and questions, and for some reason - either their guides are deprecated in iOS 8 or my Xcode is bugged - I am having issues with provisioning profiles.
For the purposes of this question, I have generalized most of the terms for privacy concerns.
I'm currently greeted with the bug - Failed to code sign "App". There is a Fix Issue button, but I made sure I did not click that; I'm afraid it'll only complicate my problems.
I've followed the Parse iOS Notifications Guide and configured my app according to the guide. I've done the following:
Requested a certificateSigningRequest from Keychain Access
Created a new App ID in iTunes Connect, with a new bundle identifier. I made sure I went into my info.plist in my app to change and match the new App ID created in iTunes Connect.
Using the new App ID in iTunes Connect, I created the Production SSL Certificate.
Installed it to my KeyChain Access, and exported it to upload to Parse.
Next, I deal with the Provision profile. Once again, I went in iTunes Connect, created a new provisioning profile, made sure to link the correct bundle ID with it, and downloaded it.
Here comes the part that may have fudged up the process. In the Parse Notifications Guide, they instructed users to double click the downloaded file - in my case, it was called "AdHocDistribution.mobileprovisioning", which will install itself into Xcode.
Download the generated provisioning profile from the next screen by selecting the "Download" button.
Install the profile by double-clicking on the downloaded file.
This should open Xcode's Organizer in the Devices pane. Your new provisioning profile should appear in the Provisioning Profiles section of your Library. Make sure that the status for this profile is "Valid profile". If the profile is invalid, make sure that your developer certificate is installed in your Keychain.
Double clicking the mobileprovisioning file did not lead to any discernable feedback telling me that it was installed.
Finally, I modified the code signing fields in my project and target's build settings to match the one I downloaded.
Finally, I try running the app, and the error popped up. Please help!
Create a provisioning profile of the application using ADHOC from dev account.Download and control drag it to Xcode, Under provisioning profile in your screenshot select that.
Do the same for Target and project and you will be good to go!
P.S. also select the Team as your dev account
Please follow the following steps..
Check all your targets's Code signing Section. Like Project and Test Target.
Check the project "identifier" in all your .Plist file.
Add the account in Xcode Account section, by choose from :
XCode-> Preference - > Account -> click on +sign and add your apple developer account.
Hope it will help you.

Resources