2011-03-22 59 views
2

我正在为Xcode开发一个应用程序(越狱)。现在我想以编程方式安装.deb文件。我怎样才能做到这一点?我可以执行一条命令来安装它,但是如何?如果我通过Xcode在我的越狱iPhone上安装我的应用程序就足够了吗? (.ipa)还是我需要创建一个.deb?如果是,如何?如何以编程方式在越狱iphone上安装.deb文件?

非常感谢!

祝您有愉快的一天。

编辑:我做了一个应用程序。在这个应用程序中,我有一个文件浏览器(仅适用于文档目录)。在这个目录中有.deb文件。现在,我想以编程方式安装这些.deb文件,如果用户点击一个。我如何去做这件事?

+0

结果,我想知道,太:) – cocos2dbeginner 2011-03-22 16:47:12

回答

0

AFAIK dpkg -i * .deb是安装.deb的命令。但是,您无法在.deb中安装.deb,因为包管理器已被锁定,因此您需要脚本或其他东西。

+0

做我需要让我的应用程序到一个.deb或者是的.ipa足够?你的脚本是什么意思?在应用程序“iFile”中有一个内置的deb安装程序,ifile是一个cydia应用程序... – DevMan 2011-03-22 15:45:03

+0

另一个问题是有没有办法将deb文件移动到“/ private/var/root/Media/Cydia/AutoInstall”? (这是根) – DevMan 2011-03-22 15:47:13

+0

对不起,我没有iphone。 – Bytemain 2011-03-22 16:55:11

-1

AFAIK越狱的iPhone让你安装ipa无证......所以这是不够的......

+0

我认为你不理解我的权利。我做了一个应用程序。在这个应用程序中,我有一个文件浏览器(仅适用于文档目录)。在这个目录中有一个.deb文件。现在我想以程序化方式安装这些.deb文件,如果用户点击其中一个。这个怎么做?作为墓志铭的 – DevMan 2011-03-22 16:31:12

+0

说:语法是dpkg -i filename.deb – MiPnamic 2011-03-22 16:55:30

0

如果你想你的应用程序作为一个包安装,那么,我会用

dpkg -i filename.deb 

您可以以system()调用或exec()调用以"dpkg -i filename.deb"作为命令以编程方式执行此命令。如果您特别使用system(),则可能需要完全限定路径为dpkg(例如/ usr/bin/dpkg ...或其他任何内容...我现在不在我的电话中)。

这可能是你发现你需要有特权才能做到这一点。 See this on how to give your app root privileges

另一种选择,不需要您的应用程序运行的或使用exec()system()电话,是使用该技术I describe in this answer,这是有关如何以编程方式重新启动的iPhone。就像我使用脚本调用reboot命令一样,您可以编写一个脚本来执行dpkg -i filename.deb。你只需要想出一个机制将文件名传递给你的脚本,我认为它会动态改变(除非你的程序使用了一个临时链接,它总是指向当前安装的.deb文件)。

0

许多选项。

  1. 你可以学习的Cydia的源代码。(官方网站提供的源代码)
  2. 从冰冷的Github上学习的源代码。 https://github.com/ripdev/Icy

  3. 简单的方法就是用系统函数调用dpkg命令。

NSString *[email protected]"/var/root/appsync.deb"; 
    NSString *cmdString=[NSString stringWithFormat:@"/usr/bin/dpkg -i %@ >/tmp/dpkg.log;",appsyncDebPath]; 
    const char *cmdChar=[cmdString UTF8String]; 
    system(cmdChar); 

您可以显示来自/tmp/dpkg.log

相关问题