您好我试图将应用程序上传到我的iPad,(iOS 5.1) - Jailbroken,
它是一个网络搜索应用,我使用私有API,据我所知,我需要将我的应用的构建版本放在设备/Applications
文件夹中!
(假设我已经使用cyberduck计算了这个过程)
到目前为止一切顺利,一切正常!
但每次我更新我的应用程序的代码时,我需要替换哪些文件?
只有/Applications
目录中的那些或/User/Applications/
中的那些。 。 。 ?
atm每次我更新我的代码似乎代码都不会更新,直到我重新启动设备
在重新启动之前,我通过Xcode获得以下错误:
具有给定包标识符的系统应用程序已经存在 安装在设备上,无法更换。
请帮忙
答案 0 :(得分:4)
仅仅因为您使用私有API并不意味着您始终需要在/Applications
中安装该应用。这取决于哪些私有API,以及您正在尝试做什么。通过Cydia分发的系统应用程序和应用程序通常会安装在/Applications
中。正常的第三方App Store应用程序(我们的)安装在/var/mobile/Applications
下(/User/Applications
是指向/var/mobile/Applications
的链接,因此这两个位置相同)。
因此,默认情况下,Xcode不会在/ Applications中安装应用程序。它会在/var/mobile/Applications
下的某处安装应用。
如果您手动将应用程序放在/Applications
中,然后尝试从Xcode再次构建并运行它,Xcode将会在/Applications/MyAppName.app
中看到该版本,即使它正在尝试安装到{{ 1}},它将根据包标识符(在应用程序的Info.plist文件中指定)识别冲突。
因此,您无法在/var/mobile/Applications/*/MyAppName.app
和/Applications
中安装具有相同捆绑包标识符的应用。我会选择你想要的地方。
如果您想在/var/mobile/Applications
中使用您的应用,请使用脚本进行安装(例如,使用SFTP)。如果您想在/Applications
中使用自己的应用,那么可以直接从Xcode构建并运行。
至于需要重启,这不应该是必要的。您可能需要/var/mobile/Applications
进入您的设备,然后发出ssh
命令:
uicache
或
ssh mobile@iphone
uicache
让SpringBoard识别新安装的应用程序。如果您直接从Xcode运行,则没有必要,但如果您从Xcode构建,然后运行(SFTP)安装脚本,则可能需要运行ssh root@iphone
su mobile -c uicache
。
希望这有帮助。
编辑:我没有遇到编写自定义后期构建脚本/从Xcode中调用的步骤的问题。所以,当我在上面的答案中提到从Xcode运行时,我指的是Xcode工作的默认模式。
答案 1 :(得分:0)
是的,并非所有私有API都需要管理权限;即Apple80211功能(在我的情况下)。
将您的应用程序上传到根文件夹
通常按下Xcode中的“运行”按钮会将应用程序安装在/ Var / mobile / applications目录下,但是,如果Xcode检测到应用程序已存在于/ Applications,则它只使用后者。
因此:当您更新代码时。 。 。 。 - 你必须创建一个新的版本! (如上所述) - 从/ Applications中删除文件夹“ApplicationName” - 并将(新的)更新版本(ApplicationName.app)放入/ Applications目录
Stumbler,是尝试上述步骤的一个很好的例子; Stumbler使用Apple80211功能,要求应用程序在/ Applications中;对代码稍作修改并尝试上述步骤。 。 。 。 代码见:http://blog.guvenergokce.com/iphone-wireless-scanner-ios5/170/
希望这有助于一路走来!
任务i