Skip to content

Commit

Permalink
Resolves a problem where Aperture and iPhoto quit unexpectedly on mac…
Browse files Browse the repository at this point in the history
…OS Sonoma 14.2 or later.
  • Loading branch information
cormiertyshawn895 committed Feb 19, 2024
1 parent 9388c4f commit 5c1546a
Show file tree
Hide file tree
Showing 21 changed files with 197 additions and 83 deletions.
10 changes: 6 additions & 4 deletions README.md
@@ -1,13 +1,15 @@
<p align="center">
<a href="https://github.com/cormiertyshawn895/Retroactive/releases/download/2.0/Retroactive.2.0.zip" alt="Download Retroactive"><img width="188" height="188" src="screenshots/icon.png" alt="Download Retroactive"></a>
<a href="https://github.com/cormiertyshawn895/Retroactive/releases/download/2.1/Retroactive.2.1.zip" alt="Download Retroactive"><img width="188" height="188" src="screenshots/icon.png" alt="Download Retroactive"></a>
</p>

## Retroactive

Run Aperture, iPhoto, and iTunes on macOS Ventura, macOS Monterey, macOS Big Sur, and macOS Catalina. Xcode 11.7 on macOS Mojave. Final Cut Pro 7, Logic Pro 9, and iWork ’09 on macOS Mojave or macOS High Sierra.
Retroactive only receives limited support. You should transition from Retroactive to a wide range of supported apps, many of which are built into macOS or free to download. [Learn how to transition from Retroactive to supported apps](TRANSITION.md).

Run Aperture, iPhoto, and iTunes on macOS Sonoma, macOS Ventura, macOS Monterey, macOS Big Sur, and macOS Catalina. Xcode 11.7 on macOS Mojave. Final Cut Pro 7, Logic Pro 9, and iWork ’09 on macOS Mojave or macOS High Sierra.

<p align="center">
<a href="https://github.com/cormiertyshawn895/Retroactive/releases/download/2.0/Retroactive.2.0.zip" alt="Download Retroactive"><img width="282" height="68" src="screenshots/resources/download-button.png" alt="Download Retroactive"></a>
<a href="https://github.com/cormiertyshawn895/Retroactive/releases/download/2.1/Retroactive.2.1.zip" alt="Download Retroactive"><img width="282" height="68" src="screenshots/resources/download-button.png" alt="Download Retroactive"></a>
<p>
<p align="center">
<a href="https://github.com/cormiertyshawn895/Retroactive/releases" alt="View Release Page"><img width="160" height="18" src="screenshots/resources/release-button.png" alt="View Release Page"></a>
Expand All @@ -33,7 +35,7 @@ Retroactive will not harm your Mac. This alert only shows up because Retroactive

### Picking an app

On macOS Ventura, macOS Monterey, macOS Big Sur, and macOS Catalina, Retroactive can unlock Aperture and iPhoto, or install iTunes. Pick the app you want to run. If you want to run multiple apps from here, pick any one of them. You will always be able to get back to this screen later.
On macOS Sonoma, macOS Ventura, macOS Monterey, macOS Big Sur, and macOS Catalina, Retroactive can unlock Aperture and iPhoto, or install iTunes. Pick the app you want to run. If you want to run multiple apps from here, pick any one of them. You will always be able to get back to this screen later.

![](screenshots/4.jpg)

Expand Down
8 changes: 4 additions & 4 deletions Retroactive.xcodeproj/project.pbxproj
Expand Up @@ -999,14 +999,14 @@
CODE_SIGN_ENTITLEMENTS = Retroactive/Support/Retroactive.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 87;
CURRENT_PROJECT_VERSION = 88;
INFOPLIST_FILE = Retroactive/Support/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 10.13;
MARKETING_VERSION = 2.0;
MARKETING_VERSION = 2.1;
PRODUCT_BUNDLE_IDENTIFIER = com.retroactive.Retroactive;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Retroactive/Libraries/Bridging-Header.h";
Expand All @@ -1021,14 +1021,14 @@
CODE_SIGN_ENTITLEMENTS = Retroactive/Support/Retroactive.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 87;
CURRENT_PROJECT_VERSION = 88;
INFOPLIST_FILE = Retroactive/Support/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 10.13;
MARKETING_VERSION = 2.0;
MARKETING_VERSION = 2.1;
PRODUCT_BUNDLE_IDENTIFIER = com.retroactive.Retroactive;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Retroactive/Libraries/Bridging-Header.h";
Expand Down
6 changes: 6 additions & 0 deletions Retroactive/AppManager.swift
Expand Up @@ -454,6 +454,9 @@ class AppManager: NSObject {
}

var otherOSSubtitle: String {
if osAtLeastSonoma {
return "Retroactive only receives limited support. You should transition from Retroactive to a".localized() + "\n" + "wide range of supported apps, many of which are built into macOS or free to download.".localized()
}
if osAtLeastCatalina {
var otherOSHint = "Retroactive can also unlock Final Cut Pro 7, Logic Pro 9, and fix iWork ’09 on macOS Mojave or macOS High Sierra. ".localized()
otherOSHint += AppManager.shared.platformShippedAfterMojave ? "To get started, find an older Mac released before Late 2019, and install macOS Mojave on that Mac.".localized() : "To get started, install macOS Mojave on a separate volume.".localized()
Expand All @@ -466,6 +469,9 @@ class AppManager: NSObject {
}

var otherOSImage: NSImage? {
if osAtLeastSonoma {
return NSImage(named:"supported-banner")
}
if osAtLeastCatalina {
return NSImage(named:"mojave-banner")
}
Expand Down
7 changes: 6 additions & 1 deletion Retroactive/Common/Extensions/ProcesssInfo-Extension.swift
Expand Up @@ -12,14 +12,16 @@ let osAtLeastBigSur = processInfo.isOperatingSystemAtLeast(OperatingSystemVersio
let osAtLeastMonterey = processInfo.isOperatingSystemAtLeast(OperatingSystemVersion(majorVersion: 12, minorVersion: 0, patchVersion: 0))
let osAtLeastMontereyE = processInfo.isOperatingSystemAtLeast(OperatingSystemVersion(majorVersion: 12, minorVersion: 3, patchVersion: 0))
let osAtLeastVentura = processInfo.isOperatingSystemAtLeast(OperatingSystemVersion(majorVersion: 13, minorVersion: 0, patchVersion: 0))
let osAtLeast2023 = processInfo.isOperatingSystemAtLeast(OperatingSystemVersion(majorVersion: 14, minorVersion: 0, patchVersion: 0))
let osAtLeastSonoma = processInfo.isOperatingSystemAtLeast(OperatingSystemVersion(majorVersion: 14, minorVersion: 0, patchVersion: 0))
let osAtLeast2024 = processInfo.isOperatingSystemAtLeast(OperatingSystemVersion(majorVersion: 15, minorVersion: 0, patchVersion: 0))

let discouraged_osExactlyHighSierra = osMajorVersion == 10 && osMinorVersion == 13
let discouraged_osExactlyMojave = osMajorVersion == 10 && osMinorVersion == 14
let discouraged_osExactlyCatalina = osMajorVersion == 10 && osMinorVersion == 15
let discouraged_osExactlyBigSur = (osMajorVersion == 10 && osMinorVersion == 16) || osMajorVersion == 11
let discouraged_osExactlyMonterey = osMajorVersion == 12
let discouraged_osExactlyVentura = osMajorVersion == 13
let discouraged_osExactlySonoma = osMajorVersion == 14
let discouraged_osHasExperimentalSupport = false

extension ProcessInfo {
Expand Down Expand Up @@ -55,6 +57,9 @@ extension ProcessInfo {
if (discouraged_osExactlyVentura) {
return "macOS Ventura"
}
if (discouraged_osExactlySonoma) {
return "macOS Sonoma"
}
return ProcessInfo.versionString
}
}
Expand Up @@ -275,7 +275,7 @@
CLANG_ENABLE_OBJC_ARC = NO;
CODE_SIGN_STYLE = Manual;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 9;
CURRENT_PROJECT_VERSION = 10;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = "";
DYLIB_COMPATIBILITY_VERSION = 1;
Expand Down Expand Up @@ -303,7 +303,7 @@
CLANG_ENABLE_OBJC_ARC = NO;
CODE_SIGN_STYLE = Manual;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 9;
CURRENT_PROJECT_VERSION = 10;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = "";
DYLIB_COMPATIBILITY_VERSION = 1;
Expand Down
12 changes: 8 additions & 4 deletions Retroactive/Dependencies/ApertureWrapper/AppKitWrapper.m
@@ -1,15 +1,19 @@
@import Foundation;
@import AppKit;

extern @interface NSFlippableView : NSView {
}
extern @interface NSRegion : NSObject
@end

@implementation NSRegion
@end

extern @interface NSFlippableView : NSView
@end

@implementation NSFlippableView
@end

extern @interface NSToolbarClippedItemsIndicator : NSView {
}
extern @interface NSToolbarClippedItemsIndicator : NSView
@end

@implementation NSToolbarClippedItemsIndicator
Expand Down
4 changes: 2 additions & 2 deletions Retroactive/RootViewController.swift
Expand Up @@ -42,9 +42,9 @@ class RootViewController: NSViewController, CCNNavigationControllerDelegate, NSW
}

func alertForOSIncompatibility() {
if osAtLeast2023 {
if osAtLeast2024 {
AppDelegate.showOptionSheet(title: discouraged_osHasExperimentalSupport ? String(format: "Experimental support on %@".localized(), ProcessInfo.versionName) : "Update to a newer version of Retroactive".localized(),
text: discouraged_osHasExperimentalSupport ? String(format: "On %@, Aperture, iPhoto, and iTunes can launch and are functional, but you may see minor glitches.".localized(), ProcessInfo.versionName) : String(format: "This version of Retroactive is only designed and tested for macOS High Sierra, macOS Mojave, macOS Catalina, macOS Big Sur, macOS Montery, and macOS Ventura, which may be incompatible with %@.".localized(), ProcessInfo.versionName),
text: discouraged_osHasExperimentalSupport ? String(format: "On %@, Aperture, iPhoto, and iTunes can launch and are functional, but you may see minor glitches.".localized(), ProcessInfo.versionName) : String(format: "This version of Retroactive is only designed and tested for macOS Sonoma, macOS Ventura, macOS Monterey, macOS Big Sur, macOS Catalina, macOS Mojave, and macOS High Sierra, which may be incompatible with %@.".localized(), ProcessInfo.versionName),
firstButtonText: "Check for Updates".localized(),
secondButtonText: discouraged_osHasExperimentalSupport ? "Continue".localized() : "Run Anyways".localized(),
thirdButtonText: "Quit".localized()) { (response) in
Expand Down
9 changes: 9 additions & 0 deletions Retroactive/StepOne/ChoiceViewController.swift
Expand Up @@ -16,6 +16,7 @@ class ChoiceViewController: NSViewController {
@IBOutlet weak var getStartedSubTitle: DisplayOnlyTextField!
@IBOutlet weak var otherOSSubtitle: NSTextField!
@IBOutlet weak var otherOSImageView: NSImageView!
@IBOutlet weak var transitionHelpButton: HoverButton!

@IBOutlet weak var scrollView: NSScrollView!
@IBOutlet weak var scrollContentView: NSView!
Expand Down Expand Up @@ -62,8 +63,16 @@ class ChoiceViewController: NSViewController {
getStartedSubTitle.stringValue = AppManager.shared.getStartedSubTitle
otherOSSubtitle.stringValue = AppManager.shared.otherOSSubtitle
otherOSImageView.image = AppManager.shared.otherOSImage
if (osAtLeastSonoma) {
otherOSSubtitle.alignment = .center
transitionHelpButton.isHidden = false
transitionHelpButton.title = "Learn how to transition from Retroactive to supported apps".localized() + ""
}
}

@IBAction func transitionButtonClicked(_ sender: Any) {
AppDelegate.current.safelyOpenURL("https://github.com/cormiertyshawn895/Retroactive/blob/master/TRANSITION.md")
}
}

class SingularChoiceViewController: NSViewController {
Expand Down
Binary file modified Retroactive/Support/ApertureFixer/Versions/A/ApertureFixer
Binary file not shown.
Expand Up @@ -3,7 +3,7 @@
<plist version="1.0">
<dict>
<key>BuildMachineOSBuild</key>
<string>19H15</string>
<string>21H1111</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
Expand All @@ -23,23 +23,23 @@
<string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string>9</string>
<string>10</string>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>12B45b</string>
<string>13F100</string>
<key>DTPlatformName</key>
<string>macosx</string>
<key>DTPlatformVersion</key>
<string>11.0</string>
<string>12.3</string>
<key>DTSDKBuild</key>
<string>20A2408</string>
<string>21E226</string>
<key>DTSDKName</key>
<string>macosx11.0</string>
<string>macosx12.3</string>
<key>DTXcode</key>
<string>1220</string>
<string>1341</string>
<key>DTXcodeBuild</key>
<string>12B45b</string>
<string>13F100</string>
<key>LSMinimumSystemVersion</key>
<string>10.10</string>
</dict>
Expand Down
Expand Up @@ -6,7 +6,7 @@
<dict>
<key>Resources/Info.plist</key>
<data>
eNo3So7AM0/IUgKn6/ZQNir15HU=
yB4NObgRkLoZk9x3XFP3nyRY3Lc=
</data>
</dict>
<key>files2</key>
Expand Down Expand Up @@ -37,11 +37,11 @@
<dict>
<key>hash</key>
<data>
eNo3So7AM0/IUgKn6/ZQNir15HU=
yB4NObgRkLoZk9x3XFP3nyRY3Lc=
</data>
<key>hash2</key>
<data>
KsWe/vU0SfFxHX9pzICupm1E2zT7YFEbWeRKuySN6F8=
rsomMg66INzEyKJQTRnF/PPQRJf7GmUC3g3zSv4OzKs=
</data>
</dict>
</dict>
Expand Down
Binary file modified Retroactive/Support/AppKitAperture/Versions/C/AppKit
Binary file not shown.
6 changes: 3 additions & 3 deletions Retroactive/Support/Assets.xcassets/Contents.json
@@ -1,6 +1,6 @@
{
"info" : {
"version" : 1,
"author" : "xcode"
"author" : "xcode",
"version" : 1
}
}
}
@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "supported-banner.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 5c1546a

Please sign in to comment.