如何在Xcode 6中创建IPA文件而不需要苹果开发者账户?

52

需要为 Ad-Hoc 分发生成 .ipa 文件。客户提供了证书、私钥和配置文件,这足以在 Xcode 5 中创建 .ipa。但是在 Xcode 6.1 中,当我导出为 保存用于 Ad Hoc 部署 时,会出现以下消息:

To save for Ad Hoc Deployment, you need to add an Apple ID account that is enrolled in the iOS Developer Program for the development team 'xxxxxxxxxx'

enter image description here enter image description here

是否有一种方法可以在没有开发者帐户凭据的情况下创建 .ipa 文件?

6个回答

87

最后找到了使用xcodebuild命令创建.ipa构建的方法。

  1. 在“组织者”中右键单击Archive
  2. 单击 Show in Finder
  3. 你可以在Finder中看到.xcarchive文件。 enter image description here

  4. 打开Terminalcd.xcarchive路径。

  5. 使用以下命令生成.ipa文件。

这将在桌面上保存.ipa文件。

xcodebuild -exportArchive -exportFormat ipa -archivePath <FILE_NAME>.xcarchive -exportPath ~/Desktop/<FILE_NAME>.ipa

仍在寻找更好的解决方案,不知道为什么苹果从Xcode 6中删除了这个功能 :(


7
我会在第三步之后将.xcarchive复制并粘贴到桌面上,然后在第四步中打开终端并cd到桌面,而不是一个冗长的文件路径。 - Bharat
3
我尝试使用Xcode 6.1做相同的事情,但我的IPA文件无法安装到设备上。我找到了解决方案,你需要在上述命令中使用“-exportProvisioningProfile <PROVISIONING PROFILE NAME>”选项来指定你的配置文件名称。 - Pankaj Rathor
1
@PankajRathor,<PROVISIONING PROFILE NAME>的值是多少?它是在Xcode应用程序设置中的“常规”->“身份”选项卡下的“团队”下显示的我的名称吗? - Smart Home
5
这个答案现在可能已过时。 - AnhSirk Dasarp
10
无效选项“-exportFormat”。 - Mahdi Moqadasi
显示剩余5条评论

56

3种方法可以在没有Command和Apple开发者账户的情况下创建.ipa文件。

1. 快速而最佳

(适用于所有版本的Xcode、所有版本的Mac OS,捆绑包可用于OTA链接,例如Diawi)

  1. 通过设置正确的代码签名身份,从XCode中构建(Command+B)您的应用程序
  2. XCode的左下角文件搜索中搜索.app (这将位于产品目录下)
  3. 右键单击此.app文件并选择在Finder中显示
  4. 现在,创建一个名为Payload的目录,将 .app 复制到 Payload 目录中
  5. 归档/压缩(.zip)此Payload目录,将文件扩展名从.zip改为.ipa

2. 从组织者中提取.ipa

(适用于所有版本的Xcode、所有版本的Mac OS)

  1. 创建存档
  2. 进入组织者
  3. 右键点击并选择在Finder中显示,以获取存档的位置

enter image description here

  1. 现在右键单击此.xcarchive文件并选择显示包内容
  2. 转到路径Products > Applications > YourAppFile

  • 打开 Mac 上的 iTunes,并在应用程序选项卡中将此YourAppFile从上述路径拖放进去。(注意:如果有同一标识符的应用,请先删除)

  • 现在,在 iTunes 的应用程序选项卡下右键单击您的应用,选择在 Finder 中显示,这就是您的.ipa文件!


  • 3. 对于使用Xcode 5.x的开发人员

    (注意:Xcode 5.x不适用于El Capitan,请使用任何版本的Xcode进行存档,但您需要Xcode 5.x来创建.ipa文件)

    1. 使用任何版本的Xcode创建存档。
    2. 关闭 Xcode。
    3. 转到 Xcode 5.x 的组织者窗口,并从存档选项卡中选择您的存档。
    4. 在右上角的部分中选择 导出,点击标题为保存用于Ad Hoc部署的单选按钮
    5. 点击 下一步 并选择要保存.ipa文件的所需代码签名身份。

    你好。此 IPA 文件无法在 iPhone 中安装。 - kemdo
    1
    已经使用这些方法多年了 :-) 请检查您是否使用了正确的配置文件 - Aditya Deshmane
    第二种方法适用于Xcode 8.3.2,而第一种方法不起作用。 - Sabrina Tuli
    1
    一个免费的Apple ID是否是一个合适的代码签名身份 - Top-Master
    @AdityaDeshmane 在创建ipa文件后,我需要注册我的开发者账户并添加设备UUID吗? - Amin Rezaew

    20

    您也可以使用Xcode 6及其最新版本创建IPA文件,按照以下步骤操作:

    1. 创建项目的构建文件Command+B
    2. 转到产品文件夹,它将显示应用程序文件,请右键单击“在查看器中显示”。
    3. 创建一个空文件夹,并将其命名为' Payload',然后将您的应用程序文件复制到该文件夹中。
    4. 存档Payload文件夹并将zip文件重命名为YourApp.ipa

    1
    最佳、快速且简单的解决方案! 只是为了更详细地澄清这个答案: 创建 Payload 空文件夹 -> 创建一个空文件夹并将其命名为“Payload”。 - iRoid Solutions
    @DaxeshPatel 我怎么进入这个“Products”文件夹? - Smart Home
    发现“产品”文件夹在左键单击并选择“显示包内容”后打开的文件夹的根目录中。顺便说一句,这个解决方案有效..谢谢。 - Smart Home
    @SmartHome,是的,你说得对。不过这将是右键单击。 - iRoid Solutions
    4
    这段话的意思是:在Xcode 7.2中,这对我在iOS 9.3设备上运行应用程序很有用。注意:在这种情况下,“Archive”只是指(右键单击)“压缩”。 - Matt Bearson
    最近有人成功运行过这个吗?评论是从2016年的。 - mmm111mmm

    3

    有更好的方法,而不需要执行所有命令行操作。

    选择“保存以进行Ad Hoc部署”并单击下一步。 然后打开“选择开发团队”下拉菜单。底部将有“使用本地签名资产”的选项。选择此选项并单击“选择”。

    完成了。Xcode将创建构建而无需Apple ID帐户。


    1
    正确。不幸的是,这个选项在Xcode 6中不可用。它只在Xcode 7中可用。 - Khawar
    在xCode 7中,“保存用于Ad Hoc开发”的选项在哪里? - Jungle Jim
    @JungleJim,请查看附带的问题图形。 - Asif Bilal
    @AsifBilal 谢谢,但我不知道如何在没有开发者帐户的情况下首先进入那个屏幕。当我使用连接的iOs设备转到[产品] [存档]时,它只显示“构建失败”。通用iOs设备也是如此。当我为模拟器构建时,构建成功,但当我单击[产品]然后[存档]时,[存档]被淡化并且无法选择。或者我去了错误的地方才能到达那个“组织者-档案”屏幕? - Jungle Jim
    @JungleJim,当您使用iOS设备访问[Product][Archive]时,请尝试找出它抛出“构建失败”错误的原因。一旦找到原因,请解决它。然后按照之前的步骤构建ipa文件。 - Asif Bilal

    1
    另一个解决方案是使用Xcode 5.1。

    1

    从某个时间开始(例如Swift和Xcode7),当你要构建一个公式时,它变得更加复杂 - xcodebuild需要exportOptionsPlist参数:

    xcodebuild -exportArchive -exportOptionsPlist app.plist  -archivePath app.xcarchive -exportPath app.ipa
    

    而app.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>
        <key>uploadSymbols</key>
        <true/>
        </dict>
    </plist>
    

    获取到以下错误信息:"error: exportArchive: No profiles for 'com.MyApp' were found",同时提供了恢复建议:"Xcode couldn't find any iOS App Store provisioning profiles matching 'com.MyApp'. Automatic signing is disabled and unable to generate a profile. To enable automatic signing, pass -allowProvisioningUpdates to xcodebuild." - Top-Master
    添加-allowProvisioningUpdates选项只会更改输出为: 团队"MyTeam"没有权限创建"iOS App Store"预配配置文件。 - Top-Master
    这个解决方案还没有得到回答吗? - akub

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接