iTunes Connect - 无效的Swift支持 - Watch OS应用程序同时使用了Swift库

24

在将我的应用程序(使用Xcode 7.2.1)归档并上传到iTunes Connect之后,我收到了来自iTunes Connect的一封电子邮件,内容如下:

无效的Swift支持 - Watch OS应用程序在 /Payload/Today'sMenu.app/TodaysReactiveMenuWatch.app/TodaysReactiveMenuWatchExtension.appex/Frameworks/ 和 /Payload/Today'sMenu.app/TodaysReactiveMenuWatch.app/Frameworks/ 中都有Swift库。请从其中一个位置中删除所有的Swift库并重新提交您的应用程序。

我的项目包含一个iOS应用程序和一个watchOS应用程序。 所有目标都将标志“Embedded Content Contains Swift Code”设置为YES,因为我所有的源文件都是用Swift编写的。

我的Pod文件包含以下内容:

use_frameworks!

# ignore all warnings from all pods
inhibit_all_warnings!

def shared_pods
    pod 'ReactiveCocoa', '4.0.1'
    pod 'Alamofire', '~> 3.1.4'
    pod 'Unbox', '~> 1.3'
end

target 'TodaysReactiveMenu' do
    platform :ios, '9.0'

    shared_pods
    pod 'Fabric', '~> 1.6.0'
    pod 'Crashlytics', '~> 3.4.0'
    pod 'PureLayout', '~> 3.0.1'
end

target 'TodaysReactiveMenuTests' do

end

target 'TodaysReactiveMenuWatch Extension' do
    platform :watchos, '2.0'

    shared_pods
end
我正在使用CocoaPods 1.0.0.beta.4版本。你有什么想法来解决这个问题吗?

我正在使用CocoaPods 1.0.0.beta.4。你有什么想法,可以帮助我解决这个问题吗?


嘿,我也遇到了同样的问题,你找到解决方法了吗? - PiXeL16
抱歉,不好意思。我也在GitHub上提出了这个问题:https://github.com/CocoaPods/CocoaPods/issues/5044 - Steffen D. Sommer
1个回答

55

我发现在Watchkit应用程序目标中将“嵌入内容包含Swift代码”从YES更改为NO,并在Watchkit扩展目标中将“嵌入内容包含Swift代码”设置为Yes对我有用。


我以为我已经尝试了所有的设置组合,但显然不是这样。你的建议很有效!非常感谢。 - Steffen D. Sommer
我在我的Xcode 8项目中没有看到“嵌入式内容包含Swift代码”。它被标记为其他什么东西了吗? - Jay Mayu
27
如果你正在使用Xcode 8,那么它应该是“ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES”。 - Jay Mayu
我感到困惑,因为我已经按照这个答案所描述的设置进行了操作。然后我注意到,在“用户定义”设置下,手表扩展中设置了“嵌入式内容包含Swift代码”(滚动到构建设置的底部)。不知道是由另一个开发人员添加的还是由Xcode迁移添加的。使用Xcode 9,所以那甚至不是正确的设置,但显然它仍然被尊重。 - RyanM

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接