Tag: cocoapods

将iOS项目从CocoaPods迁移到Carthage的五个步骤

注意:这篇文章最初是在XCBlog上发布的 ,请阅读原始文章以获得更好的图形。 苹果可能不喜欢iOS开发人员将第三方依赖项添加到iOS项目这一事实。 苹果的核心技术为健康的文档提供了足够的框架和工具,开发人员可以使用它们来构建和分发iOS应用。 这可能是Apple目前没有任何官方程序包管理器来管理iOS应用程序依赖性的原因。 但是,这不是现实,iOS开发人员希望共享和分发代码以实现可重用性,避免重复并节省时间。 长期以来,CocoaPods一直作为iOS应用程序的依赖项管理解决方案。 它是用Ruby编写的,iOS开发人员需要了解Ruby才能使用它。 只要一切正常,一切都会好的,但是如果CocoaPods或Xcode项目中CocoaPods所做的不可思议的设置出现问题,痛苦就会开始。 迦太基是另一个由Swift编写并由Github工程师维护的依赖项管理解决方案。 在上一篇博客文章中,我解释了CocoaPods和Carthage有什么区别以及如何选择合适的框架。 我强烈建议您在此处阅读该帖子,以了解基本区别。 在本文中,我们将假设您已决定去迦太基,我们将看到从CocoaPods迁移到迦太基有多么容易。 通过应用这五个步骤可以轻松实现。 相关性分析 迦太基干跑 CocoPods退役 清理Xcode项目 将框架链接到目标 我们将详细讨论每个阶段。 这里要注意的一件事,我们只是在谈论Swift框架和动态库,而不是在谈论旧的Objective-C或静态框架。 将iOS项目迁移到Carthage的第一步是依赖性分析。 如果您使用的是CocoaPods,则iOS项目的Podfile中必须挂有一系列依赖项。 在分析阶段,您应该做两件事。 在此阶段,请尝试摆脱不再使用的依赖项,或者尽可能替换为其他方法。 该示例为SwiftLint,请思考为什么我们需要将SwiftLint添加为对iOS应用程序的依赖。 它可以在Github预提交钩子上轻松运行,也可以从本地计算机或Continuous Integration服务器上的命令行脚本轻松运行。 同样,检查使用了多少其他依赖项,看看是否可以轻松地用本机Apple技术替换这些依赖项,例如可以将URLSession和Codable替换为Alamofire或SwiftyJSON。 更少的依赖关系减少麻烦。 几乎所有主要的第三方Swift框架都支持Carthage。 检查方法是访问框架的Github存储库页面并查看README文件。 应当有徽章说明迦太基的支持以及平台的支持,如下所示(虽然不是很大) 如果您在那里没有看到徽章,并且可以使用xcodebuild构建Swift框架,并且该框架具有受iOS平台支持的方案,那么也应该可以。 一次,您确认了这两件事,就可以继续进行下一步,即迦太基空运行。 在此阶段,您已经确认支持从CocoaPods迁移到Carthage所需的依赖项。 是时候准备Cartfile并在其中添加所有依赖项,并在Podfile或Podfile中提到正确的版本。lockOnce准备好Cartfile,而不是尝试在当前项目上运行Carthage更新。 $迦太基更新-平台iOS 执行此命令后,可能是时候喝咖啡了。 当您从喝咖啡休息时间回来并且一切都已成功构建后,便可以进行下一步了。 但是,您陷在错误中,现在是修复这些错误的好时机。 常见的错误是 Swift版本可能有所不同 该框架不支持iOS平台,或者在构建时并未考虑到迦太基。 或迦太基已指定的任何其他错误 一旦成功构建所有内容,您应该拥有带有Checkout和Build子目录的Carthage目录,该目录具有依赖项框架和预构建框架的所有源代码。 在这个阶段,您最好从您的iOS项目中放弃CocoaPods。 当您将CocoaPods集成到iOS项目中时,您可能已经观察到CocoaPods几乎侵入了您的Xcode项目。 CococPods不仅创建了Xcode Workspace,而且还深入渗透到构建设置和构建阶段。 从iOS项目中删除所有混乱的过程听起来像是y牛刮胡子,但事实并非如此。 无需手动删除CococPods文件,脚本和框架。 非常感谢CocoPods-Deintegrate插件,该插件几乎删除了CocoaPods在Xcode项目中放置的所有标记。 我们只需要下载插件并从iOS项目的根目录或您的Xcode项目或工作区所在的位置运行pod deintegrate脚本即可。 […]

从Xcode打开终端

使用Xco的第三方工具(如CocoaPods)在Xcode中进行iOS开发,我经常发现自己需要在项目位置打开终端窗口。 尽管起初我就像是使用Terminal的黑客(就像我当时使用的n00b一样),但很快就变得很无聊和乏味。 我的第一个解决方案是在Finder中添加“在此位置打开终端”服务,因此我可以右键单击项目文件夹,然后打开一个预选该位置的“终端”窗口。 这种方法需要您通常通过单击项目文件上的“在Finder中显示”来跳出Xcode,以完成此重要任务。 因此,我在网上进行了搜索,并迅速从几个不同的来源收集了一个解决方案,使我可以直接从Xcode使用键盘快捷键来打开“终端”窗口。 TL; DR这是您需要做的: 1.使用您喜欢的文本编辑器创建一个新的文本文件,并将其放入其中: #! / bin / bash 打开-a终端“ $ SRCROOT” 2.使用.sh扩展名将其保存在某个永久位置,您每天都不会看到它,因此它会惹恼您,并且您不会误删除它。 3.导航到使用Terminal刚创建的脚本文件的位置,并使用以下命令更改其权限: chmod + x 其中应该替换为刚创建的.sh文件的名称。 3.在Xcode中,转到“首选项”->“行为”,然后单击底部的加号以添加新行为并将其命名为“ Open Terminal” 4.仅勾选最后一个复选框,其中显示“运行”,然后选择.sh文件的位置。 5.单击行为名称右边的小⌘符号,然后为您的行为选择新的键盘快捷键。 我建议:ctrl + alt + command + t。 就是这样,您完成了! 参考文献: raywenderlich.com — Xcode技巧和窍门

Desarrollar para CocoaPods

不要重复自己。 从iOS上的Desarrollador到seguro es que到lguna vez hayas usado CocoaPods。 Tambiénes muy posible que hay hays preguntado como funciona y como se subencódigosahí。 1. Empezamos el proyecto Primero vamos是一个无代码保护的通用代码,它还可以控制ARControls。 可以通过UIButton和quedarasí的快捷方式查看crero dentro del proyecto: 4. Git Git不能继续播放任何影片。 可以在GitLab存储库中下载自己的Github GitHub。 可能会在存储库中找到最后的名词。 进行中:https://gitlab.com/ArkitectureRepository/ARControls.git 5. Podspec El Podspec es el fichero que us CocoaPods para coger las propiedades que nosotros le […]

在本地和远程使用CocoaPods分发框架

在本教程中,我们的重点是创建一个框架,然后在本地和远程在我们的应用程序中使用。 框架是分层目录,它将共享资源(例如动态共享库,nib文件,图像文件,本地化字符串,头文件和参考文档)封装在一个程序包中。 多个应用程序可以同时使用所有这些资源。 系统会根据需要将它们加载到内存中,并在可能的情况下在所有应用程序之间共享资源的一份副本。 框架的好处 代码/功能模块化 在多个应用程序之间共享代码 在多个应用程序之间共享资源 作为第三方库分发 最适合并行工作的团队 为iOS创建框架 在Xcode中,选择File> New Project创建您的项目>在Framework&Library部分中,选择Cocoa Touch Framework>单击Next>输入产品名称“ MyFramework ”,如图1所示>单击Next>选择Location> Create。 Framework已创建,如图2所示,名称为MyFramework 框架的责任是从服务器获取数据并随数据一起返回给使用者。 让我们创建一个swift文件从Xcode中,选择File> File> Swift File> APIRequestLoader > Create 如图3所示,我们完成了框架代码。 要使用此框架,客户端需要提供符合APIRequest协议的对象,在该对象中,它使用预期的请求和响应数据类型实现make和parseResponse方法。 生成框架项目,以确保在没有生成警告或错误的情况下获得成功的生成 。 至此,我们创建了框架。 现在创建一个消费者项目。 选择“文件”>“新建”>“项目”>“在应用程序”部分中,选择“单视图应用程序”,然后单击“下一步”>在出现产品名称的对话框中: Consumer >“下一步”>“创建”。 如图4所示,我们创建了一个消费应用程序,它将使用我们的框架服务。 使用拖放来消费框架 转到MyFramework项目>右键单击Products文件夹下的MyFramework.framework >单击在Finder中显示。 这将重定向框架的位置 现在打开Consumer应用程序,并将框架拖放到项目中。 确保检查是否需要复制项目,以便文件实际复制到新项目中,而不仅仅是添加引用,如图6所示。 如图7所示,将框架放入项目中。 它已添加到“链接框架和库”部分。 通过选择框架从本节中删除它,然后点击减号 现在点击Embedded Binaries上的加号并添加框架,如图8所示。 如图9所示,现在添加了MyFramework.framework 。 在“ Embedded Binaries部分添加框架会将其也添加到“ Linked […]

Desarrollar para CocoaPods 2.0

往后的Este和ampliacióndel。 值得推荐的是先前的盐腌制过往的食用前茴香。 顺便说一句,用逗号来表示:imágenes,XIB,视频和演示… 你好,你要参加的考试和考试的理由是什么。 1.编译器变量 不能编译的任何变量。 完全可变的真实性,无论是虚假的还是虚假的实例,都可以轻松地实现。 没有同等身份的塞尔维亚人卢加·唐德·塞斯塔·埃杰库丹多·埃尔·科迪戈。 Tenemos que ponerle un nombre identificativo que solo vayamos a usar nosotros。 Algo como ARControls **否ALGO COMO DEBUG **是es es lo usan muchos desarrolladores y puede llevar错误。 Para configurar estas变量vamos: Proyecto>构建设置>其他Swift标志 Pulsamos Sopart la parte derecha de la celda yañadimos- D 哟-DARControls。 Seguramente ospreguntéispor se Pone -D […]

用于iOS开发的CocoaPods的五个杀手级功能正在开发中

请参阅原始链接以获得良好的图形和完整内容 用于iOS开发的CocoaPods的五个杀手级功能正在开发中 到目前为止,CocoaPods一直是iOS开发人员的神奇依赖管理器。 很少有开发人员了解会发生什么…… shashikantjagtap.net 用于iOS开发的CocoaPods的五个杀手级功能正在开发中– XCTEQ 到目前为止,CocoaPods一直是iOS开发人员的神奇依赖管理器。 很少有开发人员了解会发生什么…… www.xcteq.co.uk 到目前为止,CocoaPods一直是iOS开发人员的神奇依赖管理器。 很少有开发人员在运行pod install命令时了解幕后情况。 但是,事实证明,CocoaPods在iOS生态系统中是无痛的依赖管理器。 就我个人而言,我与CocoaPods有爱恨交织的关系,所以我写了一篇博客文章CocoaPods Or Carthage-这是比较两个非常流行的iOS依赖管理系统的问题。 CocoaPods刚刚宣布了1.7.0 beta版,其中包含许多很棒的功能,这些使我感到高兴。 您可以在此处在CocoaPods博客上阅读所有公告。 宣布了一些杀手级功能,可以显着减少构建时间,并更好地控制iOS项目。 让我们简要地探讨这五个即将推出的功能。 如何获得新的CocoaPods 在进入CocoaPods 1.7.0 beta的闪亮新功能之前,我们需要升级CocoaPods的版本。 您可以通过运行以下命令来使用Ruby gem获得预发行版本。 $ gem install cocoapods -v 1.7.0.beta.1 要么 $ gem install cocoapods –pre 安装成功后,您将获得最新的CocoaPods功能。 如果您不使用Ruby版本管理器,则可能需要使用sudo。 现在,您将拥有最新版本的Cocoapods的所有功能。 我创建了一个示例Github存储库,以使用此新的闪亮功能。 在Github上查看PodNews。 CocoaPods 1.7.0 让我们探索CocoaPods 1.7.0的所有闪亮功能。 1]增量安装 原因之一,我非常讨厌CocoaPods,因为它从头开始构建所有依赖的框架以进行干净的构建。 这会花费很多时间,并且构建时间会增加很多,尤其是如果您不执行增量构建。 在云CI服务上,它们通常为每个构建都创建新的VM,并且CocoaPods从头开始构建所有框架,除非您对其进行缓存。 增量安装的杀手级功能解决了这个问题,通过增量安装,CocoaPods仅重新生成自上一个pod install命令以来已更改的目标。 […]

Podfile->右键单击-> Pod安装

因此,我想到也要在iOS中创建类似的东西,然后再继续。 我创建了一个自动化器工作流程来完成pod安装技巧。 我们首先创建一个自动化服务工作流程,其中: 将输入源指定为文件和文件夹 获取选定的查找器项目并将其复制到剪贴板以获取其绝对地址 将地址保存到名为podFilePath的变量中 运行shell脚本(提取podfile的文件夹并运行pod安装) 这个小技巧可以节省时间,现在我们不需要打开终端来运行pod install。 但是,您可能需要在Pod文件中(在Xcode中) 在Finder中执行“ 显示”,但是我正在努力使它更加健壮和流畅。

RestKit.h从来没有在Xcode项目中find

我已经尝试了一切来解决这个问题,但是,尽pipe大约有100个“解决scheme”在线,但没有任何工作。 我现在担心,我正在改变核心文件,而不知道自己在做什么,最终会导致整个项目死机。 这是一个简单而安全的过程,重新安装RestKit的项目从podfile中删除,然后将其添加回来? 还是那种一厢情愿的想法? 编辑: 从2个星期前发现了一个工作版本 复制成功 仍然构build 通过在现有的行下添加到Podfile来安装Pod'PageMenu'。 source 'https://github.com/CocoaPods/Specs.git' platform :ios, '8.0' use_frameworks! pod 'PageMenu' 清理PageMenu swift文件中的错误。 在找不到RestKit.h文件中生成结果。 所以猜测我的pod安装中的某些东西正在严重地破坏我的项目。 还有什么想法? 谢谢

iOS GCM示例的Podfile无效

我正在尝试安装GCM示例Xcode项目,请遵循Google开发者页面上的说明https://developers.google.com/cloud-messaging/ios/start 但在第1步失败,并显示以下消息: [!] Invalid `Podfile` file: [!] The specification of `link_with` in the Podfile is now unsupported, please use target blocks instead.. 完整的成绩单是这样的: $ pod try Google –no-repo-update Trying Google 1: Samples/admob/AdMobExample.xcodeproj 2: Samples/analytics/AnalyticsExample.xcodeproj 3: Samples/appinvites/AppInvitesExample.xcodeproj 4: Samples/gcm/GcmExample.xcodeproj 5: Samples/signin/SignInExample.xcodeproj Which project would you like to open 4 Performing CocoaPods Installation [!] Invalid `Podfile` file: […]

无法findCocoapod MotionKit框架派生数据

我用Pod安装了这个库。 但是当我构build应用程序时,我得到了以下错误: error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/otool: can't open file: \ /Users/taiyuanz/Library/Developer \ /Xcode/DerivedData/RollingBall-gbmnblxxirswheemtfgncxsqywkj/Build/\ Products/Debug-iphoneos/Ballman.app/Frameworks/MotionKit (No such file or directory) 我升级了Xcode后发生这种情况。 如何解决这样的错误?