Skip to content

Temporary directories left in plugins directory #5394

@low-batt

Description

@low-batt

IINA Version

1.4.0-beta1 Build 150

Release Channel

Other

macOS Version

macOS 15.3

Steps to Reproduce

Not sure how the temporary directories get left around. They are created when installing plugins.

Expected Behavior

IINA follows Apple conventions for where temporary directories and files should be located and removes them once they are not needed.

Actual Behavior

I found temporary directories in the plugins directory:

low-batt@urp plugins$ pwd
/Users/low-batt/Library/Application Support/com.colliderli.iina/plugins
low-batt@urp plugins$ ls -a
.						.temp.087A2381-64F0-4B43-953D-9A680CA4F6E0	io.iina.opensub.iinaplugin
..						.temp.0BBE39BC-FB6B-49BA-AB84-9B250E49BA0B	io.iina.user-script.iinaplugin
.data						.temp.6E97C4BE-439A-4E7F-AC39-A91FBBB831DE	io.iina.ytdl.iinaplugin
.preferences					.temp.BC54E279-075B-459F-AC9D-02FCA656E10C
low-batt@urp plugins$ 

Apps should use itemReplacementDirectory with url(for:in:appropriateFor:create:) to create a temporary directory.

I believe these files are being created by the JavascriptPlugin.create method which uses the plugins directory:

    let pluginsRoot = Utility.pluginsURL
    let tempFolder = ".temp.\(UUID().uuidString)"

There is cleanup code. Not sure why these temp directories were left around. When apps use the recommended directory for temporary files they are still supposed to clean up the files, but if for any reason they don't macOS will eventually reclaim the space.

Crash Report or Process Sample

No response

Logs

No response

Sample Files

No response

How often can you reproduce the issue

Unknown.

Required Actions

  • I tried my best to search from the existing issues (including closed issues) and didn't find duplicated issues.

Optional Actions

  • I tested with the Nightly build and confirmed the issue is not fixed.
  • I tested with the latest version of mpv and confirmed mpv doesn't have this issue.

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions