Port changes from 2.x to fix some project warnings in master branch:
* Copy phase strip warning on binaries when building Distribution
* No app category set on Autoupdate
* -Watimport-in-framework-header warnings
* id messaging warnings
* -Wcompletion-handler warnings
* Some deprecated base64 APIs
* Explicit SDK and adhoc signing identity
* Upgrade project last update check
* Don't use manual ordering for building targets and set Sparkle.framework as dependency to XCFrameworks aggregate target
* Silenced WKWebView deprecation warning
* Fixed no output node warning in git config script by removing input node like in 2.x
This changes the way we authorize & execute commands, and how we wait for their completion. In order to obtain the correct child to wait (instead of another one terminating intermediately), we use a wrapper tool (fileop) to output its pid onto the communication pipe that we read from the other end.
We want to wipe the caches directory we create for the test app data on launch,
and want to make sure no other data is being inserted into the same directory.
Before, Sparkle was inserting data into the same directory when downloading an update.
Most of this is removing Obj-C subscripting usage
Some bits are adding pragma ignores to places where we are careful to not use the API at runtime on older OS's
Note that for NSMutableDictionary:
x[y] = z is not the same as [x setObject:z forKey:y]
In particular, z can be nil for subscripting (removing the element if it exists) where it cannot for setObject:forKey:
Personally I like the non-subscripting semantics better. Most cases we were using this we were checking if the object was non-nil anyway
The move operation now does an explict copy & remove.
We also copy items using FSCopyObjectSync due to issues
existing in copyfile (and NSFileManager).
Both of these fix bugs in some cases where items cannot be moved
from one network drive to another. In my testing before this patch,
I was unable to get the test application to launch and was unable
to move the old installation to the trash.