试图让openframeworks构建我的应用程序,以便我可以从任何地方打开它,它将从应用程序资源文件夹中加载所需的图像。
我认为这是相对联系?
之前我已经使用旧的xcode和oF 61完成了它。
为此,我将所需的图像拖到左侧的项目文件中,并将其添加到可执行目标中,并在“构建阶段” - > '复制文件'。
一直尝试各种方法,上次解决问题的ofSetDataPathRoot()这次对我来说都不适合。
任何想法/帮助将不胜感激!
谢谢
答案 0 :(得分:8)
首先,您需要告诉xCode通过添加构建阶段将/ bin / data目录复制到应用程序包中:
1. Click on your project in the Project Navigator
2. Select "Build Phases"
3. Toggle open the "Run Script" section and paste in the following:
cp -r bin/data "$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources";
然后告诉您的应用程序在捆绑包中找到相对于其自身的数据文件夹的位置。
在您的oF应用的设置方法中:
ofSetDataPathRoot("../Resources/data/");
答案 1 :(得分:0)
ofSetDataPathRoot()
应解决此问题。也许您正在错误地设置替换根路径?
尝试在字符串路径上自己调用ofToDataPath()并打印出结果,然后在.app包中使用Terminal和cd
来检查路径是否正确。路径是相对于.app包中实际可执行文件的位置表示的,因此如果可执行文件位于myApp.app/Contents/MacOS/myApp
且数据文件位于myApp.app/Contents/Resources
,则ofToDataPath( "texture.png" )
应返回类似{ {1}}。
您可以通过调用../Resources/texture.png
仔细检查当前工作目录(我的示例中为myApp.app/Contents/MacOS
),打开终端并输入getcwd()
以获取更多信息。
答案 2 :(得分:0)
oF现在设置数据路径root ,默认对ofToDataPath()
进行内部调用。你用的是什么版本?
您是否查看了产品的包装内容,以确保您的资源在正确的构建阶段获得副本?