Skip to content

Instantly share code, notes, and snippets.

@Kmohamed
Created November 28, 2019 10:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Kmohamed/5e471a9996db31d5523a414b80bc2d18 to your computer and use it in GitHub Desktop.
Save Kmohamed/5e471a9996db31d5523a414b80bc2d18 to your computer and use it in GitHub Desktop.
Generate Fat binary for iOS System symbols
#!/bin/sh
BASEDIR=`echo "${PWD}"`
DIRECTORY="${BASEDIR}/SystemSymbolsFat"
SystemSymbols="${BASEDIR}/SystemSymbols"
SystemSymbols_arm64e="${BASEDIR}/SystemSymbols-arm64e"
#----Creating a clean directory----
if [ -d "${DIRECTORY}" ]; then
rm -rf "${DIRECTORY}"
fi
mkdir "${DIRECTORY}"
echo "--------Files missing in arm64--------"
for file1 in "${SystemSymbols_arm64e}"/*; do
file_name1="${file1##*/}"
file_missing=true
for file2 in "${SystemSymbols}"/*; do
file_name2="${file2##*/}"
if [[ $file_name1 == $file_name2 ]]; then
file_missing=false
fi
done
if [[ "$file_missing" == true ]]; then
echo "${file_name1}"
cp "${file1}" "${DIRECTORY}/"
fi
done
echo "--------Files missing in arm64e--------"
for file1 in "${SystemSymbols}"/*; do
file_name1="${file1##*/}"
file_missing=true
for file2 in "${SystemSymbols_arm64e}"/*; do
file_name2="${file2##*/}"
if [[ $file_name1 == $file_name2 ]]; then
file_missing=false
fi
done
if [[ "$file_missing" == true ]]; then
echo "${file_name1}"
cp "${file1}" "${DIRECTORY}/"
fi
done
#----Copying libraries----
echo "--------Fat libraries name--------"
for lib_path in "${SystemSymbols}"/*; do
file_name="${lib_path##*/}"
lip_path_e="$SystemSymbols_arm64e/$file_name"
if [ -f "${lip_path_e}" ]; then
echo "${file_name}"
lipo "${lib_path}" "${lip_path_e}" -create -output "${DIRECTORY}"/"${file_name}"
fi
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment