I'm facing some problems with uploading an iOS application to the Apple store. For the very first time, I uploaded and submitted my iOS application and it was rejected by the Apple team. They mentioned that they want authentication for my application, so I put authentication and uploaded my binary again. It was rejected a second time. This time they mentioned that I need to put authentication in my application. That's when I realized that my application is not getting updated.
The first time I made changes, I used the Organizer in Xcode to upload my binary (navigate to Organizer -> Archives. Then validate first and distribute).
The second time I made changes, I used the Organizer to upload my updated binary again.
However in all cases my binary is not being updated. How cam I fix this problem, it is a real headache for me.
Thanks.
You need to supply that authentication data within the iTunesConnect review information. There are specific fields named
Demo Account Information
and
Review Notes
Fill in that account information within that first field.
Try to check the archive date in Organizer before you submit binary to App Store. When ever you make any changes to app Archive it again to reflect changes on your binary. Otherwise your binary won't reflect changes you made on code.
Apps that are “beta”, “demo”, “trial”, or “test” versions will be rejected. If you use any word related to these in the content , name etc. will be rejected.
Secondly Pay special attention when you are using any social networking site information in your app. e.g suppose if you got many permissions from Facebook but you are not using that information in your app your app will reject. So be precise while using permissions from social networking sites.
Apple once rejected my app because i violated the iCloud deal of unpacking 2MB data from app bundle into the file system. So for downloading data more than 2MB should not create any backup. For this you can use non-user data, cache storage or mark it with “Do Not Backup”.
Hope that helps!!
Related
I wanted to remove AdMob from my iOS app, so I remove all traces of AdMob, and make sure that info.plist does not have NSUserTrackingUsageDescription, no external framework used, and no traces of NSUserTrackingUsageDescription in my codes (global search in Xcode not found).
However, previous version has setup App Privacy in AppStore Connect.
Uploading a new build I can remove all entries in App Privacy except for one (?): Data Types - 1 data type collected from this app: Product Interaction
And I cannot remove this one: when selecting not collecting info, I got this error message:
Your app contains NSUserTrackingUsageDescription, indicating that you will request permission to track users. You must indicate which data types are tracking users. If this is incorrect, update your app binary and upload a new build to App Store Connect.
What shall I do? And what is this Product Interaction tracking? (The rest can all be reset to not tracking except this one.)
Workaround:
For anyone still experiencing this issue, I just wanted to share that I was able to overcome this by submitting an appeal to the App Review Board after my binary was rejected.
I received a response to my appeal two days later. They did not acknowledge the problem—rather, they simply stated that they would proceed with the review and that my binary would be approved shortly, while reminding me to update my App Privacy information prior to my next submission. A day later, my app update was approved and Ready for Sale.
I also submitted a bug report, in hopes that this will be properly fixed for others someday soon.
Feedback Assistant (bug reporting)
Background:
The issue appears to be that the App Privacy page in App Store Connect is looking at the binary of your current release (the one live on the app store) to determine if you use NSUserTrackingUsageDescription. It's a Catch 22 where you can't remove "Advertising Data" from your App Privacy page until your new binary is accepted, but they won't accept a new binary until you remove "Advertising Data" from your App Privacy page.
There are two popular threads on the Apple Developer Forums with many users experiencing this same problem:
Can not update your app privacy information about tracking user
https://developer.apple.com/forums/thread/678920
Cannot remove App Privacy after removing AdMob and tracking
https://developer.apple.com/forums/thread/679585?login=true
I am trying to upload an app to the App Store and every time I upload a binary Apple insists that my app is using ads when I have never implemented such a thing. I reviewed the docs and removed all code involving ASIdentifier and adIdentifier I'm not quite sure what I'm missing.
What can I do to resolve this issue?
Expo docs for Deploying to App Stores: https://docs.expo.io/distribution/app-stores/
Apple will ask you whether your app uses the IDFA: the answer is "yes." This is because Expo contains the Facebook and Branch SDKs, which contain code for collecting the IDFA, and you'll need to check a couple boxes on the Apple submission form. See Branch's Guide for which specific boxes to fill in.
I have an app uploaded on Testflight which has been expired from my developer account. I want to upload the same app to Test flight from another company developer account. Will it create a conflict?
There is no transfer option in Testflight mode.
If you haven't already read the documentation, you can find it here:
https://developer.apple.com/library/content/documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide/Chapters/TransferringAndDeletingApps.html
Key points to highlight in your case would be:
Make sure your accounts aren’t in a pending or changing state.
The App must have had at least one version that has been released to
the App Store
The last point is the most troublesome but it happens -_-
When going to transfer my iOS app to another developer, I got this message
You can't transfer this app because of the following reasons:
iCloud enabled
You can only transfer apps that aren’t iCloud enabled.
Deleting and Transferring Apps Documentation
The documentation states:
Make sure the app uses only technology and content that can be transferred.
No version of the app can use an iCloud entitlement.
Since a version of my app used iCloud, is there literally no way I can transfer it? If there is a way, how should I proceed?
The app must be deleted and re-created with a new SKU/Bundle ID.
Remove the app from sale by going to Pricing > Select Territories > Deselect All
Delete the app under More (to the right of Prerelease, Pricing etc) > Delete App
Create the app under the developer account as a new app with the same name with a new SKU/Bundle ID.
This will delete any reviews/ratings, gamecenter data, iCloud data, and any other data linked to that app. You'll have to recreate any in app purchases you had.
WARNING: Never use iCloud Entitlements in an app. It's not worth it because it makes your app untransferable and therefore unsaleable forever!
I had enabled iCloud entitlements in some previous build to play around with NSUbiquitousKeyValueStore, and now I can never transfer that app... This is so so so very bad. I have an Android version of the app, ran into no issues with Google Play.
Same here. I was just using NSUbiquitousKeyValueStore to allow the user to share some settings across devices. Now all my users who paid for the app will not receive any more updates, my 4.5 star ratings will be gone, etc. I am super frustrated and this will cost me a lot of money.
I have written an article about his on medium.com, so feel free to share it in your professional networks if you feel this could help fellow developers to not run into this trap.
For June 2022+: Apple has updated the rules in 2022. Now you can transfer your app the regular way even if it uses iCloud. They write about limitations in their documentation now in "Apps Using iCloud" paragraph.
I have an App in the App Store which uses an In-App-Purchase item to unlock the full feature set. During all versions so far updates have never been a problem. The customers could download the new version from the App Store and the "full version item" which they did purchase before was still active: They could still use the full version after the update.
Today I have released a new version of the app and several customers are reporting problems with the full version: After the update the app only works as limited trial version. The app seems to have "forgotten" the information about the IAP.
I use MKStoreKit to handle the purchase and the information about the IAP is stored within the KeyChain. The users can restore the full version using the "restore previous purchase function" within the app which calls the corresponding StoreKit function.
How can it be that the information in the key chain is lost?
I do not know if all customers are affected by this problem or just some of them. All that I can tell is, that quite many reported the problem.
I have no idea what the problem might be.
This is the first version using iCloud and therefore it is the first time, that a entitlements file is included in the App. Could this be the source of the problem?
The "Keychain Access Groups" property in the entitlements file is set to "xy.mycompany.MyApp" which is the same as the bundle identifier.
I thought that without the entitlements the app used "xy.mycompany.MyApp" within the key chain to store the IAP information and that the information in the entitlements file is just to let different app share the same information in the key chain. Thus I am not sure if this might have to anything with the IAP problem.
What do you think? Any ideas or suggestions?