我使用的越狱+的AppSync + iOS5.0.1设备(不具有开发许可证,但有一些技巧,我可以运行在我的设备上的应用程序)
现在我想使用私有API launchApplicationWithIdentifier:暂停:. 所以,我需要添加
<key>com.apple.springboard.launchapplications</key>
<true/>
到myApp.entitlements.plist文件。 然后,它应该工作,但我仍然有错误
'Receiver type 'UIApplication' for instance message does not declare a method
with selector 'launchApplicationWithIdentifier:suspended:''
然后我发现有人说,如果我想使用Entitlements.plist代码签名必须启用。 是真的吗? 我必须有一个开发者许可证?
或者是有使用这种方法的任何其他方式? 我读到有关如何使用私有API的一些方法。 这似乎很难。 我是新来的iOS开发。
谢谢。
我看到您的帖子两个问题/问题:
1)你的错误
“接收器类型‘的UIApplication launchApplicationWithIdentifier’例如消息不具有选择声明的方法‘:悬浮:’”
那是一个编译器错误? 这听起来像也许是。 事情是这样的。 还有大量的Objective-C类的集合中的公共框架中仍然有他们一些私人的方法。 因此,在正常的头文件(.h文件)为了公共框架,这些私有方法将不会列出。 但是,他们在那里的动态库。 如果你想建立一个使用这些应用程序,然后解决问题的方法之一是找到完整的报头的副本。
例如, 以下是完整UIApplication.h头部的拷贝 。
然后,您可以复制的私有方法的声明,并在自己的代码,声明他们就像这样:
// Used to disable warning for non-public methods
@interface UIApplication (Extensions)
- (BOOL)launchApplicationWithIdentifier:(id)identifier suspended:(BOOL)suspended;
@end
这应该从抱怨私有方法不存在停止编译器。
对于未来,你应该阅读有关class-dump
,这是你可以在SDK中的公共或私人的框架运行,反向生成类似上面的标题,你自己的工具。 他们将与该SDK的每一个版本发生变化,所以这是很好的可以自己生成它们。
2)你问有关使用权利,而不代码签名。
首先, 读什么Saurik公司原本写在这里 。 是的,你确实需要代码签名的权利。 但是, 没有 ,它没有要与越狱手机苹果证书。 您可以假冒的代码标志,通过下载ldid
可执行文件,并做
cd MyAppName.app
ldid -Sentitlements.xml MyAppName
假设你的应用程序被命名为MyAppName和您所做的权利文件entitlements.xml。 我认为 ,这享文件会为你工作,如果你假以LDID代码签名吧:
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.springboard.launchapplications</key>
<true/>
</dict>
</plist>
小心。 我发现ldid
在几个地方在互联网上。 我真的不知道哪一个是正确的。 我记得,有一次,我试图做到这一点,和版本ldid
我使用签名的权利没有工作。 我下载ldid
从另一个来源,然后它的工作。 所以,要小心。