IDFA in iOS App, instead of UDID - ios

I'm currently using IDFA instead of UUID in my iOS App for identifying devices uniquely. But doesn't have any advertisement in the App. Would App store accept the App, if so which of the option below is to be chosen ?

You need to use identifierForVendor for this.
Refer this link
Its straight forward & easy to use. Let me know if you need anymore clarification.

If you are using IDFA and don't serve advertisements then your app could be rejected.
When submitting your app for review, you’ll be asked whether your app uses the Advertising Identifier (IDFA) to serve advertisements. If you indicate that your app uses the IDFA, but it does not have ad functionality or does not display ads properly, your app may be rejected. Make sure to test your app on an iOS device to verify that ads work correctly. Similarly, if you indicate that your app does not use the IDFA, but it does, your app will be put into the “Invalid Binary” status.
Check this: https://developer.apple.com/news/?id=08282014a

Related

custom iOS app availability in public app store

I've an iOS app.
But I've several issues with my "Ready for Sale" app.
My app is distributed as custom app.
But users are unable to install the app with a "redemption code".
I tried to explain to them but very few have got it.
Others were getting discouraged with my custom app implementation. They're asking why it's not available in app store.
So I need to make available my app in app store. So that all user can download the app from the app store like any other app.
How can I make my custom app available in app store for download.
Distributing an app in the AppStore, is fairly simple but there are some conditions:
You have to be a a registered Apple Developer, which means you have to pay the USD 100 fee, you can join here
Your app must follow App Store guidelines: read them here
Since any apple user can download your app, you must find a way to allow only your users to use the app it, it could be a user/password or any way your find appropriate
Once an app has been marked for distribution as a custom app it cannot be made available as a general App Store app.
You can take your existing source code and change the bundle id, effectively making it a new app. You can then set up a new app record in App Store Connect for this new bundle id and submit it for review by Apple.
You should be aware that if the app targets a specific or limited audience then it may not be approved for the App Store.

Apple rejection for using HealthKit [duplicate]

I am using HealthKit in my app to read users daily steps data and for that I enable HealthKit in my app.
I uploaded app without NSHealthShareUsageDescription and NSHealthUpdateUsageDescription key in info.plist.
Apple rejected the app as follow and says this both key must be in info.plist.
NSHealthUpdateUsageDescription - Read your daily steps data for calorie count data
NSHealthShareUsageDescription - Share workout data with apps.
I added that key and upload again.
now app rejected with this reason.
Design - 4.2.1 Your app uses the HealthKit or CareKit APIs but does not indicate integration with the Health app in your Application.
any idea how can I approve it?
From the App Store Review Guidelines
4.2.1 Apps should use APIs and frameworks for their intended purposes and indicate that integration in their app description. For example, the HomeKit framework should provide home automation services; and HealthKit should be used for health and fitness purposes and integrate with the Health app.
It sounds to me that Apple have looked at your app and for some reason, it looks to them as if you're not actually using the step data for anything useful to the user. Does your app actually use the step data and present it back to the user in any meaningful way?
The only other thing I think they might mean is that they don't like the wording you chose for NSHealthShareUsageDescription/NSHealthUpdateUsageDescription (you're supposed to clearly state the purpose why your app needs access to health data).
Edit: Another thought, perhaps your app description doesn't mention that it's an app that uses healthkit/step data.
I recently had the same issue and found the solution.
I was able to pass the review with clearly stating “this app integrates with the Health app” in the app description of App Store Connect.
That was a weird case cuz the rejection caused the meta data and seems like I didn't have to revise my app any more although the review status was "Binary Rejected".
just update your app description on the AppStore to indicate your app integrates with apple health app (HealthKit) and why it used (purpose). for example add to your app description something like : we integrate with the health app (HealthKit) to read and track your steps data and show them in a beautiful way.
Got rejected thrice because of this before being accepted. Here is what I was doing wrong:
I only had HealthKit Capability for my Debug Profile. Make sure that you have HealthKit Capability enabled for your Release Profile as well or just add it for "All"
I usually have different Xcode signing profiles for development, testing and production. Make sure that you choose the correct signing profile when submitting your app for review. Verify the capabilities added to each profile from Apple Developer > Certificates, Identifiers, Profiles > Profiles > Capabilities
Moreover, I added app screenshots showing how health data was used to the app store screenshot section - since they mention in the review that you need to have indicators in the User Interface as well to indicate HealthKit integration. I also updated the app description to say that my app integrates with the Apple Health App.

Is it possible that an iOS app with improper IDFA information passes App Store review?

I released an iOS app to App Store with Facebook SDK integrated.
During the submission, Itunes Connect asked me about IDFA:
Does this app use the Advertising Identifier (IDFA)?
and I checked "No".
It passed App Store review successfully. There was no problem.
And after the submission, I found several links saying that, in my case, "Yes" should have been chosen for the question:
Does the Facebook SDK use IDFA for Mobile App Installs?
IOS application that uses Facebook SDK, which options should be selected on iTunes Connect IDFA?
https://www.facebook.com/help/audiencenetwork/414857395387956
My app don't serve advertisements but logs app installs and some events.
For instance, it contains codes like:
FBSDKAppEvents.activateApp()
FBSDKAppEvents.logEvent("Some events")
Now it seems quite obvious that my app uses IDFA and it was a mistake that I chose "No".
But the only thing confusing me is that my app passed review without any rejection.
Is it possible that an iOS app with improper IDFA information passes App Store review?
In my opinion, if Apple verifies IDFA information by human, I think it might be possible and my first submission was just lucky.
But if it is verified by the machine, then my answer ("No") was right and I am going to choose "No" again.
Is there anybody with similar experiences?
Finally, I tried and got the answer.
I submitted the new version of my app with checking "Yes" to the IDFA question and it passed the review.
There was no changes related with FBSDK. That is, from the point of view of IDFA, those binaries can be considered to be same.
So the conclusion is:
An iOS app with improper IDFA information can pass the App Store review (possibly Apple's mistake?)
The fact that your app has passed the review without rejection doesn't guarantee you provided the right IDFA information. Don't believe history and always choose the right answer for that time

iOS app reject because of healthkit

I am using HealthKit in my app to read users daily steps data and for that I enable HealthKit in my app.
I uploaded app without NSHealthShareUsageDescription and NSHealthUpdateUsageDescription key in info.plist.
Apple rejected the app as follow and says this both key must be in info.plist.
NSHealthUpdateUsageDescription - Read your daily steps data for calorie count data
NSHealthShareUsageDescription - Share workout data with apps.
I added that key and upload again.
now app rejected with this reason.
Design - 4.2.1 Your app uses the HealthKit or CareKit APIs but does not indicate integration with the Health app in your Application.
any idea how can I approve it?
From the App Store Review Guidelines
4.2.1 Apps should use APIs and frameworks for their intended purposes and indicate that integration in their app description. For example, the HomeKit framework should provide home automation services; and HealthKit should be used for health and fitness purposes and integrate with the Health app.
It sounds to me that Apple have looked at your app and for some reason, it looks to them as if you're not actually using the step data for anything useful to the user. Does your app actually use the step data and present it back to the user in any meaningful way?
The only other thing I think they might mean is that they don't like the wording you chose for NSHealthShareUsageDescription/NSHealthUpdateUsageDescription (you're supposed to clearly state the purpose why your app needs access to health data).
Edit: Another thought, perhaps your app description doesn't mention that it's an app that uses healthkit/step data.
I recently had the same issue and found the solution.
I was able to pass the review with clearly stating “this app integrates with the Health app” in the app description of App Store Connect.
That was a weird case cuz the rejection caused the meta data and seems like I didn't have to revise my app any more although the review status was "Binary Rejected".
just update your app description on the AppStore to indicate your app integrates with apple health app (HealthKit) and why it used (purpose). for example add to your app description something like : we integrate with the health app (HealthKit) to read and track your steps data and show them in a beautiful way.
Got rejected thrice because of this before being accepted. Here is what I was doing wrong:
I only had HealthKit Capability for my Debug Profile. Make sure that you have HealthKit Capability enabled for your Release Profile as well or just add it for "All"
I usually have different Xcode signing profiles for development, testing and production. Make sure that you choose the correct signing profile when submitting your app for review. Verify the capabilities added to each profile from Apple Developer > Certificates, Identifiers, Profiles > Profiles > Capabilities
Moreover, I added app screenshots showing how health data was used to the app store screenshot section - since they mention in the review that you need to have indicators in the User Interface as well to indicate HealthKit integration. I also updated the app description to say that my app integrates with the Apple Health App.

How do I submit apps to the Apple AppStore when they they use Facebook's IDFA

My iOS app uses Facebook's API which apparently uses an IDFA, that iTunes Connect didn't use to check for. I am told:
Your app is using the Advertising Identifier (IDFA).
Which (options) should I check:
I do not serve any advertisements from my app.
This is my recommended process:
Introduce a banner, that you can later disable.
Leave it enabled till review of your app has been completed.
This way, you only have to check the case "my app shows ads". Showing ads is extremely common. And IDFA is an ID for advertisers.
Other solutions may work as well, but this one has been tested and I think it's the best way to keep a low profile, since review is performed by humans and we don't know what to expect from the review process (i.e. it's a black box process).
Hope this helps

Resources