Make an .IPA for iPhone and iPad - ios

As I had asked this question already and didn't get the answer that I needed, the problem is as follows:
I developed a game for both iPhones and iPads. Everything is working fine but now I want to Archive my project. As I already have signed in for an Apple account, the problem is I don't have another device to register with.
And, according to Apple's terms and condition "Creating a provisioning profile requires one or more devices to be registered with your Account."
Is there any way we can get it done without costing any money?

You mentioned in the comments that the purpose of the archive is to send the IPA to someone else. For that to work, the app needs to be provisioned for the device it's going to run on - that other person's device.
So, ask that person for their device UDID (that they can get from iTunes), then register it in your account in the apple developer portal member center and build using that.
It should be an ad-hoc configuration that you create.

What XCode is complaining here is that you need to register the devices that you want the archive to run on! Or, it can be an expired license causing the trouble.
Note: Check in Keychain for any expired licenses. Go to View -> Show Expired Licenses. And, remove any or all of the expired licenses in System, Root, and any other categories. Mainly its the WWDC License causing the hassle.
Remove your iOS Development and Provisioning License(s).
Now, after removing all the licenses, add back your Provisioning profile, and the developer profile license. That should do it.
Start a clean build, and archive now. This should accept the archive. Do not forget to register a new device UDID in developer.apple.com portal. It is needed for TestFlight.
If you have any queries, please ask us in the comments.

Related

Xcode Signing - Failed to create provisioning

Here's the story:
I created a free developer account to build an app for a client.
I used this info for the Identity and Signing:
It came time to upload the app to TestFlight and to use the client's developer account.
I created the account in xcode using their apple id and updated the signing like so:
But now I got this error.
It was clear, so I updated the Bundle Identifier to this:
But again, now I am getting a different error, and I don't know what to do.
I do not have an iOS device to register, nor do I care to get one, since I'm not doing the testing - they are.
I did create an app in the App Store Connect, and it is set up like so:
As you can see I created it to match the Bundle ID from before and still no luck.
Any help is greatly appreciated. I just want to be able to get my Xcode project onto TestFlight using someone else's developer account (with their consent of course).
It needs to have at least one iOS device registered in order to create the development profile. Ask your client for the UDID of one of their devices and add that manually to the developer portal. If they don't have one handy, feel free to use: f978c5f2e861f71b340125a4fa8d130a6254a0b3 which will work.
Alternatively, switch to manual signing and do everything manually. That's my preferred method, but some say Xcode is finally good at managing profiles etc for you.
The only way to do this without a device is to turn off "Automatically manage signing" and manage everything at the Member Center.
You will need the distribution identity / certificate first. If the team already has one, you will need them to export it to you; otherwise you cannot upload.
Then register the app.
Then make a development certificate, and a distribution certificate for the app store, and download and install them.
Now you can archive and then export to the app store.

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.

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.

How do I deal with the distribution on a project I've somewhat taken over?

I've recently taken over a project as a freelancer. I have during the development used my own account so I changed most of the debug/release/etc to my own "iPhone developer" etc in the project.
Now, however, it is time to send the update to the actual app store. I've gotten access to the last developers account, I've downloaded the distribution profiles which I assume I need.
The problem now is that, as far as I understand, I need the last developers ".developerprofile" for signing purposes. Or is there some other way? I can't seem to download it from the apple developer account.
This is the first time I am doing any kind of release so I am a bit shaky on the whole provisioning stuff as I've only developed locally and for that xcode manages everything perfectly so far.
If you can you need to get the P12 file from the previous developer - stack overflow
You actually do not need the previous developer's certificate or provisioning profiles in order to continue the project on your own.
It's relatively easy to revoke the previous developer's certificate and provisioning profiles (via the Apple Developer Portal) and recreate new ones on your machine.
Once you log into http://developer.apple.com/ios, look for the "Certificates, Identifiers & Profiles" section.

Enterprise provisioning profile. Sign devices without adding them

please correct me. I had apple developer account and worked as individual developer. Right now I have access to the enterprise account. I have information that I can build app using an enterprise profile even without adding UDID to it. So it means I can build apps on all my devices without signing them on portal. Am I right?
Can someone link to some topic or tutorial how to make the profile like I've described of course it it makes sense. I am not sure maybe I am confused about it.
Yes in case of enterprise profile you don't need to add UDID of your device[or any one else's] in it, you can make build with it and can install it in any iOS device.
You can see some questions and answers about enterprise account
Here
No using an iOS Enterprise Program distribution deployment method need not to enter every device id.
All you need is a distribution certificate for signing and a provisioning profile built for it. Note that ANYONE that has the profile can run the app on their device, although you can revoke the profile if necessary.
You are also given the standard test and Ad Hoc deployment mechanisms as with the standard Development Program. The Ad Hoc is limited to 100 devices, which I don't understand, but anyway, there it is.
You can visit this link for your reference

Resources