Having issues distributing third party iOS app - ios

I am very new to iOS development and am in a bit of a bind. Another company has made an app for us and we are to deploy it. I have an enterprise development account and have successfully deployed one of my own apps to my own secured app store.
I have received a .ipa and a .plist file from company B and tried to put it up on my app store as I did with my app using the special href tag.
a href="itms-services://?action=download-manifest&url=http://www.myurl.com/app/company_b.plist">link</a>
The app downloads about 90% then fails. I have ensured that it is a valid plist file pointing to the .ipa.
Company-B had to add my iOS device to their device list at https://developer.apple.com/account/ios/device/deviceList.action. After they did this the app would download correctly.
I need to deploy this app to a number of people and Company B cannot add all the devices to their device list.
What can I do to deploy this app properly?
Any and all help is greatly appreciated!

Use a script like https://gist.github.com/RichardBronosky/2878446 to re-sign the ipa with your enterprise certificate. This way you don't need to give the 3rd party developer your signing identity.
You should never give out the private key for your enterprise certificate or give developer.apple.com access to anyone outside of your company.

The company has not properly signed the application. Get them to rebundle the ipa with the proper enterprise certificate

Related

In an Enterprise iOS app, how to replace the *.mobileprovision file on device after existing profile expired, but without re-signing the IPA?

We have a series of iOS Enterprise applications that were built with Telerik Cordova (discontinued in May 2018). Those apps are in the process of being converted to a new platform, but in the mean time they must continue to service client needs.
The distribution certificate the apps were built with is valid for another 14 months or so, but the provisioning profiles expire in a few days. Since these are Enterprise apps they will expire with the profiles.
Unfortunately, Telerik can no longer rebuild the apps using an updated profile for us. We have re-signed the apps using new provisioning profiles (using both iReSign and Terminal). When we try to side-load the resulting IPAs through the XCode Devices panel, we get an error stating that the entitlements do not match and the apps are not installed.
The question was raised as to whether or not we not need to re-sign the apps since the certificates are still valid. Perhaps it would be possible to just replace the .mobileprovision file on the device somehow? I gave it a try using iTunes Sync but I cannot confirm whether the file actually went to the device or not.
Question: Is it possible to just update the *.mobileprovision on the device without re-signing the app? If so, could someone please give me the steps or direct me to a link to perform the steps?
Alternate Question: Otherwise, any thoughts on how to resolve my Entitlements issue? The app only needs Push Notifications, but Game Center and In-App Purchases are also enabled. These are reflected in the App ID and provisioning profile, and the distribution certificate is of type Apple Push Services.
I should point out that I am not an admin on the Apple Developer portal for the project as I am an outside consultant, so my portal access is strictly read-only.
Thanks in advance for any direction provided!
If the applications were distributed to the devices by an MDM, then you can push a new provisioning profile to them using the MDM.
If the applications were installed over the air from a web server or directly using iTunes or Apple Configurator, then you need to replace the entire application package on the device. This requires the app to be re-signed, since the changed .mobileprovision file will change the package signature.
If you don't have the original, app ID with matching entitlements in the developer portal, then you will need to delete the existing application from the device before installing the new, re-signed application. You won't be able to do an in-place upgrade.

How to submit app made by third party to iTunes Connect without giving away the distribution certificate?

I'm developing apps for other companies. My customers want their app in App Store to show as published by their own company, not mine. Also, they don't want to give me their private key for signing apps for App Store distribution. I don't want the key myself, because I don't want any legal responsibility related to the key being lost or stolen.
They can add me as a developer on their company's team inside the Apple Developer portal, and this gives me access to publish new builds for testing. In this situation, I must sign my app with their distribution certificate, or my builds would be rejected when uploading them. Is that correct?
A possibility is that I send them the app as an IPA-file, using their app's bundle id, and sign it with my own certificate. They would then resign the app with their distribution certificate and submit it to iTunes Connect using Application Loader or similar. What is the easiest way for them to do the re-signing? Will they have to use Xcode to upload the IPA, or manually run codesign on the command line?
I'm looking to make this as easy as possible. The people receiving the builds (IPA-files) are not developers.
Try this one, you can sign IPA package by your certificate and send it to them, then ask them to re-sign it using their own certificate.
How to Re-Sign an iOS App from an External Developer
In this scenario, the customer will have to resign the IPA file they recieve from the developer and upload it to iTunes Connect themselves using Apple AppLoader or Xcode. To resign it, they will need the codesign binary provided by the Xcode command line tools (full Xcode not required, but will also work). Optionally, they can use Xcode to upload and re-sign an xcarchive.
There are some apps that give a UI to codesign, like iResign and AirSyncApp, that are more user-friendly than the command line.
Thanks to #alanc-liu for contributing information.

iOS app Certificaction and ad hoc testing

I work for a company developing their iPad app. None in the company is a technological geek to handle Xcode app deployment themselves. So for now, we do this:
I develop the app.
Create an ad hoc testing version and share the .ipa file with them.
They test and then I make a distribution version for further release.
What I want to establish as a permanent solution is
I develop and share the Xcode archive
They make all different versions for testing and release.
However I have been largely unsuccessful in doing so: for creating the archive, I have to sign/certify with my development profile. They could deploy it further from Xcode archive to an .ipa file, using their distribution certificate. However, they can not install it on their devices. I believe mainly because the development version requires my certificate/profile to be enabled on their devices :(.
Is there a way out? I need to provide them an archive which they could further sign and do whatever they want to do (either test on whatever devices they want to or release).
Thanks,
Nikhil
If you don't want to manage the device identifiers where you are deploying the device, you could use:
1) TestFlightApp.com (although I don't know what the current status of their offerings are -- since they've been acquired by Apple -- but they still have a "Sign Up" link on the top of their home page).
or
2) Apple's Enterprise Developer Program, which allows you to "Distribute In-house Apps".
You can sign application using their distribution certificate.
To do so c'est have to send you a p12 export of the certificate, the p12 contains the private key of the one creating the certificate and the certificate.
To export a certificate :
Go to the keychain access
Right click on the certificate
click export

Query about distribution certificate and development certificate in iOS app distribution

i want to know do we need both distribution certificate and development certificate, if i want to give my app to any one else or want to install on other mobile?
how can i setup my code signing with this certificates in xcode?
can anyone give me a screenshot for it?
The development and distribution is both necessary. They are both used in archiving which is a step you take when you want to upload your app to App Store. If you want to allow your friend to have the app you developed on their device, just connect the device in xcode and click on use for development. Then you can upload your app to their device for testing. You can register up to 99 devices to your development id. If you decide to publish your app on the App Store then you need to go through the steps of uploading your app and then you need your distribution profile. I hope this answer your question.
First you want to register with the Apple Developer Program (99$).
After that you want add your Device UDID.
Then you create the developer and distribution certificates.
Download these certificates and install them into your system.
Now In your Xcode Build Settings Set the Corresponding profile.
Connect your device and run it.

how to build ios app with xcode for other certificate/store-account

I have my own developer certificate and now I want to compile/build an app for a customer with his own (single user) account. how could I build an ios app with xcode for other certificates?
thx!
You need to make a provisioning profile from his dev account.. using keychain in your system..
Then when archiving ..select the customer distribution profile for the app.
That's it
I wouldn't know a way on how to do it the programmatically way. But you can do it really easy: If you are making the app for a customer, I assume he pays you for the rights to the app including source code. So just develop it. And when it is finished you send him the source code and he compiles it on his own and publishes it.
Or he sends you his certificate (if this is possible).

Resources