Ionic 3 - Can't install production app on iOS - ios

I'm building my app for iOS using ionic package.
https://docs.ionic.io/services/package/
I created certificates for both development and production, including push.
https://docs.ionic.io/services/profiles/
development - built successfully using ionic package, installed on iOS with no problem.
production - built successfully using ionic package, when I try installing it on iOS it starts installing the app normally, then when almost finished the app disappears and it ends up not being installed, no errors appear.
Why does it happen?
In order to test the production .ipa on my device, I'm installing it via the iTunes software. (I'm not publishing it in the App Store yet)
The same goes for the development .ipa, though for this one it's a given.
I found this old issue which suggests it might be due to bundles ids that don't match:
In-House App Disappears After Install
The widget id in my app's config.xml is identical to the App ID on Apple Developer.
Are there more places that are supposed to be identical which I'm not aware of? Perhaps info I'm inputting when creating the certificates?
My final goal is to publish this app in the App Store, it's not an In-House app - I'm stating this to avoid confusions.

I have faced the same issue when i was building my iOS apps , after a couple of research i came with this fact :
When you prepared the Production build (Store App ) it will not be able to install in the development devices . if you need to test that production app in your development device you need to build the app with ADHoc Provisioning Profile . then only it is able to allow you to install in the Development devices.
AdHOC provision profile is a distribution provisioning profile that allows your app to be installed on designated devices and to use app services without the assistance of Xcode. It’s one of the two types of distribution provisioning profiles that you can create for apps. (You use the other type of distribution provisioning profile later to submit your app to the store.) An ad hoc provisioning profile ensures that test versions of your app aren’t copied and distributed without your knowledge.
When you’re ready to distribute your app to testers, you create an ad hoc provisioning profile specifying an App ID that matches one or more of your apps, a set of test devices, and a single distribution certificate.
The App Store version app is, as its name implies, for use only when distributing via the App Store. It exists for signing your app for distribution via the App Store and can't be used for any other purpose. Unless you install an app that has been signed by it via the App Store it will obviously fail.
If you want to distribute an app for internal use to a few devices and for a relatively short period, you should use an Ad Hoc profile (which i explained in above ); if to a lot if users for an extended period, you need to register as a corporate developer and follow a different process.
For More Details regarding Adhoc refer the following link:
https://developer.apple.com/library/content/documentation/IDEs/Conceptual/AppDistributionGuide/TestingYouriOSApp/TestingYouriOSApp.html

You can't just directly install production build onto your test device, its against apple's policy.
So in order to do that you can export an Ad-hoc build and then you can install in your device, provided that device is already included inside your provisioning profile.
Ad-hoc builds works same as production builds, only difference is you can only install on those devices which are included in your provisioning profile for that app.

It is not possible to directly install Production iOS App on the mobile device. This can only be done via TestFlight. Step by step tutorial below.
Prerequisites
You have your Mobile App Prod build ready and signed
You have iOS mobile test device with TestFligh app on it
Step by step
On MAC open XCode -> Open DEveloper Tool -> Application Loader
Click 'Choose' file to pick up your build file from local machine and continue to upload
Once app is uploaded it will be visible from iTunes Connect console (wait until Processing is finished before submitting to TestFlight)
Once that's done, open TestFlight App on the iOS mobile device and download your new app.

Related

How with delphi can I publish an iOS app to the account of someone else?

I build some iOS app for other people. With android it's quite simple, I gave the .aab to the guy and they add themself this .aab in the play store. However, I think, I can't do the same for iOS or I m mistaken?
Is there a way to compile the app on my computer and gave my client a binary so he can publish it under his account? I m under Delphi if it's matter.
What worry me a lot is that I need to compile a dozen of a white-labeled app every time I Update the main core app and I want to automatize the process. How can I do this ?
An iOS app is compiled to an .ipa file, which can be deployed to a device or uploaded to the App Store.
However, iOS apps have many requirements beyond just deploying the binary.
Each customer will have to obtain a Developer Certificate that identifies them with the app(s) you develop on their behalf. They will have to provide those certificates to you.
In order for each customer to then install/upload your app binary(s) on their own accord, they will have to register App IDs with Apple, and give you those IDs so you can configure it into your projects as needed.
Each customer will also have to provision those IDs according to how they will be installed (Ad-Hoc vs App Store), and give you the provisioning profiles so you can configure them into your projects as well.
This is all covered in Embarcadero's documentation:
iOS Mobile Application Development
Acquiring an iOS Developer Certificate
Provisioning an iOS Application
Creating an App ID for Your Application
Creating and Installing Your Provisioning Profiles
Configuring Your Provisioning Profiles on RAD Studio
Deploying Your Final iOS Application
Deploying Your iOS Application for Ad-hoc Distribution
Deploying Your iOS Application for Submission to the App Store

How can I get a Phonegap app to install at the same time as an App store app

I am using PhoneGap (Build) to create an iOS and Android app. I have 2 versions of the app on PhoneGap, one is setup with an Apple and a Google certificate, which I use to get the ipa / apk files to send to the App & Play stores. The other is used as a staging app, and our test devices install this app from directly from PhoneGap.
I'm having an issue getting both versions of the app to install on our test Apple devices at the same time. If the App Store app is installed, the PhoneGap staging app removes it when it is installed, and vice versa.
In config.xml there are 2 versions with a different widget id. So they should appear to the device as different apps:
staging.myappsname.app
com.myappsname.app
This setup works on Android devices, how can I get iOS to see them as separate apps?
I'd forgotten about this question.
On iOS, the apps are differentiated by the signing certificate. So the staging app needs to have a separate provisioning file and key from Apple Developer Center.
The App Store provisioning file & key should be generated from a Distribution Certificate.
The "staging app" provisioning file & key should be generated from a Development certificate.

AirWatch MDM with Xamarin ipa

We are currently adding some mobile applications built using Xamarin.iOS to our AirWatch MDM entreprise store. Unfortunately it doesn't behave as it should: we trigger the download on the device, it downloads the app but it doesn't install on the device. We checked the device logs and we seem to have an issue with profile or code signing.
Have other persons already used Xamarin.iOS with AirWatch MDM?
If yes, then how do you build your ipa file? Currently we build them for armv7+armv7s, with all assemblies linked, using LLVM and we build using AppStore mode.
When we build the app in AdHoc mode with UDIDs in the provisioning profile and add it through iTunes then it is installing and running fine.
Maybe it is necessary to go the AdHoc way, with this ipa file, with all UDIDs referenced, or, we should go the InHouse way? https://developer.apple.com/programs/ios/enterprise/
I haven't used AirWatch but I do currently use the Enterprise program (with ad-hoc builds) for internal company apps. I had the same issue when I tried using the wrong provisioning profile when signing the application.
Yes I have been using Xamarin with Airwatch for two years. I have no problem deploying applications to the field. I routinely provide updates for the programs and in most cases they are 100% deployed in a matter of a couple of days. The majority of the last forced deployment completed in less than 8 hours.
It sounds like it might be the way you are uploading the application into Airwatch. Are you requiring something that is not on the user's device such as a passcode?
I have about 240 IOS devices deployed with a mixture of OS (6.0 - 8). I do not build the apps for the AppStore. I can see where that could be an issue with the deployment methodology. When you deploy via IPA in Airwatch, it is assuming you are deploying enterprise applications. When I deploy an AppStore program I use the catalog and they install via the AppStore.
Our IPA's work either via iTunes or through Airwatch. Let me know if I can be of any further assistance.

My iOS app just working on my developer devices other phones can't install(Phonegap)

My iOS app just working on my developer devices other phones can't install I'm using phonegap. Other devices can download but when install get full its sticking in install. I think Problem in the Provesion or certificate.
If you haven't added the other devices to your provisioning profile, you will need to.
Also, take a look at TestFlightApp.com to help with the app distribution process during testing.
You need to add all devices you want to test on into provisioning profile you are using.
Here is a good answer how to do it:
How do I add a device to my provisioning profile?
You have to keep list of devices you are using for development only during development phase.
Apple is protecting themselves from you publishing application outside Appstore.
For submitting app to Appstore you need to use Distribution certificated - than everyone can install it - but only when downloading from Appstore - you won't be able to install that build outside Appstore flow.
During development you are only allowed to add up to 100 devices on your account. On enterprise account however there is an option to release "in-house" build - which allows you to install app on many devices - but you are not allowed to use that to distribute an app.

What are the differences between Provisioning Profiles?

What is the difference between a development provisioning profile and an ad hoc provisioning profile?
Couldn't we always use the ad hoc profile for everything but the store?
An ad-hoc provisioning profile is used later in the development process, particularly when you want to distribute your app to a small or medium size group of testers that are not included in the iOS developer program for your organization. An app deployed with an ad-hoc provisioning profile will be almost identical to the version you submit to the App Store (ie. it will need a distribution certificate for push notifications to work, etc.)
Of course you could add your QA team and betatesters to the organization and use a development provisioning profile, but this approach has many disadvantages:
You may end up with many development certificates, making it difficult to manage them.
You are giving your betatesters the right to compile and run the app on a device. (This is a extremely bad policy.)
You want to test your app in the closest possible environment to the App Store environment. Development environments, like running the app from Xcode, can masquerade some bugs that will show up when you publish your app.
All Types of Provisioning Profiles explained in summary
Provisioning Profile simple definition/use
Provisioning profiles are used to authorizes a set of known iOS devices to run and install a given iOS app. If a target device have a profile installed matching it's own device Unique Device ID (UDID) and that of the app it is about to install then the device will be able to install the app otherwise the device won't be able to install the app.
Types Provisioning profiles and their use
There are 4 types: -
1. Development: - Used in development phase of the app to run the app on simulator and developer devices. (If a developer device is not in this list the in-development app can not be installed).
2. Ad Hoc: - Is provided to distribute the app to a known finite set of iOS devices outside the AppStore. These are very commonly used to distribute an app to testers via a third part testing service.
3 Enterprise:- Enable large enterprises to distribute inhouse applications to enterprise approved devices in a manner which is independent of the AppStore.
4 App Store:- Used for AppStore or for TestFlight.

Resources