在命令行中编辑 ipa plist 文件

Posted

技术标签:

【中文标题】在命令行中编辑 ipa plist 文件【英文标题】:Edit ipa plist file in command line 【发布时间】:2011-08-12 18:37:23 【问题描述】:

我想使用命令行更改 plist 文件中的“bundle-identifier”字符串值。使用“默认值”,我该怎么做?

仅供参考,这里是完整的 plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
   <key>items</key>
   <array>
   <dict>
       <key>assets</key>
       <array>
           <dict>
               <key>kind</key>
               <string>software-package</string>
               <key>url</key>
               <string>http://eventpilotadmin.com/doc/clients/ISES/Eventworld2011/proofs/iphone_Eventworld2011_proof.ipa</string>
           </dict>
       </array>
       <key>metadata</key>
       <dict>
           <key>bundle-identifier</key>
           <string>com.ativsoftware.Eventworld2011</string>
           <key>bundle-version</key>
           <string>1.0</string>
           <key>kind</key>
           <string>software</string>
           <key>title</key>
           <string>Eventworld2011</string>
       </dict>
      </dict>
   </array>
</dict>
</plist>

【问题讨论】:

最好删除此内容并在投票前通过Ask Different 提问。 这更像是编码,我投了赞成票,看来我不是唯一一个:) 【参考方案1】:

试试这个:

/usr/libexec/PlistBuddy -c "Set :items:0:metadata:bundle-identifier newidentifier" your.plist

【讨论】:

命令似乎不起作用,但我了解了 plist buddy,谢谢大家!【参考方案2】:

如果行格式一致,您可以使用sed 这样做:

sed -n '/bundle-identifier/p;n;s/>.*</>new value</;;p' your.plist

在您的示例中,这会将 com.ativsoftware.Eventworld2011 更改为 new value

添加-i 以进行就地编辑。

【讨论】:

【参考方案3】:

@user478681 的回答对我不起作用,因为缺少解压缩和压缩 ipa 文件的步骤。

我通过这些步骤找到了site。

简而言之:

unzip app.ipa
/usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier newidentifier" Payload/MyApp.app/Info.plist
zip -qr ResignedApp.ipa Payload

如果您需要退出应用,请按照上述网站上的说明进行操作。

【讨论】:

【参考方案4】:

更新版本:

/usr/libexec/PlistBuddy -c "set :CFBundleIdentifier newidentifier" your.plist

【讨论】:

以上是关于在命令行中编辑 ipa plist 文件的主要内容,如果未能解决你的问题,请参考以下文章

命令行中的 Xcode“构建和存档”

OTA AdHoc 分发 - 如何从命令行构建 IPA?

centos7配置静态IP地址

如何将标准输入重定向到 Windows 命令行中的文件?

如何在 Centos-8 下的命令行中列出和编辑 GRUB2 的“菜单项”?

从 xcode 命令行生成 ipa