简体   繁体   English

ERROR ITMS-90046使用xctool / xcodebuild与XCode Archive的成功

[英]ERROR ITMS-90046 using xctool / xcodebuild vs XCode Archive's success

I've got a command line script I use to compile, archive and submit my ios builds to ITC for TestFlight deployment. 我有一个命令行脚本,用于编译,存档并将我的ios构建提交给ITC以进行TestFlight部署。 They work great, but I recently ran into an issue when trying to use an embedded framework within my otherwise working project. 它们运行良好,但我最近遇到了一个问题,试图在我的工作项目中使用嵌入式框架。 My script compiles and archives the project successfully but is getting ITC signing errors because of the embedded binary conflict. 我的脚本成功编译和归档项目,但由于嵌入式二进制冲突而导致ITC签名错误。

xctool -workspace $BASE_DIR/$PROJECT_NAME -scheme $SCHEME -configuration $CONFIG clean archive -archivePath ./$PRODUCT_NAME.xcarchive
xcodebuild -exportArchive -archivePath ./$PRODUCT_NAME.xcarchive -exportPath $PRODUCT_NAME -exportFormat ipa -exportProvisioningProfile "$DIST_PROVISIONING_PROFILE_NAME"

# result is successful, with .ipa file generated

After a successful compilation my script tries to upload to ITC, and fails with the below msg. 编译成功后,我的脚本会尝试上传到ITC,并使用以下msg失败。 I get the same message if I try to upload the generated IPA file to ITC myself using Application Loader tool. 如果我尝试使用Application Loader工具将生成的IPA文件上传到ITC,则会收到相同的消息。

ERROR ITMS-90046: "Invalid Code Signing Entitlements. Your application bundle's signature contains code signing entitlements that are not supported on iOS. Specifically, value 'XXXXXXXXX.com.domain.Product' for key 'application-identifier' in 'Payload/Product.app/Frameworks/Charts.framework/Charts' is not supported. This value should be a string starting with your TEAMID, followed by a dot '.', followed by the bundle identifier. 错误ITMS-90046:“无效的代码签名权利。您的应用程序包的签名包含iOS上不支持的代码签名权利。具体而言,'Payload / Product中关键'application-identifier'的值'XXXXXXXXX.com.domain.Product'不支持.app / Frameworks / Charts.framework / Charts'。该值应该是以TEAMID开头的字符串,后跟一个点'。',后跟一个包标识符。

There is no application-identifier string used in my project or settings that I can find with a global search. 我的项目或设置中没有使用应用程序标识符字符串,我可以通过全局搜索找到它。

Extra Info 额外信息

com.domain.Product would be my project's main bundleIdentifier, which has a distribution certificate and provisioning profile generated for it. com.domain.Product将是我项目的主要bundleIdentifier,它具有为其生成的分发证书和配置文件。 Without the embedded binary that works just fine. 没有嵌入式二进制文件可以正常工作。 The "Charts" embedded project has a bundleIdentifier but the team is set to "None" in the Info tab, and signing is set to Automatic. “图表”嵌入式项目具有bundleIdentifier,但团队在“信息”选项卡中设置为“无”,并且签名设置为“自动”。 Since it is an embedded binary/framework, I'm assuming it doesn't independently sign it. 由于它是一个嵌入式二进制/框架,我假设它没有独立签名。 When using Xcode's Archive, it is listed as a subset of the main Project with no independent identifier or entitlements. 使用Xcode的存档时,它被列为主项目的子集,没有独立的标识符或权利。

I have also tried creating an independent appId and distribution provisioning profile for the embedded binary called "com.domain.ProductCharts" and setup the project correctly. 我还尝试为嵌入式二进制文件创建一个名为“com.domain.ProductCharts”的独立appId和分发配置文件,并正确设置项目。 This does not change the error. 这不会改变错误。

I have further tried setting the embedded binary's project to use the same bundleIdentier and settings as the parent Project, but this does not change the error. 我进一步尝试将嵌入式二进制文件的项目设置为使用与父项目相同的bundleIdentier和设置,但这不会更改错误。

Why is xctool/xcodebuild unable to properly compile and sign this to get through to ITC, while the native Archiver can? 为什么xctool / xcodebuild无法正确编译并签名以通过ITC,而原生Archiver可以?

Currently, I encountered what I think is a bug in xcodebuild command similar to this, way I fixed it for me was to setup provisioning profile in the project settings. 目前,我遇到了我认为xcodebuild命令中的一个类似于此的错误,我修复它的方法是在项目设置中设置provisioning profile Try updating your project and run build again. 尝试更新项目并再次运行构建。

The investigation into the issue was here: https://forums.developer.apple.com/thread/14378 有关该问题的调查如下: https//forums.developer.apple.com/thread/14378

But others reported problem with associated domains : 但其他人报告了associated domains问题:

SO question: Apple Store submit fails with Error ITMS-90046, but Associated Domains is not among entitlements 所以问题: Apple Store提交失败,错误ITMS-90046,但Associated Domains不在权利之中

What is your OS, XCode ... etc? 什么是你的操作系统,XCode ......等等?

Just a guess: Maybe you need to specify an application-identifier in your Entitlements.plist if you use the command line. 只是猜测:如果您使用命令行,可能需要在Entitlements.plist中指定application-identifier Here https://developer.apple.com/library/ios/qa/qa1710/_index.html it is stated that in "In modern versions of Xcode.." 这里https://developer.apple.com/library/ios/qa/qa1710/_index.html在“Xcode的现代版本中”中说明了这一点。

You said: 你说:

They work great, but I recently ran into an issue... 他们工作得很好,但我最近遇到了一个问题......

Have you created a new profile meanwhile and now there are two? 你有没有创建一个新的配置文件,现在有两个? Or two certificates? 还是两个证书? Here is a description on how to check your entitlements . 以下是有关如何检查您的权利的说明 Maybe this helps. 也许这有帮助。

Creating .entitlements for the embedded framework will solve the issue only in Xcode 7.x. 为嵌入式框架创建.entitlements只能解决Xcode 7.x中的问题。 In the version 8.x the issue still exists. 在版本8.x中,问题仍然存在。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 从Phonegap构建提交.ipa时出现错误ITMS-90046 - Error ITMS-90046 when submitting .ipa from Phonegap Build 通过 Fastlane 辞职后出现错误 ITMS-90046 - ERROR ITMS-90046 after resign via Fastlane 错误ITMS-90046:“无效的代码签名权利。”使用自定义applinks - ERROR ITMS-90046: “Invalid Code Signing Entitlements.” using custom applinks 应用上传过程错误-错误ITMS-90046:“无效的代码签名权利。” - App upload process error - ERROR ITMS-90046: “Invalid Code Signing Entitlements.” 退出应用程序后错误ITMS-90046,我是否需要退出每个框架? - Error ITMS-90046 after resigning app, do i need to resign each framework? ERROR ITMS-90046:不支持关键'com.apple.developer.icloud-container-environment'的值'开发' - ERROR ITMS-90046: value 'Development' for key 'com.apple.developer.icloud-container-environment' is not supported Apple Store提交失败,错误为ITMS-90046,但Associated Domains不属于权利范围 - Apple Store submit fails with Error ITMS-90046, but Associated Domains is not among entitlements 错误ITMS-90046:来自cocoapods的嵌入式框架的无效代码签名权利 - ERROR ITMS-90046: Invalid Code Signing Entitlements for embedded frameworks from cocoapods 将应用程序上传到 iTunes 时出现错误。错误 ITMS-90046:“无效的代码签名权利”。 - Bitrise giving error while uploading app to iTunes.ERROR ITMS-90046: “Invalid Code Signing Entitlements.” 错误 ITMS-90046:“无效的代码签名权利。特别是,密钥的值 '*' > 'com.apple.developer.related-domains' - ERROR ITMS-90046: "Invalid Code Signing Entitlements. Specifically, value '*' for key > 'com.apple.developer.associated-domains'
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM