How to use TestFlight to release the adhoc version app? - ios

Is there a way to have both the app store version and the TestFlight version installed at the same time on one iPhone? Can we release the ad-hoc version of the test app via the TestFlight? How to use FastLane to publish a test ad-hoc version of the app in the TestFlight?

You need to have different bundleID (mean different app) to install at same time. Other wise app will replace existing app no matter what process you used to download application.

Related

Ionic 3 - Can't install production app on 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.

Keychain not the same for TestFlight vs App store build?

Is it normal that TestFlight uses a different keychain then the app store build?
I have added my login-credentials in my keychain so that the app login's automatically when it is started, but when I install the TestFlight app over the AppStore app.
The keychain seems to not be the same as the app store because it cannot find the credentials.
both apps have the same bundle identifier.
Yes it is normal. As you install your app from AppStore and from TestFlight, iPhone/iPad consider both the app as different apps even with the same name. There may be difference in both builds'versions. Or even if both the builds are same it consider the different one. If you have noticed the TestFlight version and AppStore version are installed separately. And another thing to note is that when you install an app from test flight then the app name Start with a colored Dot which denotes that the build is downloaded from test flight and it makes the app different from other all apps.Please see the Image attached which show a build installed from test flight.Application installed from TestFlight denoted with colored note in the starting of the application name

Uploading new TestFlight builds after AppStore approval

I'm going to submit my app to AppStore soon. But I'm wondering if my beta testers will still be able to use new TestFlight builds and the build from AppStore simultaneously after approval (my app supports push notifications). Is it possible without two different bundle ids?
Is the only solution to uninstall AppStore version and install new from TestFlight?
It is not possible for them to use both. When the new TestFlight build is installed it will upgrade the AppStore version that is already installed. The user will be able to re-download the AppStore version and over-write the TestFlight version. One thing to be careful of is that the old version can still read any files written by the new version. E.g. if you changed the file format in the new version then re-installing the old version may cause it to have issues if it can't read the new file format.
They will still be able to use the TestFlight builds. I believe they will have to uninstall the AppStore version.

Instrumenting ios application

I have instrumented an app from xcode and installed into iPhone,
Can I copy the iPad file and install it on another device for testing, rather than installing through xcode?
Try Crashlytics/Fabric, it has both crash report analytics tool and beta distribution tool integrated. It's a very easy way to invite beta testers to test your app.
You can also use TestFlight provided by Apple, for testing apps uploaded to iTunesConnect before releasing it.

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.

Resources