XCodeBuild -exportArchive不允许指定文件名



我正忙于Jenkins构建,将构建iOS应用程序。我已经成功地用这个命令创建了一个存档:

xcodebuild archive -archivePath build/app.xcarchive 

现在我正试图导出该存档与指定输出文件名,但不能得到这个工作。在下面的示例中,我想要一个名为app.ipa的输出文件,但是我得到的只是一个名为app.ipa的文件夹,其中包含一个名为.ipa

的ipa文件。
xcrun xcodebuild -exportArchive -exportPath build/app.ipa -archivePath build/app.xcarchive/ -exportOptionsPlist exportOptions.plist
Outputs a file /build/app.ipa/<projectname>.ipa
苹果的XCodeBuild文档说,你可以指定输出路径,包括文件名:

-exportPath destinationpath指定导出产品的目标,包括导出文件的名称。

https://web.archive.org/web/20170620204608/https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/xcodebuild.1.html

这样做的原因是,我想保持构建通用,以便我通过它发送的任何项目将导致app.ipa,而不需要我跟踪项目名称和不同的输出文件等。

这是open radar中的一个bug: "xcodebuild exportArchive -exportPath"不写文档中要写的内容

对于XCode 11及更早版本:

ArchiveAction标签在.xcscheme文件中可以有属性customArchiveName,可以设置为任何你喜欢的。

   <ArchiveAction
      buildConfiguration = "AdHoc_Example"
      customArchiveName = "app"
      revealArchiveInOrganizer = "YES">
   </ArchiveAction>
</Scheme>

当您通过-exportOptionsPlist导出存档时,这将给您app.ipa

如果你做一个xcodebuild --help,它会显示:

-exportPath PATH specifies the destination for the product exported from an archive

嗯。

要解决这个问题,您可以在之后重命名文件。

mv "oldname" "newname"

您也可以编辑您的Info.plist:

<key>CFBundleName</key>
<string>app</string>

将给出ipa.app

如果省略它,它将具有.xcarchive文件的名称(默认的方案名称)

cf: https://stackoverflow.com/a/7908397

最新更新