new complaints from the IOS app store

55 views
Skip to first unread message

Dave Dyer

unread,
Feb 22, 2018, 4:58:55 PM2/22/18
to CodenameOne Discussions

We have discovered one or more issues with your recent delivery f

Missing Info.plist key - This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSPhotoLibraryUsageDescription key with a string value explaining to the user how the app uses this data.

Missing Info.plist key - This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSMicrophoneUsageDescription key with a string value explaining to the user how the app uses this data.

Though you are not required to fix the following issues, we wanted to make you aware of them:

Missing App Store Icon - iOS Apps must include a 1024x1024px App Store Icon in PNG format. Without providing the icon in the Asset Catalog or via iTunes Connect, apps cannot be submitted for App Review or Beta App Review. Refer to https://developer.apple.com/ios/human-interface-guidelines/icons-and-images/app-icon/ for more information.

Once the required corrections have been made, you can then redeliver the corrected binary.

Shai Almog

unread,
Feb 22, 2018, 11:33:04 PM2/22/18
to CodenameOne Discussions
See the bottom portion of this post explaining the usage description requirement from Apple: https://www.codenameone.com/blog/xcode-9-mode.html

Notice xcode 9.2 will be on by default today https://www.codenameone.com/blog/xcode-9-on-by-default.html

Dave Dyer

unread,
Feb 23, 2018, 12:22:14 AM2/23/18
to CodenameOne Discussions
its not clear excactly where i have to insert these new strings

Shai Almog

unread,
Feb 23, 2018, 11:55:57 PM2/23/18
to CodenameOne Discussions
They are build hints that are automatically added by the current version of the simulator. You can edit the resulting string within

Dave Dyer

unread,
Feb 24, 2018, 3:30:24 AM2/24/18
to CodenameOne Discussions
We don't seem to be communicating.  Since the app store is rejecting your build, whatever ought to have been automatically added, apparent wasn't.   And edited where?

Shai Almog

unread,
Feb 24, 2018, 10:45:32 PM2/24/18
to CodenameOne Discussions
The simulator adds the build hints and the server just uses them. If you run the latest version of Codename One and try to use these API's the simulator "should" add entries to your properties file with static descriptions. These all go into the build hints section in Codename One Settings.

Dave Dyer

unread,
Feb 25, 2018, 3:23:11 PM2/25/18
to CodenameOne Discussions

Do you mean that there should be an ios.NSMicrophoneUsageDescription build hint added by the
simulator?  There is not.   But there clearly is some API usage that is statically triggering apple's
watchdog.   What might that be?  And presumably for the simulator to do it's job, I would have
to actually execute it.  I don't do anything with the microphone, so it's a mystery to me.

Another problem with this approach is that I rarely run the simulator any more - I develop in
in the desktop branch and just do builds in the codename1 branch, and I NEVER run the
simulator on the production build.

Anyway, you should at least document what the simulator "ought to" have put in my codename1-settings.properties
file, so I can add it manually.

Shai Almog

unread,
Feb 25, 2018, 10:52:35 PM2/25/18
to CodenameOne Discussions
We documented the build hints in the manual. Notice we ALWAYS document the GUI configuration and NEVER document the properties file. This would bread confusion.
It would be more like codename1.arg.ios.NSMicrophoneUsageDescription

We wrote the entries in the blog post too, if it was phrased unclearly feel free to make a suggestion to improve that. You can also comment beneath the article to clarify.

We have a strong assumption about the way people are supposed to use Codename One including the assumption of using the simulator so for typical users this should be almost seamless. I don't see how we could have addressed this better.

Dave Dyer

unread,
Feb 26, 2018, 1:22:06 PM2/26/18
to CodenameOne Discussions
I've run the simulator and I do not see a
 codename1.arg.ios.NSMicrophoneUsageDescription
build hint.

What is the trigger API that should cause it to be added?

Steve Hannah

unread,
Feb 26, 2018, 2:09:12 PM2/26/18
to codenameone...@googlegroups.com
We may need to take extra measures here to "remove" some native methods if they aren't needed if Apple is checking statically for APIs that use, for example, Microphone - even if no codepaths actually run those APIs.

You may be able to workaround this issue for now by just adding a dummy ios.NSMicrophoneUsageDescription build hint.  E.g.

ios.NSMicrophoneUsageDescription=This app does not use Microphone.  This description was added to pass the app store static check

Or something cheeky like that.

Steve

--
You received this message because you are subscribed to the Google Groups "CodenameOne Discussions" group.
To unsubscribe from this group and stop receiving emails from it, send an email to codenameone-discussions+unsub...@googlegroups.com.
Visit this group at https://groups.google.com/group/codenameone-discussions.
To view this discussion on the web visit https://groups.google.com/d/msgid/codenameone-discussions/f760a2af-f64e-4c63-b143-503997f7566f%40googlegroups.com.

For more options, visit https://groups.google.com/d/optout.



--
Steve Hannah
Software Developer
Codename One

Dave Dyer

unread,
Feb 26, 2018, 5:37:46 PM2/26/18
to CodenameOne Discussions
I've succeeded in getting past the app store using the ios.plistInject build hint, but I'd still like to
work out where the requirement is coming from and why your automatic mechanism isn't supplying
the hint.

--

Shai Almog

unread,
Feb 26, 2018, 11:19:27 PM2/26/18
to CodenameOne Discussions
The requirement is from Apple.
The automatic system is 100% client side. I'm guessing you changed something about the way your project is running so our simulator is either out of date or can't make changes to codenameone_settings.properties.

Dave Dyer

unread,
Feb 27, 2018, 2:23:19 AM2/27/18
to CodenameOne Discussions
I see updates every Friday, and no complaints about inability to make updates to the Plist

Can you point out where in the simulator this supposed to be happening?

Steve Hannah

unread,
Feb 27, 2018, 8:11:03 AM2/27/18
to codenameone...@googlegroups.com
The simulator "automatically" adding these usage descriptions is a convenience thing - BUT you should be explicitly either adding the build hints yourself or modifying the ones that the simulator adds.  You would need to do this for a native app too if you were just developing in Xcode.  There are a number of things that Apple now requires you to provide usage descriptions for so that when your app tries to do them, the user sees this usage description in a dialog asking them if they want to allow it.  The microphone is one of those things.

This page has a list of them:

(Do a find on that page for "UsageDescription" see the keys that relate to usage descriptions).  If you need to specify any of these, you just add them in build hints.

e.g.
ios.NSMicrophoneUsageDescription=I need the mic for blah blah blah

Steve



On Mon, Feb 26, 2018 at 11:23 PM, Dave Dyer <ddyer-...@real-me.net> wrote:
I see updates every Friday, and no complaints about inability to make updates to the Plist

Can you point out where in the simulator this supposed to be happening?
--
You received this message because you are subscribed to the Google Groups "CodenameOne Discussions" group.
To unsubscribe from this group and stop receiving emails from it, send an email to codenameone-discussions+unsub...@googlegroups.com.
Visit this group at https://groups.google.com/group/codenameone-discussions.

For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages