【问题标题】:XCodeBuild -exportArchive wont allow me to specify filenameXCodeBuild -exportArchive 不允许我指定文件名
【发布时间】:2017-02-11 09:00:20
【问题描述】:

我正忙于构建将构建 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

Apples 的 XCodeBuild 文档说您可以指定输出路径,包括文件名:

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

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

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

【问题讨论】:

  • 什么是xcrun xcodebuild。我以前从未见过这样的东西。
  • "xcrun 提供了一种从命令行定位或调用开发人员工具的方法,无需用户修改 Makefile 或采取其他不方便的措施来支持多个 Xcode 工具链。" developer.apple.com/legacy/library/documentation/Darwin/…
  • 是的,之前没有-exportOptionsPlist,相同的命令创建指定的文件,现在在8.3之后,它创建了一个文件夹,并且在该文件夹内有.ipa。除了使用 mv 有什么解决方法吗?

标签: swift xcode jenkins ipa xcodebuild


【解决方案1】:

如果您执行xcodebuild --help,它会说:

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

嗯。

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

mv "oldname" "newname"

【讨论】:

  • 嗨,我很想在不知道“旧名称”是什么的情况下完成这项工作。我想将这个相同的构建脚本重新用于多个项目,并且不知道输出文件名是什么。
  • 那么苹果是否摆脱了为 .ipa 文件指定文件名的能力?看起来很奇怪,他们让你为 .xcarchive 指定它,但不是为生成的 .ipa 指定它。
【解决方案2】:

【讨论】:

    【解决方案3】:
    .xcscheme 文件中的

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

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

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

    【讨论】:

    • 在 XCode 12 中它似乎不再工作了。如果这是一个错误或一个功能,请看看:)
    • @Sasho The “.ipa” file name is now sourced from the targets Info.plist file under the CFBundleName wundermanthompson.com/insight/…
    【解决方案4】:

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

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

    会给ipa.app

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

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

    【讨论】:

      猜你喜欢
      • 2022-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-28
      • 1970-01-01
      相关资源
      最近更新 更多