我创建了一个"外部构建系统"在Xcode中项目运行时运行我的自定义Makefile。默认情况下,这可以正常工作,但是当我想传递它-C ~/Desktop/GIFPaper/ package install
时,所以完整的shell命令等效于:
make -C ~/Desktop/GIFPaper/ package install
我收到此错误:
/Applications/Xcode.app/Contents/Developer/usr/bin/make package requires dpkg-deb.
make: *** [internal-package-check] Error 1
Program ended with exit code: 2
奇怪的是我安装了dpkg,如果我打开终端并将目录更改为:
/Applications/Xcode.app/Contents/Developer/usr/bin/
和运行:
make -C ~/Desktop/GIFPaper/ package install
一切正常。到目前为止,我已添加:
-C ~/Desktop/GIFPaper/ package install
作为 Run 方案的参数。我做错了什么?
答案 0 :(得分:1)
我明白了,对于今后有这个问题的人。使用curl http://debmaker-osx.googlecode.com/svn-history/r5/trunk/dpkg-deb > dpkg-deb
下载dpkg-deb,然后将其权限设置为chmod +x dpkg-deb
的可执行文件,然后使用sudo cp dpkg-deb /Applications/Xcode.app/Contents/Developer/usr/bin/dpkg-deb
将其复制到Xcode bin目录
希望这有帮助!
答案 1 :(得分:1)
我猜你使用Makefile取决于这个文件(或类似的规则):
https://github.com/DHowett/theos/blob/master/makefiles/package/deb.mk
它要求dpkg-deb
在路径中,否则将失败并显示您发布的错误消息。
你说你安装了dpkg,但这并不意味着从Xcode调用时可以使用名为dpkg-deb
的可执行文件。实际上,使用外部构建系统,可以使用受限制的PATH调用make。您安装dpkg-deb和复制到/Applications/Xcode.app/Contents/Developer/usr/bin/
的解决方案非常脏,并且涉及在Xcode本身中安装缺少的二进制文件,在默认PATH的第一个目录中。
或者,您可以通过检查"在环境中传递构建设置"直接从Xcode修改PATH。 (这是默认设置)并添加PATH构建设置。理想值为${inherited}:/usr/local/bin
或${inherited}:/opt/local/bin
,具体取决于实际安装dpkg-deb
的位置。
答案 2 :(得分:1)
我有这个问题。
首先我用brew install dpkg
安装了dpkg,但是如果我运行make package install
我收到了这个错误
dpkg-deb: file `com.mycompany.mytweak.deb' contains ununderstood data member data.tar.xz , giving up
dpkg: error processing com.mycompany.mytweak.deb (--install):
subprocess dpkg-deb --fsys-tarfile returned error exit status 2
Errors were encountered while processing:
这是因为dpkg的压缩算法与iphone不兼容,所以我只是使用
备份我安装的dpkg-deb mv /usr/local/bin/dpkg-deb /usr/local/bin/dpkg-deb.bak
我在
中复制了dpkg-deb locate/Applications/Xcode.app/Contents/Developer/usr/bin/
在我使用
安装dpkg.deb的文件夹中sudo cp /Applications/Xcode.app/Contents/Developer/usr/bin/dpkg-deb /usr/local/bin/dpkg-deb
现在可行。