我们为客户提供了一个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>
答案 0 :(得分:1)
我已成功创建未签名的ipa(在Xcode 8.3.1上),如下面的步骤。
1 GoTo / Applications然后右键单击Xcode.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