Use a remote iOS device for testing - ios

I want to run my UITests on iOS devices which are connected to a remote host. To put it differently:
I have a Mac mini (MM1) in my parent's house (for example), which is connected to the internet.
I have 3 devices at home, all connected to another Mac mini (MM2).
I would like to run some UITests on MM1 (I assume this will have to be done using xcodebuild in terminal, on my 3 devices in MM2.
I have come across idb (https://fbidb.io) and WebDriverAgent (which is the predecessor to idb).
I assume (and could be wrong) that IF I can expose the remote device as a local device (similar to using commands such as xcrun xctrace list devices), this could work.
There's a company doing this (BrowserStack), but they're quite expensive, and I'd like to be able to 1) control and own my own devices (privacy and data) 2) Learn how this is done :)
Any help in this would be greatly welcome. Thanks in advance.

Related

Connect iOS Device to Mac and Log App Errors

Goal:
Connect iOS device (physical device) to macbook
Use Appium / IntelliJ / or any other software to capture app errors from the device
I run automation tests using simulated devices, however, it's proving to not be as affective as manual testing for I'm getting different results. What I want is to simply connect my device to my macbook, run something to log app errors as I interact with my test device.
My current set up to run automated tests:
Appium
IntelliJ - Using simulated devices (No longer wanting to do)
To view what's going on in the device, you'll need to use Xcode. The easiest way to obtain that is to use the Mac App Store application.
If you're able to build your app there is a lot more debugging you can do, but I'm assuming you're not able to do that based on what you've written and won't provide instruction on that.
Attach device
Launch Xcode
Click Window menu
Click Devices and Simulators
Unlock device
Click Open Console if you're looking to see live activity of the system (this is very noisy and unlikely to be of much use) or View Device Logs to see any crash reports.

Any way to reboot an iOS Device that is connected to a USB port via terminal (Mac terminal) and enter the appleid through command line?

Ok, SO here is my thing.
I am working on test automation on iOS devices. And here is what I need to do
Detect ios devices connected to through USB hub(achieved)
Reboot the device using its unique udid (achieved)
Upon rebooting, the device will prompt to enter apple id. Now, I want to know is there any way I can enter the apple id to device prompt through my command line.?
I have been on this since 2 days, and without any luck.
Can anybody here, help me out with a probable solution.
Any help is appreciated.
You can do it installing Apple configurator AND issuing comands like cfgutil.
If you simply type in terminal:
cfgutil
You can see.. (among others...)
restart
Reboot attached devices. (supervised only)

Connect Iphone using Wireless not working

I recently updated to IOS 11 and Xcode 9. Am trying to explore the option of connecting my phone over wifi with xcode for development. My mac and IPhone are both connected to same wifi (corporate network). I have selected the option for connecting my iphone over a network but as mentioned in the WWDC talk, https://developer.apple.com/videos/play/wwdc2017/404, there is not globe icon showing next to my device and consequently if i disconnect my iphone from usb it gives me lost connection error.
Few of device details:
Mac OS : 10.12.6 (16G29)
IPhone : 6S running IOS (1115A372)
XCode : Version 9.0 (9A235)
Am i missing some step or is there a gap in implementation here ?
Posted same question on Apple Developer forum at https://forums.developer.apple.com/message/261911
You have to connect your iPhone via USB for the first time once to Xcode wait till Xcode finishes processing. Now you can click on your device name at the top
it will open the a list of simulators and your currently connected devices
Select the add additional simulators
Make sure that you have selected the Devices tab not Simulator also if you have multiple devices connected to your Xcode at the same time make sure to select the device you want to be connected view network in the left pan first.
Also you have to make sure that both your Computer and iPhone are both connected to the same network.
Now check the check mark for the Connect via Network
Close the current window and remove the USB cable click on build it should build your project through network.
Note: Building through network very slow.
update:
Please see the glob icon your looking for in the image below
So i guess i figured this out. This feature works from my home wifi but not if both of my devices are on my corporate network. Also, as khalid mentioned the installing of app when connected via wifi, is painfully slow compared to USB option. Maybe could use usb to transfer the application and then move to wifi to debug.

Test iOS devices up against each other

I am planning to do some calabash testing using more than one IOS device. I want to run the tests on a mac mini, however I am not certain if it is possible to run and test more than one device using only a single mac mini. The reason I am asking this is that I have to test two or more devices up against each other. Do anyone know?

iOS – Run/Debug/Install builds over Wi-Fi

We have iPad and iPhone devices, but short of wires. Is there any way that we can install/debug the builds over Wi-Fi in iOS?
I know the way in Android, but not of iOS.
Now by using Xcode 9 and iOS 11 it is possible to run apps by using Wi-Fi.
Connect the iPhone via USB, go into the device window (Cmd-Shift-2), select your phone, and check the connect via network box.
More thorough instructions with screenshots here
Pre-Xcode 9 answer:
Over Wi-Fi installing and debugging of applications is not possible in iOS.
But there are some websites where you can upload your builds and then download on device and test it.
(Before you read make sure your running IOS 11 and Xcode 9!) Connect your device (Via USB), once you do go on 'Add Additional Simulators' (See image 2 at the bottom), and tick 'connect via network' (See Image One). Once XCode proccesses this, disconnect the device (via USB) and it should now appear with a globe next to it (See image 2)! Also make sure the device and computer are on the same network!
Image 1
Image 2
Simple Solution: http://diawi.com
Upto Xcode 8 & iOS 10 : Through wifi its not possible.
You just upload your ".ipa" file to this website http://diawi.com & get sort link for that. After that install build by requesting that link in iphone browser.
From Xcode 9+ & iOS 11+ : Its possible install debug build through wifi.
Open your project on Xcode
Connect your ios device with USB cable.
In xcode menu open Window -> Devices and Simulators or press (Cmd-Shift-2). You should see your device as connected devices.
Select your device and enable check box “Connect via network”.
Now you can see a network icon next to your phone name. This icon confirms that you can able to run build in wifi.
Now run your build through wifi to install build in your ios devices.
Using Xcode 9 you can debug over wifi(same network).
Make sure you have at least Xcode 9 or later and a device with iOS 11 or later
1- Open your project on Xcode
2- Plugged in your iPhone with USB cable.
3- Open Window > Devices and Simulators
You should see your device as connected devices
4- Select Devices from the top, Select your device from left and Check the “Connect via network” box
5- Now if Xcode can connect to your device via network, you should see a network icon after your phone name
6- Unplug your USB cord
7- Go back to Xcode and Hit the Run button
For deployment/CI I have tried and highly recommend BuddyBuild solution, here is some of the many features it has:
Excellent user help (chat/email) system and online service.
Supports webhooks so that a build is started whenever you push to your App repository. (All Git source control repos supported)
You can arrange system to auto send your builds to a preset list of testers/users whenever builds are ready.
You can [Auto] integrate their SDK to allow user feedback and crash reports.
It auto checks your app for compatibility with latest Xcode versions.
To activate a Wireless Debugging for iOS device to Run|Debug|Install your builds over Wi-Fi, you need to take six steps:
Connect a device via USB cable to the Mac with macOS 10.12.4+ and Xcode 9+ installed.
Launch Xcode.
Press Shift-Command-2 or go to Window-Devices and Simulators menu.
In the Devices tab select the devices from the Connected section.
Select the Connect via network checkbox (and wait for a few minutes when it's finished).
Disconnect USB cable.
This Network icon in the left panel means – Wireless Debugging is OK.
On iPhone go to General–Device Management–Application to trust and press TRUST.
Now you can Run | Debug | Install your builds over Wi-Fi.
To do this, connect your iOS device to your Mac using the appropriate USB cable, and select the Window tab in the menu bar, open the Devices and Simulators window by selecting Devices and Simulators from the Window dropdown or Cmd + Shift + 2.
Ensure that your device is selected in the list farthest to the left in the Devices and Simulators window. Check the Connect via network box.
If your device is on the same network as your Mac, you’ll see a globe appear next to your device’s name within a few moments. This indicates that your device is wirelessly connected.
You can now disconnect the USB cable connecting your device to your Mac, and build and run your app wirelessly.
Please check out this tutorial,
http://honzadvorsky.com/articles/2015-10-21-17-40-xcode_server_tutorials_4_certificates__provisioning_profiles/
here you can find a way for "App Installation over Wi-Fi"
I have not get a chance to implement it yet, but may be will try it out asap. meanwhile if someone is free then can try and post their view here so others can get help. Thanks
Requirements: iOS 11 and XCode 9, iOS device and computer on same wifi network.
Connect your device with USB Cable, launch Xcode, then on Xcode menu, choose: Window->Devices and Simulators. Choose device and check "Connect via network". Now you can disconnect USB and develop on device using wifi.
ScreenShot
" http://diawi.com "
this provides you build link of your project.
Whereas with wifi its not at all possible.
Wireless debug requires Xcode 9 or later and iOS 11 or later. Check this link. Here are detail steps to connect device for wireless debugging.
Connect the iOS device via USB. Go into the device window (Cmd-Shift-2), Select your device and check [x] connect via network. Remove USB cable and IMPORTANT: Connect your device via Personal Hotspot.
Agree with Amr I have found buddybuild as Jenkins+Hockey in one. Extremely useful and so far it seems good product.
With buddybuild you dont need to ask anyones UDID of their iOS device. Also I use it for test automation, where they give you freedom to spin whatever you want as long as you know how to set it up in their postbuild and prebuild scripts
To add to the above answers, for me the Mac and the iPhone should be connected to the SAME wifi network. Otherwise it will not recognise each other.
Over Wifi app installation is possible after we generate an IPA .
Create a plist file with bundle identifier
(See apple documentation for steps )
Create a HTML file
(give the source of IPA (link tag) and bundle identifier / Provisioning profile)

Resources