submitting app to apple - ios

i have a question regarding submitting app to apple. I have my program written and tested on actual devices. I have a certificate and provision profile set up so i can load it unto my device. However, when i go on the apple official web site to see the steps that i need to take before submitting, it requires me to get a certificate and provisoin profile again? So what do i do? Do i delete my old provisioning profile or what do i do? Confused

You don't need to delete your Developer certificate or mobile-provisions. You do need to request and download a Distribution certificate and a distribution profile before building a submittable app.

The process is kind of confusing at first, but after some time you get used to it:
For distributing the app, you have to have a distribution certificate.
Do not delete your developing certificate. Leave it there ;)
after downbloading and installing the certificate on your Xcode (on organizer), change the signing identity from your project settings (if you have XCode 4, on the navigation menu click on your project main item, then go to build settings and change the signing identity for your project to the distribution profile).
After that you will be able to archive your application (on the product menu from your Xcode).
After archiving, you can test the build and upload it to apple from your Organizer Window...
Hope to have helped!
Best of luck...

Related

Appcenter iOS install error "this app cannot be installed because its integrity could not be verified"

I see that this question has been asked many times but I see no solution that works for me so I'm hoping that providing more info might shed some light.
We use appcenter.ms to test iOS apps. Until our iOS certificate expired this method worked fine. We generated a new enterprise certificate and ad hoc provisioning profile for new releases of the iOS app. Which led to the first curiosity.
I see how to upload a certificate on appcenter.ms but not a provisioning profile. I thought there was an option to do this in the past but perhaps I am mistaken. However, the app is signed with a provisioning profile before upload, so perhaps this is not needed now.
Once the app is uploaded, it can't be installed. It remains grey and when you tap it, you get the "this app cannot be installed because its integrity could not be verified" error. Again, that the .ipa is created with an ad hoc certificate and profile in Xamarin (VS for Mac).
Also, I can't install the provisioning profile on a device from appcenter.ms. You basically get stuck in a loop where you seem to successfully install the profile but have to keep doing it because it never actually installs.
I hope this is enough info for some insight and thanks in advance for any feedback.
We were able to solve this by redoing and downloading development certs and via
And also downloading and double clicking the apple development certificate here
After that our keychain showed both as trusted and we could build to the iPhone again.
The issue can be the your device is simply not registered on the developer portal and/or that ad-hoc provisioning profiles have not been regenerated.
You need to register your device, regenerate a provisioning profile with this device in it and rebuild your app using this profile.
This can also happen because of
Developer ID Notary Service - Outage
which can be checked on https://developer.apple.com/system-status/
Notarization is well explained here:
Notarization gives users more confidence that the Developer ID-signed
software you distribute has been checked by Apple for malicious
components. Notarization is not App Review. The Apple notary service
is an automated system that scans your software for malicious content,
checks for code-signing issues, and returns the results to you
quickly. If there are no issues, the notary service generates a ticket
for you to staple to your software.
Work around fix:
Select your app.
Navigate to TextFlight tab
Create External Testing group
Add one tester
Add build which you want to download using TestFlight
Open TestFlight and download an app.
In my case this was caused by trying to include an entitlement for aps-environment "development" when using an Ad-Hoc provisioning profile. The value for this environment in Entitlements.plist must match what is hard coded into the provisioning profile file - if you open an Ad-Hoc profile in a text editor you will see it expects the "production" environment.
The possible solutions depending on your requirements are to either use the Development profile/certificate, or change the aps-environment to "production" to continue using an Ad-Hoc provisioning profile.
It can also happen if you have other incorrect entitlements - worth checking what entitlements are enabled under the Identifier in Apple Developer portal and removing unnecessary ones.
I had this issue because when building the app on xCode for distribution (Product->Archive then Distribute App), I chose automatic signing. After manually signing the app and choosing my own generated certificate and profile, everything worked again fine.
I removed the Entitlements file from the Addition Resources in iOS Bundle Signing and it worked.
I think the MSAL configuration was set to debug in entitlements.plist
I have also face this issue before but for me the reason was little different
First the build was enterprise one and the build was made on the earlier Xcode version on which the iOS version you are using on the device was not supported by the Xcode.
All I did was to update my Xcode and make a new build and shared the build. After that we were able to install that build over device Hope it works for you as well
This is how I solved for myself.
In you iPhone Settings > General > VPN & Device Management you should see your company name (if an app from it is installed), and if you click on it, you will see a button like "Verify" above the list of apps installed provided by the company. Just click on "Verify".

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.

Issue while generating IPA using Xcode 6.3.1

While trying to generate IPA for testing purposes, I receive a message:
"You have a valid iOS Distribution certificate in the Member Center, but it is not installed locally. If your signing identity is installed on another Mac, you export developer profile on that Mac and import it on this Mac. You can revoke current certificate and request a new one."
Why is this happening?
This is what worked for me.
On my machine I kept both Xcode 5 and Xcode 6 .
From Xcode 6 beta, Archive the project. Close Xcode 6.
Open Xcode 5, go to Organizer and export as Ad Hoc build with proper provisioning profile.
That's it!
Majority of these problems are very easily solvable by Fastlane. In no way I want to promote a product - it's an open-source tool and saved me hell lot of time.
It was Xcode bug.
When I tried to export developer profile from another system and installed in my system its working fine.
This worked for me
created new CSR (code signing request)
created new Distribution certificate with the CSR, once created go download and double click to install
create a app id if you dont already have one
create your distribution provisioning profile, select your app id and certificate you created
after you create it, go download, and double click to install
restart xcode
Go to Keychain Access
Keychain>Certificate Assistant> Request a Certificate from Certificate Authority.
Fill in the email. (keep others as default values)
Save the file.
Log in to Apple Member Center
Go to Certificate, profiles Provisioning Profiles
Click on Add button on top Right corner
Select App ID from the dropdown
Select the profile you wish to include.
Click on Generate and
Download the Distribution certificate
Open keychain Access
Go to file>Import Items
Select the Distribution certificate.
It should work now.
in my case everything was done as per the manual (I'm experienced in this stuff) but it turns out xcode was acting out.
I used the user local signing assets and I was done :)

Error while refreshing profile in XCode preference

I tried to upload my app in itunesconnect, i am doing the following steps,
i set correct bundle-id
code signing identity - iOS Developer
provisioning profile - Automatic
in Xcode preference, while clicking on the iOS distribution under + button, i got the following error.
"Your account already has a valid iOS Distribution certificate"
"If you have your signing identity on another Mac, you can import a developer profile. You can also revoke the current certificate and request one again."
Try the following:
Download all your certificates and profiles from the Apple Member Center and save then somewhere you can access them.
Double klick all of them, that should bring up Keychain as well as Xcode
In Xcode, open your project's build settings and set the Code Signing Identity under Developer to your developer certificate and the corresponding certificates to Distribution.
that should be it, check Xcode's preferences for the certificates and profiles to make sure they're correct and it works.
Hope that helps :)
Apple has good and complete documentation:
Step-by-step guidance for enrolling in an Apple Developer Program and building, testing, and submitting your app.
You need to be an admin or agent to make a distributable build.

iOS Provisioning Portal: How to create an enterprise distribution cert using Xcode?

For an enterprise account, what is the recommended way of creating a distribution certificate? If I look at the distribution tab in the iOS Provisioning Portal, I see this this disclaimer at the top:
Important: Xcode is the preferred method for requesting and automatically installing this certificate. Before proceeding, read Tools Workflow Guide for iOS.
I don't see anything in that guide that discusses enterprise distribution or how Xcode would generate and submit a CSR for you.
I can certainly create and submit a CSR manually, but if Xcode now handles this sort of thing I'd prefer to do it that way.
XCode will do it for you automatically when you create a new provisioning profile, assuming a valid certificate doesn't exist already.
If you go into the XCode Organizer you should see a 'New' button at the bottom of the window (next to 'Import' and 'Export').
When you select 'New' you'll be asked for your developer account details - if you don't have existing certificates installed on your machine XCode will ask if it should request new ones. The process is the same for distribution certificates - however, the account you use to log-in via XCode must be a team distributor.
This is all very well and good, but as per Apple's documentation:
Xcode does not download distribution provisioning profiles. You must download distribution provisioning profiles through your web browser and drag them to the Xcode icon in the Dock.
So while it's quite useful for development it's not so useful for distribution: you can certainly request the certificates in XCode, but you're still going to have to go to the provisioning portal to download the profiles!
But in the provisioning profile: Under the distribution tab:
Apple says:
Xcode is the preferred method for requesting and automatically installing this certificate.
So therefor this should work for distribution too.

Resources