正如已经指出,你可以简单地解压缩和重新压缩创建自己的ipa。
您还需要添加一些不需要代码签名的资源。
最好的办法是在ipa中创建一个新的(空的)目录。目录本身没有签名,但在设备上解压,可以通过您的代码进行检测。
换言之:包含签名的CodeResources文件在添加空目录时不会更改。
一个简单的测试,我只是做了,是要建立一个文件夹提及一个名为“额外”的文件夹,里面的内容都是使用百分号编码解码并显示在弹出:
NSString *path = [[NSBundle mainBundle] pathForResource:@"extra" ofType:@""];
NSDirectoryEnumerator *direnum = [[NSFileManager defaultManager] enumeratorAtPath:path];
NSString *f;
while (f = [direnum nextObject])
{
NSString *decoded = [f stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:nil message:decoded delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] autorelease];
[alert show];
}
这可以用来发送潜意识消息给你的代码。编码百分比可以让你放入任何你喜欢的角色。我测试了多达100个字符的文件名长度。
您还需要一些代码来动态地将空的目录下的Payload/yourapp.app/extra/添加到ipa,百分比编码消息作为它的文件名,例如, Payload/yourapp.app/extra/http%3A%2F%2Fstackoverflow.com%2F
更新:例如shell命令将目录添加到IPA:
$ mkdir -p Payload/myapp.app/extra/http%3A%2F%2Fstackoverflow.com%2F
$ zip -r myapp.ipa Payload/
updating: Payload/ (stored 0%)
updating: Payload/myapp.app/ (stored 0%)
updating: Payload/myapp.app/extra/ (stored 0%)
adding: Payload/myapp.app/extra/http%3A%2F%2Fstackoverflow.com%2F/ (stored 0%)
$ rm -r Payload/
你当然需要每次创建IPA的全新副本,或网址,将堆积在里面的IPA。