1
votes

I'm at loss with Xamarin and cross-platform development. We've been developing an app for Android and iOS and we've been testing Android no problem but we have issues trying to test anything for iOS. We've created VM of MacOS Catalina (I know I know - legal things with running Mac OSX on non-apple machine), installed Xcode and Visual Studio for Mac but we still cannot run any kind of simulations or compile any sort of apk file to test on a physical phone. We are not developing this to be published on Apple Store, the client wants an app in a closed environment and only needs some apk file.

So, my very frustrated question is how can we test and compile iOS app? Is it possible to do so without trying to publish to Apple Store? Is it enough to get the provisioning license and certificates for out client and to archive the app? (that is the last hurrah that we hope for)

Thank you very much.

2
Android uses .apk packages. Apple uses .ipa or something like that. - JRE

2 Answers

0
votes

To run on a device you need a provisioning certificate linked to the app ID you're developing. This does not mean you HAVE to publish the app to the app store, you can publish Ad Hoc builds and use the app in closed environments, but is limited to 100 devices. Additionally, you can enroll as a developer to the enterprise program and not use the app store at all, but release to an enterprise with no device limits.

Ad Hoc Distribution Authorizes a Limited Set of Devices to Run Your App

iOS developers enrolled in the Standard Program can also distribute an app outside of the App Store on up to 100 different devices for testing purposes only. To use ad hoc distribution, create an archive of your app, or have a teammate send you an iOS App Store Package (.ipa) of the archived app.

You distribute your app by providing the .ipa file for users to install on their devices. Because you select a valid ad hoc provisioning profile to archive the app, users don’t need to install the profile on their device, only the .ipa file. Users can use iTunes to install the app on their devices. If users want to use Xcode to install the app on their device, share the archive as an .xcarchive file package.

In-House Distribution Allows Companies to Distribute Apps Internally

iOS developers enrolled in the Enterprise Program can distribute in-house without identifying individual devices or using the App Store. To distribute your app in-house, create an archive of your app, or have a teammate send you an archived app. Distribute your internal app using your company’s authorized software distribution mechanism. Because the app file can be installed on any iOS device, make sure you protect the distribution of this file. Members of your company can use iTunes, iPhone Configuration Utility, or Xcode to install the app on their devices.

0
votes

iOS development basically does not support running the app on real device without certificate and provisioning profile.

What I do suggest in this cases publish the app on Test Flight. Test Flight is used for Beta apps but since you are inviting the testers you are able to choose who is going to see the app and who won't. That way you are able to add up to 10000 users in closed environment.

If you have less than (up to) 100 you can use Ad Hoc distribution but still have the certificates and the provisioning profiles. But have to remember the the app will only last up to 90 days, and than have to redeploy it again.


Also I am not 100% sure on this but I have noticed that Android apps especially developed in Xamarin - provided by apk (not Playstore) stop working after a while.

So it is good to rely on the ecosystems and if you want to run only on for restricted environment, than use some of the Testing environments from each