Background learning
Looking for help...
This may be a familiar scenario to some of you - maybe less so in the dev forum, but you are the guys and gals who seem most likely to be able to help.
I have been using Max for 20 years, and I feel pretty comfortable with it, though I would never describe myself as a 'programmer'.
In fact I have failed to really get a grasp any 'proper' programming languages, all the way from school through various college courses, including Basic, Fortran, Pascal, Java and even Javascript.
I now find myself in semi-retirement, and trying to get an app that I've built with Max onto the App Store.
I have a ready market for it, and the app itself feels as ready as it will ever be.
However, I keep failing at the final hurdle, i.e trying to get the thing signed.
(I have followed Darwin's excellent tutorials, btw, and asked a few questions there, but I'm at an impasse now.)
What I feel is missing from my education, is the whole thing around programming & development in general. I feel I'm thrashing in the dark just copy/pasting stuff I find online into the Terminal, for example, without any idea what's gong on. Consequently, when it all goes tits-up, I don't know where to go next.
So I guess what I'm looking for is some kind of 'background knowledge' course on the whole programming thing.
My goal is pretty specific, I just want to be able to use what I do know - MaxMSP - to complete a project that I can share with other people, even if that's just other Mac users (a Windows version seems a universe away!).
However the whole Apple security thing is driving me nuts - my app works, but I can't even give it away at this point, let alone consider selling the thing.
Any help would be most gratefully appreciated.
What you're talking about is "deployment", not programming; deployment is, for any programmer, a pita. One of the problems with it is it's a moving target. In programming you have a language and a set of more or less immutable tools and concepts, whereas in deployment, the environment and its rules are continually and often arbitrarily changing, usually resulting in a complete waste of time for everyone except the people who make up the rules (ie Apple etc), who do so in order to make money out of it.
Probably your best bet is to use this thread: https://cycling74.com/forums/max-standalone-in-the-mac-app-store-2018 and its links.
Depending on how much time you have you could also consider becoming (more?) familiar with the Unix command environment and unix scripting-- there's plenty of resources out there to learn that without resorting to a formal course (books, pdfs, informative websites, online courses, youtube etc). There are the windows equivalents of course, but learn one first before the other.
or boycott the app store.
One would have to be patient, and wait till cycling stuff
sorts the whole standalone story with apple.
There is no wonder that there is no official tutorial how to
succesfuly get through all burdens of apple store,
and what will change in near future.
I am in lucky position to sell my apps directly to customers,
and my only concern is to prevent them from updating OS.
So I sell app that works till xy version of OS, clearly stated.
If they update the system, it's their problem, not my.
Unix shell scripts are as simple as it could be.
It tells - load that binary executable, make it do this thing with
this options to this file.There is no "programming" involved.
For every single command there are man pages at least.
1999:
- build app like you want
- encode, compresss, or image like you want
- put in local server of you choice or on a webspace to share with friends
2019:
- pay a fee
- create a certificate
- create a product ID
- follow the guidelines of the online store, make sure you comply the rules, present your content there
- prepare your patch in a certain way
- build you app in a certain way
- clean the app from terabytes of unwanted nonsense code which max puts tehre without asking
- care for about a dozen of OSX releated settings like icon format or plist
- follow a strict procedure how to sandbox, entitle and usage descript your app using the Xcode IDE
- if you dont have already: install the apple developer tools to get Xcode
- codesign all the files in and beside your app using the unix shell
- verify everything you did in there, receive mysterious error messages
- build installer app with certain installer type and version from apple
- codesign the installer app
- make an image file of a certain type and version apple tells you to, or use the apple application loader (unlike .ipa, which can be send with itunes, a .app requires you to use the Xcose IDE to do this)
- exspect that you app gets still rejected because it produces tons of error messages
- if you used java and javascript in your patch, and if you want to add copy protection scheme, there ar esome 10 steps more to do
now you dont have any time left to develop technology, design apps, or use them yourself, but you can at least theoreticall sell it - in case it really gets approved before one of the 45 legal and technical dependencies gets updated without notice.
Thanks for your replies.
Yes, that just about sums it up, Roman.
I'm not even trying to go via the App Store yet, but these days you can't even share an unsigned standalone with a friend without the gatekeeper telling the recipient that they have some horrible broken artefact that will destroy their computer.
Let's hope Cycling can sort out this "Is already signed" business soon.
you could provide "symlink installer" type of data and/or tell people to disable gatekeeper (which i think since 10.14 requires the terminal now, but better than nothing.) or, in the case of max, just the patcher file. :)
p.s. i wonder how the procedure looks like in 20 years from now. hopefully it grows linear and not exponential.
@ROMAN: In the future, we will have to consult each change in our own applications with a lawyer.
Just received a reminder from Apple that my Developer subscription is due for renewal - that's a year's fee wasted, then!
I know the fault lies with Apple and not with Cycling 74, but much as I love all the shiny new features, I would really love for Cycling to go all out to get this issue sorted for the next update.
It can't be any "update" that could fix the issues with max standalone and apple.
It needs a deeper reorganisation of file structure,
loading of externals and all other dependency stuff.
And I don't think that anything should or could be done before final release of Catalina.
If You need to distribute app in the meantime, then there is no other way than
bypassing apple store, disabling gatekeeper, avoiding notarisation and translocation,
probably by making installer in form of apple script, which would
download app using curl, disable gatekeeper running shell scripts
and removing quarantene xattribute for the standalone.
OK, now I'm confused.
I got the impression that some people on certain systems/versions of Max/OS/Xcode were able to sign apps, and that the "is already signed" issue was something that should not be happening and could be fixed?
I'm not really that bothered about going via the App Store. I'd be happy if I could just sign a standalone so that I could give it away, but I can't even do that.
But people get turned off as soon as you mention disabling the gatekeeper - I saw the numbers just drop away as soon as I floated that idea.
Different Max users experience different results trying to codesign
Standalones, and as You say it might depend on many factors,
among others also what and how gets included in Standalone.
In this topic:
https://cycling74.com/forums/apple-notarizing-for-mojave-10-14-and-beyond
which You probably follow, one gets a picture.
And announcement from Jeremy, that it's been looked after.
So ... one has to be patient.