所以我们有一些共享代码的项目,它们现在必须保持与iOS7兼容。目前我们使用本地Cocoapods在不同应用程序之间共享代码。这种做法的缺点是所有共享的代码都被放在一个组中。此外,Cocoapods团队解释了为什么Swift Pod将不可用于iOS7项目:
“CocoaPods仅支持OS X 10.9及更高版本和iOS 8及更高版本上的Swift。”
原因如下:
如Apple多次声明的那样,Swift在OS X 10.9/iOS 7及更高版本上得到支持。没有支持使用Swift构建静态存档的功能。动态框架在所有版本的OS X上都受支持。但是,在iOS 8之前,动态框架不受支持。
(来源:http://blog.cocoapods.org/Pod-Authors-Guide-to-CocoaPods-Frameworks/)
考虑到这一信息,我们想尝试使用Cocoa Touch Framework项目来共享代码。
我的操作步骤如下:
在工作区中创建一个新项目-> Cocoa Touch Framework
在此添加/移动Swift代码,并将所需函数/等定义为public
在主构建目标中将新项目添加为“嵌入式框架”
在需要使用已定义库中的类时,使用导入语句,其中构建目标名称是模块名称(在我的情况下是import Cobra)
这看起来能够正常工作,甚至可以在iOS7上运行。这很奇怪,因为无论我在网上读到什么警告,都会确保该应用程序无法在iOS7设备上运行:
然而,在我们的iOS 7测试设备上,它似乎可以正常工作。此外,这让我感到担忧:
框架路径似乎直接链接到我的本地DerivedData文件夹。我并没有特别选择我的DerivedData文件夹,我只是从Xcode中添加了建议的框架,然后它自己决定从我的DerivedData文件夹中获取它。
我们与多个程序员一起开发这个项目。
在我走向这条路并将代码移动到这个新设置之前:
这种嵌入共享库的方式会给我的团队带来问题吗?(换句话说:我做错了什么吗?)
这种嵌入库的方式会在提交应用程序到App Store时引起任何问题吗?
如果需要:是否有其他替代方法来在项目之间共享代码/文件,而不是简单地来回复制?我无法相信没有人遇到过这个问题。
“CocoaPods仅支持OS X 10.9及更高版本和iOS 8及更高版本上的Swift。”
原因如下:
如Apple多次声明的那样,Swift在OS X 10.9/iOS 7及更高版本上得到支持。没有支持使用Swift构建静态存档的功能。动态框架在所有版本的OS X上都受支持。但是,在iOS 8之前,动态框架不受支持。
(来源:http://blog.cocoapods.org/Pod-Authors-Guide-to-CocoaPods-Frameworks/)
考虑到这一信息,我们想尝试使用Cocoa Touch Framework项目来共享代码。
我的操作步骤如下:
在工作区中创建一个新项目-> Cocoa Touch Framework
在此添加/移动Swift代码,并将所需函数/等定义为public
在主构建目标中将新项目添加为“嵌入式框架”
在需要使用已定义库中的类时,使用导入语句,其中构建目标名称是模块名称(在我的情况下是import Cobra)
这看起来能够正常工作,甚至可以在iOS7上运行。这很奇怪,因为无论我在网上读到什么警告,都会确保该应用程序无法在iOS7设备上运行:
embedded dylibs/frameworks only run on iOS 8 or later
然而,在我们的iOS 7测试设备上,它似乎可以正常工作。此外,这让我感到担忧:
框架路径似乎直接链接到我的本地DerivedData文件夹。我并没有特别选择我的DerivedData文件夹,我只是从Xcode中添加了建议的框架,然后它自己决定从我的DerivedData文件夹中获取它。
我们与多个程序员一起开发这个项目。
在我走向这条路并将代码移动到这个新设置之前:
这种嵌入共享库的方式会给我的团队带来问题吗?(换句话说:我做错了什么吗?)
这种嵌入库的方式会在提交应用程序到App Store时引起任何问题吗?
如果需要:是否有其他替代方法来在项目之间共享代码/文件,而不是简单地来回复制?我无法相信没有人遇到过这个问题。
GIT
,避免使用_cocoapod_带来的额外麻烦;您不需要担心哪个版本的Xcode、OSX或iOS支持它 - 它可以正确地支持您所需的一切,并且设置和使用它的过程比浪费时间在_cocoapods_上要容易得多,我认为_cocoapods_并不是专业人士使用的,而是针对书呆子极客的。 (我不想引发任何争论,谢谢,正如我所说“在我看来”!) - holex