命令行创建 Ad Hoc .ipa 问题

Posted

技术标签:

【中文标题】命令行创建 Ad Hoc .ipa 问题【英文标题】:Command line create Ad Hoc .ipa issue 【发布时间】:2017-04-07 13:52:23 【问题描述】:

自从更新到 Xcode 8.3 后,我发现 XCRun PackageApplication 已被弃用,我一直在尝试切换到使用 xcodebuild exportArchive。我似乎有很多关于这样做的问题的帖子,但我自己仍然没有设法解决这个问题。

我的测试电话是:

xcodebuild -exportArchive IPA -archivePath test.xcarchive/Products/Applications/test.app -exportPath . -exportOptionsPlist a.plist

我的 xcarchive 似乎很好,因为我可以在 Xcode 中手动打包它以进行 Ad Hoc 分发。

我的列表是:

<?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>uploadSymbols</key>
<false/>
<key>uploadBitcode</key>
<false/>
<key>method</key>
<string>ad-hoc</string>
<key>compileBitcode</key>
<false/>
</dict>
</plist>

但我收到此错误:

错误:exportArchive:key 'method' 的 exportOptionsPlist 错误:预期为 之一,但已找到 错误域 = IDEFoundationErrorDomain Code=1 "exportOptionsPlist 键'method' 错误:预期 之一,但发现" UserInfo=NSLocalizedDescription=exportOptionsPlist 键'method' 错误:预期 之一,但找到

我也一直在尝试使用快车道健身房。有了它,我可以在命令行上创建一个 .ipa,但我需要指定一个要使用的配置文件,因为它没有为测试人员使用正确的文件进行签名。

如果您需要更多信息,请告诉我。

谢谢, 克里斯。

【问题讨论】:

【参考方案1】:

-archivePath 参数的值不正确,请尝试仅引用 xcarchive。你也可以省略-exportArchive后面的IPA字符串,因为它没有效果:

xcodebuild -exportArchive -archivePath test.xcarchive -exportPath . -exportOptionsPlist a.plist

xcarchive 包含一个 Info.plist,它指定了应用程序包在 xcarchive 中的位置,因此您无需自己指定。

详情请见man xcodebuild

【讨论】:

感谢@Sven Driemecker,就是这样,doh!

以上是关于命令行创建 Ad Hoc .ipa 问题的主要内容,如果未能解决你的问题,请参考以下文章

Ansible Ad-Hoc 常用命令

查看Ad-Hoc ipa包的UDID列表

Ansible学习 ad-hoc命令

Ansible常用Ad-Hoc命令介绍

无法使用 Xcode Automatically Manage Signing 安装 ad-hoc IPA

如何部署ad-hoc分发(ipa文件)或如何将iTunes与设备同步