使用Xcode 8.3创建一个未签名的.IPA

时间:2017-06-21 14:28:44

标签: ios xcode xcode8

我们为客户提供了一个iPad应用程序,要求我们为他们提供未签名的.IPA文件,然后他们使用自己的凭据进行签名并分发给他们的企业用户。

在Xcode 8.3之前,我已经能够使用以下命令创建未签名的.IPA:

xcodebuild -exportArchive -archivePath $ARCHIVE_DIRECTORY'/'$APP_NAME'.xcarchive' -exportPath $OUT_PATH

从Xcode 8.3开始,该命令给出了一个错误,说我需要提供一个exportOptions.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>enterprise</string>
</dict>
</plist>

并使用与上面相同的命令并添加-exportOptionsPList ./exportOptions.plist。现在我得到了这个错误:

  

未指定'teamID'且档案中未找到团队ID

我尝试将一个teamID密钥添加到我的exportOptions.plist文件中,但这也不成功,导致出现此错误:

  

没有有效的iOS发布签名属于团队xxxx的身份   被发现了。

(其中xxxx是我的团队ID)

我已经搜索了解决方案并尝试了几个但没有成功。大多数提议的解决方案适用于8.3之前的Xcode版本 - 最常见的建议是将CODE_SIGN_IDENTITY=""CODE_SIGNING_REQUIRED=NO添加到导出命令,但这在我的情况下没有帮助(相同的错误)。 / p>

1 个答案:

答案 0 :(得分:1)

我已成功创建未签名的ipa(在Xcode 8.3.1上),如下面的步骤。

1 GoTo / Applications然后右键单击Xco​​de.app并单击“显示包内容”

2 GoTo目录/开发人员/平台/ iPhoneOS.platform / Developer / SDKs / iPhoneOS7.0.sdk /并将文件SDKSettings.plist复制到桌面

3打开复制的SDKSettings.plist文件。在“DefaultProperties”下==&gt; “dict”找到CODE_SIGNING_REQUIRED并将其值从YES更改为NO。保存文件

4将此修改后的SDKSettings.plist文件复制回Contents / Developer / Platforms / iPhoneOS.platform / Developer / SDKs / iPhoneOS7.0.sdk /替换原始文件[您可以保存原始文件作为备份]执行所需操作根据需要进行认证

5重新启动Xcode并打开可运行的xcode项目

6在Project Navigator中,选择项目并打开项目的Build Settings部分,然后选择All All子标题。

7在代码签名下,找到代码签名标识以及调试和发布模式,将任何iOS SDK设置为不进行代码签名。

生成IPA:

1在Xcode中,转到产品,然后单击存档

2第7步将构建您的项目并创建档案。完成此过程后,将打开新窗口Organize - Archive。在此窗口的列表中,您可以看到您的项目。右键单击项目,然后单击在Finder中显示,它将显示* .xcarchive文件

3右键单击* .xcarchive文件,然后单击“显示包内容”并转到“产品”=&gt;您将看到带有项目名称“projectname”.app

的应用程序文件的应用程序

4打开iTunes更改视图到应用程序并将应用程序文件“projectname”.app拖到iTunes中。

5右键单击您的应用,单击“在Finder中显示”。你会有.ipa文件。

点击此链接,我也使用它。 Generating an unsigned IPA iOS application