custom iOS app availability in public app store - ios

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.

Related

Distributing iOS app as a B2B custom app and also making it available in the general app store

I have a requirement from a client who would like to distribute my app available in the App Store via. Apple Business Program to their employees. Of course, there will be some client-specific customizations added to the app but those will not take effect in a non-MDM environment. So it should be safe enough to distribute the app in the general app store. However, I would like to understand the possibilities of distributing an app (without having to maintain 2 different code base] through general App Store AND as a custom B2B app.
I have been going through some documentation from Apple about signing the paid app agreement.
Paid App Agreement Info
Custom Apps
It says:
Once this contract is requested, you can’t undo this action or revert to the Developer Program License Agreement for free apps
Does this mean that once I sign the agreement, I can't update my free app in the general store?
Other Questions:
Can there be free apps and custom apps submitted under the same iTunes Connect account?
Is code signing requirement different for a custom B2B app than app store app. Ex: different kind of distribution certificate?
If code-signing requirement is not different, can the same binary (same bundle id/version number) be uploaded under different iTunes Connect account – one as a free app and the other as a custom app?
The section you have quoted refers to the legal agreement you have signed. Once you have signed the Paid App agreement, you can't "unsign" it and revert to the Free App agreement.
It does not refer to the types of apps you can distribute. You can distribute both free and paid apps under the Paid App agreement.
In answer to your other questions:
Yes
No, custom apps are signed for App Store distribution, are still uploaded to App Store Connect and are still reviewed by Apple
No. In App Store Connect you will have two apps (one custom, one free) so they will have different Bundle IDs at least, even if all other code is identical. You will need to upload different builds.
If your custom app is absolutely identical to the one you are proposing to offer as a custom app, then you may not even need a custom app; the company can use Apple Business Manager and their MDM to obtain your free app and push it to their users. You do, however, need to consider what would happen if some other organisation distributed your app via an MDM; would your customisation "activate" and would that cause a problem?

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.

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.

Preserve iOS App name

We have an iOS (iPhone and iPad) B2B application that is already working with a specific name. We want to use the same name in another iOS app or convert B2B application into public one.
We have been searching in the internet and we have seen 2 alternatives, but we have some doubts with both:
1-Delete B2B Application.
If we delete this App, will we be able to use the App name for other App in other developer account?
Will the current users' installations of this App be deleted from their mobiles automatically once we delete the App from B2B?
2-Convert B2B to public.
By making some changes and uploading an update to iTunes Connect, can we release the App as normal to the public, moving from B2B?.
Firstly, if you delete the app, you will indeed be able to use the app name again. Secondly, the current users installations won't delete. They will have to manually delete the apps from their devices, as you cannot delete them remotely.
I am not 100% sure about converting an app from B2B to public, but I believe that if you upload it normally to iTunes Connect and the select the stores you'd like to sell it in, as well as the pricing and the submit it for review this will without a problem release it for sale in select stores.
Hope that helps,
Julian

Is it possible to upload an iOS app with a wildcard app id to the iTunes connect?

I have an app which acts as an "admin app" for one of my apps that is already in the App Store. I want this admin app to be distributed to someone I know. Sending updates of the admin app would be much easier if I could use the TestFlight program. Is it possible to upload the app to the App Store with a wildcard app ID? Or do I have to create a explicit App ID for this app as well (which will not be submitted to review and only used via TestFlight)?
No, not possible, every app needs a unique bundle identifier and the related certificates and profiles.
See the AppStore guidelines for more info
No you must have a full unique app ID. Also, you could issue that app as a B2B (Business-2-Business) app in order to still use the app store and have control over who can download it. Your user will have to register as a business buyer in order to download it. But this would keep you from having to constantly reissue it every time the provisioning profile expires.

Resources