命令行构建IPA-未找到配置文件

时间:2018-06-27 15:37:59

标签: ios xcode command-line macos-high-sierra

一段时间以来,我一直在使用命令行步骤来创建我的iOS应用程序ipa。我一直不敢将自己的构建系统OS更新为High Sierra,因为在过去,每次OS更新以及更新的xCode都会破坏通过命令行自动进行构建的一切。

现在我在High Sierra上并使用xCode 9.4.1,我似乎无法基于存档生成.ipa。

以下命令是我用来生成存档的命令:

xcodebuild -project Unity-iPhone.xcodeproj -scheme Unity-iPhone -configuration Release clean archive -archivePath ./build/archive DEVELOPMENT_TEAM=<TEAM_ID>

这将吐出一个archive.xcarchive文件,然后我将在以下文件上执行以下命令:

xcodebuild -exportArchive -archivePath ./build/archive.xcarchive -exportOptionsPlist ./iOS_ExportOptions_DEV.plist -exportPath ./build/adhoc -allowProvisioningUpdates

运行此命令将失败,并显示以下错误:

2018-06-27 11:19:59.789 xcodebuild[27042:735265] [MT] IDEDistribution: -[IDEDistributionLogging _createLoggingBundleAtPath:]: Created bundle at path '/var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/Unity-iPhone_2018-06-27_11-19-59.788.xcdistributionlogs'.
2018-06-27 11:20:21.364 xcodebuild[27042:735265] [MT] IDEDistribution: Step failed: <IDEDistributionSigningAssetsStep: 0x7f9582c35d20>: Error Domain=IDEDistributionSigningAssetStepErrorDomain Code=0 "Locating signing assets failed." UserInfo={NSLocalizedDescription=Locating signing assets failed., IDEDistributionSigningAssetStepUnderlyingErrors=(
    "Error Domain=IDEProvisioningErrorDomain Code=23 \"There are no accounts registered with Xcode.\" UserInfo={NSLocalizedDescription=There are no accounts registered with Xcode., NSLocalizedRecoverySuggestion=Add your developer account to Xcode}",
    "Error Domain=IDEProfileLocatorErrorDomain Code=1 \"No profiles for 'com.MY.BUNDLE' were found\" UserInfo={NSLocalizedDescription=No profiles for 'com.MY.BUNDLE' were found, NSLocalizedRecoverySuggestion=Xcode couldn't find any iOS App Store provisioning profiles matching 'com.MY.BUNDLE'.}"
)}
error: exportArchive: There are no accounts registered with Xcode.

Error Domain=IDEProvisioningErrorDomain Code=23 "There are no accounts registered with Xcode." UserInfo={NSLocalizedDescription=There are no accounts registered with Xcode., NSLocalizedRecoverySuggestion=Add your developer account to Xcode}

error: exportArchive: No profiles for 'com.MY.BUNDLE' were found

Error Domain=IDEProfileLocatorErrorDomain Code=1 "No profiles for 'com.MY.BUNDLE' were found" UserInfo={NSLocalizedDescription=No profiles for 'com.MY.BUNDLE' were found, NSLocalizedRecoverySuggestion=Xcode couldn't find any iOS App Store provisioning profiles matching 'com.MY.BUNDLE'.}

** EXPORT FAILED **

再次使用此命令获取存档并导出在Sierra中运行xCode 9.1的ipa。所有规定都在计算机上,以及必需的开发人员证书。另外,我使用xCode中的开发人员帐户登录。所有这些最大的麻烦在于,我能够手动存档和创建可提交到iTunes的ipas,并且可以在xCode中正确连接,并且一切正常。

最后这是我的iOS_ExportOptions_DEV.plist文件:

    <!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>ad-hoc</string>
    <key>teamID</key>
    <string>TEAM ID</string>
</dict>
</plist>

如果有人遇到了这个问题,请告诉我您如何解决。

1 个答案:

答案 0 :(得分:0)

现在,我将Mojave与Xcode 10.2.1一起使用,并且我也遇到了同样的问题,最后我决定测试 .plist 文件中的不同键标签组合。

在阅读apple developer documentation中的 .plist 文件标签后,我生成了一个 .plist 文件,其中包含您的标签以及该其他答案中的几乎所有标签{ {3}}(仅是我需要的关键标签)。

问题出在关键的 method 值中。如果包含它,则应为<string>development</string>值(如果不包含这些标签,则为默认值)。如果包括任何其他允许的值{app-store, ad-hoc, enterprise, validation},则需要确保允许您的Apple ID帐户执行导出操作。检查添加到您的环境中的开发Xcode帐户,并询问您的证书管理员团队有关您帐户的管理员角色的信息。以后还要验证您的 IPA 文件。