3

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

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

(可以说我已经弄清楚了这个过程,使用cyberduck)

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

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

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

具有给定捆绑标识符的系统应用程序已安装在设备上,无法替换。

请帮忙

4

2 回答 2

4

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

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

如果您手动将应用程序放入/Applications,然后尝试从 Xcode 再次构建并运行它,Xcode 将在 中看到版本/Applications/MyAppName.app,即使它试图安装到/var/mobile/Applications/*/MyAppName.app,它也会根据捆绑标识符(在应用程序的 Info.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 工作的默认模式。

于 2012-09-26T20:59:37.210 回答
0

是的,并非所有私有 API 都需要管理权限;即 Apple80211 功能虽然(在我的情况下)。

将应用程序上传到根文件夹时

  • 构建归档应用程序:(发布构建)
  • 导航到默认构建路径
  • /Users/“用户”/Library/Developer/Xcode/DerivedData/“应用程序名称”/Build/Products/Debug-iphoneos/
  • 构建文件在上面的目录中,“ApplicationName.app”
  • 将此文件上传到根应用程序目录 /Application
  • (不适用 /Private/Var/Mobile/Application)
  • 使用 SSH 访问 iOS 设备的文件目录
  • 使用 SFT 协议进行文件传输——(Cyber​​Duck 是一款不错的软件)

通常在 Xcode 中按下“运行”按钮会将应用程序安装到 /Var/mobile/applications 目录,但是,如果 Xcode 检测到应用程序已经存在于 /Applications,那么它只会使用后者。

因此:当您更新代码时。. . . - 您必须创建一个新版本!(如上所述) - 从 /Applications 中删除文件夹“ApplicationName” - 并将您的(新)更新版本(ApplicationName.app)放入 /Applications 目录

Stumbler,是尝试上述步骤的绝佳示例;Stumbler 使用要求应用程序位于 /Applications 内的 Apple80211 功能;对代码稍作改动并尝试上述步骤。. . . 代码可在:http: //blog.guvenergokce.com/iphone-wireless-scanner-ios5/170/

希望这可以帮助一些人!

塔斯基

于 2012-09-27T06:32:01.837 回答