Deploy and run windows store app on remote device from command line - powershell

In Visual Studio you can go to properties->debugger, select remote debugging and enter the device's ip and port (with the remote debugging tools running on the remote device), hit deploy and press F5 (or ctrl+F5).
I would like to mimic that from a command line prompt or powershell. is there any way of doing that?
I saw lots of posts that suggest creating a package, signing it with a certificate, sideloading the app and running it on the remote device, but I would like to do that from the "master computer" without doing anything on the remote device. Has anyone found a way to do that? If not, how is automatic testing done on such apps?

Related

"Error DEP6957 Failed to connect to device using Universal Authentication" when deploying Unity app to Hololens emulator

I've been working in a Unity app with Hololens emulator in Visual Studio 2017 in Windows Pro, and it was working great until last night where I started to get the following issue every time that I try to deploy my application into the Hololens emulator:
Error DEP6957 : Failed to connect to device '[device_ip]' using Universal Authentication. Please verify the correct remote authentication mode is specified in the project debug settings.
I've tried to do the following things without success:
Clean/rebuild solution
Checked 'uninstall/install' checkbox in the UWP project settings
Deleted Hololens virtual machine
Uncheck/check Hyper-v feature (and restart PC after each try)
Restarted computer
No luck. Sometimes, I am able to make it work, but after 30 seconds to 1 minute, the hololens emulator gets frozen and then it closes itself; again, this was working fine until last night, and I have not installed anything different, unless an automatic windows update did something. This happens with all the applications, and they run just fine in the Unity player.
I would appreciate your help on this, I just don't think the only solution is to uninstall/install Visual studio and all its components, it makes no sense, since everything was ok.
Thank you.
UPDATE
I've just noticed that if I connect the laptop to the internet by using an ethernet cable, it works, it only fails in WIFI, have you seen that before? I also have another UWP that I deploy remotely to a raspberry and it also works only with ethernet, but both of them were used to work in wifi? any idea?

Error DEP6200: Bootstrapping failed. Device cannot be found. SmartDeviceException - Deployment failed because no device was detected

I have seen few posts here about same error but none worked for me.
I am trying to deploy UWP from VS2017 from one machine to a Surface machine that is USB connected to the machine running VS2017.
Both machines are running Windows 10 Pro, 17134 (1803) April Update.
Surface machine has enabled Developer Mode in "For Developers" settings and Developer Mode package is installed on it and Remote tooling for desktop is enabled. It is also USB connected to the machine running VS2017 Enterprise 15.7.5
According to MS documentation, that is all what is needed to deploy to device. However, deploy fails with error
Severity Code Description Project File Line Suppression State
Error DEP6200: Bootstrapping failed. Device cannot be found. SmartDeviceException - Deployment failed because no device was detected. Make sure a device is connected and powered on. [0x80131500] MyApp.App.UWP
I was unable to deploy either to device or to use remote debugging.
Deploying to device was failing with the same error message as above. Interestingly, even if device (Surface in this case) is not USB connected to my dev machine at all, I get same error which basically makes sense. But I dont know why I get that same error when I connect Surface tablet to my dev machine.
Deploying for remote debugging did not work since my Surface tablet is not connected to same LAN as my dev machine.
So, for my testing purposes, I deployed by using USB stick
Right click on UWP project, choose Store, then choose Create App
Packages ....
In Create App Packages window, select "I want to create packages for
sideloading"
Click Create
Leave Local Machine as target device for validation
click on Launch Windows App Certification Kit button to launch it
and go through steps until complete
Once package is completed, I copied entire folder onto a flash drive
and moved the content of the folder to my Surface tablet
Then on Surface tablet, right click on the Add-AppDevPackage.ps1
file and choose Run This PowerShell
this will start deployment and deploy the app

How to get emulator to stop demanding certificates

I've managed to get the emulator in the WTK to run stand-alone, as a QwertyDevice, and to install apps (with the built-in Install Applications app) from the Apache server on my laptop. However, it's refusing to actually run the apps because it can't find a Certificate (or the Certificate is corrupted).
How do I turn that off? My actual phone, which I'm developing my apps for, warns me but lets me install and use unsigned apps. And I think I can trust my own apps since I'm writing them.
I found mention of a security Xdomain setting in the WTK user guide, and tried the default, trusted, untrusted, and minimum. No effect except a message in the Command Prompt window saying that it's running in the selected domain. It still refuses to run my apps. (Selecting -Xdomain:help in an attempt to get a list of valid domains resulted in "Running in the help domain"!)
How do I get the emulator to OBEY ME and run the apps?

The debugger was unable to find the registration for the target application

I am testing my Windows 8 app by logging in as the guest account. I want to see how it works installing with limited permissions.
It seems I cannot debug any apps. Here are the steps:
Login as the Windows 8 Guest Account
Open Visual Studio.
Create a new Windows Store app, using the grid template
Click the play button to deploy to the simulator or the local machine.
Upon deployment, I receive this error:
Unable to debug Windows Store app App1/App1/bin/Debug/App1.exe
The debugger was unable to find the registration for the target application. If the problem persists, try uninstalling and then reinstalling the application.
Am I unable to deploy apps without being an administrator? If not, is there a way around this problem?
It doesn't make sense to try to debug installing an app as a guest. Guest accounts are not allowed to install apps. There is a short forum post regarding accounts here.
If you are wanting to see how the app performs for a guest after it has already been installed, you can run the app from the desktop tile, but I don't know how to run the debugger on it, or even if you can.

How to connect android emulator to the internet

How can I connect my Android emulator to the internet, e.g. to use the browser? I've found lots of advice on what do to when your connected through a proxy, but that's not the case here, my machine (Windows 7) is directly connected to the router.
I think some of the answers may have addressed this, however obliquely, but here's what worked for me.
Assuming your problem is occurring when you're on a wireless network and you have a LAN card installed, the issue is that the emulator tries to obtain its DNS settings from that LAN card. Not a problem when you're connected via that LAN, but utterly useless if you're on a wireless connection. I noticed this when I was on my laptop.
So, how to fix? Simple: Disable your LAN card. Really. Just go to your Network connections, find your LAN card, right click it and choose disable. Now try your emulator. If you're like me, it suddenly ... works!
If you are on Mac - try this -
GoTo Apple Icon -> System Preferences -> Network
Click on the gear icon on the and select 'Set Service Order'
Bring the active interface before other interface.
Restart the Android Emulator.
[EDIT]
For more recent version of Android Studio, the emulator you need to use is no longer in the ~/Library/Android/sdk/tools folder but in ~/LibraryAndroid/sdk/emulator.
If while trying the below solution you get the following message "PANIC: Missing emulator engine program for 'x86' CPU.”, then please refer to https://stackoverflow.com/a/49511666 to update your bash environment.
Operating System : Mac OS X El Capitan
IDE : Android Studio 2.2
For some reasons, I wasn't able to access internet through my AVD at work (probably proxy or network configuration issues).
What did the trick for me was to launch in command line my AVD and giving manually the Google public DNS 8.8.8.8.
In your Terminal go to the folder tools of your Android sdk to find the 'emulator' program:
cd ~/Library/Android/sdk/tools
Then retrieve the name of your AVDs :
emulator -list-avds
It will return you something like this:
Android_Wear_Round_API_23
Nexus_10_API_22
Nexus_5X_API_22
Nexus_5X_API_24
Nexus_9_API_24
Then launch the AVD you would like with the following instructions:
emulator -avd NameOfYourDevice -dns-server 8.8.8.8
Your AVD is launched and you should be able to use internet.
My platform: Mac OS 10.6.4
Eclipse: 3.6
I had a similar problem where my map app background was grey (no tiles) and the browser was unable to connect to the internet.
Within Eclipse I went to Run Configurations -> Target and added "-dns-server X.X.X.X" and everything worked fine afterwards. (obviously X.X.X.X was the IP address for my DNS server).
In order to use internet via proxy on emulator try these steps it Worked for me:
Go to settings->Wireless & networks->mobile networks->Access Point Names.
Press menu button. an option menu will appear.
from the option menu select New APN.
Click on Name. provide name to apn say My APN.
Click on APN. Enter www.
Click on Proxy. enter your proxy server IP. you can get it from internet explorers internet options menu.
click on Port. enter port number in my case it was 8080. you can get it from internet explorers internet options menu.
Click on User-name. provide user-name in format domain\user-name. generally it is your systems login.
Click on password. provide your systems password.
press menu button again. an option menu will appear.
press save this and try to open your browser. I think it has helped u?
righ click on the Project in Eclipse
select Run As -> Run Configurations ...
select Android Application and then select "target" tab
Looking for "Additional Emulator Command Line Options" and put this command line to text box
-http-proxy http://< username >:< password >#< hostname >:< port >
There are different solutions to this problem . One of these , i will show you on my experiment and outcomes seen on results using a recent android studio and AVD images downloaded 2017.
First thing you have to do is launch your AVD from android studio.(in my case i choose NEXUSAPI25 android 7.1 image)
Goto Settings->Wirless and Networking - > Cellular Network - > Access Points -> (+) press add - > enter the following if you dont have NTLM proxy or proxy at all (that means you are directly connected)
a. add apn name as myAPN
b. add apn server => www
c. save and try browsing the internet.
if this doesn work add 'ANDROID_SDK_ROOT' in you environment variable
Then , launch AVD using emulator command as follow
emulator -avd Nexus25 -dns-server 8.8.8.8
For those who use NTLM proxies , i will show you how it work for me next.
add your Android_sdk_root path into your environment variable. THis make command line code read succesfully like using AVD names and so on.
Launch your emaulator using the following command
>emulator -avd Nexus_5X_API_25 -http-proxy http://username:password#ipaddress:port
ENTER
Have you tried starting the emulator with administrative privileges? It worked for me, I'm running Windows 7 64bit)
In my case I just had to launch the Android virtual device (AVD) from the "Android SDK and AVD Manager", and it was working
If you are behind a proxy in the SDK Manager, under Tools -> Options, do NOT configure the proxy settings.
When you run from the command line add -http-proxy:
emulator.exe -avd YOUR_AVD_NAME_HERE -http-proxy PROXY:PORT
Worked for me.
I also experienced the same problem.
The simplest solution I found out is:
Go to your Android\Sdk\emulator folder and open command prompt.
Type emulator -list-avds to see available emulator names.
Type emulator -avd name-of-your-device -netdelay none -netspeed full
-dns-server 8.8.8.8 command and press enter.
I encounter this issue when I first run the simulator, I solved it by setting the dns server with
Library/Android/sdk/platform-tools/adb shell getprop net.dns1
get the current dns server of simulator 10.0.2.3
Then set it to my lan dns server
Library/Android/sdk/platform-tools/adb shell setprop net.dns1 192.168.1.1
I had similar problem. I have installed an application that required INTERNET permission (and used it), and all of sudden, worked.
Guys, check also whether if you are not connected through a VPN somewhere, because it also can disturb the Internet connection.
blacharnia
In eclipse go to DDMS
under DDMS select Emulator Control ,which contains Telephony Status
in telephony status contain data -->select Home , this will enable your internet connection ,if you want disable internet connection for Emulator then --->select None
(Note: This will enable internet connections only if you PC/laptop on which you are running your eclipse have active internet connections.)
After reading this I decided to look at my "NICs". I put this in quotes because like many I am running virtual nics for devices like Hamachi and Virtual Box. After I disabled Hamachi I am able to use the internet. My guess is that the emulator picks the first available nic regardless of whether it is virtual. Now to find out if I can rearrange my nic order without tearing my box down.
Windows 7 32bit
My Service Order preferences were correct (Wi-Fi was first) but still could not connect.
Answer was to turn off the Thunderbolt Bridge:
System Preferences > Network > Thunderbolt Bridge
Then set Configure IPv4 to off and Apply your changes.
No need to screw around with Access Points in the emulator.
I solved it my disabling all network connections except the wifi connection I was using, then setting the properties on that one remaining enabled connection to have statically assigned DNS addresses. (no DHCP) This was on Win7 64bit
Thanks for the pointers. They really helped. The "Firewall" word clicked an idea in my mind.
I have a Windows XP machine with WIFI connection and no proxy. I have Norton Internet Security running on my machine which has a Smart Firewall. This Smart Firewall manages programs' access to network, including emulator.exe. I went into Settings -> Program Control and then granted full access to emulator.exe. After this I started Android Emulator and bang... I could connect to internet.
Hope this helps new folks.
~Saggy
Within the Android emulator, turning Airplane Mode on, then off again worked for me.
If you're on MacOS with 2.2 and you keep seeing an error about data connectivity, try the above, it works.
I removed all the network interfaces via Sys Prefs except LAN
Even thought my DNS is provided by DHCP, I retyped DNS with just one server
I used -http-proxy on the command line to specify one
It starts working at the office. Phew.
I think sometimes it's just enogh to simply restart the virtual device. :-)
I had the same problem on my virtual windows 7.
Go to Network Connections
Alt > Advanced > Advanced Settings...
In the second tab bring the internet networks interface on the top
hope it's helpful
thanks to
I had this issue due to a network change after I opened the emulator. If you change your WiFi after you start the emulator, you only need to restart the emulator to get internet access
yes--in win 7 start the emulator with administrator privs and all will be well--or at least you'll get the wireless going in android.
I had a similar problem on Win7 64 bit. Tried disabling my hamachi and virtualbox adapters and didn't work. Tried starting avd as admin and didn't work. In the end I disabled the teredo tunneling adapter using the info on this site and it worked:
http://www.mydigitallife.info/2007/09/09/how-to-disable-tcpipv6-teredo-tunneling-in-vista/
I found that starting the emulator with 'wipe user data' checked cleared this problem up for me after I rebuilt my dev machine from Vista x64 to Win7 x64.
it appears there might be a few reasons why there might be no internet connection for an emulator, in my case i was working from home where i have a wireless connection then came into the office and plugged in direct, however although my wireless connection was disconnected it was not disabled resulting in no emulator connection. my understanding is that when it starts up it looks for a network adapter and if there is any conflict here it might result in no internet connection. to resolve go to Start > Settings > Network Connections right click on Wireless Network Connection (if you are not using wireless) and select disable
I am not using a proxy...however I am using a script...Is there anyway around this. I am behind a company firewall
I'm not sure if this is your issue, but here's how I fixed mine.
I always had this "No DNS servers found" error when starting the emulator and did a lot of research on google to no avail. Anyway, I found a post somewhere (can't find it anymore) that was saying that the number of NICs, number of DNS entries could affect the emulator. Also, knowing that the emulator uses a Windows API function (GetNetworkParams()) to resolve DNS entries, I couldn't rely on the %WINDOWS%\System32\Hosts file.
However, I did went in the NICs properties (on Windows 7) to find that I was specifying a static IP, but no DNS entries. So, I got the DNS entries from my router and plugged them in the NICs property. I restarted the emulator and it is now using the correct DNS entries!
I can use my internet connection with the emulator now, and it works wonders!
Hope it helps!
I thought I experienced issues with connecting my emulator to the internet but it turned out to be problems with the code I was using. I know its obvious but in the first instance try the browser on the emulator to confirm you have no internet access. I would have saved an hour if I had done that first.