diff --git a/README.md b/README.md index 660092c..4b12bd4 100644 --- a/README.md +++ b/README.md @@ -58,25 +58,44 @@ - **Installer (.msi)**: Download and run the installer. Recommended for most users. - **Portable (.zip)**: Extract and run `iDescriptor.exe`. No installation required. - **Choco** : + ```bash choco install idescriptor --version=0.1.0 - ``` +``` #### macOS - **Apple Silicon**: Download the `.dmg` file for M1/M2/M3/MX Macs. -- **Intel**: Download the `.dmg` file for Intel-based Macs. +
+ Open the `.dmg` and drag iDescriptor to Applications. +
-Open the `.dmg` and drag iDescriptor to Applications. +Then run the code below after moving the app to Applications +
+ +```shell +xattr -c ~/Applications/iDescriptor.app +``` + +[Click here to learn more about why this is needed](#damaged-error-on-macos). + +- **Intel**: Download the `.dmg` file for Intel-based Macs. +
+ Open the `.dmg` and drag iDescriptor to Applications. +
+ + You shouldn't run into any issues on Intel Macs but if you do, [check this out](#damaged-error-on-macos). #### Linux - **AppImage**: Download, unzip, and run. -- **Arch Linux**: Install from AUR: +- **Arch Linux**: Install from AUR: + ```bash sudo pacman -Syu yay -S idescriptor-git ``` + make sure to do "sudo pacman -Syu" otherwise it's not going to find libimobiledevice>=1.4.0
@@ -224,9 +243,9 @@ You might get this pop-up on any platform this is because this app uses secure b ## Become a Sponsor -Please support us at - AppImage - +Please support us at +AppImage + ## Thanks @@ -266,6 +285,28 @@ For example Or if you'd like to introduce new features, feel free to open an issue or a pull request! +## Damaged Error on macOS + +

+
+

+ +If you encounter a similar "damaged" error when trying to open the app on macOS, you can resolve this by running the following command in the terminal: + +```shell +xattr -c ~/Applications/iDescriptor.app +``` + +You need to run this because macOS blocks apps that are not signed by an Apple Developer ID. By clearing the extended attributes, you can bypass this security feature. + +This not something specific to iDescriptor, for example [check this out](https://github.com/deskflow/deskflow/issues/7606). + +You can be more explicit and only remove the quarantine attribute like so: + +```shell +xattr -dr com.apple.quarantine /Applications/iDescriptor.app +``` + ## Star History [![Star History Chart](https://api.star-history.com/svg?repos=iDescriptor/iDescriptor&type=date&legend=top-left)](https://www.star-history.com/#iDescriptor/iDescriptor&type=date&legend=top-left) diff --git a/resources/repo/damaged-error-macos.png b/resources/repo/damaged-error-macos.png new file mode 100644 index 0000000..9a159b0 Binary files /dev/null and b/resources/repo/damaged-error-macos.png differ diff --git a/scripts/deploy-dmg.sh b/scripts/deploy-dmg.sh index 7d75bd0..2a0972f 100755 --- a/scripts/deploy-dmg.sh +++ b/scripts/deploy-dmg.sh @@ -93,9 +93,29 @@ for lib in "${GST_LIBS[@]}"; do fi done -# Copy FFmpeg libavfilter +# Copy FFmpeg libraries FFMPEG_LIB_DIR="$(brew --prefix ffmpeg)/lib" -cp "${FFMPEG_LIB_DIR}"/libavfilter.*.dylib "${FRAMEWORKS_DIR}/" +FFMPEG_LIBS=( + "libavformat" + "libavcodec" + "libavutil" + "libswscale" + "libavfilter" +) + +for lib_base in "${FFMPEG_LIBS[@]}"; do + # Use find to get the full versioned filename + lib_path=$(find "${FFMPEG_LIB_DIR}" -name "${lib_base}.*.dylib" -print -quit) + if [ -f "$lib_path" ]; then + lib_name=$(basename "$lib_path") + cp "$lib_path" "${FRAMEWORKS_DIR}/" + #These maybe unneeded, macdeployqt already does this but just in case + install_name_tool -id "@rpath/${lib_name}" "${FRAMEWORKS_DIR}/${lib_name}" + echo "Copied and fixed rpath for ${lib_name}" + else + echo "Warning: ${lib_base} library not found in ${FFMPEG_LIB_DIR}" + fi +done macdeployqt "${APP_PATH}" -qmldir=qml -verbose=2