How do I create a new provisioning profile with entitlements? - ios

I'm working on an app: com.myco.foo
It uses "Associated Domains"
I can't run the app on a physical iPhone due to this error:
Failed to code sign "my app". None of the valid provisioning profiles allowed the specified entitlements: com.apple.developer.associated-domains.
How do I create a new provisioning profile to sign this?
When I try to create my own by doing the following:
App ID's -> new (https://developer.apple.com/account/ios/identifier/bundle)
id: 'com.myco.foo'
enable associated domains
Provisioning Profiles -> new (https://developer.apple.com/account/ios/profile/)
type: development
select app id created above
select my device
finish creation
download
open (which opens Xcode but Xcode doesn't say anything about the profile that i opened)
I try to run on device, I get the error:
An App ID with Identifier 'com.myco.foo' is not available.
When I change the project app id to com.myco.foo2, I get the original error.

First I would say regenerate all Development (or Distribution if you are trying to archive) provisioning profiles for your application.
Then, add the associated domain capability.
From the Adding Capabilities section of Apple's App Distribution Guide:
To enable associated domains
In the Capabilities pane, if Associated Domains isn’t enabled, click the switch in the Associated Domains section.
Click the Add button (+) at the bottom of the Domains table.
Double-click the placeholder text in the table, and enter the domain name you want to add.

1) First of all make sure you have added your device udid in provisioning profile you are using. If not added, add it from developer.apple.com and download latest provisioning profile, it resolves your issue.
2) If you have not created Development and Distribution code signing certificates on developer.apple.com then ask relevant person for .p12 certificates.

Looks like it needs to be a distribution type profile in order to run on a physical device: when creating the provisioning profile, you have to choose "Distribution: App Store". You don't select any devices during creation.

Related

Manually create provisioning profile in Xcode

I have a simple goal I would like to achieve, manually create a provisioning profile in Xcode.
So, I was trying to use the Pythonista Template in Xcode, and I wanted to flash it to one of my devices so that I could test it on a real device and not just the iOS simulator.
So I enter in what I want the app ID to be, and it says, No profiles for 'com.cartercoding.getnpostserver' were found. So I need to manually create a provisioning profile for it, which I have looked up, but the answers I have found are not relevant.
I am using Xcode 11, stable release.
I don't really know what a provisioning profile does...
A provisioning profile grants permission for one or more iOS devices to run an app signed with a specific certificate. Normally, an iOS device will only run apps that are signed by Apple; a provisioning profile tells the device that it may also run apps signed with a key corresponding to the certificate specified in the profile.
I am trying to put an app that I downloaded from the internet on my phone, so I can't do it the usual way.
The whole iOS code signing infrastructure is designed to prevent you from doing that. Short of jailbreaking your device (which is a whole other conversation) you can't just install an app that you've downloaded onto your phone.
I have a simple goal I would like to achieve, manually create a provisioning profile in Xcode.
You can't create a provisioning profile "manually," if by that you mean to construct one on your own; you have to get one from Apple (whether that's automatically through Xcode or via the developer portal).
For users who need to manually create a provisioning profile (in some companies every app has to have its own provisioning profile)
Sign in to your Apple Developer account and navigate to Certificates, IDs & Profiles > Identifiers > Provisioning Profiles.
https://developer.apple.com/account/ios/profile/production
Add a new provisioning profile.
Activate App Store.
Click Continue.
From the dropdown menu, select the app ID you just created.
Click Continue.
Select the certificate you just created.
Click Continue.
Fill in a name of your choice. The name is not visible to end users.
Click Generate.
Download the provisioning profile.
Click Done.
The provisioning profiles overview with your new provisioning profile is displayed.
If you need a Provisioning Profile of Type Ad Hoc
Is everything the same except point 3
These instructions were copied from this page
https://support.staffbase.com/hc/en-us/articles/115003598691-Creating-the-iOS-Provisioning-Profiles

renaming xcode project generates signing error

(new to xcode. need to change working project) I want to rename my xcode project, followed the instructions in https://help.apple.com/xcode/mac/11.4/#/dev3db3afe4f
but if I change the Identity|BundleIdentifier, The Signing section warns that "The provisioning profile does not match the ... bundle ID"
Where do I add new BundleIdentifier and how do I use it?
(my xcode version is 10.1)
From If the provisioning profile App ID doesn't match the bundle ID:
If there is a conflict between the App ID in the provisioning profile
and the bundle ID in your project, you receive error messages similar
to the following:
Code Sign error: Provisioning profile 'MyApp Profile' specifies the
Application Identifier 'com.mycompany.MyApp.*' which doesn't match the
current setting 'com.mycompany.MyApp' In the project editor, choose
the target and click General.
In the Identity section, set the bundle ID to match the App ID.
In the Signing section, verify that the team, provisioning profile,
and signing certificate settings are correct.
Next to the provisioning profile, click the information icon.
In the dialog that appears, verify that the provisioning profile
contains the correct App ID.
In addition, you can view the App ID and provisioning profile details
in your developer account.
The Xcode default is to generate a profile per app (ie. com.mypackage.myapp)
You can generate provisioning profiles for a package (ie com.mypackage.*), but this may require a paid developer account and may also require selecting it in the app settings.

iOS Native Application - Requires a provisioning profile with the Push Notifications feature

I am supporting for one existing native iOS application. For this am able to generate IPA successfully from Xcode but while generating build from devops am facing the issue:
Requires a provisioning profile with the Push Notifications feature
How can I get past this error and build for my device?
A Provisioning Profile must be installed on each device your application code should run on. Each Development Provisioning Profile will contain a set of iPhone Development Certificates, Unique Device Identifiers and an App ID.
Devices specified in the Development Provisioning Profile can be used for testing only by those individuals whose Development Certificates are included in the profile. To create :
Login to the developer account connected to your project, and under Certificates, Identifiers & Profiles -> Profiles -> Register a New Provisioning Profile by clicking the add new button.
Choose for which purpose provisional profile is required.
a. For developement purpose. (the app can be downloaded only in registered devices if the application is in development stage. For this, The device UDID is required to be added in device list).
b. For distribution purpose ( The provisonal file required for uploading app in the app store)
After Selecting above, click continue.
Choose your Appid (i.e. Bundle id) from the list and click continue.
After registering, download the provisional profile (File with extension name.mobileprovision will get downloaded) and double click the file to the Xcode project to include the provisional certificate to be added.
you need to follow below steps
go to developer account
make provisioning profile for bundle identifier that you are using
Adhoc(test) or Distribution(production)
enable push notification
download the certificate
click on the certificate

how and what is XCODE's Bundle ID, signing?

sorry new to IOS programming. must i enroll to apple developer program to obtain a bundle id ?
apparently i am trying to start my first project, but it seems like i need to choose a bundle idnentifier so that the signing tab would have no errors.
is the signing tab required for me to make a development environment on my device ?
Bundle identifier is on which uniquely identifies your app on app store, it is unique & hence 2 apps can't have the same bundle identifier's.
Example of a bundle id
com.azhar.calulator seems like this.
Signing of a code is required for running, testing & debugging of the app.It requires provisioning profiles and its certificates.
Procedure for getting them:
1.Run Google Chrome, Mozilla Firefox, or Safari.
2.In the iOS Dev Center, click Certificates, Identifiers & Profiles.
3.In the drop-down menu in the top left corner, verify that iOS, tvOS, watchOS is selected.
4.In the left-hand sidebar, select Provisioning Profiles → Development.
Click +.
5.Select iOS App Development and click Continue.
6.Select an App ID to associate with the provisioning profile and click Continue.
7.To be able to use one development provisioning profile across multiple apps, select a wildcard App ID, if available.
8.Select one or more certificates for development to include in the provisioning profile and click Continue.
9.Only certificates for development are listed.
10.Select one or more devices to include in the provisioning profile and click Continue.
11.Provide a name for the profile and click Continue.
12.(Optional) Click Download to download the provisioning profile.
13.Click Done.
The bundle ID is your application ID. It is the one you set when creating the project, and should look something like: com.darkArtistry.appName
What you need from the Apple Developer Program is :
1 - A valid developer to certificate to sign your application
2 - A valid provisioning profile, that matches your appID.
Provisioning profiles allow wildcards in some cases like com.darkArtistry.* so they can match more than one bundle ID.
I would recommend you to first get your certificate from the developer program, and then xCode will help you creating a provisioning profile for you.
There are a lot of guides out there, let us know when you are exactly stuck.

How to install an unsigned IPA file on my device using an Apple Developer account?

I need to install an .ipa file that I own onto my device, an iPhone 5.
I have the device, the iOS developer account (complete access), Xcode, etc. Now, how should I "codesign" it, add certificates, provisioning profiles and finally how do I install it in my device?
Since you have an .ipa, what you need to do is extract the .ipa (basically a ZIP file), pull out some files related to the old signing, swap in your new provision profile, and then re-sign. Simply zip it back up and you should be good to go.
IPA="/path/to/file.ipa"
PROVISION="/path/to/file.mobileprovision"
CERTIFICATE="Name of certificate: To sign with" # must be in keychain
# unzip the ipa
unzip -q "$IPA"
# remove the signature
rm -rf Payload/*.app/_CodeSignature Payload/*.app/CodeResources
# replace the provision
cp "$PROVISION" Payload/*.app/embedded.mobileprovision
# sign with the new certificate
/usr/bin/codesign -f -s "$CERTIFICATE" --resource-rules Payload/*.app/ResourceRules.plist Payload/*.app
# zip it back up
zip -qr resigned.ipa Payload
This is all assuming that you're not trying to change the bundle ID or anything with entitlements. Note that the new profile must have the necessary entitlements for this to work on a device.
For a pre-made script that also does this, see the following:
https://github.com/RichardBronosky/ota-tools
I got very nice linked from internet that you can create certificates, provisioning profile and co-design using following steps.
As you said you have complete access of you iOS developer account with 99$ yearly subscription. then you have to your system.
Create Developer cer from you with your certificate signing request or CSR. Download it and install it in to you key Chain by Double clock on Cer. that shoul appear in to you keyChain like following screenshot with private key. If with your Dev cer if there is no private-key then there is some mistake in to you system authority cer.
Now for testing app in to your device you have to add your device UDID in to this dev cer. You cannot run an iOS application on a random device. You need to specify on which devices your iOS application should run by adding one or more iOS devices to the iOS Dev Center.
Browse to the Certificates, Identifiers & Profiles section of the iOS Dev Center, click the Devices tab in the iOS Apps section, and click the plus button in the top right. To register a device, enter a name for the device and he device's UDID. The UDID is an identifier that uniquely identifies an iOS device. Note that the UDID is not the same as the device's serial number.
You can find the UDID of a device by connecting the device with your machine and launching Xcode's Organizer. You can open the Organizer by selecting Organizer from the Window menu. Select the Devices tab at the top and select the device you're interested in. The 40 character alphanumeric string next to the label Identifier is the device's UDID.
After add your device UDID then you need to create AppID for you application. To create a new app ID in the iOS Dev Center, navigate to the Certificates, Identifiers & Profiles section, click iOS Apps, and choose App IDs from the menu on the left. To create a new app ID, click the plus button in the top right. like following screenshot
After cratering AppId then you need to Create a Provisioning Profile that use for code Signing. With the development certificate and the app ID in place, it's time to create a provisioning profile for your application. Before we start, it might be useful to explain what a provisioning profile is, because this is something that confuses a lot of new iOS developers.
It will become clearer if we create a provisioning profile for your application so let's do that now. In the Certificates, Identifiers & Profiles section of the iOS Dev Center, select the Provisioning Profiles tab in the iOS Apps section. Click the plus button in the top right to create a new provisioning profile. Select iOS App Development in the section labeled Development and click Continue. like following screenshot:
Click on continue In the next step, select the app ID you created a few minutes ago.
Select the development certificate from the list of certificates to associate the new provisioning profile with the correct certificate and click Continue.
You then need to select the devices you wish to link to the provisioning profile. Remember that only these devices will be able to run your application during development.
Give the provisioning profile a descriptive name so you can easily find it later. Click Generate and download the provisioning profile to your development machine. Double-click the provisioning profile to add it to Xcode.
Open the Xcode project that you created during the previous tutorial and select the project from the Project Navigator on the left. Select the first item in the list of targets and click the tab labeled Build Settings at the top. search for the subsection titled Code Signing Identity
After setup code sign, certificates,provisioning profiles create IPA by select device that connected Via Cable with Xcode. Run your project with your Device.
For Creating IPA Go to Top Bar of mac-screen--->Product-->Archive like following screenshot.
This process might be take some time for creating Build wait a while then you got new window with look like following.
Tap on distribute Button you get multiple option like following screenshot:
You have to select second option as same as above screenshot and click on Next Button. Then next screen with one drop-down. Select correct Identifier that you are using as a code sign And click on export.
After some process there is one window appear for location of save ipa file like following screenshot.
Yuhoo your IPA file is created now you can install by many thing for example using iTunes, using Test Flight using Diawi

Resources