57

我们已经使用客户的证书和分发配置文件创建了 .xcarchive 文件代码签名,但我们需要将 .ipa 文件发送给我们的客户,以便他们可以使用 Application Loader 将应用程序上传到 App Store。

在 Xcode 4.5 中创建 .ipa 文件的唯一方法是单击 Distribute -> Save for Enterprise or Ad-Hoc Deployment,其下方有说明“签名并打包应用程序以在 iOS App Store 之外分发”。

如果我们这样保存.ipa文件,会不会导致提交到应用商店出现问题?或者是否有将 .xcarchive 转换为 .ipa 的正确方法?

提前致谢!

4

8 回答 8

97
  1. 使用Xcode创建Xarchieve文件,点击product->archive
  2. 首先右键单击 xarchive 文件-> 在 finder 中显示
  3. 再次右键单击 xarchive 文件-> 显示包内容
  4. 然后打开文件夹 products->applications,在这里你得到你的应用程序文件
  5. 现在,将这个拖放到 iTunes 商店的应用程序目录(在 iTunes 商店右上角找到应用程序下拉菜单)。这将自动将存档文件转换为 ipa 文件。(在这里,您也可以执行此操作 -> 将 .app 文件拖放到 itunestore 中的任何位置,一旦处理完毕,从搜索框中搜索回来)。

  6. 然后再次右键单击它并 -> 在 finder 中显示,这将显示您的 ipa 文件。现在你可以把这个给任何用户

于 2013-09-24T10:27:19.130 回答
54

为 Xcode 7 和 8 更新

这是创建存档和生成 .ipa 的脚本 - 根据需要进行调整:

PROJECT=xxx
ARCHIVE_PATH=/tmp/${PROJECT}.xcarchive
EXPORT_PATH=/tmp/${PROJECT} # DIRECTORY
mkdir -p $ARCHIVE_PATH
xcodebuild -project ./${PROJECT}.xcodeproj -scheme ${SCHEME} archive -archivePath $ARCHIVE_PATH -verbose

PLIST='{"compileBitcode":false,"method":"enterprise"}' # edit as needed

EXPORT_PLIST=/tmp/${PROJECT}.plist
echo $PLIST | plutil -convert xml1 -o $EXPORT_PLIST -

xcodebuild -exportArchive -archivePath $ARCHIVE_PATH -exportPath $EXPORT_PATH -exportOptionsPlist $EXPORT_PLIST
于 2014-10-10T15:23:14.777 回答
23

第一个产品>存档,然后右键单击生成的xcodearchive文件并选择Show package content并转到Products -> Applications文件夹。创建一个名为的新文件夹并将文件Payload拖到该.app文件夹​​中。压缩Payload文件夹并将其重命名为您想要的任何名称并将扩展名更改为.ipa.

如果您的应用程序太大,您可以在构建设置中禁用位代码,使其缩小 50-70%。

于 2018-03-25T17:39:03.673 回答
17

您可以从 XCArchive 创建 IPA。

  1. 右键单击ProjectName [日期时间].xcarchive
  2. 选择显示包内容

第1步

第2步

它包括三件事:

一种。dSYMs:dSYM 文件存储应用程序的调试符号。

湾。Info.plist:包含详细信息的属性列表,例如 ApplicationProperties、ArchiveVersion、CreationDate、Name、Scheme。

C。产品:这包含您项目的应用程序文件。

  1. 选择产品 -> 应用程序。这包含应用程序文件。

  2. 现在,将应用程序文件拖放到 iTunes(MyApps 选项卡)中。

  3. 选择您的项目。

  4. 右键单击并选择“在取景器中显示”。这将找到新创建的 IPA 文件。

第4步

第 5 步

于 2015-01-13T10:53:23.690 回答
12

如果您需要从命令行进行此操作,可以在此处找到所有详细信息:http: //encyclopediaofdaniel.com/blog/xcarchive-to-ipa。简而言之:

xcodebuild 
   -exportArchive -archivePath <path to archive> -exportPath <path to output> 
   -exportOptionsPlist <path to export options plist>

最小选项 plist 如下所示:

<?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>method</key>
    <string>app-store</string>
</dict>
</plist>

当然,该方法将根据您使用的配置文件类型(app-store用于分发配置文件)而改变。运行xcodebuild --help以查看可用选项的列表。

于 2015-12-14T17:07:42.467 回答
11
XCode > Project > Archive
XCode > Organizer > Distribute > Enterprise/add Hoc > Save As
Saves as YOURAPP.ipa.
Make sure Save for Enterprise Deploy remains UNCHECKED.
Download latest Application Loader.
tap 'Deliver Your App'
make sure new version in itunes connect in WAITING FOR UPLOAD state
Click on Activity... button 

提示:打开 Console.app 以查看 XCode 验证错误

Click on ALL MESSAGE on list of logs on right.
Then in search enter 'XCode' or 'Application Loader' 
to monitor any errors with your upload.

笔记:

我做了所有这些,但仍然收到有关缺少 120x120 图标的电子邮件。

忘记在 Build Target > General Tab List of new icon requirements for iOS7 http://www.icenium.com/resources/forums/icenium-general-discussion/missing-recommended-icon-file中更新它们

于 2013-09-24T15:44:06.620 回答
10

我在我的一个项目中也观察到了同样的问题。

我通过更改目标中的设置来解决它。对于主要项目和依赖项。

 skip Install  NO

更改后,转到 Xcode->Product->Archive->Save for Enterprise or Ad-Hoc Deployment

我们遵循相同的流程并通过 Application Loader 上传,Apple 批准了该应用程序。

在此处输入图像描述

于 2013-02-18T11:10:31.160 回答
4

xCode 13 及更高版本的更新

  1. 选择 xCode 上的存档,然后单击右上角的“分发应用程序”按钮。

  2. 在下一个屏幕中选择“ App Store Connect ”。

  3. 选择“导出”。

  4. 选择签名证书。

导出的文件夹将包含ipa文件。

您还可以使用Transporter应用程序将您的 ipa 文件上传到 AppStoreConnect。

于 2021-11-13T18:34:42.430 回答