1

我正在开发与 Cydia 一起分发的应用程序。所以它安装在 /Applications 文件夹中,而不是像通常的 AppStore 应用程序那样安装在 /var/mobile/Applications/ 中。而且我认为安装会给我带来一些巨大的问题。起初,用著名的 Apple 的 KeychainItemWrapper 读写钥匙串根本不起作用。另外,我的 settings.bundle 也不起作用。应用程序设置不显示在 Settings.app 中。

当我在模拟器中测试应用程序,甚至直接将其从 Xcode 部署到设备时(它被部署到 /var/mobile/Applications/),一切都像魅力一样。

我尝试将已安装的 .app 移动到 var/mobile/Applications/XXXXXX/myapp.app 并让 mobile:mobile 成为它的所有者。它没有帮助。

有什么解决方案可以完成这项工作吗?

4

1 回答 1

1

设置包

越狱应用程序的设置工作方式略有不同。你需要做一些类似于普通的 Settings.bundle 的事情,但还是有区别的。

有关这方面的一些信息,请参见此处

和这里

和这里

您应该使您的应用程序依赖于preferenceloader包,这有助于越狱应用程序管理设置。所以,你的 DEBIAN/control 文件中会有这样的东西:

package: com.mycompany.MyApp
Name: MyApp
Version: 2.2-2
Architecture: iphoneos-arm
Depends: preferenceloader
Description: Do something for jailbreak iPhones
...

钥匙链

为了使钥匙串适用于我的应用程序,我需要向我的二进制文件添加权利。我发现需要哪些权利的方法是首先以正常方式构建应用程序(不是越狱应用程序,只是使用 Xcode 的普通 3rd 方应用程序商店应用程序)。然后,我检查了 Xcode 构建的二进制文件中的权利:

ldid -e MyApp.app/MyApp

然后将这些权利拼接到一个新的 entitlements.xml 文件中。有关应用权利的示例,请参见此处。我相信您的应用程序的权利应该是这样的:

  <key>application-identifier</key>
  <string>L44W4W8ABC.com.mycompany.MyApp</string>
  <key>aps-environment</key>
  <string>development</string>
  <key>com.apple.developer.team-identifier</key>
  <string>L44W4W8ABC</string>

这种添加权利的方法可能不是必需的。有关其他选项,请参阅您的问题下方的评论。但是,我出于其他原因添加了其他权利,并且无法通过 Xcode 做到这一点。

于 2012-08-10T04:40:11.940 回答