mac app store sandboxing issues - cocoa

My app has a 3rd party executable inside of its bundle which my app communicates with via NSTask. I was able to sandbox my app and everything works, but when I submit it to the Mac App Store I am told that I must also sandbox this executable. Now when I do this it breaks everything and what happens is the executable crashes and the crash report reveals that a sandbox cannot be created. This executable is in my Resources folder in my project and copies into my app when I build. So what is the solution here? If sandboxing the actual executable makes it crash but the App Store gives me invalid binary without sandboxing it what can I do?
Thanks,
rc

Related

MacOS Product Name Bundle Identifier Problem during application testing

I have a problem when trying to test an application on macOS. For reference, this was created in Unity.
The BundleID has been changed as a previous developer had used a very odd naming format, codesign and notarization works on the new app.
However, when I try to run the app it starts complaining about the app being purchased on another computer (which is correct, we still use the old version for testing) but it has been removed on this device and hidden in the App Store.
Anyone know anything else I can try to get past the problem of macOS knowing about the old app version.
If you log in it then just says the app is corrupt as I am guessing it is comparing it to the downloaded App Store version.
Solved it myself, apologies for taking up bandwidth. In Unity untick Mac App Store Validation in Player Settings-> Other Settings

Unable to install AppStore version directly to mobile device when using an iOS App Extension

At our company the process we execute normally is:
fix/implement
test ad-hoc version
create AppStore package
test that AppStore package by installing it directly through iTunes.
submit version to AppStore.
The reason why we need to test also the AppStore version is because some payment services wouldn't work if we didn't. So we need a real environment.
Previously to the inclusion of the iOS App Extension (sharing) we could do this process without issues, but now after doing the same process we can't do it anymore.
We can;
test the ad-hoc version by signing the app extension as ad-hoc.
create and submit the app store package.
However we can't install the app store version anymore, the error mentions that there are issues with the signature, more precisely:
(Entitlements found that are not permitted by provisioning profile)
Does anyone have any idea why this could be happening?.
You really shouldn't be able to install the app store version on a physical device and run it.
It can work in certain scenarios (like if you had previously installed development builds on there and there was a valid development build on the device when you try to run the app store build). Maybe the device has the old app provisioning profile (which would not have the app extensions entitlement). The new one that is embedded with the app (and has the appropriate entitlements) is an App Store provisioning profile and is not valid for running directly on the device.
I would make a new build config in your project that is a copy of the Release config, except for only the code signing settings. That would allow you to run a build that will be exactly the production App Store build, except for the code signing settings.

Distribute App Outside the Mac App Store

I'm a newbie in OSX Development. I built an application in which will be distributed outside the Mac App Store. I have all the other certificates and keys working except for the Developer ID (App and Installer) for production.
I know that this may sound stupid, but for what it's worth, I just wanna make sure.
Will my app still be considered Developer ID - signed if I exported it as a Mac Installer Package instead of selecting Export Developer ID-signed Application, when I install it to its destination devices? Will it be successfully installed or be rejected with GateKeeper-enabled devices?
I have been scratching my head for this since for some weird reason, I cannot add a new Distribution Developer-ID from the Dev Center. I was able to add a Developer ID earlier this week however, I ran into some issues with my private keys. As per suggested by Apple and many other developers, I revoked all the Developer IDs and private keys to start fresh. The problem now is that I can't add any new Developer ID (Distribution). I cannot add in both Dev Center and by requesting through Xcode 5.0.1. I'm stuck.
I have submitted a Bug Report to Apple, but who knows when they'll be able to resolve it.
So now, temporarily, since I don't have any choice (I guess), I'll use the Mac Installer Package, but the question is, will it work?
Any help would be very, very much appreciated.
I've done this recently and have created a third Xcode project configuration to Debug and Release called Archive, which is a copy of Release except the app is signed using the Mac App Distribution / Third Party Mac App Developer and, confusingly there is a third name used for this same certificate.
I then changed the Archive scheme to use the Archive configuration to build.
Before doing this I had errors on some Macs when signing with my Developer ID, in some cases they claimed the app was corrupted, and in other cases I got gatekeeper blocking the app, forcing me to override it in System Preferences > Security & Privacy.
I personally use xcodebuild (from Jenkins) to build the app for distribution to testers, which I package in a .dmg so they only need to drag it to /Applications or ~/Applications and I do all that using a script within the Jenkins configuration. Your experience may differ to mine if you are using the Xcode app instead.

Accessing the Sandboxed Apple Store without XCode

I am working on an OSX app which is created using an open source common lisp implementation called CCL. We are trying to add in app purchases to our app and I just read through the StoreKitGuide and I am wondering how will I be able to test the in app purchases without using XCode.
The documentation gives instructions about accessing the sandboxed app store using XCode:
When you launch your application from Xcode, Store Kit does not connect to the App Store. Instead, it connects
to a special sandbox store environment. The sandbox environment uses the infrastructure of the App Store,
but it does not process actual payments.
But it doesn't tell you how this could be done without xcode. What can be done test in app purchases without XCode?

Is it possible to get an AIR 3.0 Captive Runtime app into the Mac App Store?

Is it possible to get an AIR 3.0 Captive Runtime app into the Mac App Store? How would you do that?
Here's a link where you can find pretty thorough article how to upload an AIR app in the Mac App-store.
There are actually a couple of steps to doing this. First, and this is what I have found to be the easiest solution, is to build an AIR Intermediate file from Flash Builder 4.5. Once that file is built, use the adt command line packager with the "-target bundle" flag to sign and package the a Mac OSX application bundle. This will result in a fully working captive runtime application bundle that you can run on OSX. When you have completed the Adobe side of things and have verified that is runs correctly you can move on to the Apple side.
I would recommend you reference Apple's developer documentation for this here: Submit Your Application using Application Loader. You will need to use both the "codesign" and "productbuild" commands on the application bundle you created from Adobe's packager. When done, you should now be able to use Apple's Application Loader to submit the package to the Mac App Store.
I have not yet tried to sign the AIRI package with my Apple certificate, so I'm not sure if that would work, since I have both an Thawte cert for Air apps and the Apple issued one. This would take further testing.

Resources