I am currently trying to write a simple workout app with swift in Xcode.
With the App I want to read and write data to and from the health app. So far I started with an easy first step: A dummy app for reading and writing step counts.
At first everything seems to work, my app asked for data access, it is listed as a source in the health app and I can read and write step counts.
So far so good.
But sometimes the steps that were added by my app get ignored after some time.
Let's say I had 8000 Steps today and added 2000 via my app, at first I would see 10000 steps in the health app and in all other apps that read the steps count. But then after some time the total steps count in the health app would drop back to 8000 (and all reading apps would read 8000 again). But then when I look into the health app and go into the "all data" section for the steps count, I could still find the 2000 steps from my app in the list. They just seem to be ignored when calculating the total steps per day.
Does apple only allow steps from "validated" sources or is there another reason why my steps are ignored after some time?
If your app's step samples overlap with samples from other sources (like the iPhone or Apple Watch) then HealthKit may be preferring the overlapping samples. By default, HealthKit prefers samples from Apple Watch and iPhone. You can control which sources of samples are preferred, though, by going to the Health Data tab, and navigating to Activity > Steps > Data Sources & Access and then tapping the Edit button in the top right. You may then re-order the Data Sources section of the table.
Related
Our Daily New User-count from Fabric is consistently bigger than the App Units per day that we get from iTunes Connect.
Fabric defines Daily New Users as
The number of new app installations across all devices seen on a given
day.
And iTunes connect defines App Units as
The number of first-time app downloads made on the App Store using iOS
8 or tvOS 9, or later. App updates, downloads from the same Apple ID
onto other devices, and redownloads to the same device are not
counted. Family Sharing downloads are included for free apps, but not
for paid apps.
What can cause this discrepancy? I can see many reasons for how Fabric could report a lower number (such as users downloading the app but never opening it, or waiting too long to open it), but not the other way around. Our average send-usage-to-developers opt-in rate is 23%, but that does not affect the App Units number if I am not mistaken.
Is your app available on both iPhone and iPad? If so, then the fact that, as you point out, Apple doesn't count downloads from the same Apple ID onto other devices might be causing this discrepancy? You can install iPhone apps on your iPad even if it's not officially supported, so the rule might still be affecting your app. Also, if your app is a paid app, then the Family sharing rules would also affect the numbers. I've actually wondered how iTunes counts new users, so thanks for that info!
I'm not sure why the numbers are consistently bigger for you on Fabric, because for my app they alternate a bit.
I hope you might have got the answer. If not follow the link below http://help.apple.com/itc/appanalytics/#/itc7bea1545f
It seems there are users who don't opt-in app analytics data.
Apple only shows data from users who have agreed to share their
diagnostics and usage information with app developers.
I'm developing a React-Native app that utilizes Apple Health-Kit to gather daily step data for users. I've got everything setup and running, but I'm not sure what people are doing to provide fake step data for testing/development purposes. For the other parts of my app, I'm always getting data from HTTP requests, for which I just provide a test api and serve up dummy data from a file in my repo. But does anyone know how to do this for step data (or any other sort of data) in Apple Health-Kit?
Thanks
I figured out a way to handle this. Newer versions of the Xcode iPhone simulator come with Apple Health Kit installed. So, you can just manually go into the app in the simulator and add some step data the old fashioned way. Not a scalable solution if you need loads of data, but good enough for my needs.
You can manually add step data via the Health app already included on your iPhone simulator.
I'm using google AdMobs in my iOS game. The problem is that I removed the test ads from the code one day before uploading the build to itunesConnect. Now the AdMobs account is suspended for violating the terms of service. I have also pulled the build from itunesConnect. My question is what build to submit exactly. One with the real ads or one with the test ads. Google also said that further violations during the 30 day suspension period will result in a permanent ban and I really want to avoid this. So what is the common practice here?
As per my knowledge i used Admob in my iOS application since long time. Probably you need to take care about following steps.
Be careful you used test ad during your app is in development mode.
When you going to live this application you should remove test.device line code and also check two time you are replace individual Ad id with test id.
Never click on advertisement either development mode and after live application at your end.
Do not used Admob for any sexual contain app that consider as a violations so you strick take care about this step.
Note As par Ad Mob doc
My app has been approved, and its now on the App Store it runs correctly and in the simulator the adBanners work as they are supposed to, but the problem is that in my published app there are no ads so i first tough that it must be because of the number of downloads but as i kept looking on the internet i found that it could be because of the contract in iTunes connect, but I've filled all the contracts.
My question is : "Do I need a minimum of downloads for the ads to appear or my implementation of the iAd workbench in my app is incorrect?"
After my app was approved, it took 3 weeks to show the banner correctly. During these weeks, I sent 2 emails to Apple Developer Program to check the status. They said If you could see the test banners on your device, it's not your problem. Just be patient.
Also, the amount of ads you got somewhat depends on the number of downloads. According to most developers, the more your app is downloaded, the higher the fill rate. But even if your download is 0, you should get at least some of the ads. If you don't get any ads, it's not the main reason.
Hope this solves your problem!
No it just takes times for ads to show up in the app, could take up to a week but usually only takes a few days.
See this post for reference: How long do iAd apps take to start generating impressions?
There is a lot of interest in digital "fingerprinting" for mobile devices. Given some recent moves from Apple: http://techcrunch.com/2014/02/07/openidfa-a-solution-to-idfa-related-app-store-rejections-debuts/ there is some increased interest.
One can do this by combining features that make the device somewhat unique. This fingerprint does not need to be totally unique or 100% stable, just unique and stable enough to match a click to an app launch within a small period (say 1 week).
Here is a closed source version:
https://github.com/ylechelle/OpenIDFA
And an open source one (from me):
https://github.com/mcorner/ActuallyOpenIDFA/
There are a number of features used here:
https://github.com/mcorner/ActuallyOpenIDFA/blob/master/aoi/aoi.m
Some obvious features are not usable without user permission (location, contacts) and therefore can't be used with advertising. Others are not usable across apps (like the vendorID), thus aren't usable from connecting a click in one app to a launch of another. Others are not particularly stable (like IP).
What other features of iOS might be useable?
There are several different approaches on how to generate a unique fingerprint of an ios device. The UUID+Keychain approach mentioned by davbryn is one of them, but not the strongest.
You may have a look at the app belonging to my research project at the University of Erlangen-Nuremberg in Germany, which's aim is to identify an ios device uniquely:
https://itunes.apple.com/us/app/unique/id835879646?mt=8
In our research project we follow the approach called "device fingerprinting". The app explains in detail, what it does in order to identify your device.
After i have finished my master thesis, there will be a paper about this topic.
Best I've managed is to create a UUID and store it in keychain. Works well enough to track a user, but you can't track after an OS reinstall etc