3 ms·
Not bad. I have built a superset for my own iOS apps: 0. Collect app environment (os/hw version, jailbreak, etc). 1. Collect runtime trace from the app.
by DenisM 14y ago
Not bad. I have built a superset for my own iOS apps:
0. Collect app environment (os/hw version, jailbreak, etc).
1. Collect runtime trace from the app.
Inside the app I can trace beginning and end of
a function, optionally with a timestamp,
as well as any atomic value (string, int, etc)
The data is censored to remove any personal or private
information, (as defined by the app itself).
2. Collect crashes (PLCrashReporter).
3. Record assertion failures (the app keeps running)
4. Submit the above to my AWS server.
5. Receive configuration from the server.
It's a set of variables, boolean ones can be used
for A/B testing or block new (buggy) functionality,
strings are used to change API endpoints etc,
ints are use to change timeouts or limits inside the app.
6. The server indexes log files and promotes important
pieces to the database, and brings them up to my attention:
- crashes
- asserts
- identity (UDID, IP address, cookies, accounts ids, etc)
useful for tech support
- uptime, start count
At one point I also had a facility to record some usage stats describing user data and behavior (e.g. number of records, time spent reading "about" pages, etc), but I had to rip it out during a redesign and I am yet to add it back again.