Binary Rejected - entitlements

Got this message from the apple review of my OS X desktop app.

Anyone can translate this into what i need to do in regards to the corona setup?

Cheers,

Tommy

2.31

This app uses one or more entitlements which do not have matching functionality within the app. Apps should have only the minimum set of entitlements necessary for the app to function properly. Please remove all entitlements that are not needed by your app and submit an updated binary for review, including the following:

com.apple.security.personal-information.location

See App Sandboxing for links to essential video and documentation to learn how to sandbox your application.

Should you need code-level assistance implementing sandboxing, contact Apple Developer Technical Support.

We ask for the “location” entitlement because we can’t know if you’re actually going to use the user’s location but the facility exists in CoronaSDK to do so.  I will remove that default and figure out another way to allow people to specify the entitlements they actually need.

Hi Tommy, we got a rejection for exact the same reason today. I expect you also did the sandboxing with the new Corona functionality in the daily builds? I don’t know where these entitlements can be set. Perhaps there is an external list somewhere. Cheers, Tobias

We had the same rejection notice too. What is the solution?

The solution is to give Engineering time to solve the problem. It just got reported early this morning. Corona for OS-X is still a BETA product.  The reason it’s in beta is to find problems like this. Hopefully we can find a solution and will get it out in a daily build.

Rob

OS X - fix issue with unintended entitlements getting set for the app when built for OS X - no casenum

http://developer.coronalabs.com/release/2015/2701/

There’s a guide here: https://docs.coronalabs.com/daily/guide/distribution/osxBuild/#entitlements

So, give 2701 a try and let us know how it goes. :slight_smile:

Thanks for the very prompt reaction, i have resubmitted with 2701.

I will let you know how it goes

I`m going to resubmit now as well.

Just to confirm - all we need to do is to rebuild&resubmit?

I dont use location/gps.

That is correct.  We now provide the means to specify things like the entitlement for location rather than doing so automatically.

I just wanted to follow up, and say that this time it went smoothly through the review process.

The app is now live on the Mac appstore, all is good :slight_smile:

Cheers,

Tommy

What’s the name of your app?  Even better, what’s the App Store URL?

My app was rejected again even though I put in the following into the build.settings:

osx = {

        entitlements = {

            [“com.apple.security.personal-information.location”] = true,

        },

    },

I am not sure if other entitlements need to be listed and what they are or if I should have made the “location” entitlement false. Also when creating the App ID I am not sure what I should include because I am not sure what the Corona SDK supports. I had originally picked “Game Center” and “Push Notifications” so I could use them in the future but I don’t know if that is creating problems or not.

This is what I received from Apple this time but the first one I received only had info about “com.apple.security.personal-information.location”:

  • 2.31 - Apps that are not sandboxed appropriately may be rejected

2.31

This app uses one or more entitlements which do not have matching functionality within the app. Apps should have only the minimum set of entitlements necessary for the app to function properly. Please remove all entitlements that are not needed by your app and submit an updated binary for review, including the following:

‘com.apple.security.personal-information.location’

See App Sandboxing for links to essential video and documentation to learn how to sandbox your application.

Commonly added entitlements that many apps don’t need include:

“com.apple.security.network.server”
Apps that initiate outgoing connections (for example, to download new content from your server) only need to include “com.apple.security.network.client”. The server entitlement is only necessary for apps that listen for and respond to incoming network connections (such as web or FTP servers).

“com.apple.security.device.usb”
Apps that interact with non-standard USB devices, including HID accessories such as joysticks, may need to include this entitlement. It is not necessary for accessing keyboards, mice, trackpads, printers or external drives such as thumb drives.

Are you using Location services? I didn’t think that was enabled for OS-X yet.  Did you intend to set that to false saying you are not using them?
 

Rob

Are you using location services in your application?  If not, then remove the entitlements section from your build.settings

The recent fix was to stop Corona from always asking for the location entitlement and the change you made to your app just made it do it again.

If you are using location services in your OS X app then you may need to respond to the review explaining to the reviewer how they are used and what steps to perform in the app to make them apparent.

@Rob

I am not using Location services but I kept it set to “true” because that is what the example code was on the “https://docs.coronalabs.com/daily/guide/distribution/osxBuild/#entitlements” page and I did not understand that it was not enabled on OS-X yet. I would suggest that you put a little blurb by that code that says it is not enabled on OS X yet or set it to “false” in the example code.

What is your reco for what to enable when creating an App ID? Is there any issues if “Game Center” and “Push Notifications” are enabled for when these become available in the future and if these are enabled does that affect entitlements?

Perry corrected me, location services do work. If you’re app isn’t using them, leave it out. If it is using them, include it and set to true.

Rob

@Rob

What is your reco for what to enable when creating an App ID? Is there any issues if “Game Center” and “Push Notifications” are enabled for when these become available in the future and if these are enabled but not used in the app does that affect entitlements?

I don’t know about push, but I know Game Center is not supported yet.  Apple will likely reject your app if you have those on and are not using them.  You can always turn them on later.

Rob

Are there any entitlements needed for creating and writing files via a OS X app (i.e… a file that gets created and updated for new high score)? Also is it the same code for creating and writing files via a OS X app as for iOS app?

No, so long as you are writing to your app’s “sandbox” using system.DocumentsDirectory or

system.TemporaryDirectory and not trying to write somewhere else (like the user’s home directory, for instance) the “sandbox” entitlement which is applied automatically for App Store builds will suffice.  The code would be the same for OS X as it is for iOS.