iPhone 正在提交应用程序 - 错误 ITMS-90171 无效的捆绑包结构不能包含独立的可执行文件
iPhone App Submitting - Error ITMS-90171 Invalid Bundle Structure Can't Contain Standalone Executables
我附上了我收到的完整错误消息的屏幕截图。当我尝试将我的应用程序提交到 iTunes Connect 时会发生这种情况。 运行 应用
时我没有收到任何错误
我的应用程序出现了完全相同的错误,我无法从信息中找到任何原因。不过,不同之处在于,我为所有 .dll
个文件都获取了它。
一段时间后,我看到在 IOS Bundle Signing
- Custom entitlements
下它试图指向一个不存在的文件。我刚刚删除了它,它不再出错。
不确定它是否对你也有帮助,但它对我有用。
对我来说,这个问题是由捆绑包中包含框架引起的。即,我正在将 .framework 文件复制到应用程序包中。这不是必需的,因为框架静态链接到主应用程序二进制文件。
很可能,您有一个包含复制到项目中的 .framework 的文件夹(如 "external" 或 "ThirdParty")。该文件夹不应具有任何目标的成员身份。
在您的 Frameworks 文件夹本身中,应该是具有您应用的目标成员资格的实际 .framework 文件和 "Required"
我也遇到了同样的问题,
第1步:复制.Framework时看到你错误地复制(拖拽)了GoogleMaps.bundle中的框架或一些其他 .bundle 扩展名。
第 2 步: 如果 .bundle 资源中存在其他框架,如果存在则删除该框架(如果根本不需要),否则从该 .bundle 中拖出。
第 3 步: 如果 .framework 不存在,则检查所有 .bundle 资源,如果 .framework 存在,如果存在则删除该框架(如果根本不存在)必需,否则拖出该 .bundle。
第 4 步:然后清理并构建项目。
不确定,如果它对你也有帮助,但它对我有用。
我们的捆绑包有一个带有重音符号的特殊字符,删除它可以解决问题。
对我有帮助的是,我在框架、库和嵌入式内容中的项目目标中创建了我的框架 -> 不要嵌入。
对我有用的是在显示问题导航器中使用项目的 XCode 自动更新设置。当我从那里更新 2 个设置时,项目构建成功甚至上传到 TestFlight。
我刚刚在 Xcode 13 中遇到过这种情况。我们在单独的模块中有一些 Swift 代码(Xcode 项目中的单独目标),其中一个目标被引用同一项目中的几个其他模块。它在目标“常规信息”选项卡中将它们设置为“嵌入并签名”。我将其设置为“不嵌入”。
但这只是解决方案的一部分。我收到关于“iOS 应用程序下有多个具有 CFBundleIdentifier 值的捆绑包的投诉。错误代码为 STATE_ERROR.VALIDATION_ERROR.90685”
解决方案是在 Xcode 中创建一个框架目标,将所有共享(静态)SPM 依赖项移至该目标,将它们从任何其他目标中删除,然后将新框架添加到目标需要它们,确保select“不嵌入”。
我附上了我收到的完整错误消息的屏幕截图。当我尝试将我的应用程序提交到 iTunes Connect 时会发生这种情况。 运行 应用
时我没有收到任何错误我的应用程序出现了完全相同的错误,我无法从信息中找到任何原因。不过,不同之处在于,我为所有 .dll
个文件都获取了它。
一段时间后,我看到在 IOS Bundle Signing
- Custom entitlements
下它试图指向一个不存在的文件。我刚刚删除了它,它不再出错。
不确定它是否对你也有帮助,但它对我有用。
对我来说,这个问题是由捆绑包中包含框架引起的。即,我正在将 .framework 文件复制到应用程序包中。这不是必需的,因为框架静态链接到主应用程序二进制文件。
很可能,您有一个包含复制到项目中的 .framework 的文件夹(如 "external" 或 "ThirdParty")。该文件夹不应具有任何目标的成员身份。
在您的 Frameworks 文件夹本身中,应该是具有您应用的目标成员资格的实际 .framework 文件和 "Required"
我也遇到了同样的问题,
第1步:复制.Framework时看到你错误地复制(拖拽)了GoogleMaps.bundle中的框架或一些其他 .bundle 扩展名。
第 2 步: 如果 .bundle 资源中存在其他框架,如果存在则删除该框架(如果根本不需要),否则从该 .bundle 中拖出。
第 3 步: 如果 .framework 不存在,则检查所有 .bundle 资源,如果 .framework 存在,如果存在则删除该框架(如果根本不存在)必需,否则拖出该 .bundle。
第 4 步:然后清理并构建项目。
不确定,如果它对你也有帮助,但它对我有用。
我们的捆绑包有一个带有重音符号的特殊字符,删除它可以解决问题。
对我有帮助的是,我在框架、库和嵌入式内容中的项目目标中创建了我的框架 -> 不要嵌入。
对我有用的是在显示问题导航器中使用项目的 XCode 自动更新设置。当我从那里更新 2 个设置时,项目构建成功甚至上传到 TestFlight。
我刚刚在 Xcode 13 中遇到过这种情况。我们在单独的模块中有一些 Swift 代码(Xcode 项目中的单独目标),其中一个目标被引用同一项目中的几个其他模块。它在目标“常规信息”选项卡中将它们设置为“嵌入并签名”。我将其设置为“不嵌入”。
但这只是解决方案的一部分。我收到关于“iOS 应用程序下有多个具有 CFBundleIdentifier 值的捆绑包的投诉。错误代码为 STATE_ERROR.VALIDATION_ERROR.90685”
解决方案是在 Xcode 中创建一个框架目标,将所有共享(静态)SPM 依赖项移至该目标,将它们从任何其他目标中删除,然后将新框架添加到目标需要它们,确保select“不嵌入”。