我一直将我的应用程序提交到App Store进行测试飞行,在构建11之后,我通过Apple的电子邮件收到了失败:
非公共API使用:该应用包含一个或多个损坏的二进制文件。重建应用程序并重新提交
我没有收到他们的其他详细信息。没有方法名称或类或任何东西。
我已经提交了构建15,例如,它实际上是构建版本11的完全副本(通过了!),版本号为bump,构建15失败。
我认为这是Apple的错误,但除了上面的段落之外我无法证明这一点。构建1-11工作正常,并能够上传和分发。
我正在使用Xcode 9.1和9.2,两者都给出了相同的错误。
我也通过DTS联系Apple,他们说他们无法帮助我。
我现在该怎么办?
答案 0 :(得分:6)
我遇到了这个问题。我使用CommonCrypto作为假冒的'框架。我将其删除,并切换为 the method described by the accepted answer in this thread ,iTunesConnect接受了我的版本。
在使用pod update
时,通过XCode获取Swift 4转换警告或使用" CommonCryptoModule" 显示在cmd输出中似乎是一个强有力的指标,无论您是否受到影响通过这个问题与否。
答案 1 :(得分:2)
我们没有启用bitcode的项目在2018-01-26周五开始失败。在这些项目的构建设置中将Enable Bitcode
设置为Yes
解决了这个问题。
答案 2 :(得分:2)
经过大量的调查后,我们终于发现了这个问题的问题: 似乎Apple为支持32位和64位的应用程序提供了此错误。
Apple为Mac Appstore提供了this提醒,但似乎iOS应用程序也受到了影响。
因此,解决方案是支持bitcode OR通过删除对ARMV7和ARMV7S的支持或者从构建设置的Valid Architectures中删除对32位设备的支持。这意味着您的应用程序仅适用于iPhone 5S及更高版本。 我希望这可以帮助别人。 谢谢!
答案 3 :(得分:1)
自周六以来遇到同样的问题。在我们的案件中进行了长时间的试验和错误,打开Bitcode不起作用。
我的podfile
的以下部分是原因:
post_install do |installer|
puts("Set deployment target")
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '10.3'
end
end
end
我删除了这个后,它处理没有错误(仍然关闭Bitcode)。虽然为什么设置部署目标会突然导致拒绝,但这真让我感到困惑。
答案 4 :(得分:0)
似乎问题已在iTunes Connect后端修复。 建成45后,我们昨天晚上通过了。试图找出解决所有这些变化问题的原因 - 现在似乎还要进行初始构建。
所以我可以在外面度过三天......
答案 5 :(得分:0)
最近从2018年1月26日没有任何通知或公告苹果做了一些改变相关的快速旧代码不再适用于在app-store提交申请。我没有在我的项目中使用CommonCrypto
我也面临这个问题,我在苹果论坛和各种平台上进行了大量搜索并发布了一个关于非公共API使用情况的问题:该应用程序包含一个或多个损坏的二进制文件。重建应用并重新提交
了解到那种无效的二进制拒绝没有单一解决方案。我提到了一些可能最近适用于某些用户的解决方案。
swift4
后,我会收到以下警告:不推荐在Swift 4模式下使用Swift 3 @objc推理。 请解决已弃用的@objc推理警告,测试您的代码 启用“使用已弃用的Swift 3 @objc推理”日志记录,以及 然后通过改变" Swift 3 @objc推理"来禁用推理。建立 设置为"默认"对于" appname"目标
要修复此警告,我会使用该答案:The use of Swift 3 @objc inference in Swift 4 mode is deprecated?
之后,我需要在@objc
类公共方法中添加swift3
我在objective-c
类中使用桥接
我还检查左侧面板中的其他警告,还有一些其他依赖警告,应用程序目标可能也是其他的帮助。
希望这个答案对于一些尚未找到答案但可能有帮助的用户有用。
答案 6 :(得分:0)
我能够为自己解决这个问题,这就是我所做的:
我希望有所帮助!
答案 7 :(得分:0)
我在上传第9版之后找到了自己的解决方案。
您可以在swift课程中查看如何使用 @objc 查看此链接:The use of Swift 3 @objc inference in Swift 4 mode is deprecated?
然后我更改了未使用的个人资料。
然后我上传应用程序,它的工作原理。如果有人需要帮助,请告诉我
答案 8 :(得分:0)
我使用soffes / CommonCrypto和Carthage。删除CommonCrypto.framework对我有用,请查看此链接如何导入commoncryto框架: http://ioscake.com/importing-commoncrypto-in-a-swift-framework.html