- 2 May 2018
- 79
- 72
- 18
- User Role
- Developer
- Repository
- http://samguichelaar.com
- Support Email
- [email protected]
Hello all!
We are excited to release Installer 5 release candidate 2 (rc2). This is yet again a big update & should fix most of the issues which were reported with RC1. Several major parts of Installer were also rewritten from scratch. Please read the entire post. Known bugs & our beta repository are available below.
Two weeks ago, we released a massive update, which was release cadidate 1. See for the changelog & release notes see
Important - Installer 5 release candidate has been released for beta testing
Changelog
Known Bugs
How to get Installer 5 RC2
Join our discord and apply for the beta tester role
Join the AppTapp Discord Server!
We are excited to release Installer 5 release candidate 2 (rc2). This is yet again a big update & should fix most of the issues which were reported with RC1. Several major parts of Installer were also rewritten from scratch. Please read the entire post. Known bugs & our beta repository are available below.
Two weeks ago, we released a massive update, which was release cadidate 1. See for the changelog & release notes see
Important - Installer 5 release candidate has been released for beta testing
Changelog
- ATRPackage updates have been rewritten entirely and are WAY more efficient than before, we will only ever write a package once during an update
- ATRSourceRefresh uses more granular methods that are a lot easier to read and understand, especially the parsing/update portions
- ATTabBarControllerViewController now controls a single instance of the QueueGlanceView for all controllers
- Added ATParsingUtility (still a work in progress) as a centralized parsing tool to help clean up the code base (Currently only used in ATSourceRefreshTask)
- Added ATTabBarControllerViewController to implement custom behavior in the TabBar
- Added IS_DARK_MODE symbol to the prefix for convenience
- Added InstallerPersistentDictionary which acts as a global instance of the Preferences dict and reduces disk IO operations
- Added PersistentDictionary class to manage read and write operations for a dictionary for the life of the object
- Added a custom view class QueueGlanceView to replace the Queue button added to every view controller
- Added interactive animation to QueueGlanceView to bring a little life to the UI
- Added interactive button animation to the source import screen buttons
- Added preferredStatusBarStyle support to ATPalettedViewController
- Added rebuildPackagesCategoriesCache to the UpdateInformationCacheTask (I have plans to completely remove the need for this)
- Added sourceURLsFromSourceListAtPath to ATParsingUtility, this will parse a source list from any source list including Sileo lists (this ensures that all duplicates are removed, no empty urls are added, and that every url ends with a forward-slash /)
- Added support for colored log messages from APT output
- Added support for colored verbose log messages, (still needs some work)
- Added support for detecting and showing *Essential* packages as updates when they are not yet installed
- Added support for importing sources from multiple package managers at the same time during setup
- Added support for more DPKG status file fields, Fixed APT parsing error due to 404 for compressed packages
- Added support for parsing Essential packages in checkStatusFile (this method will be entirely rewritten soon)
- Added support for showing incompatible packages in the ATPDependsTree (UI still a work in progress)
- Cleaned up legacy task usage in ATPipelineManager
- Disabled the use of RepoImportProgressViewController, source refreshing should be efficient enough now that we don't need to hide lag with this view
- Fixed a potential issue with PersistentDictionary that could cause a double write condition
- Fixed issue where ATPDependsTree could incorrectly flag a package as incompatible
- Fixed blocking in rebuildPackagesCategoriesCache if its run from the main thread
- Fixed broken "Other Categories" group in the Sections tab
- Fixed crash due to UIFontDescriptorTraitMonoSpace returning a nil font on iOS 12 and below due to there being no monospaced system font
- Fixed crash due to nil date being added to a Dictionary for packages with no info file
- Fixed crash due to nil value in checkStatusFile method (hopefully)
- Fixed crash in FeaturedViewController during source import
- Fixed crash on iOS 12 and below when showing the verbose view
- Fixed crash when dequeuing packages from the queue
- Fixed post install actions not always showing in the queue
- Fixed error code 34 missing a description
- Fixed issue where ATPaletteManager would reset dark-mode settings on app launch
- Fixed issue where a 404 response for a compressed packages file would be written to the release file causing APT parsing warnings
- Fixed issue where source info would be sent to AppTapp servers for each individual source during every refresh, the remote source list is now loaded on launch and if the remote info matches the local info, it will be skipped.
- Fixed nullability issue in ATDataTaskOperation
- Fixed progress view not showing on the TasksVerboseViewController
- Fixed queue name labels in dark mode
- Fixed some cases where preferences were loaded as a dictionary rather than using InstallerPreferences, the new preferences class is optimized so we don't need to do this anymore. Reading and writing even with multiple values at a time will not need to load from disk.
- Fixed some dark-mode issues caused by ATPaletteManager
- Fixed some issues introduced with the new preferences
- Fixed respring not being suggested when it was needed (when a package is installed to /Applications)
- Fixed text coloring issue with ATVerboseTypeInfo messages
- Fixed warning about NSTask in architecture
- InstallerPreferences can still be used as normal with this new implementation, there are also a handful of convenience methods in PersistentDictionary to return whatever value you want without value casting
- JSON package support has been removed from ATSourceRefresh
- Make use of the global instance of the compatibility dictionary that is allocated on app launch
- New implementation of the Queue Quick View
- Packages file parsing has been rewritten from scratch
- Parsing method is now determined by the network response and not predefined parameters, this means that issues such as Packages files being written to Release files, and incorrect compression detection are no longer a factor
- Probably a number of other changes/fixes that I'm forgetting, this update took a lot longer than expected
- QueueGlanceView is now updated using realm notifications, so it always has an accurate package count and always dismisses/shows when a package is queued/un-queued
- Removed legacy package tasks (ATPackageUninstallTask, ATPackageInstallTask, ATPackageRemoveTask) (still in project folder, but removed from the xCode project)
- Removed support for beta packages since they are only used by JSON packages
- Removes 17 properties from ATRPackage **(changelog, needUICache, postuninstall, preinstall, preuninstall, postinstall, productKey, authorAvatar, beforeAfter, donateLink, extension, Hash, twitter, updateScript, youtube, extrainst, isBeta)** and renamed uninstall to installed files
- Replaced InstallerPreferences with a custom persistent dictionary
- Slight optimization to refreshAllSources to remove redundant checks
- Source Refresh Rewrite
- Switched to ATPalettedViewController for dark-mode management in TasksVerboseViewController (I will fix the navigationBar color in the next commit)
- Switched to custom network handling instead of URLSessionDelegate for ATSourceRefresh, this offers better control over threading and the use of asynchronous requests
- Updated PackagesConfirmationViewController to support the new incompatible packages array in the depends tree
- Various cleanup of JSON package format support throughout the project
- packages selected for uninstall are considered as installed by the status file check
- rebuildPackagesCategoriesCache is now a synchronous method, this helps with crashing issues due to it running asynchronously on multiple threads (Still need to fix locking on this method)
- skip allocating a new tweak compatibility dictionary for each source during refresh
- Fixed UICache not being run after package install/uninstall
- Switched to a MUCH faster way of fetching installed files for a package
- Added checkStatusFileWithCompletion: to ATInstaller
- Added installedFilesForIdentifer: to ATAPTManager
Known Bugs
- Lag when switching tabs (most notably when switching back to the manage tab) [Cause known, fix coming as soon as possible]
- The UI for incompatible packages in the confirmation view is still a work in progress [Actively working on this]
- When launching, the changes tab will show a badge indicating updates for a fraction of a second before it correctly disappears.
- When switching to search immediately after opening the app Installer crashes. [Actively working on this]
How to get Installer 5 RC2
Join our discord and apply for the beta tester role
Join the AppTapp Discord Server!
Last edited: