我正在创建一个新的应用MyApp
,我决定将应用的某些部分放在一个单独的框架MyFramework
中,而不是应用本身,以使它们可以在其他项目中重复使用。框架有自己的项目(MyFramework.xcodeproj
),它是主应用程序项目(MyApp.xcodeproj
)的子项目。当然,主应用程序项目在框架(MyFramework.framework
)上具有依赖关系(链接和复制)。到目前为止,这部分工作正常。
现在,MyFramework
需要一个可可豆荚(Alamofire
)才能运作。据我所知,我不想直接为MyFramework.xcodeproj
项目设置可可豆荚,所以我只需为主要应用MyApp.xcodeproj
设置它(现在MyApp.xcworkspace
因为pods而且还包括Alamofire
pod。然后,我将MyFramework.xcodeproj
与Alamofire.framework
(而非MyApp_Pods.framework
)相关联,但未将Alamofire
设置为复制。 MyApp.xcodeproj
执行通常的cocoapods链接/复制/捆绑内容,因此最终产品中还包含Alamofire.framework
。这部分工作得很好。
(注意:我说' 部分正常'这里因为我偶尔会在编译时找不到MyFramework
模块的Alamofire
来源中出现错误,可以通过重新链接Alamofire.framework
中的MyFramework.xcodeproj
来修复。除此之外,构建和运行应用程序运行正常。)
现在问题是,当我尝试归档应用时,Alamofire
来源中再次找不到MyFramework
模块。归档MyApp
(也构建MyFramework
)以及直接归档MyFramework
时,都会发生错误。错误不是发生在链接阶段,而是发生在具有import Alamofire
语句的源Swift文件的编译阶段。
我怀疑类似于Alamofire.framework
的链接以使用在构建时可以找到的错误的相对路径,但在归档等方面有所不同。我已经尝试将Alamofire.framework
路径设置为Relative to build products
,但无法使其正常工作,甚至不能用于常规构建(不归档)。
我现在陷入困境,想知道我的整个设置是否与MyFramework.xcodeproj
项目链接到Alamofire.framework
并且Alamofire
包含在广告连接中是否正确。
有人能给我一个提示,这里可能有什么问题吗?在路径中还是在整个设置中?
答案 0 :(得分:0)
这不会解决问题本身,但会提供满足您需求的解决方案:
将MyFramework
转换为广告连播。在private spec repo中托管它,或者 - 甚至更简单 - 使用pod文件中的git
参数来访问它。
pod 'MyFramework', :git => 'https://gitsever/maxscompany/MyFramework.git'