We're trying to sandbox our app to submit it to the Mac App Store (for the first time). It makes hard use of the lower level Carbon APIs and cannot operate the other way.
When I enabled the sandboxing, some features stopped working and I see this message in the log:
9/14/12 10:51:58.863 PM sandboxd[41243]: ([41237]) MouseRecorder(41237) deny hid-control
Is there any hidden entitlement I could use or we have no chance in the App Store with this app?
Even though I'm several years too late, I assume I can help others looking for the same. It's taken me days wondering why I couldn't connect to the keyboard. Today, the thought of the sandbox hit me, and I finally allowed my app access.
As described here, I added the following to the .entitlements file, and got access.
<key>com.apple.security.device.usb</key>
<true/>
To be specific, and not mislead:
I do not use Carbon; I use IOKit.hid, with Swift.
EDIT: See the new accepted answer
Just to answer my own question – it's not possible, there is no workaround and it's unlikely it will be possible in the future.
Related
My app requires to access the calendar. Up to Catalina that worked with the sandbox with no big issues. Now under Catalina the app does not show in the security settings:
I have set the Hardened Runtime with calendar access (also tried Sandbox with no different effects):
Since I believe this is related to that signing stuff, here's my setting:
Strangely enough I have another app which had been developed in parallel also using the calendar. And that app is listed in the security setting.
So likely I'm missing something. But what?
Try: reboot the Mac, try your app again. Sometimes, weird problems resolve by themselves after a reboot.
Edited: This is not meant to be a bad joke, or to insult the skill and capability of the person asking the question, but when I read:
Strangely enough I have another app which had been developed in parallel also using the calendar. And that app is listed in the security setting.
I assume the other app has a very similar or identical set-up and signing config, etc., otherwise the person asking the question would have tried changing something to make them similar or identical.
So it sounds like the kind of situation that doesn't make sense. I have a few (painful) memories when I rebooted my Mac and situations like that went away. I suspect that memory corruption, bugs in the OS, etc., can cause small failures as time goes on, and a fresh start can sometimes help.
I'm submitting an app to the Mac App Store and this app uses the Safari component to display web pages. I'm being asked this question:
Is your app designed to use cryptography or does it contain or incorporate cryptography? (Select Yes even if your app is only utilizing the encryption available in iOS or OS X.)
Should I answer yes due to the possibility of HTTPS?
The answer is a resounding yes. I talked to Apple representatives and they confirmed the need of an ERN if you just use standard SSL in the form of HTTPS. There are many blog posts and forums out there saying that you can just say no and everything is fine, but I don't believe they are following the rules, they are just not being caught at an audit might find their applications pulled from the app store. For those arriving here hopping the answer was no, I'm sorry.
But there's hope. I actually got an ERN and I described all the nitty gritty details so you can do it too with the minimum of pain in my blog post: How to legally submit an app to Apple’s App Store when it uses encryption (or how to obtain an ERN)
I am currently experimenting with programming for my Nokia 5800 XpressMusic (running Symbian 9.4). Setting up the development environment (Carbide C++) was already a huge pain, but now that I am actually able to build something the pain doesn't stop! It seems there is an incredible overhead involved when you actually want to test an application on the phone. But I really hope somebody more experienced than me knows some easy way to do it.
If I understood right every application has to be signed. I can sign applications myself, so this is not a problem and it seems to work fairly well. But then it seems not all capabilities are available if I do this, and the one I need is amongst them. So now I have the option to buy a publisher ID to get a developer certificate (current cost: 200$ - no thanks) or I have to upload the application every time to symbiansigned! Every time I change the code and want to test on the phone I have to upload the thing using a stupid web form!
But now I was excited to find that you can do some remote debugging stuff with a thing called TRK (maybe this spares me the signing?). I hoped that I could use this to connect Carbide and my phone. But this doesn't quite work. My phone doesn't show the application required for this connection although it installed properly. I had a look at the supported Symbian version number and it seems to be 9.2, so not mine :( Stuck again?
And the emulator is no option because it doesn't support sensors and cameras :(
So what am I doing wrong (and sure there must be something)? Is the only way to test my app on the phone to actually upload it every time, wait for it to getting signed, download it again, install it and test - just to see it didn't work and that I have to repeat this process over and over again?? PLEASE no...
follow the instructions here http://www.forum.nokia.com/Distribute/Packaging_and_signing.xhtml to get yourself a free certificate for 5 testing devices, then you can use this certificate to sign your applications directly without using open sign.
When you use TRK, your application is still installed on the phone (in background, with so called silent installation API - by the way, you can use it too, but it's offtopic), because the only eligible way for a binary to get into the phone is the Installer Service. So you still need some certificate. All three options to get certificate mentioned here are ok, though the last, free one (from Mahdi Hijazi), I suppose, is the preferred. :)
Please go to
http://www.opda.net.cn/register.php
then apply for a OPDA Developer Certificate and download signer tool from the site and use it to sign your symbian applications.
the license agreement for the Mac Developer Program explicitly states that I am not to implement my own copy protection process in my Mac app.
Yet, in the developer documentation, Apple also says this:
You can add receipt validation code to
your application to prevent
unauthorized copies of your
application from running.
I am confused here. Does the Mac App Store provide any form of built-in copy protection for Mac apps? The above statement from Apple would seem to indicate that it does not.
The statement suggests that if I do not implement these receipt checks, then unauthorised copies of my Mac App CAN run on other Macs.
I'm not allowed to implement (or rather, keep an existing) copy protection, but I am expected to verify receipts manually, using various fragments of code and pseudo-code provided by Apple, simply to provide the most basic level of protection. Is this interpretation correct?
Is this a miscommunication from Apple, or is this really how things are done?
Ref: http://developer.apple.com/devcenter/mac/documents/validating.html
Thanks.
(Please note that I'm not after a debate on the philosophy of copy-protection or the merits of Apple's approach. Rather, I'm just interested in the technical requirements for getting a Mac app on to the App Store.)
Yes, you are correct. It's their way or the highway.
Is there any Remote wipe application which will be working on deleting the data in Emulator by sending an SMS from other emulator?? I found some of the free applications in android market on Remote Wipe.. But they are not working..
Please let me know if any of the application is working on Emulator
Thanks in advance
Uday
There is just one remote wipe application I have come across.
I have been trying to write one such application myself but I believe the permissions required are 2nd level and 3rd level permissions (check this link and this link). Thats is the reason I am unsuccessful as yet. I believe that you basically need to sign the package with the same signature as the OEM manufacturer to be able to grant those packages to your device.
If by an stroke of luck you do happen to make one successfully, please let us know the permission you have used to make such a thing possible! =)
Regards
Shouvik
EDIT: Okay I supposed I am wrong. I believe in android 2.2 it is possible to remote wipe your. I have not completely understood how to implement the function or the class yet, I plan to work on it as soon as I can spare some time. :)
Reply:
Well I have been looking at the SDK for some time now, and I can confidently tell you below 2.2, I am pretty sure there is no way I know of to remote wipe your data. I have although read on the mailers list that there is a function that enables a third party client to create a remote wipe application as you may have seen in my post above. I have actually use my own port of android on a device and have just used the brick, but if I do come across any reference that can show how you could achieve what you desire, I would be happy to leave a post here. Regards Shouvik.
Links
http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#wipeData%28int%
also for formatting the SD card I came across a permission that you can request, I guess you follow that you end up at the method.
http://developer.android.com/reference/android/Manifest.permission.html#MOUNT_FORMAT_FILESYSTEMS