I am getting Missing Purpose String but i have added that in info.plist The Missing Purpose String is "NSNearbyInteractionAllowOnceUsageDescription" - swift

The Error I am getting on email from Apple App Store while I am publishing my app to Apple App Store Testflight from my mac , although I am unable to see my build on testflight forum.And the email from Apple App Store is as under.
Dear Developer,
We identified one or more issues with a recent delivery for your app, "IDTAG Nearby Interaction" 1.0 (1.0). Please correct the following issues, then upload again.
ITMS-90683: Missing Purpose String in Info.plist - Your app's code references one or more APIs that access sensitive user data. The app's Info.plist file should contain a NSNearbyInteractionAllowOnceUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. Starting Spring 2019, all apps submitted to the App Store that access user data are required to include a purpose string. If you're using external libraries or SDKs, they may reference APIs that require a purpose string. While your app might not use these APIs, a purpose string is still required. You can contact the developer of the library or SDK and request they release a version of their code that doesn't contain the APIs. Learn more (https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy).
I have already the below strings into my Info.plist
<key>Privacy - Nearby Interaction Allow Once Usage Description</key>
<string>Nearby Interaction app uses our u1 chip for better experience to show other peers location.</string>
<key>Privacy - Nearby Interaction Usage Description</key>
<string>Nearby Interaction app uses our u1 chip for better experience to show other peers location.</string>
According to Apple Documentation
( Nearby Interaction Allow Once Usage Description ) will be deprecated in iOS 15. That's why I have already added ( Privacy - Nearby Interaction Usage Description ) in my project but still I am having the above mentioned issue in my project by Apple store.

Related

ionic 5 push notifications One signal ITMS-90683: Missing Purpose String in Info.plist

He tried to follow the docs, but I don´t know that I have done.
Your app's code references one or more APIs that access sensitive user data. The app's Info.plist file should contain an NSLocationAlwaysUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. Starting Spring 2019, all apps submitted to the App Store that access user data are required to include a purpose string. If you're using external libraries or SDKs, they may reference APIs that require a purpose string. While your app might not use these APIs, a purpose string is still required. You can contact the developer of the library or SDK and request they release a version of their code that doesn't contain the APIs.
Learn more.
According to the Apple Developer Guidelines, the generated Info.plist file should contain a proper message for the user that tells why your app needs the data.
In your config.xml file, add the following lines outside of tag
<edit-config file="*-Info.plist" mode="merge" target="NSLocationAlwaysUsageDescription">
<string>Need location access to find things nearby</string>
</edit-config>

How do I make my app "approvable" for the app store after rejection?

I have an app on the App Store called System of A Down app.
Yesterday, while having submitted the new version, ( which fixed a critical bug ) I submitted for a Expedited App Review. I got a message my app was "In Review" in iTC.
One day later, ( Yes, the review took one day ) it got "Metadata Rejected"
I mentioned "System of A Down" which apparently is a copyrighted brand according to Apple.
I can't mention System of a down in my app, by the /whole/ app is dedicated to them.
8.5
We found your app includes features or content, in the title, keywords, and/or imagery, that bear a resemblance to the well-known, third-party mark, System of A Down. In order to proceed with the review of your app, we require documentation evidencing you are authorized by System of A Down to use features from System of A Down. Additionally, it would be appropriate to adjust the title of your application so that the trademarked title is used as a descriptor, but not as part of the product name. For example, the following styles are acceptable formats for names: GreatApp - "for System of A Down" GreatApp - "System of A Down edition" GreatApp - "System of A Down version" Please remember that pursuant to your agreement with Apple, you represent and warrant that your application does not infringe the rights of another party, and that you are responsible for any liability to Apple because of a claim that your application infringes another party's rights. Moreover, we may reject or remove your application for any reason, in our sole discretion. Accordingly, please provide documentary evidence that you have the rights to use this content to ensure compliance with the iOS Developer Program License Agreement. Once Legal has reviewed your documentation and confirms its validity, we will proceed with your app review. While your iTunes Connect Application State is displayed as Rejected, it is not necessary to upload a new binary if you only need to address issues in your metadata. However, if you need to address compliance issues in your app - and not just its metadata - and you are able to make the necessary changes, we encourage you to do so and resubmit your binary for review.If your iTunes Connect Application State is Metadata Rejected, we do NOT require a new binary. In iTunes Connect > Manage Your Applications, select your app and click View Details. - Click Edit in the Metadata section - Revise the desired metadata values - Click "Save" at the bottom of the screen - Once you click Save, you will see the "Submit New Metadata" button in the top right. Click "Submit New Metadata" If your iTunes Connect Application State is Rejected, a new binary will be required. Make the desired metadata changes when you upload the new binary. NOTE: Please be sure to make any metadata changes to all App Localizations by clicking the Edit button next to each localization.<<
The first version however, DID get accepted. Now the question is, should I reject the Binary, and re-upload it in the hopes someone else reviews it and approves it?
I can't not mention system of a down in a system of a down app...
Or what is the best way to get this update approved?
Here's the Metadata :
Do you want all the info on System of A Down?
Their Demo tapes, Released albums, unreleased albums, videos, biography, tour dates and way more are all in this app!
Features of this app :
All 5 Demo Tapes
All info on Toxicity II ( Unreleased Album )
All info on Storaged Melodies ( Collection of unreleased songs and demo's )
All Videos ( Play directly )
Lyrics on all the videos
Play the Demo Tapes directly ( iPad only )
All 5 Studio Albums
All info on Advance ( Collection of unreleased songs )
Tour Dates
Biography
Way more amazing features planned for updates.
Amazing interface and great info - 4/5 - AppReviews Netherlands
Simply Amazing - 5/5 - My Mom
-This is a modern app, which uses gestures on iPhone and iPad instead of the old tap-bar. Swipe through the interface while you're listening to their Demo tapes in the background. ( This is has been been developed in iOS 6 Required for iPhone.
DISCLAIMER : I, Sam Guichelaar do not own, control, or endorse any of the information, Names, Groups, bands, or services linked or referenced to a Third Party in my app. No Copyrighted Images were used unless properly edited. No Copyrighted names were used, without permission. What's New in this Version - Added a option to re-view the tutorial.
-Bug Fix : Fixed an issue on the iPhone version where the user had to kill the app and relaunch before the content became visible. Thanks to Jarl and #gameshack_ for reporting this bug.
-Memory leaks fixed<<
Well, as the Apple guys put it, you can't use a third-party mark in your application without consent from the owners, It's like trying to make a game with Nintendo's Mario in it without Nintendo's consent.
The fact that it got approved before beats me

Phone Gap iPhone App itunes connect error “invalid binary”

I have created a phoneGap app for iphone and successfully deployed it device.
Now i am trying to upload the app to app store using xcode 4.5
Successfully validated.
Successfully Distributed.
itunes connect app status-- app received
after 3sec app status-- invalid binary
I am using phone gap 1.2.0, xcode 4.5, target ios version 6.0, Distribution provisional profile.
I have received email followup from apple
Non-public API usage:
Apps are not permitted to access the UDID and must not use the uniqueIdentifier method of UIDevice. Please update your apps and servers to associate users with the Vendor or Advertising identifiers introduced in iOS 6.
If method names in your source code match the private Apple APIs listed above, altering your method names will help prevent this app from being flagged in future submissions. In addition, note that one or more of the above APIs may be located in a static library that was included with your app. If so, they must be removed.
If you think this message was sent in error and that you have only used Apple-published APIs in accordance with the guidelines, send the app's nine-digit Apple ID, along with detailed information about why you believe the above APIs were incorrectly flagged, toappreview#apple.com. For further information, visit the Technical Support Information page.
Somebody please help.
Apple Changed their policy on using the UDID. Which was included by default in earlier version of Phonegap API on IOS. If you upgrade to the newer versions you will find the code no longer uses the UDID and will pass App store.
Looks like from version 1.8 onwards is the change.
Latest version of phonegap is 2.7 so it would be good to update anyways,

How to lock down user to Single App mode in iOS 6, Programmatically?

There are some question which are related to this,. but getting the exact answer:
Lock-down iPhone/iPod/iPad so it can only run one app
Recently iOS 6 is introduced with some business oriented features, two of theme are:
Guide Access
Supervised Access
These both deals with Accessibility Control features, Like allow user to restrict access to there device, only if they have full access to the device. In that way this is only useful to people, who owned the device like, a school use there device for exam, a restaurant for menus, for product display etc. All of them have access to the device to configure settings etc.
Now my question begins here, I am thinking of an App, which look down user to single app mode when user run the app and after signing out of the app the device start working as before in normal mode.
Through the time when app is active, user should not able to access any other function or button, this applies on all three device iPad, iPhone, iPod.
Also I found that this could be done by installing some Profiles etc, which looks wired and we can't ask user to do so.
So the simple idea is user will only install the App, as normally he does and we could lock him down to single app mode when he log into the app.
The SureLock iOS app does nothing but inform the user how to do it in your system preferences.
Doing it from the app itself is only possible, if you break the rules about private frameworks. And break it hard.
I am sorry to tell you that the way you present your idea, would never be approved for the AppStore.
The accepted answer to this question is no longer correct:
Starting with iOS 7, UIKit exposes the function UIAccessibilityRequestGuidedAccessSession as public API.
I don’t know, but can very well imagine that this function existed as private API dating back to iOS 6, where the guided access feature was introduced.
Note that for this method to have any effect, the device in question must be supervised using MDM, and the ID of the app you want to use this API must be included in the device management profile deployed to it.
Hi may be I am late but I have a good news for you.
Apple provide a new feature in IOS 7 and we can lock the user to single mode without user permission(Lock and unlock mode) here is the apple documentation link
https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIKitFunctionReference/#//apple_ref/c/func/UIAccessibilityRequestGuidedAccessSession
the other way is to install the profile config profile like is
http://ipadhire.co.nz/lockdown.mobileconfig
it lock the home button of IPhone and enable single mode
For this you have to do following..
access apple's private api's
access apple's private framework
Apple don't encourage accessing there private api's specially when it comes for App Store, if you accessed the private api's at the time of application review on App Store they will reject the app giving you a message of "accessing a private api".

iPhone app rejected upon section 3.3.3 (but what does it mean?)

I made an iPhone application that displays a couple of pictures from the internet
where you can comment on (iPhone sms bubble style )
My app was rejected because of:
We cannot post this version of your iPhone application to the App Store
because it violates section 3.3.3 of
the iPhone SDK Agreement;
"Without Apple's prior written
approval, an Application may not
provide, unlock or enable additional
features or functionality through
distribution mechanisms other than the
iTunes Store."
If you would like to provide an
invitation-only pre-release version of
your application to a group of
friends, then we encourage you to use
the Ad Hoc application distribution
method. Please go to the Distribution
Tab in the iPhone Developer Portal for
complete information on Ad Hoc
distribution.
But what does it mean? I surfed a little on the internet and found out that this covers applications that have similarity to applications by Apple?
Does anyone have experience with that? And know how to solve this issue?
I got official response from apple
The website component of the
application is currently not available
to the general public. If you would
like to provide an invitation-only
pre-release version of your
application to a group of friends,
then we encourage you to use the Ad
Hoc application distribution method.
Please go to the Distribution Tab in
the iPhone Developer Portal for
complete information on Ad Hoc
distribution.
Section 3.3.3
Without Apple’s prior written
approval, an Application may not
provide, unlock or enable additional
features or functionality through
distribution mechanisms other than the
App Store.
That means, for example, that you are not allowed to enable your application to download music or podcast files. Apple wants the owner of iPhones to use iTunes for that purpose.
You seem to violate that section since you're providing content from your site, even if you're downloading only pictures.
See this blog entry about the PodCaster app:
Podcaster quite obviously serves to
unlock a feature using a distribution
mechanism outside the iTunes Store.
This limitation would also include
apps that are designed to install
other apps independent of iTunes (such
as the Cydia jailbreak app - it’s not
in the Apps Store either), or any
other app that distributes song, TV,
or movie downloads or podcasts.
See also this answer here on Stack Overflow: Reasons for rejecting iPhone application by Apple store
Or they believe you used the open SDK to reuse the bubble control from the SMS app.
Can you post a screenshot?