Grasp4Mac
Test downloads
Project with Charles Dewhurst
Grasp home page
Grasp manual
PSI quotes a wrong link : "The official website with the actual version of GRASP can be fount at http://www.ill.eu/instruments-support/instruments-groups/groups/lss/grasp/"
Version v2.0.3 - 27 Feb 2023
The Grasp4Mac bundle contains the embedded bundle grap.app provided by Charles Dewhurst. It is NOT yet signed and notarized.
Grasp4Mac checks for the availability of a suitable MatLab runtime and warns the user if it is missing.
In 2015 macOS El Capitan (10.11) introduced SIP (System Integrity Protection)
When enabled the environment variable DYLD_LIBRARY_PATH is ignored and one has to use the RPATH mechanism instead for loading libraries.
Unfortunately enough some MatLab libraries also use DYLD_LIBRARY_PATH for the access to some data files. These files are not found and Grasp stops.
Error: Could not find version 9.11 of the MATLAB Runtime.
Attempting to load libmwmclmcrrt.9.11.dylib.
This message is missleading since the dylib is found but some some auxiliary files.
Test download: Grasp4Mac-v203.dmg (dmg - 27 Mi) <-- NOT signed/notarized
Version 2.0.0 - 7 Feb 2023
First notarized bundle
Xcode problem
In Xcode 13 and 14, the folder "Products" may not show.
<https://developer.apple.com/forums/thread/77406>; Xcode "Products" folder missing in project navigator
The problem is still present with Xcode 14.2. I prepared a fresh new project and the Products folder never showed up.
The solution for me was inherited from Pulsar's post but with much less editing of the ".pbxproj" file:
1- Quit Xcode
2- Open the bundle MYPROJECT.xcodeproj
3- Edit the file MYPROJECT.pbxproj
4- Search for "Products"
I found the following :
/* Begin PBXGroup section */
5D1FC2932992BC6900AA5910 = {
isa = PBXGroup;
children = (
5D1FC2B92992BEC100AA5910 /* myBinary1 */,
5D1FC29E2992BC6900AA5910 /* myProject */,
5D1FC2BB2992BEF000AA5910 /* myBinary2 */,
5D1FC29D2992BC6900AA5910 /* Products */,
);
5- Simply move the "/* Products */" line to the top of the "children" list
5D1FC29D2992BC6900AA5910 /* Products */,
5D1FC2B92992BEC100AA5910 /* myBinary1 */,
5D1FC29E2992BC6900AA5910 /* myProject */,
5D1FC2BB2992BEF000AA5910 /* myBinary2 */,
6- Save and reopen Xcode.
The folder "Products" was again visible in the project navigator.
Library problem
<https://developer.apple.com/forums/thread/725674> Apple Developer Forums
DYLD_LIBRARY_PATH=.
DYLD_LIBRARY_PATH=/Applications/MATLAB/MATLAB_Runtime/v911/runtime/maci64
DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/Applications/MATLAB/MATLAB_Runtime/v911/sys/os/maci64
DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/Applications/MATLAB/MATLAB_Runtime/v911/bin/maci64
DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/Applications/MATLAB/MATLAB_Runtime/v911/extern/bin/maci64
The RPATH alternative compatible with SIP
install_name_tool -add_rpath "/." grasp
install_name_tool -add_rpath "/Applications/MATLAB/MATLAB_Runtime/v911/bin/maci64" grasp
install_name_tool -add_rpath "/Applications/MATLAB/MATLAB_Runtime/v911/runtime/maci64" grasp
install_name_tool -add_rpath "/Applications/MATLAB/MATLAB_Runtime/v911/sys/os/maci64" grasp
install_name_tool -add_rpath "/Applications/MATLAB/MATLAB_Runtime/v911/extern/bin/maci64" grasp
otool -l grasp | grep -B 1 -A 2 LC_RPATH
This libraries are loaded but auxiliary files are not found since DYLD_LIBRARY_PATH is hidden by SIP.