I am building a macOS app with an '.Framework' inside it. The '.Framework' is built using the 'Mono.framework'.
I have to bundle the necessary .dyLibs and DLLs in the app before deploying the it to the user's machine.
I am using this script in Xcode to bundle the libs. This script seems to do my job partially.
# Version and locations
MONO_VERSION=6.12.0
MONO_LOCATION=/Library/Frameworks/Mono.Framework/Versions/$MONO_VERSION
LOCATION="${BUILT_PRODUCTS_DIR}"/"${FRAMEWORKS_FOLDER_PATH}"
BIN_LOCATION="${BUILT_PRODUCTS_DIR}/${EXECUTABLE_FOLDER_PATH}"
RES_LOCATION="${BUILT_PRODUCTS_DIR}/${CONTENTS_FOLDER_PATH}/Resources/Resources/Managed"
set -x
# Copy needed files
cp $MONO_LOCATION/lib/libmonosgen-2.0.1.dylib "${LOCATION}"
cp $MONO_LOCATION/lib/libsqlite3.0.dylib "${LOCATION}"
cp $MONO_LOCATION/lib/libmono-native-compat.0.dylib "${LOCATION}"
mkdir -p "${RES_LOCATION}/etc/mono"
cp -R $MONO_LOCATION/etc/mono "${RES_LOCATION}/etc"
sed 's/$mono_libdir\///g' $MONO_LOCATION/etc/mono/config > "${RES_LOCATION}/etc/mono/config"
# Copy system assemblies needed
mkdir -p "${RES_LOCATION}/mono/4.5"
cp $MONO_LOCATION/lib/mono/4.5/mscorlib.dll "${RES_LOCATION}/mono/4.5"
cp $MONO_LOCATION/lib/mono/4.5/Facades/netstandard.dll "${RES_LOCATION}"
cp $MONO_LOCATION/lib/mono/gac/System.Xml/4.0.0.0__b77a5c561934e089/System.Xml.dll "${RES_LOCATION}"
cp $MONO_LOCATION/lib/mono/gac/System.Core/4.0.0.0__b77a5c561934e089/System.Core.dll "${RES_LOCATION}"
cp $MONO_LOCATION/lib/mono/gac/System/4.0.0.0__b77a5c561934e089/System.dll "${RES_LOCATION}"
cp $MONO_LOCATION/lib/mono/gac/System.Configuration/4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll "${RES_LOCATION}"
# Change runtime paths
install_name_tool -change /Library/Frameworks/Mono.framework/Versions/$MONO_VERSION/lib/libmonosgen-2.0.1.dylib @rpath/libmonosgen-2.0.1.dylib "${BUILT_PRODUCTS_DIR}"/"${FRAMEWORKS_FOLDER_PATH}/ConnectionCheckerLibrary.framework/ConnectionCheckerLibrary"
install_name_tool -change /Library/Frameworks/Mono.framework/Versions/$MONO_VERSION/lib/libsqlite3.0.dylib @rpath/libsqlite3.0.dylib "${BUILT_PRODUCTS_DIR}"/"${FRAMEWORKS_FOLDER_PATH}/ConnectionCheckerLibrary.framework/ConnectionCheckerLibrary"
I am still getting the error
The assembly mscorlib.dll was not found or could not be loaded. It should have been installed in the /Library/Frameworks/Mono.framework/Versions/6.12.0/lib/mono/4.5/mscorlib.dll' directory
I am not sure why the 'mscorlib.dll' path is not being set.
I am not sure if I have to use mkbundle for this. This is the first time I am using the Embeddinator - 4000/Mono to build my apps. Any sort of help is appreciated.