[PR #1100] [MERGED] Use Application ID when storing apps #1814

Closed
opened 2026-03-03 19:09:05 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/PlayCover/PlayCover/pull/1100
Author: @TheMoonThatRises
Created: 9/19/2023
Status: Merged
Merged: 12/8/2023
Merged by: @XuYicong

Base: developHead: fix/use-application-id


📝 Commits (9)

  • d3a5e11 feat: init of using app id
  • 7b7b3a2 fix: discord rpc
  • b2d51f1 Merge branch 'fix/swordrpc' into fix/use-application-id
  • b9b8029 add and move alias function
  • 0b4b27a update bundleid cache
  • 5e3efe8 fix cache prune
  • d5b150d Merge branch 'develop' into fix/use-application-id
  • cd100af fix merge
  • a79a68f fix removing wrong file

📊 Changes

7 files changed (+160 additions, -68 deletions)

View changed files

📝 PlayCover/AppInstaller/Installer.swift (+2 -2)
📝 PlayCover/Model/PlayApp.swift (+19 -28)
📝 PlayCover/Utils/Extensions/PlayAppExtensions.swift (+19 -0)
📝 PlayCover/ViewModel/AppsVM.swift (+67 -3)
📝 PlayCover/Views/AppSettingsView.swift (+5 -10)
📝 PlayCover/Views/Uninstaller.swift (+47 -23)
📝 PlayCover/en.lproj/Localizable.strings (+1 -2)

📄 Description

Requires #1130.

This switches from using the name of the application to using the ID of the application, which should be unique and exists for every app. This fixes the problem with Mobile Legends (#668) where the character : causes unintentional issues with the application, which could also affect other apps with unique symbols (e.g. #1104).

This update will also refactor the way applications are stored in the PlayCover container (~/Library/Containers/io.playcover.PlayCover), storing them all under one directory. The PR will also change the way certain behind-the-scenes functionality will work (and fix them), such as:

  • File pruner (more aggressive and in-depth)
  • App container (actually make the variable populated, and therefore fixes some aspects of the app)
  • App aliases (a fundamental feature to this PR)

To also decrease confusion as to which application is being launched, every app will have an alias created by default (under ~/Applications/PlayCover) with the display name of the application, and PlayCover will launch apps via the alias.

Todo list:

  • Threaded file enumeration (#1130)
  • Implementing the alias
  • General update cleanup (?)

Features that could be implemented in this PR but currently isn't:

  • Allow the user to store the app anywhere (including different directories or off the drive) (would require this PR to be changed)

All the features in this PR are subject to change and are not final.


🔄 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/1100 **Author:** [@TheMoonThatRises](https://github.com/TheMoonThatRises) **Created:** 9/19/2023 **Status:** ✅ Merged **Merged:** 12/8/2023 **Merged by:** [@XuYicong](https://github.com/XuYicong) **Base:** `develop` ← **Head:** `fix/use-application-id` --- ### 📝 Commits (9) - [`d3a5e11`](https://github.com/PlayCover/PlayCover/commit/d3a5e11e07f5a2bb5fbfdfd8b664b525e6e0815c) feat: init of using app id - [`7b7b3a2`](https://github.com/PlayCover/PlayCover/commit/7b7b3a2d540952ebbc4d44be1334c7a052228878) fix: discord rpc - [`b2d51f1`](https://github.com/PlayCover/PlayCover/commit/b2d51f1c8199e3346be1099c6f9d115ba8a2f545) Merge branch 'fix/swordrpc' into fix/use-application-id - [`b9b8029`](https://github.com/PlayCover/PlayCover/commit/b9b8029b3939f734d9e2479126bf8cc7397319ed) add and move alias function - [`0b4b27a`](https://github.com/PlayCover/PlayCover/commit/0b4b27aaaefed819925a2acad42883f9dbcb13b8) update bundleid cache - [`5e3efe8`](https://github.com/PlayCover/PlayCover/commit/5e3efe8afa184ad33fcf26997089d9596ffe3e45) fix cache prune - [`d5b150d`](https://github.com/PlayCover/PlayCover/commit/d5b150dbe0c646f8fc80a6056e3c35a9fe33318a) Merge branch 'develop' into fix/use-application-id - [`cd100af`](https://github.com/PlayCover/PlayCover/commit/cd100afb44c146dbfeab598c417df885523bf030) fix merge - [`a79a68f`](https://github.com/PlayCover/PlayCover/commit/a79a68f98e821c694db392bad817c622ea975459) fix removing wrong file ### 📊 Changes **7 files changed** (+160 additions, -68 deletions) <details> <summary>View changed files</summary> 📝 `PlayCover/AppInstaller/Installer.swift` (+2 -2) 📝 `PlayCover/Model/PlayApp.swift` (+19 -28) 📝 `PlayCover/Utils/Extensions/PlayAppExtensions.swift` (+19 -0) 📝 `PlayCover/ViewModel/AppsVM.swift` (+67 -3) 📝 `PlayCover/Views/AppSettingsView.swift` (+5 -10) 📝 `PlayCover/Views/Uninstaller.swift` (+47 -23) 📝 `PlayCover/en.lproj/Localizable.strings` (+1 -2) </details> ### 📄 Description Requires #1130. This switches from using the name of the application to using the ID of the application, which should be unique and exists for every app. This fixes the problem with Mobile Legends (#668) where the character `:` causes unintentional issues with the application, which could also affect other apps with unique symbols (e.g. #1104). This update will also refactor the way applications are stored in the PlayCover container (`~/Library/Containers/io.playcover.PlayCover`), storing them all under one directory. The PR will also change the way certain behind-the-scenes functionality will work (and fix them), such as: - File pruner (more aggressive and in-depth) - App container (actually make the variable populated, and therefore fixes some aspects of the app) - App aliases (a fundamental feature to this PR) To also decrease confusion as to which application is being launched, every app will have an alias created by default (under `~/Applications/PlayCover`) with the *display name* of the application, and PlayCover will launch apps via the alias. Todo list: - [x] Threaded file enumeration (#1130) - [x] Implementing the alias - [x] General update cleanup (?) Features that could be implemented in this PR but currently isn't: - Allow the user to store the app anywhere (including different directories or off the drive) (would require this PR to be changed) All the features in this PR are subject to change and are not final. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-03-03 19:09:05 +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#1814
No description provided.