Brandon Evans
b39d6d58da
Add Toggle for prerelease appcast
2021-01-19 21:46:02 -07:00
Brandon Evans
f3a3961e0e
Split up preferences, add Updates pane
2021-01-19 21:46:02 -07:00
Brandon Evans
b3dbb1af45
Initialize SUUpdater and add check for updates menu item
2021-01-19 21:46:02 -07:00
Brandon Evans
23df4a8c3a
Merge pull request #59 from RobotsAndPencils/xpc-connection-bug
...
Fold HelperInstaller into HelperClient, improve error handling and logging
2021-01-19 20:26:23 -07:00
Brandon Evans
8a0fa1da2e
Use git tags to track build numbers
2021-01-18 19:44:16 -07:00
Chad Sykes
cec8fd884a
Add a script to incrementing the project build number in a yyyymmddnnn format where the nnn is an auto incrementing number (i.e. 20210103001)
2021-01-18 18:52:02 -07:00
Brandon Evans
e467f26adc
Add more logging to HelperClient
2021-01-17 12:37:40 -07:00
Brandon Evans
3d5edb3968
Replace NSError() with specific error
2021-01-17 12:29:28 -07:00
Brandon Evans
55e0447e54
Invalidate XPC connection after installing
2021-01-17 11:57:45 -07:00
Brandon Evans
a504504825
Always show build identifiers in list and info pane
2021-01-16 13:30:52 -07:00
Brandon Evans
4301667000
Replace print/dump/NSLog with os.log Logger
2021-01-16 13:14:27 -07:00
Brandon Evans
cd2bde2272
Move Xcode path into XcodeInstallState.installed case
2021-01-16 13:09:48 -07:00
Brandon Evans
bc27f1785b
Filter out prerelease versions that have the same build identifier as a release build
2021-01-16 11:40:27 -07:00
Brandon Evans
62237bf4a8
Fix a bug when an installed version was appended
...
We were appending a version without appending a corresponding AvailableXcode, and these two arrays were being zipped later so they wouldn't line up. This change simplifies this method a bit by working on only a single array, and then also moves that appending to the end after the array of Xcodes is created.
2021-01-16 11:40:04 -07:00
Brandon Evans
26da7969a1
Make sure install updates happen on main queue
2021-01-16 10:15:39 -07:00
Brandon Evans
ed023218b8
Simplify Version comparison
2021-01-16 10:15:39 -07:00
Brandon Evans
faad4c2ab7
Fix bug where adjusted versions weren't used to look up AvailableXcodes
2021-01-16 10:15:39 -07:00
Brandon Evans
baa8491786
If build metadata identifiers match, treat it as a match regardless of other version components
2021-01-16 10:15:39 -07:00
Brandon Evans
ad02e89449
Add failing test to cover removing an uninstalled version, fix it
...
https://github.com/RobotsAndPencils/XcodesApp/pull/44#issuecomment-756783640
2021-01-16 10:15:32 -07:00
Brandon Evans
683b2e45fb
Merge pull request #52 from RobotsAndPencils/kill-aria-if-xcodes-quits
...
Stop aria2c if Xcodes stops
2021-01-16 10:12:58 -07:00
Sam Lu
47a6bf01be
Add app icon
2021-01-14 11:04:46 -07:00
Brandon Evans
0295bc8b1b
Stop aria2c if Xcodes stops
...
I removed this because I thought it wasn't necessary for some reason. We do send a SIGTERM if the user cancels the installation (via subscription cancellation), but if the whole app quits aria2c would keep running in the background.
2021-01-12 20:51:22 -07:00
Brandon Evans
93f819f2f3
Add downloaders to SettingsView
2021-01-08 17:22:38 -07:00
Brandon Evans
23cd43011b
Bundle aria2c 1.35.0 executable and source
2021-01-08 17:22:38 -07:00
Brandon Evans
fecb40893f
Don't replace existing install state when updating
2021-01-07 21:25:08 -07:00
Brandon Evans
4a33d010a8
Confirm before cancelling installation
2021-01-07 21:25:08 -07:00
Brandon Evans
1a830dc9dc
Add cancel install button to context menu and info pane
2021-01-07 21:25:08 -07:00
Brandon Evans
482b32e4e0
Add isTesting to make NSTestCase check more clear
2021-01-07 21:25:07 -07:00
Brandon Evans
89143b8751
Dispatch Process.run work manually instead of using subscribe(on:) and receive(on:)
...
The previous implementation was doing something weird when it was used during installation in:
verifySecurityAssessment(of: installedXcode)
.combineLatest(self.verifySigningCertificate(of: installedXcode.path.url))
It looks like it would subscribe after the Process.run future had already sent a value, and so it would never finish. This seems weird, and I'm assuming that I'm misunderstanding something about this behaviour, but dispatching manually seems reasonable and works.
2021-01-07 21:25:07 -07:00
Brandon Evans
bfb3fd9ea5
Add install functionality
...
I'm omitting aria2 support for now.
2021-01-07 21:25:07 -07:00
Brandon Evans
90c067997b
Only show Sign Out button when actually authenticated
2021-01-07 21:13:29 -07:00
Brandon Evans
a0e258a937
Move credential auth error somewhere it won't disappear
...
When signing in, the Sign In button is not always in the view hierarchy, meaning error alerts weren't being shown until the next time the button appeared.
2021-01-07 20:47:31 -07:00
Brandon Evans
a3e9101397
Replace .alert with .emittingError
2021-01-04 16:23:35 -07:00
Brandon Evans
f1cdf65be7
Add ErrorHandling
2021-01-04 16:22:09 -07:00
Brandon Evans
813489b5fa
Add Environment+Mock
2021-01-03 10:18:48 -07:00
Brandon Evans
b1e6cffd09
Use helper from Current
2021-01-03 10:18:08 -07:00
Brandon Evans
f3680da2ae
Add InstallationStepView
2021-01-01 15:36:20 -07:00
Brandon Evans
ba1c4fec0f
Merge pull request #38 from RobotsAndPencils/remove-promisekit
...
Remove PromiseKit
2021-01-01 15:03:34 -07:00
Brandon Evans
245780023b
Convert Current.shell to Combine
2021-01-01 15:02:21 -07:00
Brandon Evans
f00ae396a6
Remove Current.shell sudo functionality
...
This'll be done in the helper
2021-01-01 15:02:20 -07:00
Brandon Evans
9971e0b45d
Remove Promise retry functions
...
We'll need to reimplement these later when implementing installation
2021-01-01 15:02:20 -07:00
Brandon Evans
fa277ccaae
Convert URLSession.downloadTask to Combine
2021-01-01 15:02:20 -07:00
Matt Kiazyk
7d1e22e668
Remove some unused code
2021-01-01 13:01:07 -06:00
Brandon Evans
95ca2bc1c3
Remove PromiseKit and PMKFoundation
2021-01-01 10:29:27 -07:00
Matt Kiazyk
72bdadb796
PR Cleanup
2020-12-31 16:06:03 -06:00
Matt Kiazyk
7bfb94d75a
Uninstall a xcode version
2020-12-31 12:36:31 -06:00
Brandon Evans
15132bdfaa
Psych, switch "default" to "active", add justification
2020-12-30 22:06:39 -07:00
Brandon Evans
7b4c4fc14c
Use term "info pane" consistently instead of "inspector pane"
2020-12-30 22:06:39 -07:00
Brandon Evans
f1bb76b029
Disable Select button in info pane but don't change title
2020-12-30 22:06:38 -07:00
Brandon Evans
69d85a9478
Extract XcodeListViewRow
2020-12-30 22:05:38 -07:00
Brandon Evans
69c083ca35
Update AppStoreButtonStyle with secondary state
2020-12-30 22:05:38 -07:00
Brandon Evans
d122014b74
Update install and select state representations in Xcode list
2020-12-30 22:05:38 -07:00
Brandon Evans
ee08684e01
Merge pull request #36 from RobotsAndPencils/bug/acknowledgementDark
...
Fixes acknowledgment screen in darkmode
2020-12-30 22:04:51 -07:00
Matt Kiazyk
8d1f2b512d
Fixes acknowledgment screen in darkmode
2020-12-30 15:43:33 -06:00
Matt Kiazyk
1cd96cc9fc
Merge branch 'main' into enhancement/31-helpModifier
2020-12-30 15:07:08 -06:00
Matt Kiazyk
8df4bb59e0
Update some text to better suit HIG
...
Co-authored-by: Brandon Evans <brandon.evans@robotsandpencils.com>
2020-12-30 15:00:18 -06:00
Chad Sykes
94ef499e9c
Non-functional fix so it compiles locally
2020-12-29 14:52:34 -07:00
Brandon Evans
b32687484d
Move Xcode selection state into window
2020-12-29 13:48:17 -07:00
Brandon Evans
047288384d
Reflect currently-selected Xcode in list
2020-12-28 19:58:36 -07:00
Matt Kiazyk
fdb74ee8d9
Adds the .help modifier to a variety of buttons
2020-12-28 16:27:35 -06:00
Brandon Evans
8084f057fd
Create MainWindow to split up XcodeListView
2020-12-28 12:42:28 -07:00
Brandon Evans
9dc3d21f2e
Rename launch to open
...
This is the preferred verb when it's user-facing, according to Apple's style guide.
2020-12-28 12:42:28 -07:00
Brandon Evans
ba0c429766
Add trailing inspector pane
2020-12-28 12:42:28 -07:00
Brandon Evans
09653b7357
Use ProgressButton in MainToolbar
...
Made a small change to how ProgressButton is constructed to prevent its frame changing when isInProgress changes.
2020-12-28 11:57:45 -07:00
Brandon Evans
4cb60e2929
Extract MainToolbar
2020-12-28 10:41:11 -07:00
Brandon Evans
192a1c6371
Move all toolbar items to status position, use filter button instead of picker
2020-12-28 10:40:44 -07:00
Brandon Evans
44da1efca9
AcknowledgementsGenerator supports *.LICENSE files for code not from SPM
2020-12-28 10:38:59 -07:00
Brandon Evans
dbff012dc8
Use copyright value from Info.plist in about window
2020-12-28 10:38:29 -07:00
Brandon Evans
bc209f6112
Add privileged helper that runs xcode-select
2020-12-28 10:38:27 -07:00
Brandon Evans
1fef255c3d
Add app icon to installed rows
2020-12-28 07:55:12 -07:00
Brandon Evans
4d2600f821
Add Xcode command menu
2020-12-27 23:23:33 -07:00
Brandon Evans
912ac0a28e
Allow launching and copying the path of an installed Xcode
2020-12-27 23:22:57 -07:00
Brandon Evans
adad238b2a
Move uninstalled Xcode property into AppState
2020-12-27 23:22:57 -07:00
Brandon Evans
acd82fa07a
Extract AppState.XcodeVersion to Xcode
2020-12-27 23:22:57 -07:00
Brandon Evans
de54c3d784
Only sign in before refreshing when using Apple data source
2020-12-27 18:33:29 -07:00
Brandon Evans
8594996b87
Add feedback IDs in comments
2020-12-27 18:29:26 -07:00
Brandon Evans
115de2d3a2
Show last updated date in toolbar
2020-12-27 18:29:25 -07:00
Brandon Evans
33b5f96ed2
Merge XcodeList into AppState
2020-12-27 18:29:25 -07:00
Brandon Evans
f06d72f3eb
Split up Models.swift
2020-12-27 18:29:25 -07:00
Brandon Evans
293aef80e3
Add Xcode Releases data source
2020-12-27 18:29:25 -07:00
Brandon Evans
b342baff02
Update when the app launches or becomes active and it's been a day since last update
2020-12-27 18:29:25 -07:00
Brandon Evans
9b26688255
Add refresh menu item and progress view
2020-12-27 18:29:24 -07:00
Brandon Evans
4ef8428151
Convert XcodeList to Combine
2020-12-27 18:29:24 -07:00
Chad Sykes
ee10d2f92b
Some variable renaming based on PR feedback
2020-12-27 16:14:10 -07:00
Chad Sykes
6cddffbef3
Convert the common code into a ProgressButton
2020-12-27 16:13:36 -07:00
Chad Sykes
74cb2198f5
Add missing error alerts to the SignIn views (this does not fix the error formatting from AppState for fear of merge issues)
2020-12-27 13:36:28 -07:00
Chad Sykes
c9c31ff6f5
Fix warning about executing updating the UI from outside the main thread
2020-12-27 13:21:07 -07:00
Chad Sykes
fb6dd8fac8
Fix some layout issues to improve readability
2020-12-27 13:10:36 -07:00
Chad Sykes
ff1d2546dc
Switch out the action button with an activity spinner when processing a request
2020-12-27 13:10:12 -07:00
Chad Sykes
4e03c59d0a
Disable the action button when the AppState isProcessingRequest
2020-12-27 12:22:57 -07:00
Matt Kiazyk
1d9db94efa
Merge pull request #16 from RobotsAndPencils/matt/listCategoryDefault
...
Saves the list category to userdefaults on top tab
2020-12-27 08:58:48 -06:00
Matt Kiazyk
583eb8b2b8
PR List tab Tweaks
2020-12-27 08:49:28 -06:00
Brandon Evans
047d69197e
Merge pull request #20 from RobotsAndPencils/bug-14/cutOffDigits
...
Bug #14 - Stop clipping the security code numbers input
2020-12-26 19:34:43 -07:00
Brandon Evans
cb42864d44
Add custom about window with dependency acknowledgments
2020-12-26 16:34:16 -07:00
Chad Sykes
cce80ae012
Simple fix to ensure all characters are shown without clipping... while I could try to figure a more robust solution but it feels like there are bigger fish to fry
2020-12-26 16:02:35 -07:00
Matt Kiazyk
46c5399b36
Saves the list category to userdefaults on top tab
2020-12-23 16:20:03 -06:00
Brandon Evans
bfb56660bf
Sign In instead of Login
2020-12-22 22:11:42 -07:00
Brandon Evans
5149e817da
Store credentials in the keychain
...
Like xcodes, storing the username in defaults so we know which item to look up in the keychain later. This also fixes the Xcode list update logic to not only validate the session but login with saved credentials if it fails.
2020-12-22 22:06:18 -07:00
Brandon Evans
867ad8ab4b
Add SettingsView
2020-12-22 21:26:25 -07:00
Brandon Evans
155c62de77
Fix bundle IDs
2020-12-22 21:26:05 -07:00
Brandon Evans
34adfb73a2
Reorganize files a bit
2020-12-22 21:01:33 -07:00
Brandon Evans
7e2b484b90
Tidy up AppState.update
2020-12-22 20:53:40 -07:00
Brandon Evans
18a7ea3af2
Move XcodesKit source into Xcodes.app
2020-12-22 20:41:36 -07:00
Brandon Evans
34d6f4feb4
Update code that validates security code response
2020-12-12 10:45:35 -07:00
Brandon Evans
74f68076e0
Add placeholder code that shows versions in UI after signing in
2020-12-12 10:37:08 -07:00
Brandon Evans
c5e0afc2bb
Support link attributes with AttributedText view
2020-12-05 11:03:16 -07:00
Brandon Evans
c3806e2eff
Allow selecting a phone number interactively
2020-12-05 10:21:53 -07:00
Brandon Evans
fb6ed58b3e
Add PinCodeTextField
2020-12-01 20:35:50 -07:00
Brandon Evans
ad267e2b56
2FA seems to work now
2020-11-28 13:02:17 -07:00
Brandon Evans
a081a1392e
Commit some more WIP UI work
2020-11-24 22:15:11 -07:00
Brandon Evans
0e2c69a7d8
Tweak code signing settings so tests can run in CI
...
I'm copying what was done in Secretive since it already figured this out and is a recent macOS app. https://github.com/maxgoedjen/secretive
2020-11-24 21:41:52 -07:00
Brandon Evans
ddcfb1c7f8
Rename the project and directories
2020-11-24 21:11:25 -07:00