Progress! I hacked the BF code (in my local repo) and now I can connect to my Muse headset and distribute my app to TestFlight via App Store Connect!
I changed line #42 in ble_lib_board.cpp to read:
std::string lib_name = "../libsimpleble-c.dylib.framework/libsimpleble-c.dylib";
According the man page for dlopen(), a codesigned app with entitlements (which means any iOS app uploaded to the App Store) must use full paths for its dylibs. So my hack gives us a full path, but relative to the location of the calling binary, in this case libBoardController.dylib. According to an error message I received recently from App Store Connect, all frameworks must be located under /Frameworks, so that at least gives us a basis for forming the full paths.
According to the same man page, dlopen() should also use @rpath, which is built into the calling dylib. That would be I think the optimal solution, so I will play with that next.
Topic:
App Store Distribution & Marketing
SubTopic:
General
Tags: