Collecting system data from iOS device during automated testing - ios

We are trying to build a mobile automated testing lab that has 20 or 30 devices and want to capture the utilizations on each device during testing. I'm looking to start with iOS devices. The type of data in Xcode Debug Instruments would be ideal. However, I need to be able to capture and export this data automatically for many devices.
I'm thinking the best way to get that data from so many iOS devices would be to build an app. The app would capture the iOS device's CPU, memory, and battery life, disk usage and running processes (basically, the same statistics as are generated in the Debug Instruments in Xcode), and then send the data to a database.
What frameworks or tools would be helpful for this?

It sounds like you might be best off using a solution such as New Relic's mobile monitoring system. They allow you to monitor performance across devices, memory usage and time profiling and HTTP requests remotely just by dropping their SDK into your apps.

Related

Mobile app (iOS) security dump memory dump (Frida)

We have an issue with releasing our mobile app as user data have been found with the iOS memory, which is odd as we have used secure data storage though out the mobile app. Before we send the mobile app for a re-test we would like to understand in-house to verify our changes have fixed the issue.
Data has been found in the following locations:
/Data/Library/Preferences/XXX.plist
/Data/Library/Cachces/XXX/Cache.db-wal
/Data/Library/Cachces/XXX
After a lot of research we are still unclear how we can download the iOS memory, we are not sure if it's a major test development tool investigate or we can do it with Frida? Our development platform is Xamarin and I would think it would be possible to view the memory using a debugger via the simulator?
Just looking for advise if this is something very simple using a simple commercial
software/mobile app etc Or highly complex with specialist development tool.

Why Doesn't IOS Core BLuetooth Respect Communication Rate

I am writing a Core Bluetooth App for IOS. It is connecting to a TI device With custom firmware. The firmware developer developed it to publish data 12 times a second. I am using the Notify Property to get the data, but it seems that we are grabbing the data 30 times per second. This is causing extra power consumption, and for specific reasons, I can't pull at my own rate I need to pull at the rate of the device is publishing.
The firmware developer created a Windows Application that doesn't have this problem without having a hard coded Read Rate. So it is On me to find the issue.
Does anyone have any recommendations?
For what you are describing, on your system the Swift side is just receiving notifications, so there is no control over the rate that your device is using to update that specific characteristic.
But, some devices may have a command on their own high level protocol to set the advertising interval. That's completely up to the manufacturer. If you think that the system is advertising at a different rate with that Windows app that you have mentioned, I would suggest to take a look to see if there is any initialization code that the app may be doing when it starts (thus setting the rate). But for that you will need the Windows app's source code, or at least the manufacturer's documentation about your device's protocol (if any).
Also, are you really sure that the updating rate when the device is connected to the Windows app is really lower than the one you are experimenting when connected your iOS app? How are you measuring that?

Mobile app logging stats tools - Swift

I am developing a mobile GPS tracking app and I would like to know if there are any classes available that output the mobile stats to a view? Memory, CPU etc. Similar to Hi-res-Stats in AS3.
I would like to see usage while the app is used however the only tool I know of is built in to xcode and it wouldn't really be feasible taking my mac with me.
Thanks

Possible to Run iOS Apps on PC

Is it possible to run iOS Apps DIRECTLY on Mac OS? What about Windows? Or do you always have to use a virtual machine? I searched around and all I found was people saying you need to use a virtual machine. Reason for this: I want to automate behavior on an app on my iphone, and I think that will be much faster on my PC.
The iOS SDK accesses the hardware of the iPhone/iPad. It's very specific hardware which is not available on any other device.
The CPU is different, the display, device buttons, sensors and phone specific stuff...
The simulator simulates all this hardware, still it needs a different compile and can not execute the iOS bundle as it does not simulate the Arm CPU architecture.
That said, it does not make much sense to do automated test on another platform than the target platform, as the app might have slightly different errors and behavior.

Check how much memory or CPU is being used per app, for all running apps

I'm trying to analyze how much memory, battery and cpu usage is taken by each app that is currently running on my iOS device. I don't mind if this can be done programmatically or otherwise. I have XCode up and running and I realize it can be used to check the CPU/memory of apps I install and run on my device.
Just to be clear, I do not want the total CPU/memory usage, but rather per app for all apps that are currently running.
Is this possible in iOS 8.1, in any way, without jailbreaking my device?
Edit: I just tried out Instruments in XCode and I realize to use it, you need to be testing an app. Is it possible to use Instruments to get this system info, without testing a new app? Can I get this info from the terminal for example? Thanks.

Resources