Updating on Mac OS X App Store - cocoa

I am writing my first application. I was using Sparkle framework for updating but recently someone told me that this is not accepted by Apple on Mac App Store. So how else can I update my application? thanks.

You send updates to the app store. After being approved, they’ll be available and App Store.app will tell your users that there’s an update for your application.

Related

Mac app created with Unity submitted to AppStore always reject because it can't be launched

I create an Unity app to desktop platforms using Unity 2017.4.40. I publish it on Steam and now I Wana publish it on Mac app store. I follow this guide "https://docs.unity3d.com/Manual/HOWTO-PortToAppleMacStore.html" to learn how to submit an Unity game to Mac App Store.
I do all steps on this guide and submit a PKG file to AppStore, but the game was rejected. I receive the following feedback from AppStore Review Team.
Hello,
The issues we previously identified still need your attention before we can approve your submission.
If you have any questions, we are here to help. Reply to this message in App Store Connect and let us know.
Guideline 2.1 - Performance
We discovered one or more bugs in your app when reviewed on Mac running macOS 12.3.
Specifically, the app did not launched and remained on a loading loop.
We tried to launch and review the app at the following two devices:
MacBook Pro (16-inch, 2019)
MacBook Air (M1, 2020)
Next Steps
Please run your app on a device to identify the issue(s), then revise and resubmit your app for review.
If you are unable to reproduce this issue, ensure you are testing the exact version of the app that you submitted for review, and that you're doing so in a minimally privileged environment. See Technical Q&A QA1778: How to reproduce bugs reported against Mac App Store submissions.
For additional information on crash reports, see Diagnosing Issues Using Crash Reports and Device Logs.
I test my game on MacOS Big Sur 11.6.1 and on a fresh install on another device with MacOS Monterey 12.3.
For me it works perfectly in both tests. But when submitted to AppStore I got this error, now I don't know what I can do fix this to make my Unity game runs on MacOS devices from Apple review team.
How can I fix that?
I succeed to publish one app in the Mac App Store.
I use the link below and I was able to understand how to publish my app in the Mac App Store
https://github.com/dilmerv/UnityBuildTools
My problem is that I forgot to sign my app with the "3rd Party Mac Developer Application: My Name (XXXXXXXXXX)" certificate and after that create a pkg file and sign it with "3rd Party Mac Developer Installer: My Name (XXXXXXXXX)" certificate.
It works for me, my app was finally published in the Mac App Store.
There is another certificates that are needed to distribute the app outside Mac App Store. For me I will need to use the "Developer ID Application: My Name (XXXXXXXXXX)" to sign my app to distribute using Steam.

Revoke / invalidate Mac app signed with Developer ID

I used to distribute a Mac app signed with Developer ID internally. Now I sell this app through the Mac App Store. Is there any way to invalidate the old Developer ID signature, or prevent the old app from running? I'd like to stop the old version from being used, or at least stop it from being redistributed.
If your internal app has no way to update itself them you really can't do much.
What you can do is revoke your certificate and release a new version of your app on the Mac App Store. This still won't prevent the already installed app from running. Just that newer installs can be prohibited.
In your Mac app store version of the app make sure you have some upgrade logic. I.e., if the user has the older app and the newer one then the newer one should delete the older app.
I hope it helps.

Best way to distribute sandboxed Mac apps to beta-testers

I would like to send out beta versions of my Mac app (which solon Will be sand boxed) to testers. What's the best way to do that?
I can't use new Mac OS X server for this since I don't have an extra Mac to spare.
Normally for iOS I would use TestFlight. But how about Mac, can I use HockeyApp.com? I don't think I can upload sand boxed versions to HockeyApp, right?
You can use HockeyApp with sandboxed OS X apps. Just upload your .app.zip through the web UI or your .xcarchive with HockeyMac. HockeyApp detects the provisioning profile and asks testers do download it before the .app. You can collect the Mac UUID through HockeyApp too.
If you want to provide in-app updates, please follow this tutorial and make sure to use the Sparkle branch that supports sandboxing:
http://support.hockeyapp.net/kb/client-integration/hockeyapp-for-mac-os-x#beta-distribution

Update Mac App Store App outside the MAS and check receipt

I am wondering how to build the follwoing scenario:
- I have one app which can be bought in the Mac App Store
- Because this app cannot use sandboxing which will me soon mandatory, I won't be able to update it in the Mac App Store.
- I want to continue to provide updates to these users but it will be outside MAS updates
- How can I check if the application has been legally acquired ?
Thanks for your help
I do something like this to enable Mac App Store customers to easily beta test new versions of my app downloaded from my website while still enforcing licensing. Upon startup of the MAS version of my app, I copy its receipt into /Library/Application Support/MyAppName/. Beta versions of the non-MAS version of my app include the same receipt validation code as the MAS version. They look for a receipt in the App Support folder, and validate it, running in licensed-mode if the receipt is valid.
I believe that MAS receipts are tied to the machine used to buy/download the app, so your users won't be able to transfer receipts between computers. The way to attack this problem might be to issue regular licenses to users who successfully validate a MAS receipt on at least one machine. There's an opportunity for cheating here, but I don't think it's any different than the weaknesses inherent in whatever licensing scheme you use.

Can I submit a Mac App without enabling Sandboxing?

As I heard that Mac Apps submitted must enable sandboxing. Because I want to use NSRunningApplication.terminate, and it doesn't work with sandboxing.
Only sandboxed Apps are allowed, I'm sorry
UPDATE
Now Apple has extended the deadline for non sandboxed apps on the MAS until June. Apps that are not sandboxed can be updated even after that date... I think that is great news
To clarify, you can submit a non-sandboxed app until March 1, 2012. After that date, Apple will only accept sandboxed apps.
I'm not sure if they will remove non-sandboxed apps from the store once they are already in though. They'll either remove them or prevent you from updating until you use entitlements.

Resources