gpt4 book ai didi

ios - 动态更改服务器上的 .ipa 文件

转载 作者:可可西里 更新时间:2023-11-01 05:03:20 25 4
gpt4 key购买 nike

我有一个 .ipa 文件(iOS 应用程序),我让用户临时安装(使用企业帐户在私有(private)服务器上通过无线方式安装)。

挑战在于应用程序之间的差异化。他们在应用程序中使用不同的 Logo 和不同的 url。

是否可以在人们下载之前动态更改我服务器上的 .ipa 文件?

进一步说明:

我必须强调,我不能为每个应用程序制作一个 .ipa 文件。我必须能够更改开始屏幕、 Logo 并为单个 .ipa 文件设置 url 变量。

换句话说,每次有人要下载它时,我都需要动态更改服务器上的 .ipa 文件。

我最想拥有的东西:

我很想有一个关于如何在 heroku 或亚马逊服务器上执行此操作的示例/指南。没有什么花哨。基本上只是更改 info.plist 中的一个变量,然后再对其进行代码签名。

最佳答案

如前所述,您可以简单地解压缩并再次压缩以创建您自己的 ipa。

您还需要添加一些不需要代码签名的资源。

最好的办法是在 ipa 中创建一个新的(空)目录。目录本身未签名,但会在设备上提取并可由您的代码检测到。

换句话说:包含签名的 CodeResources 文件在添加空目录时不会更改。

我刚刚做的一个简单测试是创建一个文件夹引用一个名为“extra”的文件夹,其内容使用百分比编码解码并显示在弹出窗口中:

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

更新:将目录添加到 ipa 的示例 shell 命令:

$ 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 副本,否则 url 将堆积在 ipa 内的 /extra/ 下。

关于ios - 动态更改服务器上的 .ipa 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17711626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com