Xamarin Live Player - Deploy was cancelled - xamarin

I have trying to debug my android app through Xamarin Live Player , it gets builds but give the error Deploy was cancelled.
Has anyone faced this and got this working .

Xamarin Live player Limitations
Some system classes cannot be overridden (for example, you cannot implement a subclass).
Some platform features that require provisioning can't work in the Xamarin Live Player app (however it has been configured for common operations like camera access).
Custom targets and build steps are ignored. For example, tools like Fody cannot be incorporated.
xamarin live player still not stable and there are issues that everyone complain. until it release high stable update best thing to deploy over usb connection
also see this -
https://developer.xamarin.com/guides/cross-platform/live/troubleshooting/
https://forums.xamarin.com/discussions/tagged/xamarin-live-player

Related

Struggling to find good Examples of iOS app clip & Android instant Apps

I've searched for examples of iOS app clip & Android instant Apps but could not find more than few examples.
I am looking for released apps in App Store/Google Play or open source examples.
good examples could make developing these new features easier and gives developers new creative ideas to use these wonderful tools.
Do you have an app that utilizes App clip or instant app?
How did this affect your app?
What is the challenges you have faced?
Note: I know this is not a typical question but it need to be asked in a community full of great developers who love to share knowledge with others, and I don't think there is a better place than here.
Intro
I know it's been 10 months since you posted the question but I just stumbled upon it now... I've developed an app called ARShades for both iOS and Android that allows the user to try glasses on via Augmented Reality and I'm still in charge of development. The app supports both Instant App and App Clip, although I'm facing troubles making the the app banner show for the App Clip.
Firebase issues
As far as I can tell developing App Clips is a tad harder than develeloping Instant Apps, I'll tell you why. The main apps for both systems make extensive use of Firebase Firestore and many other features. This isn't a problem on Android where sockets are supported across the board, while on iOS they are only supported in the main app, so I had to use REST API to read and write data on Firebase when developing the App Clip, it's been a nightmare since it was the first time for me dealing with REST APIs (I just finished yesterday and published the update).
App Size
Another issue I faced is related to reducing the app size. On Android I had to remove all the unused images and compress the remamining ones. On iOS I had to separate the asset catalogues between: used only by the main app, shared, and used only by app clip. And of course I went through some compression works there too. I forgot to mention that I developed a new app as Instant App on Android, while you cannot do the same on iOS since it must be in the same project.
App to site linking
Another insidious part was the linking of the site to the apps. I managed to do it on Android by making changes to the manifest and specifying the host, while I can't seem to find a way to link the App Clip to the site in ay way. I've done everything the documentation says. I've put the apple app site association file in the .well-known folder but nothing, no banner shows up. I'll keep working on that.
Edit: Everything is now solved.
Conclusions
So, to sum up, I've found Instant Apps better on the developing and hassle side of things, the support sockets, hence the full suite of frameworks the full apps have. I hope I kind of answered your question, although I think you have documented yorself elsewhere in these past 10 months XD
Links to Android: https://play.google.com/store/apps/details?id=it.spaarkly.arshades&hl=en_US&gl=US
Link to iOS: https://apps.apple.com/us/app/arshades-demo/id1586661818
Link for trying Instant App / App Clip

Is it ok to hide a "Developer mode" in my app?

I have an mobile app. While in debug, I need to test several different stuff, so I created a button that shows a list of these tests.
Even in Release, some things are different (Apple Push Notification). So I need to test in release too.
Is it ok to leave these shortcuts hidden when releasing the app?
Doing so would leave a massive security hole in your application, which should be avoided at all costs. In fact, if you're creating an iOS app, I doubt such a hole would get by Apple's independent release testing.
Ideally, you should be using separate coding environments for development, testing and production. When you're developing, you should be using one of the various simulators to test as you work. There's an in-built one in XCode that can simulate a variety of Apple devices, and if you're using something like Ionic, you can hook it to a live preview in a web browser.
Once you're happy that things are working on your computer, you then should be deploying a development .ipa / .apk file. This file should only be released 'in-house', manually. If that's all good, you move on to testing. For testing, create a secondary file, and this can be distributed for external testing through something like Apple TestFlight.
For production, you'd remove any 'backdoors', as in theory, your app would be ready for the public. At this stage it's a simple matter of releasing it through either the Google Play Store or Apple Store.

What is Xamarin Test Cloud for?

I am working on developing a Xamarin hybrid (html+js+css) application for Android using Visual Studio for iOS.
My client wants to upload builds (of the app) to the Xamarin Test Cloud. I am new to Xamarin, so I have no idea about Xamarin Test Cloud. I have done some research and found that we can write test cases in our application and send them to Xamarin Test Cloud.
So far I understand it, Xamarin Test Cloud is only for app testing purposes, not for sharing buildAs with multiple users or clients. Am I right or not?
Please let me know more about Xamarin Test Cloud, i.e what are the uses of it.
You are partly correct.
Xamarin Test Cloud is an automated testing solution. You are able to run UI-tests on every platform. This will allow you to see how the application performs on the many android devices and versions, as well as the different versions of iOS. Xamarin Test Cloud however is limited to UI testing (and crash reporting based on your testing scenario). Unit Tests and Integration tests (mostly technical tests) cannot be performed by Xamarin Test Cloud.
In order to distribute the app to test-users you should use HockeyApp. HockeyApp has recently be acquired by microsoft (source) and allows you to distribute your app to a closed group of people for feedback (usually used for User Acceptance Tests (UAT)). Note: HockeyApp will soon be integrated with Microsofts' Application Insights service where it offers more features (insights in performance of your app, time used, time looked at Activity X etc) - see how to set this up
So in short:
Xamarin Test Cloud - Automated UI Testing on hundreds of devices
HockeyApp - User Acceptance Tests with distribution
Xamarin Insights (or Microsoft Application Insights) - insight in the usage of your app on different levels.
Correct. TestCloud is used to run your app on thousands of devices at once to figure out how your app behaves and how it looks on many different device quickly and without having to actually buy thousands of devices. It is not for sharing your app with specific users. If you want to share your app with specific users, you can either use HockeyApp for iOS and Android or you can use TestFlight for iOS and the Google Play Store's Beta program for Android.
In short Xamarin.Test.Cloud is a cloud service for automated UI tests.Those UI tests can be written in Calabash and/or C# NUnit project in form of unit tests. Most of the developers use C# version form od the framework. This Xamarin product is called Xamarin.UITest which is created locally with Xamarin tools and uploaded to Xamarin.Test.Cloud.
More in depth...
Xamarin.UITest which most of developers use is basically NUnit C# project in Viusal Studio or Xamarin.Studio. It loads user's apk (Andriod) or ipa/app (iOS) file and prepares everything for testing.
Testing might include:
exploring UI (detecting content, widgets/views/controls names and content)
interacting with UI (tapping, scrolling)
recording interactions from 2. so they can be used in automated tests
https://developer.xamarin.com/guides/testcloud/uitest/
API is not complex, but needs some [short] time for learning. Maybe more for tricks like working with pickers (especially in Xamarin.Forms), backdoors, gestures etc. My daughter is 15 and she's doing talks on Xamarin.UITest, because it is that simple and nice for kids to learn coding and feel "productive".
Sample interaction:
app.Tap( c => c.Marked("Login") );
Another useful command is: tree - to see Visual Tree (DOM) of the Ui presented.
NOTE:
Xamarin.UITest is not limited to apps written in Xamarin!
It can be used with Android app written in Java, iOS app written in objective-c/swift!
Xamarin.UITest differs for hybrid apps, because the DOM is actually HTML DOM. Hence - try exploring DOM with tree command.
With Xamarin.UITest and nunit runner you can test locally on your devices and/or emulators/simulators. 15 minutes limit is removed if I can recall correctly.
Xamarin.Test.Recorder is useful tool for exploring and recording Xamarin.UITests. On Mac this should be standalone app and on Windows you'll need Visual Studio Enterprise (restriction).
https://developer.xamarin.com/guides/testcloud/testrecorder/
Xamarin.Inspector from package called Xamarin.Interactive is another standalone tool for analysing and inspecting UI of the app.
https://developer.xamarin.com/guides/cross-platform/inspector/
When UI test is written - the project output (dlls) are uploaded to the Xamarin.Test.Cloud. To get project output you'll need Xamarin.Studio or Visual Studio with Xamarin tools installed.
Before upload there are several steps user needs to do like: selecting devices (number depends on pricing), getting APIKey for particular tests. Uploading is done through commandline...
https://developer.xamarin.com/guides/testcloud/uitest/working-with/submitting-tests-to-xamarin-test-cloud/
Then user goes to XTC (Xamarin.Test.Cloud) portal and checks results (reports, screenshots etc).
This is how it looks like behind the scenes (this is what I like to show during my talks):
https://youtu.be/PQMBCoVIABI?t=3432
Handsome Danish guys (which cannot play handball) on stage and 2000+ devices on the shelves (it was 1900+ devices in 2015-09) in the datacenter...
For sharing - use HockeyApp
For monitoring - use Xamarin.Insights
NOTE: HockeyApp and Xamarin.Insight are being merged to single product for beta-testing and monitoring (TestFlight like).

Continuous Integration with React Native

I am new to iOS, Can someone please tell me how can I set up CI for react native? I currently use codeship but I don't think they offer anything for iOS. Any suggestion on any hosted CI tool which supports bitbucket? Thanks
I'm using buddybuild for my React Native apps. It's going awesome so far. I felt bitrise a little bit complicated and I got some problems during my builds, Buddybuild is totally transparent. It helps me not only with Continuous integration, but also with:
Checking for Xcode compatibilities: with each new version and beta of Xcode, buddybuild will take the most recent successful build of your app, run it against the newest version of Xcode and email you the results of any potential breaking changes.
First Class Test Support: Run tests UI and Unit tests on simulator, emulator and physical devices.
Static Code Analysis
Code Coverage: know exactly how much of your code base is being exercised during testing.
Instant Deployments: Organize your testers into groups to configure which builds they get, and how often they should receive new versions of your app.
Publish to the Play Store and App Store: Automatically deploy your app to the Play Store or App Store!
And also the Continuous Integration will build both the Android and iOS versions of your app. Simply onboard the app twice and select iOS then Android to have both versions built.
I have a React Native Starter App for both Android & iOS that uses Bitrise.io and they support BitBucket. The tests are run with Jest and have over 86% coverage. There's a video series detailing the CI process. Swapping out Github for Bitbucket is trivial, during the registration process you'll be prompted for a vendor (Github/Bitbucket). After that everything should be the same. Note: I am the developer.
You can use circleci which has good integration with other tools like Fastlane, Here how you set up another And greate Talk by talk by Joe Stanton # React Meetup London one more greate article by Ramesh Nair

How to publish Xamarin iOS mono application to iTunesConnect prerelease for beta testing?

Now when TestFlight is integrated with iTunesConnect, how can I publish my iOS application to the former TestFlight for beta testing?
When I try using the "Publish to TestFlight" option from Xamarin Studio, I'm getting an error:
Uploading to TestFlightApp.com...
Upload succeeded
Unhandled error while uploading
The "Publish To Test Flight" feature in Xamarin was nothing more than an encapsulation of manually uploading your *.ipa file to www.testflightapp.com. I personally though it was rather useless and it was zero effort just to manually do it myself. But that's irrelevant.
As you know, Apple has acquired Test Flight, and has now shut down www.testflightapp.com. Since that's what Xamarin depended on, that no longer works and you'll get errors. What you have to do now is use Test Flight though iTunes Connect. Unfortunately, it won't be as easy as it used to be, but is really not that much difficult. It does require some upfront work though. You can learn how to do that here:
TestFlight Through iTunes Connect

Resources