So at WWDC 2016, ATS was announced as being mandatory as of January of 2017. At least for iOS.
Finding documentation about what's changing has been tricky (but I suppose I could hunt through a few WWDC videos to find the one or two slides where this is mentioned).
Will NSExceptionDomains exceptions be allowed for macOS Sierra apps? Or will my app magically stop working as of January without some server intervention?
The change is in regards to what App Review will allow into the Mac/iOS App Store (without "reasonable" justification). It is not a behavior change in the OS itself, and existing apps will continue to work.
First up, there have been no changes to the technical behaviour of ATS (other than the addition of NSAllowsArbitraryLoadsInWebContent and NSRequiresCertificateTransparency). From a technical perspective, ATS exceptions in the newly seeded OS releases work the same way as they do in the current OS release.
What has changed is that App Review will require “reasonable justification” for most ATS exceptions. The goal here is to flush out those folks who, when ATS was first released, simply turned it off globally and moved on. That will no longer be allowed.
Source: Post from Apple Developer Relations / Developer Technical Support
Related
I've experienced a few apps that have had some time on the Mac App Store, but were later removed either by Apple or the developer for whatever reason. The developer then followed up with an offer where you could register the app by downloading one from their site onto your system with the App Store version already installed, which would unlock the full features of the new download.
How does one go about verifying an authentic purchase like that? Ideally I'd prefer examples in Swift if you would be so kind, but ObjC is manageable as well.
Here are official docs about receipt validation:
https://developer.apple.com/library/archive/releasenotes/General/ValidateAppStoreReceipt/Introduction.html
There’s also WWDC 2013 video 308 called “Using Receipts to Protect Your Digital Sales”.
It’s recommended to implement your own validation code, but it’s overwhelming and error prone if you’re new to this. There are projects on GitHub that can get you started.
TestFlight is a welcome change for iOS. It makes distributing beta versions painless for both the developer and the testers.
Does Apple support TestFlight for Mac OS as well? I've done quite a bit of searching and haven't found anything conclusive one way or the other.
We have an OS X app store app that turns out to have an install problem with Yosemite. We failed to do a first install test against Yosemite, so we missed the problem.
I developed a fix and would love to have some new users try it out. It's petty complex, difficult and disruptive to have current users delete the entire "container" directory and kill the preferences process in order to simulate a fresh install.
I also don't like the idea of distributing an unlocked version of our app. If that gets out, it could damage sales of the app store app.
I've done things like added an expiration date to a test app (weak protection) or created developer ID builds that will only run on machines from a specific list of MAC addresses. The last approach works, but it's tedious and painful to maintain, and requires that the tester give up uniquely identifiable information about their machines.
I'd really like the ability to create apps that will only run on beta tester's machines, like TestFlight does for iOS.
This is a developer question more than a code question. It isn't a great fit for SO, but I can't think of a better Stack Exchange site to post it. If anybody has a suggestion of a better site to post the question I'm happy to move it there.
This document at Apple Developer explains it.
It says you should register the testers' devices and generate a provisioning profile that includes them. Which means, theoretically, the app won't run on any device not in the list.
Here is the strange thing about it however: I have two Mac computers and I didn't register either of them with my provisioning profile (in fact the list of registered devices is empty right now), but I can run the exported app image on both easily. The app is sandboxed and signed, ready for App Store distribution, but nevertheless it runs on unregistered computers. It might be that with an empty device list it allows to run on any, or it might be that I'm doing something wrong with code signing.
I will update the answer once I figure this out.
Good news for everyone (including me) waiting for TestFlight for Mac - it just got announced on WWDC21.
Unfortunately, it might take another few months until it is out of beta and publicly available for everyone. But since this question is almost more than 6 years old, its just a fraction!
I"ll update the answer if there are more details available
Update
TestFlight on Mac will be available to download on the Mac App Store. It will be similar to the iOS version of TestFlight offering almost the same functionality to both developers and testers.
It supports both native Mac apps and iOS apps on Apple Silicon!
It is now available.
TestFlight is not available for Mac apps.
source: https://testflight.apple.com/
😕
As many sources state on the internet, you need to have your app Sandboxed to be able to deploy it in the App Store.
Furthermore, it is impossible to use the accessibility api (AXUIElement.h) when sandboxed,according to this.
However, some apps still seem to use this api. One of these apps is Cinch. In the installation procedure of Cinch you need to give Cinch rights to use the accessibility API, so clearly they are using this API.
After checking out the binary from the app store with the following command:
codesign --display --entitlements - /Applications/Cinch.app
It seems the app is not sandboxed:
Executable=/Applications/Cinch.app/Contents/MacOS/Cinch
(only line in output).
So my question is, how is it possible to circumvent this requirement. Do you need to negotiate with Apple to achieve this? Are there special rules? Do you need to bribe a staff member? Or is my terminal command wrong?
Irradiated submitted Cinch to the App Store in 2011 before sandboxing was needed and didn't do any substantial updates since then. As soon as they add new functionality or features, they'll need to sandbox the app.
Apple wrote to the developers in February 2012:
Starting June 1 2012, if you have an existing app on the Mac App Store that is not sandboxed, you may still submit bug fix updates without sandboxing your app. In addition, if you have technical issues that prevent you from sandboxing your app by June 1, let us know.
and in May 2012:
If you have an existing app on the Mac App Store that is not sandboxed, you may still submit bug fix updates after June 1.
It is quite surprising for an app from the App Store to not be sandboxed.
If you do not develop a competing app maybe you could contact them directly. Maybe they will tell you how they've done it. You might also get your answer in a shorter amount of time as (at least in my view) not many developers would have done this.
http://www.irradiatedsoftware.com/about/
What are the options for desktop application metrics collection in 2013?
I know of Usermetrix and Deskmetrix, but surely they can't be the only ones? If you look at mobile analytics services the market seems to be a lot more developed.
Specifically I am looking for usage analysis (stuff like retention, crash reports, custom event reporting, version tracking.
EDIT: I should note that I'm aware of the similar questions but they're a few years old and was hoping to get an up to date picture, especially since the advent of the Mac App Store.
You should check out Trackerbird Software Analytics.
SDK is available for .NET/C++/Python and Mac OS X. Integration takes just a few minutes and apart from basic installation/usage tracking you can also use it for in-app marketing and conversion analysis.
Disclaimer: I am affiliated with the company.
While Deskmetrix seems quite nice, I ended up using Tapstream because it's free and Deskmetrix is pretty expensive.
Since Tapstream's main focus is evaluating advertisement campaigns its analytics feature is rather poor (compared to Flurry for instance). However, they allow custom event tracking.
When developing Mils, it was of great help that Tapstream supports both Mac OS X and Windows 8.
I've been successfully using Mixpanel (which has a free tier): they don't have an official Mac SDK (iOS only) but I've written a simple Obj-C wrapper for their APIs: https://github.com/swisspol/MixpanelTracker
So far they're the only people I can find that are doing a chart control...
What happens when the beta expires? How does it expire? (Does it expire?). They look great but there is no pricing information or expiry information.
Here is a direct quote from the EULA:
“You may distribute the Programs as embedded in Your Integrated Products to Your end-users only pursuant to an end-user license that meets the requirements of this Section.”
So, yes, you can ship Apps built with Telerik Windows 8 Controls Beta to the Store.
"Beta," by definition, suggests not ready for production use.
There are at least a couple of things you should think about before moving forward:
Does the license agreement for the controls allow use in a production app (you did read the license, right?)
Are you willing to risk the possibility that the app might suddenly stop working for any and all users who have downloaded it, until such time as you replace the controls with working versions (and get the updated version of your app submitted to the store)?
As long as the controls fit the Windows 8 app design, and don't cause performance or crashing issues, they may not have any impact on whether or not the app gets through certification.
But the larger issue is one of risk. Betas are for testing. IMO, unless the beta includes a "go-live" license, you should probably stick with using beta software for evaluation and testing only.
To be clear, that's no knock on Telerik's beta quality (or anyone else's, for that matter). Just a reminder that beta software isn't finished yet.