[PR #830] [MERGED] Fix XCLT-less Installer #1765

Closed
opened 2026-03-03 19:08:49 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/PlayCover/PlayCover/pull/830
Author: @IsaacMarovitz
Created: 3/1/2023
Status: Merged
Merged: 3/2/2023
Merged by: @IsaacMarovitz

Base: xcode-less-installerHead: installer-fix


📝 Commits (10+)

📊 Changes

1 file changed (+174 additions, -179 deletions)

View changed files

📝 PlayCover/Utils/PlayTools.swift (+174 -179)

📄 Description

This should fix XCLT-less installer for realsies this time. Sometimes stuff will fail to install the first time, just try it again and it should work (not sure why lol).

What this PR does:

  • Reimplements install_name_tool replacement this time it can handle weak and strong LCs
  • Introduces several major optimisations to clean up code and significantly reduces the number of writes to disk

Thinks to do:

  • Cleanup PlayTools.swift code
  • Deal with the "Not enough space in binary" issue
  • Maybe work to replace the LC at its original index rather than appending
  • Fix missing padding at end of header

Apps I've tested:

  • Genshin Impact (Works)
  • Payback2 (Works)
  • Eversoul (Works)
  • Geometry Dash (Works)
  • Duolingo (Opens, then crashes)
  • Netflix (Works)

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/PlayCover/PlayCover/pull/830 **Author:** [@IsaacMarovitz](https://github.com/IsaacMarovitz) **Created:** 3/1/2023 **Status:** ✅ Merged **Merged:** 3/2/2023 **Merged by:** [@IsaacMarovitz](https://github.com/IsaacMarovitz) **Base:** `xcode-less-installer` ← **Head:** `installer-fix` --- ### 📝 Commits (10+) - [`5164667`](https://github.com/PlayCover/PlayCover/commit/5164667f36fd9bb3dd5a852d8f6e5b1f37bcc5ed) Revert "Add `install_name_tool` replacement (#794)" - [`773fc60`](https://github.com/PlayCover/PlayCover/commit/773fc603eab27cbf6cf46006cff6e579c137e9bc) Comment the theory - [`8ea5eba`](https://github.com/PlayCover/PlayCover/commit/8ea5ebac3989c49206de9b5bee0707a34d53cabf) Yipee - [`3e6f257`](https://github.com/PlayCover/PlayCover/commit/3e6f257569ccd5c5a35dd44724eb02cc3dc649e0) SwiftLint - [`9623566`](https://github.com/PlayCover/PlayCover/commit/9623566ce1723f2005149580294d7f521d30300e) Step 4 - [`e63cd37`](https://github.com/PlayCover/PlayCover/commit/e63cd376b45a6121d7fdc84fa1bdf8bb226a9d15) SwiftLint - [`441c6c2`](https://github.com/PlayCover/PlayCover/commit/441c6c221e5aa11a962131be6a22d2a170808b24) Fix cast whoopsie - [`e68fe23`](https://github.com/PlayCover/PlayCover/commit/e68fe2393228f522d56dc3cd80fc7998b96f0b5c) Fixes - [`49e32ae`](https://github.com/PlayCover/PlayCover/commit/49e32aec2fd71d3499a26cc989ce11411dededd3) Some fixes and cleanup - [`050d75d`](https://github.com/PlayCover/PlayCover/commit/050d75df974d56b3265c64a9636bceefc16bf0f3) Spacing ### 📊 Changes **1 file changed** (+174 additions, -179 deletions) <details> <summary>View changed files</summary> 📝 `PlayCover/Utils/PlayTools.swift` (+174 -179) </details> ### 📄 Description This should fix XCLT-less installer for realsies this time. Sometimes stuff will fail to install the first time, just try it again and it should work (not sure why lol). What this PR does: - Reimplements `install_name_tool` replacement this time it can handle weak and strong LCs - Introduces several major optimisations to clean up code and significantly reduces the number of writes to disk Thinks to do: - [x] Cleanup PlayTools.swift code - [x] Deal with the "Not enough space in binary" issue - [x] Maybe work to replace the LC at its original index rather than appending - [x] Fix missing padding at end of header Apps I've tested: - Genshin Impact (Works) - Payback2 (Works) - Eversoul (Works) - Geometry Dash (Works) - Duolingo (Opens, then crashes) - Netflix (Works) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-03-03 19:08:49 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/PlayCover#1765
No description provided.