Tag: podfile

依赖于其他Pod的分布式框架

在本教程中,我们的重点是使用依赖于其他容器的框​​架。 打开终端,并使用以下命令克隆启动程序项目。 git clone –branch 1.0.3 https://github.com/aliakhtar49/MyFramework.git 这是我们在上一部分中开发的框架。 如果您遵循 上一部分 ,则可以直接转到“入门”部分。 框架的职责是使用NSUrlSession打入网络调用,并将数据返回给使用者应用程序。 在上一部分中,我们看到了如何在本地和远程使用框架,而在这一部分中,我们将对框架添加一个依赖关系,而不是使用NSUrlSession,它将使用pod中附带的alamofire。 如果您不了解或不了解Podfile,Podspec和如何创建框架,强烈建议您看一下前面的部分。 😐 如图1所示,磁盘上的克隆存储库项目结构。 如果尚未创建框架存储库,则必须执行以下操作( 或参阅上一部分) 在github上创建MyFramework存储库 将项目克隆到一些空文件夹 将clone 1.0.3 MyFramework项目内容移动到空克隆存储库文件夹中 推送代码 您可以下载消费者应用程序(Consumer_Part2_Starter)。 该应用程序将使用我们创建的框架 入门 在本节中,我们将向我们的框架添加一个依赖项。 转到终端中MyFramework项目的根文件夹,如图2所示,然后运行以下命令。 这将创建一个podfile ,如图2所示。 Podfile定义项目所依赖的内容。 pod init 打开podfile并将其替换为图3中所示的代码。我们所做的是添加Alamofire作为对框架的依赖。 转到终端中MyFramework项目的根文件夹,如图2所示,然后运行以下命令。 这将安装Alamofire,并创建一个MyFramework.xcworkspace文件。 现在关闭项目并打开MyFramework.xcworkspace 。 pod install 如图4所示,我们在框架中添加了新功能。 现在,与以前的版本相比,它还有另一种方法。 此方法使用Alamofire从服务器获取数据,并且Alamofire包含在Pod中,该Pod是对此框架的依赖。 转到MyFramework项目的根文件夹,打开MyFramework.podspec文件,并用以下代码替换代码,如图5所示。我们做了几件事 Cocoapods使用此git url下载源代码并寻找标签1.0.6 当消费者使用cocoapods安装我们的框架时,cocoapods首先查看依赖关系,然后按照步骤1进行自动安装。消费者应用程序无需担心它 Pod规范描述了Pod库的版本。 它包括有关应从何处获取源,使用哪些文件,要应用的构建设置以及其他常规元数据(例如其名称,版本和说明)的详细信息。 将更改推送到您创建的存储库。 我推动了回购 推送标签以创建历史记录点。 这一步很重要。 由于我们将使用此标记在客户应用程序上安装pod,如图7所示 […]

XCode在尝试使用私有Pod(Swift)中定义的协议时说“使用未声明的types”

我和我的团队陷入了一个奇怪的情况,涉及一个基础项目+内部有一些协议的私人Pod。 我们的问题是,我们无法从我们的基本应用程序代码访问一些(协议)标识符(在私人pod中定义)。 显然我们的问题似乎与这两个堆栈溢出线程中所描述的完全相同,但是他们的解决scheme并没有与我们合作。 线程1: 在Swift中找不到源文件 线程2: 安装了CocoaPod,但没有看到Swift代码 我们使用的骨架是这个: 我们的Commons pod(使用我们无法从基本应用程序中看到的协议)使用此.podspec文件进行定义: Pod::Spec.new do |s| s.name = "Commons" s.version = "0.1.10" s.summary = "Commons framework" s.description = <<-DESC "Commons framework" DESC s.homepage = "http://EXAMPLE/Commons" s.license = { :type => "Commercial" } s.author = { "Author" => "author@mail.mail" } s.source = { :git => "GITLAB_PRIVATE_URL/commons-iOS-Pod.git", :tag => s.version […]

没有这样的模块…在Xcode

我遇到了Xcode的问题(使用Swift),让我完全陷入了困境。 我意识到这个问题已经被问到和回答了,但是没有一个答案对我有用,而且我的情况似乎与其他问题有所不同,因为我的所有的豆荚都失败了(不仅仅是一个特定的问题)。 一周前他们都很好。 我使用一些更常见的Swift框架(例如Alamofire,Eureka,Kingfisher,SwiftyJSON等)的Cocoapods。 他们在Xcode 7中都工作正常。然而,(自动)更新之一碰到了我的Xcode版本,之后在podfile中强制指定目标。 我做到了这一点,并运行pod安装。 豆荚仍然在那里,但现在每一个涉及这些框架的import声明都失败了。 起初,我认为这是一个Alamofire问题,因为这是第一个失败的“没有这样的模块Alamofire”错误。 我尽力与Alamofire合作,包括以下内容: 清洁和重build 清理生成文件夹 重新启动Xcode 重新启动电脑 删除所有派生的数据 增加了“链接框架和库”的框架 增加了“链接二进制与库”的框架 确认我正在打开工作区而不是项目 重新安装CocoaPods 重新安装Xcode ver 7.3.1 没有什么会删除“没有这样的模块…”的错误。 最后,我从吊舱上取下了Alamofire,并把Alamofire项目拖到了我的项目中。 这使我可以删除Alamofire的import报表。 但令我沮丧的是,现在下一个框架造成了“没有这样的模块”。 我把接下来的三个框架移到了我的项目中,看起来它会继续下去。 显然,我的Pods框架都没有被识别出来。 我安装了Xcode 8,并用Swift 2.3试过,但是我得到了“没有这样的模块”的错误。 我真的更喜欢使用Cocoapods,因为它使升级更容易,以及其他奖金。 我猜我有一些设置错误,这是搞砸了我所有的豆荚,但一直没有find它的运气。 这是一个灾难,因为它已经closures了几天的发展,没有任何修复的迹象。 如果有任何事情可以帮助我find解决办法,请告诉我。 如果任何人都可以提供任何可能的解决scheme,甚至可以尝试,这将不胜感激。 我目前正在使用Xcode版本7.3.1。 我的pod文件看起来像这样: source 'https://github.com/CocoaPods/Specs.git' platform :ios, '8.0' target 'Y2GOsp' do use_frameworks! # Pods for Y2GOsp pod 'Alamofire', '~> 3.0' […]