为什么我不能embedded我的自定义框架?

我有一个非常简单的构build成功的框架项目MyFramework。 框架定义了一个单一的全局函数myFunction。 该框架还定义了2个全局variables:MyFrameworkVersionNumber和MyFrameworkVersionString(这两个variables是由Xcode为我创build的)

我有一个非常简单的应用程序项目MyApplication。 通过将框架包(即通过构build框架生成的DerivedData中的MyFramework.framework)拖放到Xcode Navigator上,然后在项目的General的Embedded Binaries部分中select框架,我将框架添加到应用程序项目中标签。

如果我将代码添加到引用variablesMyFrameworkVersionNumber的MyApplication,那么我能够成功构build并运行MyApplication。

如果我将代码添加到引用函数myFunction的MyApplication,那么我无法构buildMyApplication。


第一次更新


我突然想起迦太基正在做我正在做的事情。 所以,我用Carthage来构buildMyFramework和Voila! – 我可以将Carthage构build的框架拖放到应用程序项目中并成功使用它。 所以现在我的询问已经变成:迦太基知道我不知道什么?

哦,看在上帝的份上! 原来如此简单。 MyFramework正在为通用iOS设备(arm64架构)构build。 MyApplication正在为模拟器(x86_64体系结构)构build。 只要我匹配这两个一切都很好。 Carthage构build工作得很好的原因是它产生了一个通用的二进制文件(即包含两种架构的二进制文件)。

我仍然不明白为什么MyFrameworkVersionNumber全局variables能够被访问,而不pipe架构如何。 但是,我可以推迟那些神秘的信息,这些信息将会在时间的优点中被揭示出来(也许是这样的一种结构,就是两个结构的结构相同)。