Where are the Plex.app bundle resources?

Unable to build installable Plex.app due to missing resources
I've cloned the elan/plex GitHub repo and, after much searching of the wiki and forums, have managed to get Plex to build in Xcode. I've also managed to get the necessary external frameworks copied into the Plex.app bundle and linked properly. However, I'm unable to build a complete, installable Plex.app bundle since the git repo seems to be missing a lot of the contents of Plex.app/Contents/Resources/Plex/.

Where can I find these necessary bundle resources? And how are Plex releases built if the resources aren't in git? Are they in some other repository?

Anyone?

I don’t think anyone has specifically mentioned the Resources directory (only the libraries, which I see you’ve already resolved), but from what Elan said in another post there is probably a lot of stuff not included in the git repo that gets bundled into a release - I think your only option is to take it from an existing Plex install…



Certainly in the case of “Plex Media Server.app” since that’s closed source, not open source.

Sorry, been working on getting the next release in shape so I didn’t see this. We use a script to prepare the XCode build for insertion into a Plex.app bundle. This should give you some idea, although you’ll need to change some paths, obviously :slight_smile:



So to clarify, we develop with PLEX_HOME set (mine is set to “/Users/elan/Code/C++/Eclipse/Plex.app/Contents/Resources/Plex”) to point to an existing app bundle.



This is the script we use to take an XCode build and insert it into that bundle.



#!/bin/sh<br />
cp ./build/Release/Plex.app/Contents/MacOS/Plex ../Plex.app/Contents/MacOS/<br />
chmod 755 ../Plex.app/Contents/MacOS/Plex<br />
cp ./build/Release/Plex.app/Contents/Info.plist ../Plex.app/Contents/<br />
cp ./build/Release/Plex.app/Contents/_CodeSignature/CodeResources ../Plex.app/Contents/_CodeSignature<br />
cp ./build/Release/Plex.app/Contents/Resources/* ../Plex.app/Contents/Resources<br />
cp ./build/Release/Plex.app/Contents/Resources/Plex/PlexHelper ../Plex.app/Contents/Resources/Plex/<br />
cp ./build/Release/Plex.app/Contents/MacOS/CrashReporter ../Plex.app/Contents/MacOS/<br />
cp ./build/Release/frontrowlauncher ../Plex.app/Contents/MacOS/<br />
cp ./build/Release/relaunch ../Plex.app/Contents/MacOS/<br />
<br />
install_name_tool -change /opt/local/lib/libGLEW.1.5.1.dylib @executable_path/../Frameworks/libGLEW.1.5.1.dylib ../Plex.app/Contents/MacOS/Plex <br />
install_name_tool -change /opt/local/lib/libcdio.6.dylib @executable_path/../Frameworks/libcdio.6.dylib ../Plex.app/Contents/MacOS/Plex <br />
install_name_tool -change /opt/local/lib/libfreetype.6.dylib @executable_path/../Frameworks/libfreetype.6.dylib ../Plex.app/Contents/MacOS/Plex <br />
install_name_tool -change /opt/local/lib/libfribidi.0.dylib @executable_path/../Frameworks/libfribidi.0.dylib ../Plex.app/Contents/MacOS/Plex <br />
install_name_tool -change /opt/local/lib/liblzo.1.dylib @executable_path/../Frameworks/liblzo.1.dylib ../Plex.app/Contents/MacOS/Plex<br />
install_name_tool -change /opt/local/lib/libmad.0.dylib @executable_path/../Frameworks/libmad.0.dylib ../Plex.app/Contents/MacOS/Plex<br />
install_name_tool -change /opt/local/lib/libogg.0.dylib @executable_path/../Frameworks/libogg.0.dylib ../Plex.app/Contents/MacOS/Plex<br />
install_name_tool -change /opt/local/lib/libjpeg.62.dylib @executable_path/../Frameworks/libjpeg.62.dylib ../Plex.app/Contents/MacOS/Plex<br />
install_name_tool -change /opt/local/lib/libvorbis.0.dylib @executable_path/../Frameworks/libvorbis.0.dylib ../Plex.app/Contents/MacOS/Plex<br />
<br />
#install_name_tool -change python24-osx.so @executable_path/../Frameworks/libpython2.4.dylib ../Plex.app/Contents/MacOS/Plex<br />
install_name_tool -change /opt/local/lib/libpcre.0.dylib @executable_path/../Frameworks/libpcre.0.dylib ../Plex.app/Contents/MacOS/Plex<br />
install_name_tool -change /opt/local/lib/libfontconfig.1.dylib @executable_path/../Frameworks/libfontconfig.1.3.0.dylib ../Plex.app/Contents/MacOS/Plex<br />
install_name_tool -change /opt/local/lib/libiconv.2.dylib /usr/lib/libiconv.2.dylib ../Plex.app/Contents/MacOS/Plex<br />
install_name_tool -change /opt/local/lib/libz.1.dylib /usr/lib/libz.1.dylib ../Plex.app/Contents/MacOS/Plex<br />
install_name_tool -change /opt/local/lib/libbz2.1.0.dylib /usr/lib/libbz2.1.0.dylib ../Plex.app/Contents/MacOS/Plex<br />
install_name_tool -change /opt/local/lib/libsqlite3.0.dylib /usr/lib/libsqlite3.0.dylib ../Plex.app/Contents/MacOS/Plex<br />
<br />
install_name_tool -change /opt/local//lib/libSDL-1.2.0.dylib @executable_path/../Frameworks/libSDL-1.2.0.dylib ../Plex.app/Contents/MacOS/Plex<br />
install_name_tool -change /opt/local/lib/libSDL_image-1.2.0.dylib @executable_path/../Frameworks/libSDL_image-1.2.0.dylib ../Plex.app/Contents/MacOS/Plex<br />
install_name_tool -change /opt/local/lib/libSDL_mixer-1.2.0.dylib @executable_path/../Frameworks/libSDL_mixer-1.2.0.dylib ../Plex.app/Contents/MacOS/Plex<br />
install_name_tool -change /opt/local/lib/mysql5/mysql/libmysqlclient.15.dylib @executable_path/../Frameworks/libmysqlclient.16.dylib ../Plex.app/Contents/MacOS/Plex<br />
install_name_tool -change /opt/local/lib/samba3/libsmbclient.dylib @executable_path/../Frameworks/libsmbclient.dylib ../Plex.app/Contents/MacOS/Plex<br />
<br />
rm ../Plex.app/Contents/Resources/Plex/system/profiles.xml<br />
rm ../Plex.app/Contents/Resources/Plex/system/mediasources.xml<br />
<br />
codesign -f -s "Plex" ../Plex.app

facepalm Y’know, I saw that script in another post, but the only bit I actually ‘read’ was the section on libraries - I missed all the copy operations at the head of the script - otherwise I’d have linked to it here.



The eyes were seeing, but the brain wasn’t interpreting :smiley:

Excellent, this is exactly what I needed. Thanks!

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.