非公开 API 使用:该应用程序包含一个或多个损坏的二进制文件 [英] Non-public API usage : The app contains one or more corrupted binaries

查看:33
本文介绍了非公开 API 使用:该应用程序包含一个或多个损坏的二进制文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

对于 iOS 应用程序新版本上传,我真的很沮丧.这是故事.

I am really frustrate whats going on with iOS application new version uploads. Here are the story.

2018 年 1 月 25 日,我们上传了新版本 3.3.27 内部版本号 1.0.成功的过程并可以在试飞中进行测试.之后,我们发现了一些问题,并于 2018 年 1 月 26 日修复了它并上传了新版本 1.1,我们收到来自 iTunes Connect 的电子邮件说:

On the date of 25th Jan 2018 we have uploaded new version 3.3.27 build number 1.0. That successfully process and available on test-flight for testing. After that we found some issue and on 26th Jan 2018 we fix it and uploading new build 1.1 and we get email from iTunes Connect said:

亲爱的开发者:

我们发现您最近交付的appname"存在一个或多个问题.要处理您的交付,必须更正以下问题:

We have discovered one or more issues with your recent delivery for "appname". To process your delivery, the following issues must be corrected:

非公共 API 使用:

Non-public API usage:

The app contains one or more corrupted binaries. Rebuild the app and resubmit.

如果源代码中的方法名称与私有 Apple API 匹配上面列出,更改您的方法名称将有助于防止此应用程序以免在以后的提交中被标记.此外,请注意,一或多个上述 API 可能位于静态库中包含在您的应用程序中.如果是这样,它们必须被移除.

If method names in your source code match the private Apple APIs listed above, altering your method names will help prevent this app from being flagged in future submissions. In addition, note that one or more of the above APIs may be located in a static library that was included with your app. If so, they must be removed.

如果您认为此消息是错误发送的并且您只有按照指南使用 Apple 发布的 API,发送应用程序的九位 Apple ID,以及有关原因的详细信息您认为上述 API 被错误标记,电子邮件@apple.com.如需更多信息,请访问

If you think this message was sent in error and that you have only used Apple-published APIs in accordance with the guidelines, send the app's nine-digit Apple ID, along with detailed information about why you believe the above APIs were incorrectly flagged, to email@apple.com. For further information, visit the

虽然我在上传成功之前验证构建:

当我上传应用程序时,我获得了以下成功:

在邮件中,我没有得到正确的信息,损坏的二进制文件或框架的名称是什么.我们使用的方法是什么?我们在 1 月 25 日之前上传了该应用程序的 100 秒更新版本,一切都很好并且可以接受.

In mail i did not get proper information what's the name of corrupted binary or framework. What is the method we used that non-public we have uploaded 100s update build of that application before 25th Jan everything is good and acceptable.

然后我尝试了以下更改:

  1. 重新构建应用并再次提交会收到相同的电子邮件.
  2. 卸载 Xcode9.2 并再次安装收到相同的电子邮件.
  3. 删除更改并再次上传内部版本号 1.0 会收到相同的电子邮件.
  4. 更换 Mac 并尝试在同一电子邮件中再次上传新版本.
  5. 尝试上传旧版本的旧版本,并再次使用相同的电子邮件

我们向 iTunes Connect Review 发送了一封电子邮件,但 3 天后我们没有收到他们的任何回复.我做了研究,从 1 月 26 日开始,许多用户在提交申请时都面临这种问题.

We sent an email to iTunes Connect Review but since 3 days we did not get any reply from them side. I do research and from 26th Jan many user face that kind of issue while submit application.

如果有人知道过去或最近遇到此类问题的解决方案,请帮助我们

If any one know that solution who face that kind of issue in past or recently Please help us

推荐答案

没有一个解决方案可以解决这个问题 Apple 现在没有在他们的官方帐户或论坛或他们的官方开发人员中提及有关该错误或无效二进制相关新闻的任何消息地点.即使他们没有回复您的电子邮件.

There is not one solution for this issue Apple not mention anything now a days about that errors or invalid binary related news on their official account or forums or their official Developer site. Even they are not reply of your email.

一些通过启用 BitCode 解决了这个问题,一些解决了更新 PODFILE 的问题,一些通过删除项目中使用的一些旧的 swift 框架来解决这个问题.

Some of get that issue solved by BitCode enable, Some of solve that issue for update PODFILE, Some of Solve that issue by remove some old swift framework used in project.

但最后我自己得到了对我有用的解决方案.当我构建项目时,我在 Xcode 的左侧面板中发现了一些警告,如下所示.

But finally I get solution by my self that works for me. When i build the project i found some warning at left side panel of Xcode like following.

我认为 Apple 现在删除了旧的 swift 支持,因此如果您的项目使用任何 swift 类或 podfile,我们需要更新到 swift 4.

I think apple now removed old swift support so in case your project use any swift class or podfile we need to update to swift 4.

一旦我转换为 swift 4,我就会收到以下警告:

Once i conversion to swift 4 i get following warning:

不推荐在 Swift 4 模式下使用 Swift 3 @objc 推理.请解决不推荐使用的@objc 推理警告,测试您的代码启用使用已弃用的 Swift 3 @objc 推理"日志记录,以及然后通过更改Swift 3 @objc Inference"构建来禁用推理将appname"目标设置为默认".

The use of Swift 3 @objc inference in Swift 4 mode is deprecated. Please address deprecated @objc inference warnings, test your code with "Use of deprecated Swift 3 @objc inference" logging enabled, and then disable inference by changing the "Swift 3 @objc Inference" build setting to "Default" for the "appname" target.

为了修复这个警告,我使用以下链接 不推荐在 Swift 4 模式下使用 Swift 3 @objc 推理? 并且在 swift 类中我在公共声明之前使用了 @objc.

For fix this warning i use following link The use of Swift 3 @objc inference in Swift 4 mode is deprecated? and in swift class i used @objc before public declaration.

我还查看了所有源代码并从项目中删除了未使用的 podfile 和类库.

Also i review all the source code and remove unused library of podfile and class from project.

通过上述方式我解决了这个问题,并在上​​传第 13 次构建后最终被接受.

by above way i fix that issue and after uploading 13th of build finally that accepted.

这篇关于非公开 API 使用:该应用程序包含一个或多个损坏的二进制文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆