1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-10-08 23:22:25 +02:00

[iOS] ensure that all RPATH entries of dependencies point to real files

AltStore has issues with symlinks to dylibs
This commit is contained in:
Andrey Filipenkov
2025-10-07 15:00:32 +03:00
parent 7b793bfd78
commit b7aefc198c

View File

@@ -1,7 +1,27 @@
#!/usr/bin/env bash
cd "$CODESIGNING_FOLDER_PATH/Frameworks"
tbbFilename=$(otool -L libNullkiller.dylib | egrep --only-matching 'libtbb\S+')
if [[ -L "$tbbFilename" ]]; then
mv -f "$(readlink "$tbbFilename")" "$tbbFilename"
fi
# AltStore has issues with symlinks to dylibs
cd "$CODESIGNING_FOLDER_PATH/$BUNDLE_FRAMEWORKS_FOLDER_PATH"
# find rpath entries that point to symlinks
rpathSymlinks=()
for binary in "../$EXECUTABLE_NAME" $(find . -type f -iname '*.dylib'); do
echo "checking $binary"
# dyld_info sample output: @rpath/libogg.0.dylib
for lib in $(dyld_info -linked_dylibs "$binary" | awk -F / '/@rpath/ {print $2}'); do
if [ -L "$lib" ]; then
echo "- symlink: $lib"
rpathSymlinks+=("$lib")
fi
done
done
# move real files to symlinks location
echo
for symlink in "${rpathSymlinks[@]}"; do
mv -fv "$(readlink "$symlink")" "$symlink"
done
# remove the rest of the useless symlinks
find . -type l -delete