如何在没有 xcode 的情况下生成 xml 格式的权利?
Posted
技术标签:
【中文标题】如何在没有 xcode 的情况下生成 xml 格式的权利?【英文标题】:How to generate entitlements in xml format without xcode? 【发布时间】:2014-06-23 11:10:14 【问题描述】:我必须构建 ios 应用程序,但不使用 xcode。 问题在于应用程序的通行证权利。
我的权利文件如下所示:
<?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>keychain-access-groups</key>
<array>
<string>$(AppIdentifierPrefix)com.domain</string>
</array>
</dict>
</plist>
xcode 将其格式化为这个(.xcent 文件):
<?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>application-identifier</key>
<string>A1B2C3D4E5.product.name</string>
<key>com.apple.developer.team-identifier</key>
<string>E5D4C3B2E1</string>
<key>get-task-allow</key>
<true/>
<key>keychain-access-groups</key>
<array>
<string>A1B2C3D4E5.com.domain</string>
</array>
</dict>
</plist>
通过使用命令:
builtin-productPackagingUtility app.entitlements -entitlements -format xml -o $HOME/Library/Developer/Xcode/DerivedData/app//Build/Intermediates/app.build/Debug-iphoneos/app.build/app.xcent
谁能解释一下这个命令到底是做什么的,我该如何手动调用它?或者我怎样才能用手模拟这个命令调用?
谢谢。
【问题讨论】:
【参考方案1】:如果你可以使用xcodebuild
,builtin-productPackagingUtility
将作为一个步骤被调用。您只需在命令行中提供权利作为构建设置变量。
【讨论】:
问题是我不能使用 xcodebuild。 :) 已建立的解决方案是配置文件中的 grep ApplicationId 和 TeamIdentifier。【参考方案2】:该库将创建一个 xcent 文件,您可以将其用于代码设计。
https://github.com/sotownsend/iarrogant
注意:我还没有测试过这个库。
您还可以从使用 xcodebuild 创建的 ipa 中获取生成的 xcent 文件,并使用它来签署未来的版本。当您的权利发生变化时,您必须使这些文件保持同步。
【讨论】:
以上是关于如何在没有 xcode 的情况下生成 xml 格式的权利?的主要内容,如果未能解决你的问题,请参考以下文章
编辑器或在没有 Xcode 的情况下以干净的方式打印 plist 的方法
如何在不写入磁盘的情况下将 XML 从 Delphi 传递到 C#?
如何将密码添加到在没有密码的情况下生成的 OpenSSH 私钥?