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

我们为客户提供了一个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.现在我得到了这个错误:

No ‘teamID’ specified and no team ID found in the archive

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

No valid iOS Distribution signing identities belonging to team xxxx
were found.

(其中xxxx是我的团队ID)

我搜索了解决方案并尝试了几个没有成功.大多数提出的解决方案是对的Xcode之前的版本8.3 – 最常见的建议是,增添CODE_SIGN_IDENTITY =“”和CODE_SIGNING_REQUIRED = NO到出口的命令,但没有在我的帮助的情况下(同样的错误).

最佳答案 我已成功创建未签名的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”下==> “dict”找到CODE_SIGNING_REQUIRED并将其值从YES更改为NO.保存文件

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

5重新启动Xcode并打开runnable xcode项目

6在Project Navigator中,选择项目并打开项目的“构建设置”部分,然后选择“全部”子标题.

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

生成IPA:

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

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

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

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

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

按照这个链接,我也使用它.
Generating an unsigned IPA iOS application

点赞