gpt4 book ai didi

ios - 使用越狱调整/脚本将新的 UIBackgroundMode 添加到 App-Store 应用程序

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:47:13 32 4
gpt4 key购买 nike

我做了一个 App-Store app现在想做一个调整,让它在后台使用 VoIP UIBackgroundMode(保持套接字打开)运行。 UIBackgroundModes 存储在 Info.plist 文件中。

在 Cydia 中为我的应用提供 VoIP UIBackgroundMode 的最佳方式是什么?它只是一个更改应用程序的 Info.plist 文件的脚本(假设这不会破坏应用程序的签名并导致问题),还是有一个我可以通过调整覆盖的功能?

(我假设无论哪种方式,我都可以对使用此 UIBackgroundMode 所需的应用程序代码进行最少的更改(仅在实际设置模式时执行)并且 Apple 不会检测到这一点。我已经提交了我的应用程序VoIP UIBackgroundMode 处于事件状态并被 Apple 拒绝。删除它和相应的代码后,应用程序被接受。)

最佳答案

是的,你可以做到这一点。这只是修改应用程序的 Info.plist 文件(并可能重新启动)的问题。

在越狱设备上,修改 App Store 应用的 Info.plist 文件不会导致应用签名出现问题。

我想您可以尝试找到一种以编程方式执行此操作的方法,但老实说,我不知道除了脚本之外还需要什么。你只是在做一次性修改,对吧?所以,对我来说,这听起来像是简单地编写此修改的脚本,并将其放入您的“调整”包的 DEBIAN/preinstDEBIAN/postinst 文件中就足够了。

我有几点想法:

1. 默认情况下,您的 Info.plist 文件是二进制文件,这使得编辑(通过脚本)变得更加困难。在修改 plist 文件之前发出这个命令可以很容易地解决这个问题:

plutil -convert xml1 Info.plist

从您应用的 .app 目录中。这会将 Info.plist 保留为文本文件。如果您没有 plutil,请告诉我,我可以找到包含它的 Cydia 包。

注意:您不必在编辑后将 plist 转换回二进制文件。文本列表也是有效的。

2. 您可能会选择将修改后的 Info.plist 与您的 Debian 软件包捆绑在一起,并简单地将 App Store 版本替换为调整后的版本。但是,您必须担心版本号以及您使用新版本更新的该文件中的任何其他属性。在这种情况下,简单地将 一个 版本的 Info.plist 复制到 .app 目录可能不适用于所有版本。因此,您可能需要检测您拥有的是哪个版本,或者在 plist 文件中搜索

<key>UIBackgroundModes</key>

并在那里插入 VOIP 模式。我不太擅长使用 sedawk 等工具,如果您需要这部分的帮助,您可以在这里提出一个简单的脚本问题……我了解 iOS。 .. 脚本……没那么简单 :)

3.如果您的脚本出于某种原因需要检测 Info.plist 中的应用程序版本,此命令行将执行此操作:

plutil -key CFBundleVersion Info.plist 

注意:虽然可能有私有(private) API 可以执行此操作,但如果没有,我也不会感到惊讶。我很难想象 Apple 会看到这样做的原因,如果他们看不到这样做的原因,则可能没有 API(公共(public)或私有(private))。通常,您在编译 时决定UIBackgroundModes

关于ios - 使用越狱调整/脚本将新的 UIBackgroundMode 添加到 App-Store 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20262746/

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