简而言之,在使用Xcode 9 Beta时,我遇到了以下警告:
不推荐在Swift 4模式下使用Swift 3 @objc推理.请解决已弃用的@objc推理警告,使用"使用已弃用的Swift 3 @objc推理"日志记录测试代码,并禁用Swift 3 @objc推理.**
经过一番研究,我仍然不知道如何解决这个问题.我将非常感谢有关如何解决此问题的任何提示以及对正在发生的事情的解释.
我的目标是更好地理解我的代码发生了什么.
如何CommonCrypto在iOS的Swift框架中导入?
我理解如何CommonCrypto在Swift应用程序中使用:您添加#import <CommonCrypto/CommonCrypto.h>到桥接标头.但是,Swift框架不支持桥接头.该文件说:
您可以导入具有纯Objective-C代码库,纯Swift代码库或混合语言代码库的外部框架.无论框架是用单一语言编写还是包含来自两种语言的文件,导入外部框架的过程都是相同的.导入外部框架时,请确保将要导入的框架的"定义模块"构建设置设置为"是".
您可以使用以下语法将框架导入到不同目标中的任何Swift文件中:
import FrameworkName
Run Code Online (Sandbox Code Playgroud)
不幸的是,导入CommonCrypto不起作用.也没有添加#import <CommonCrypto/CommonCrypto.h>到伞头.
对于iOS应用程序新版本上传,我真的很沮丧.这是故事.
在2018年1月25日,我们上传了新版本3.3.27内部版本号1.0.成功处理并在测试飞行中进行测试.之后我们发现了一些问题,并在2018年1月26日我们修复它并上传新版本1.1我们从iTunes Connect收到电子邮件说:
亲爱的开发者,
我们发现您最近为"appname"发送了一个或多个问题.要处理您的交付,必须纠正以下问题:
非公共API使用情况:
Run Code Online (Sandbox Code Playgroud)The app contains one or more corrupted binaries. Rebuild the app and resubmit.如果源代码中的方法名称与上面列出的私有Apple API匹配,则更改方法名称将有助于防止在将来的提交中标记此应用程序.此外,请注意,上述API中的一个或多个可能位于应用程序附带的静态库中.如果是这样,他们必须被删除.
如果您认为此消息是错误发送的,并且您仅按照指南使用Apple发布的API,请将应用程序的九位Apple ID以及有关您认为上述API被错误标记的原因的详细信息发送到email@apple.com.有关详细信息,请访问
虽然我在上传成功之前验证了构建:
当我上传应用程序时,我获得了以下成功:
在邮件中我没有得到正确的信息是什么是损坏的二进制文件或框架的名称.我们使用的方法是什么,非公开我们在1月25日之前上传了该应用程序的100s更新版本,一切都很好并且可以接受.
然后我尝试了以下更改:
我们发送了一封电子邮件给iTunes Connect Review,但是从3天开始我们没有得到他们的回复.我做研究从1月26日起许多用户在提交申请时面临那种问题.
如果有人知道过去或最近遇到过那种问题的解决方案请帮助我们