ios怎么更新plist文件里的数据

ios怎么更新plist文件里的数据,第1张

方法:用ifile或者ifunbox等文件管理器 改名(个人建议在plist后面加个“备份 来改掉扩展名)或删除(不建议)/System/Library/LaunchDaemons下的egcomapplemobilesoftwareupdatedplist - OTA升级,不需要自动更新系统功能的,可安全改名或删除comappleOTATaskingAgentplist - 通知系统进行ota升级,不需要OTA自动更新的,可安全改名或删除comapplesoftwareupdateservicesdplist - OTA升级服务,不需要OTA自动更新的,可安全改名或删除 改名或者删除后记得必须重启!!!此方法即保证了不会手动升级到51,也可以防止苹果自动悄悄升级到51,而且还可以节约系统运存,ps:这个目录下的文件的删除或者改名 *** 作是绝对安全的,不会系统崩溃的。大家尽可放心!有人反映说禁用ota会会影响appstore无法使用,本人亲测无任何问题,大家也可以测试一下,退一万步讲大不了再把名字改回来恢复ota功能即可,ifile在修改文件的时候早已帮你把源文件备份好了。!特别处理:手机已经下载升级包的处理办法:1、删除已经在/var/mobile/Library/Assets/com_apple_MobileAsset_SoftwareUpdate目录下的 OTA 下载临时固件包2、清除掉设置右上角的红色带圈数字1 的办法 :cydia里安装BadgeClear这个软件,先让图标闪动起来,然后迅速连续多次点击图标,在d出来的BadgeClear小窗口里点击删除即可。3、清除掉通用 以及 软件更新右侧的数字1 的办法 :进入System/Library/CoreServices这个文件夹,找到SystemVersionplist 将ProductBuildVersion的数值改为9B179,然后重启手机,发现讨厌的数字1消失了,这时后再改为原来的数值例如9A405后重启即可。(这里只是临时更改以欺骗ios误以为系统已经最新自动去掉数字1而已,因此不建议长期修改为9B179,会导致很多后遗症)可选 *** 作:干掉软件更新: 在手机上用ifile在根目录下找到“ Applications/Preferencesapp/Generalplist”这个文件,点一下在d出的窗口中选“属性表编辑器”,接着进入“数组”删掉第三项 “2:” 点右上角 "完成" 即可干掉抹除还原:在手机上用ifile在根目录下找到“ Applications/Preferencesapp/resetplist”这个文件 , 点一下在d出的窗口中选“属性表编辑器”,接着进入“数组”删掉第三项 “2:” 点右上角 "完成" 即可摘自威锋锋友国际旅游岛

签名相关的命令:

•$security find-identity -v -p codesigning -- 列出钥匙串里可签名的证书

•$security cms -D -i embeddedmobileprovision -- 查看描述文件

•$codesign–fs “证书串” 文件名 -- 强制替换签名

重签步骤:

1删除插件和带有插件的app包(比如Watch)

2对Frameworks里面的库进行重签名

3给可执行文件 +x(可执行)权限

4替换描述文件

5替换BundleID

6通过授权文件(Entilements)重签app包

实际 *** 作:

获取破壳的ipa包

获取第三方ipa包

查看ipa包是否已经破壳 》 非上架的都没加壳,无需关注

解压ipa包,进入playload文件夹,找到MachO文件

在终端使用命令otool -l DingTalk | grep crypt,0是已脱壳,大于0是未脱壳(一

般为1)

终端查看本地有效证书

$security find-identity -v -p codesigning

删除无法签名的插件文件

删除Plugins文件夹和Watch文件夹

对app文件夹内的Frameworks文件夹中的每一个framework强制重签名

命令:$ codesign -fs "iPhone Developer: xxx " xxxframework

找到framework文件夹下所有framework,分别使用上面的命令对其签名。

建议通过脚本命令执行:

将要签名的描述文件该成 embeddedmobileprovision 替换 来的 embeddedmobileprovision

创建entitlementsplist文件

查看描述文件内容,使用命令security cms -D -I embeddedmobileprovision,找到Entitlements节点,接着创建entitlementsplist文件,内容拷贝过去,最后把entitlementsplist文件拷贝到playload文件夹内(与xxapp同级)。

!]( >

当一个App要发行到多个地区商店的时候,需要处理多语言的问题。比如想要将App发行到香港商店和大陆商店,就需要使用简体中文和繁体中文。本文介绍的是将Infoplist文件里面需要添加多语言的配置进行本地化处理,常见的是App名称和隐私权限描述。让不同的语言的用户的 App名称 和 隐私权限描述 显示成该种语言的显示。

我们就以简体中文和繁体中文两个语言为例做个demo进行讲解(其他语言同理)。目标如下:

也就是说,我们希望App在用户系统语言为繁体中文时,App名称显示的是繁体的 “ 谦言 ”,而在系统语言为其他语言(例如简体中文、英文)时显示为简体的“ 谦言 ”。

首先创建个demo,名字为 PlistLocalizeDemo (名字并不重要)。然后在Infoplist上面添加App名称配置。

key: CFBundleDisplayName ,Type: String , value: 谦言 。

现在运行demo的话,所有的语言情况下,App名称都为 谦言 。

我们把目光移到 TARGETS 上面的 PROJECT ,里面有个 Localizations 配置。上面有两个配置,一个是 Base ,一个是 English 。 English 后面还带有 Development Language 显示,代表当前默认语言为英文。这是创建demo时系统默认的配置。

接下来我们做以下 *** 作, *** 作完后就可以将语言配置为简体中文和繁体中文:

1移除Base配置

2添加简体中文配置和繁体中文配置

3将默认语言配置改为简体中文

4将英文语言配置删掉

Localizations 下面有一个有个勾选框,Use Base Internationalization,我们将其勾选掉,跳出来的d窗按照默认配置,然后点击Move。这样就将Base的多语言配置移除了(主要是嫌Base这个碍眼)。

Localizations 下面有一个 “+” ,可以添加各种语言配置。我们选择 Chinese, Simplified (zh-Hans) ,在跳出来的d窗里面按照默认配置,然后点击Finish,就可以将简体中文语言加上了。然后同样的 *** 作将繁体中文 Chinese, Traditional (zh-Hant) 加上。

这个稍微有点麻烦。默认语言这个其实就是 $(DEVELOPMENT_LANGUAGE) 的值,创建demo时默认是英文的。但是Xcode上面找了很久都没发现这个值在哪里配置。后来使用了一个取巧的方法,通过修改pbxproj文件来进行修改。

关闭Xcode工程,Finder中打开项目的目录,找到 xcodeproj 文件(我们的demo是PlistLocalizeDemoxcodeproj),然后 右键->显示包内容 ,找到 projectpbxproj 文件,打开文件,搜索 developmentRegion ,找到

developmentRegion = en; 。这个配置就是我们想要找的。

(ps:发现这行下面有个语言数组knowRegions了没?上面有 en , zh-Hans , zh-Hant ,就是我们在Xcode上面看到的 Localizations 的配置)。

将 developmentRegion = en; 改为 developmentRegion = zh-Hans; 。保存(一定要记得保存),再次打开Xcode中工程的 PROJECT 面板,发现 Localizations 的配置已经改变了,之前的 Development Language 是在英文后面的,现在变成简体中文后面了。代表默认语言已经修改为简体中文了。

选中English,点击 “-”,确认之后就删除了英文语言配置。

配置删完了之后,到工程根目录下,查看下以lproj为后缀的文件(实际上这是个文件夹),按照我们的配置,应该只有zh-Hanslproj和zh-Hantlproj,如果有多余的,建议删掉。

Infoplist文件的多语言配置需要创建一个InfoPliststrings文件,对该文件进行多语言处理,最后在各语言的文件中配置上对应的key-value。

菜单栏 File->New->File ,然后搜索 strings,选择 Strings File,名字为InfoPliststrings。

注:名字是固定为InfoPliststrings的,使用其他名称无效。

选中 InfoPliststrings 文件,点击Xcode右边侧栏的 Localize 按钮,在d出的窗口中点击 Localize 即可。

接下来就是在两个本地化文件里面加上对应的key-value。App显示语言配置的key为 CFBundleDisplayName ,所以 InfoPliststrings(Chinese,Simplifiled) 加上配置 "CFBundleDisplayName" = "谦言"; 。 InfoPliststrings(Chinese,Tranditional ) 文件加上配置 "CFBundleDisplayName" = "谦言";

至此,配置已经完成。

运行下看下App的语言,自己切换下系统语言进行测试,基本符合我们的要求。

按照上面的配置,我们期望的多语言配置功能是可以实现的。不过在测试过程中,有两个点需要注意下的。

一是我们上面所说的App名称和隐私权限描述,都是由系统读取的,系统会根据当前用户的系统语言来进行读取显示,跟 系统语言 相关。有些App里面有做切换语言功能,需要注意App内切换语言的功能无法应用到我们今天说的App名称和隐私权限描述的多语言显示,因为这个是系统自己读取的,我们无法指定。

比如一个系统语言为繁体中文的用户,在App内切换为简体中文,App名称的显示依旧是简体中文的,系统只会根据当前的系统语言来显示。

二是实际上并不完全按照 除繁体中文用户外,其他语言的用户均显示简体中文 这个规则来。系统语言配置里面有个数组,实际上系统会按照这个数组从上到下遍历,找到哪个语言就显示哪个语言。比如系统的语言列表为英文、繁体中文、简体中文。那么当前系统语言就为英文。按照我们的想法App名称应该是简体中文的。但是实际上显示的是繁体中文。因为系统在遍历这个数组的时候,先找到了繁体中文,所以就直接拿繁体中文的翻译了。当然了,这个实际上并没多大影响,毕竟绝大部分用户都不会去切换那么多语言。

Xcode infoplist 国际化 多语言配置

infoplist 的国际化

Xcode Localizations Change Development Language (Xcode 本地化 修改默认的开发语言)

Where is Infoplist in Xcode 13 (missing, not inside project navigator)

Changing the development language in Xcode

以上就是关于ios怎么更新plist文件里的数据全部的内容,包括:ios怎么更新plist文件里的数据、iOS 包签名及重签名、【iOS】Info.plist文件国际化(App名称,隐私权限描述的多语言配置)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9765098.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存