ios - Xcode-通过SFTP上传应用程序到iOS设备

标签 ios xcode debugging jailbreak iphone-privateapi

您好,我正在尝试将应用程序上传到我的 iPad,(iOS 5.1) - 越狱,

它是一个网络搜索应用程序,我正在使用私有(private) API,据我所知,我需要将我的应用程序的构建版本放在设备 /Applications 文件夹中!

(假设我已经弄清楚了流程,使用 cyberduck)

到目前为止一切顺利,一切正常!

但每次我更新我的应用程序代码时,我需要替换哪些文件? 只有 /Applications 目录中的那些或者还有 /User/Applications/ 中的那些。 . . ? 每次我更新我的代码时,atm 似乎代码都不会更新,直到我重新启动设备

在我重新启动之前,我通过 Xcode 收到以下错误:

A system application with the given bundle identifier is already installed on the device and cannot be replaced.

请帮忙

最佳答案

仅仅因为您使用私有(private) API 并不意味着您总是需要在 /Applications 中安装该应用程序。这取决于哪些私有(private) API 以及您要执行的操作。系统应用程序和通过 Cydia 分发的应用程序通常会安装在 /Applications 中。正常的第 3 方 App Store 应用程序(我们的)安装在 /var/mobile/Applications 下(/User/Applications 是指向 /var/mobile/的链接应用程序,所以这两个位置相同)。

因此,默认情况下,Xcode 不会在/Applications 中安装应用程序。它会在 /var/mobile/Applications 下的某处安装应用程序。

如果您手动将您的应用程序放入 /Applications,然后尝试从 Xcode 构建并再次运行它,Xcode 将在 /Applications/MyAppName.app 中看到该版本>,即使它试图安装到 /var/mobile/Applications/*/MyAppName.app,它也会根据包标识符(在应用程序的信息中指定)识别出冲突。 plist 文件)。

因此,您不能在 /Applications/var/mobile/Applications 中安装具有相同包标识符的应用程序。我会选择你想要的地方。

如果您想要在 /Applications 中安装您的应用程序,请使用脚本来安装它(例如,使用 SFTP)。如果您希望您的应用程序位于 /var/mobile/Applications 中,那么您可以直接从 Xcode 构建并运行

至于需要重启,那应该是没有必要的。您可能需要 ssh 进入您的设备,并发出 uicache 命令:

ssh mobile@iphone
uicache

ssh root@iphone
su mobile -c uicache

让 SpringBoard 识别新安装的应用程序。如果您直接从 Xcode 运行则没有必要,但如果您从 Xcode 构建,然后运行 ​​(SFTP) 安装脚本,那么您可能需要运行 uicache

希望这对您有所帮助。

编辑:我没有涉及编写要从 Xcode 中调用的自定义构建后脚本/步骤的问题。因此,当我在上述回答中提到从 Xcode 运行时,我指的是 Xcode 工作的默认模式。

关于ios - Xcode-通过SFTP上传应用程序到iOS设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12607914/

相关文章:

ios - 何时更新我的​​持久存储(核心数据)?

ios - 将数组组合成一个 url 字符串

ios - 配置文件与包标识符不匹配

objective-c - 在 iOS 上将 NSString 转换为 NSDate 的正确方法?

ios - 在 Swift 中使用深度链接打开其他应用程序

c++ - 设置 VS 调试器的字节顺序

java - Android调试奇怪的错误

ios - 如何使用 StoryBoard 将 UIButton 添加为 UIBarButtonItem?

iphone - 在iOS前台应用程序时获取推送通知

asp.net - 如何在使用 VB 6.0 从 ASPX 页面调用的 IIS 7.0(Windows Server 2008 R2) 中调试 Com dll(通过 Interop 访问)