XCodeBuild -exportArchive不允许我指定文件名

时间:2016-10-03 12:06:32

标签: swift xcode jenkins ipa xcodebuild

我正忙着构建将构建iOS应用程序的Jenkins构建。我已成功使用此命令创建存档:

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的Apples文档说您可以指定输出路径,包括文件名:

  

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

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

这样做的原因是我希望保持构建通用,这样我通过它发送的任何项目都会产生app.ipa而不需要跟踪项目名称和不同的输出文件等。

4 个答案:

答案 0 :(得分:6)

答案 1 :(得分:5)

.xcscheme文件中的

ArchiveAction 标记可以具有属性 customArchiveName ,可以将其设置为您喜欢的任何内容。

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

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

答案 2 :(得分:2)

如果您执行xcodebuild --help,则说:

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

嗯。

要执行解决方法,您可以在以后重命名文件。

mv "oldname" "newname"

答案 3 :(得分:0)

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

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

会给 ipa.app

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

参见:https://stackoverflow.com/a/7908397