来自Cydia的应用程序的Settings.bundle&keychain不起作用

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

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

我试着将安装的.app文件移动到var / mobile / Applications / XXXXXX / myapp.app中,并使用mobile:mobile作为它的主人。 它没有帮助。

任何解决scheme,使这项工作?

设置包

越狱应用程序的设置工作有点不同。 你需要做一些类似于正常的Settings.bundle,但是有不同之处。

看到这里的一些信息 。

和这里

和这里

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

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

钥匙扣

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

 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执行此操作。