大家好,我是坤哥 今天和大家探讨一个话题:技术的稳定性到底有多重要 上周用三天的时间把原本预计至少一周才能改造完成的 iOS 项目在最新的 Xcode 15(iOS 开发 IDE)上成功跑起来了!...其实说实话这个 iOS 项目用两周的时间在 Xcode 15 上能不能跑起来我心里都没底,好在结果是好的 这个项目过去四年了,是我司的主要盈利产品(返利 app),不过技术栈还比较陈旧,一些依赖用的 swift...开发的项目,由于 JDK 通常设计为向后兼容的(兼容老版本),老项目通常能跑起来,为啥我们的这个 iOS 项目会有这样在最新版 Xcode 15 上跑不起来的问题呢 主要原因其实是因为这个项目的 Pod...,但当时公司的发展如日中天,有几十号 iOS,也有好几位 iOS 架构师,所以工程一旦有啥技术问题,基本也能轻易解决 但后来公司业务急转直下,iOS 团队被裁或离职导致一个不剩,后来公司彻底转型,干掉了所有的技术...最后,问题已经出现了,抱怨解决不了问题,那我们该如何解决呢 这里我想简单介绍一下我是如何修改以让老项目在 Xcode 15 上跑起来的 其实运行一个项目与大家熟悉一个项目或者说业务的思路都是相通的,抓大放小
这是pod生成的项目管理文件,打开LibDemo.xcworkspace项目文件,在Xcode里看到是这样的目录结构: 这里要注意的一点是,如果不调用创建Podfile命令就直接调用pod...3 场景2:如何正确编译运行一个包含CocoPods类库的项目 你也许曾经遇到过(特别是新手iOS开发者)这种情况,好不容易在GitHub上找到一份代码符合自己想需求,兴冲冲下载下来,一编译...下面,小编以代码 UAAppReviewManager 为例来说明如何正确编译运行一个包含CocoPods类库的项目。 ...pod install只会按照Podfile的要求来请求类库,如果类库版本号有变化,那么将获取失败。但是 pod update会更新所有的类库,获取最新版本的类库。...从项目中搜索 Direct usage of 'isa' 将 YES(treat as error) 改为NO 就可以了。 5.5.4 PodInstall安装报错syntaxerror [!]
一切缘由一个XCode的报错 苹果出新政策2024年4月29号前,必现升级XCode和ios SDK,既然躲不开,那就安排升级吧 首先,升级到最新的XCode,必须先升级macOS 于是先升级macOS...,从12直接升级到最新的14版本 然后开始升级XCode 1、先卸载现有的XCode版本,避免跟新的XCode冲突 2、通过App Store安装最新版本的XCode xCode安装完成后,第一次启动,...还需要继续安装一个7G多的SDK 耗费大半天,终于升级好了,接下来开始验证公司的项目 公司有两个ios项目,一个是纯flutter的App项目,一个是原生的ios项目,升级完成后,先运行flutter的项目...这里,更新AMap3DMap (9.1.0)卡了比较久,需要有耐心,我差点以为是方法不对,关闭terminal了 继续执行命令:pod update pod update Update all pods...一步步操作完了,继续继续运行flutter的ios项目,还有新的报错 Framework 'GTCommonSDK' not found 找了一圈,按照官方的文档描述,升级下SDK版本,后来正常了 https
在我的关于GPUImage文档翻译中,也提到了它的底层实际上是基于多个框架。...有iOS版也有安卓版,也推出了Swift版。在多平台选择性上没有顾虑。GPUImage隐藏了在iOS所用需要使用OpenGL ES的复杂代码,并用极其简单的接口以很快的速度处理图像。...制作一些常用的滤镜、磨皮美颜效果都很方面。 三、使用CocoaPods 导入GPUImage框架 关于CocoaPods 是什么?如何安装?以及它的好处,我就不在这儿赘述。...pod ‘GPUImage’ end 第三步: 把GPUImage库下载到Xcode 中 终端输入:podinstall 这就开始下载了...这个时候关闭所有的Xcode窗口,再次打开工程目录就会看到多一个后缀名为.xcworkspace文件。以后打开工程就双击这一个文件打开即可。
一次偶然的机会,公司的项目要用到推送,我自己本来就很懒,不愿意去弄整套APNS的流程,刚好之前跟朋友聊起过他们的产品中集成了个推的Android推送,说是体验还可以,那这次我就试一下他们的iOS推送。...##如何集成个推iOS SDK 看了个推的官网,发现他们集成的方式有两种,分别是XCode集成和CocoaPods集成。...' end 3.完成GTSDK导入 在项目根目录中执行如下命令: $ pod install 执行完成后,项目目录结构如下图所示: ?...因为本人也是第一次搞推送这书,而且也踩了不少的坑,为了下次不再踩同样的坑,所以在这里就对如何制作推送证书进行了一次规整。 ####如何制作推送证书?...棒棒哒~~~ 但是,之前的一个老项目说也要集成推送,我透,老项目要用XCode集成,这对于我这种懒人来说,简直是一种折磨啊,哎,折磨归折磨,该搞还要搞。
前言 iOS组件化的实现基本基于cocoapods,如何使用cocoapods创建自己的组件库,是实现组件化的第一要素,下面就创建自己的私有Cocopods库展开实战记录。...我们在创建的这个空的仓库,是用来存放我们自己所有的私有库的 spec 文件, 就如同官方的 https://github.com/CocoaPods/Specs 是用来存放所有官方的 specs...至此,我们的本地第三方组件已经制作完成,现在就可以通过在终端执行pod install 后看看效果了!当然,我们肯定不会局限于本地,接下来就是如何制作线上组件库了!...五、将制作好的组件上传至码云 上传组件至码云.gif 这里你会发现,我又重新创建了一个项目,和我之前创建的索引库项目是不一样的,这个就是真正放置我们封装的代码的地方。...见下图: 上传代码.gif 六、更改模板文件相关信息 填写模板文件.gif 我们打开Xcode工程,找到.podspec后缀的文件, 更改s.summary,这个是显示在pod search的简短描述
看到别人托管项目在cocoapods上面是不是也想托管自己的项目 我们这就开始吧 2016年12月16日更新知识点: source_files我把所有都放在这个参数 但是一致提示我没有包含任何的文件...{h,m,png}' 这是我之前写的,podspec和ZHAddressTextFiled文件包都在一个目录下面,应该是没问题的为啥就不行呢 我想既然下载出来LICENSE没有任何文件 是不是查找从...1.安装cocoa pods环境 接下来的命令要用到POD 所以需要安装 安装指南我就不多说了 2.制作自己的库或者framework托管到cocoapods 发布的库名字一定要和github创建的一样...在github上面创建工程 我们选择一定要选择LICENSE协议 因为这是cocoapods强调的 我们下载github客户端 clone我们新建的工程 我们安装制作framework模板 这样方便我们制作...如果安装了XCODE就有了developer tools 可以在终端输入以下命令 sudo xcode-select -switch /Library/Developer/CommandLineTools
启动 iPhone 调试失败 一路继续创建项目、运行 Web 版 demo、加入 iOS 平台支持、执行 weex run ios 启动 iOS 调试—— 新问题出现了。...如果没安装 Xcode 的话,这一步会提示 ios-deploy 安装失败: npm ERR! ios-deploy@1.9.4 preinstall: ....CocoaPods 的安装 这次 ios-deploy 安装成功了,但之后马上发现还是无法启动 iOS 调试: Command failed: pod update /bin/sh: pod: command...执行 sudo gem install cocoapods,等半天后提示从 https://ruby.taobao.org 下载失败。...然后发现,这个站点居然停止维护了: taobao Gems 源已停止维护,现由 ruby-china 提供镜像服务 于是更换源,网上搜了几个,换了半天都没用。
React Native混合开发的教程我们分为上下两篇,上篇主要介绍如何在现有的Android应用上进行React Native混合开发,下篇主要介绍如何在现有的iOS应用上进行React Native...将React Native集成到现有的iOS应用中需要如下几个主要步骤: 首先,你需要有一个React Native项目; 为已存在的iOS应用添加React Native所需要的依赖; 创建index.js...添加React Native所需要的依赖 在上文中我们已经创建了个一个React Native项目,接下来我们来看一下如何将这个React Native项目和我们已经存在的Native项目进行融合。...在进行融合之前我们需要将已经存在的Native项目放到我们创建的RNHybrid下,比如:我有一个名为RNHybridiOS的iOS项目,将其放到RNHybrid目录下: RNHybrid ├── RNHybridiOS...将js bundle包和图片资源导入到iOS项目中 这一步我们需要用到XCode,选择assets文件夹与main.jsbundle文件将其拖拽到XCode的项目导航面板中即可。 ?
/这种路径来的,两个Xcode 就要确保Xcode.app是最新的正式版本不是测试版本 6 然后可以发送到cocoapod管理了 //pod trunkpush[podspec 的路径]pod trunkpush...iOS6和iOS7,但某一个framework只在iOS7上有,这时候如果用强链接,那么在iOS7上运行就会crash,使用weak_frameworks可以避免这种情况。...整个podspec语法是一个嵌套结构从Pod::Spec.new do |s|到最后一个end是最大的循环,表示整个podspec导入的文件。...配置非ARC文件(8.5号补充) 前几天项目中由于历史原因,导致有一个私有的pods库中某几个文件是在非ARC时代写的,如果要进行修改工程量浩大,于是乎要对这几个文件单独处 理,这几个文件不使用arc其他文件使用...) Cocoapods制作 1、创建podspec文件 创建命令 $ pod speccreateLXToolBar podspec内容设置 ## Be sure to run `pod spec
一、前言 前段时间我们项目也实现了组件的二进制化,在之前的技术周会中我们有提到跟美团同款ZSource的二进制调试能力,我们也在自己的Cocoapods-imy-bin插件上实现了相同的功能pod bin...其实就是我们制作二进制包时,该工程所属的文件地址。 image.png Debug调试的时候,编译器会先从这里拿对应映射地址去加载源码文件。如果存在对应地址存在源码文件时,就能进入源码调试。...image.png 四、实验 这里可能有的同学就会疑惑,你这样的调试信息跟我们平时的Debug调试会不会有区别,不够准确?...如何知道我当前运行的静态库对应哪个版本的源码呢? image.png 熟悉了Cocoapods一些原理后,找出依赖库代码就这几行。...七、参考文献 iOS Xcode 的汇编模式切换 美团 iOS 工程 zsource 命令背后的那些事儿 作者:Mr_Coder 链接:https://juejin.im/post/5f066cfa5188252e893a136e
制作演示应用程序 该模板将为您的库生成一个Xcode项目。这意味着您无需在Xcode中创建新项目。...Objective-C的前缀 要结束Objective-C项目,我们想知道您的类前缀。这意味着我们可以使CocoaPods生成的所有类都适合您的样式,所有从Xcode内部生成的类都将以您的前缀开头。...和以下文件夹: Pod - 这是您放置库的地方 Example - 这是生成的演示和测试包 将您的库放在一起 CocoaPods将立即打开您的Xcode项目; 从那里你可以编辑CocoaPods生成的所有文件...开发Pods 开发Pod与普通CocoaPods的不同之处在于它们是符号链接文件,因此对它们进行编辑将更改原始文件,因此您可以从Xcode内部处理您的库。...Note:由于发展豆荚实现细节,当你添加新的/现有的文件Pod/Classes或Pod/Assets或更新podspec,你应该运行pod install或pod update。
如果你认为我只是单纯的批评前端那你就理解错了,我想表达的是,这么复杂的配置都能搞定,iOS Android 的项目配置还不是手到擒来? 2....1️⃣ project.pbxproj 与 Xcode project.pbxproj 就是一个 iOS 项目的配置文件,从数据结构特点上有些像 JSON,年龄可以追溯到 NeXT,可读性基本为 0,每次...project.pbxproj 相关的知识我推荐下面几篇文章,阅读后会让你对 iOS 编译打包流程有个更深的了解: iOS 开发 xcode 中的 project.pbxproj -- 深入剖析:介绍了...end 上面这段代码,pod 开头的都是从 node_modules 目录导入 react-native 相关的官方代码。...我个人参考了以下教程: iOS 开发时如何使用 Launch Screen Storyboard 通过 LaunchScreen.storyboard 来为 RN 应用添加启动屏 iOS 13 使用 LaunchScreen.storyboard
在这篇文章中我将向大家介绍React Native混合开发的流程,需要掌握的技术,以及一些经验技巧,与该文章配套的还有React Native与iOS 混合开发讲解的视频教程。...React Native混合开发的教程我们分为上下两篇,上篇主要介绍如何在现有的Android应用上进行React Native混合开发,下篇主要介绍如何在现有的iOS应用上进行React Native...将React Native集成到现有的iOS应用中需要如下几个主要步骤: 首先,你需要有一个React Native项目; 为已存在的iOS应用添加React Native所需要的依赖; 创建index.js...在进行融合之前我们需要将已经存在的Native项目放到我们创建的RNHybrid下,比如:我有一个名为RNHybridiOS的iOS项目,将其放到RNHybrid目录下: RNHybrid ├── RNHybridiOS...将js bundle包和图片资源导入到iOS项目中 这一步我们需要用到XCode,选择assets文件夹与main.jsbundle文件将其拖拽到XCode的项目导航面板中即可。 ?
由于这种实验我不可能那公司的公共库做实验,所以就完全自己从framework制作开始走了一遍流程。这里都记录一下。...---- framework的制作方式 1.framework制作在新版本的xcode上已经十分简单了。首先创建工程的时候选择Cocoa Touch Framework。 ?...07.png 更为详细的教程你可以看这里,《Xcode9.0 制作.framework》。 ---- 推送库到cocoapods 我说一个我做库的目录结构吧。...更详细的公共库制作方式你可以看这里,《将代码提交到CocoaPods超详细的操作步骤和图解 》。 上面的步骤告诉了你如何上传至cocoapods的公共库,接下来我会再说一下上传到你的私有库的方法。...参考资料: 《Xcode9.0 制作.framework》 《将代码提交到CocoaPods超详细的操作步骤和图解 》 《如何创建私有 CocoaPods 仓库》 《Pod二进制化》
原理:将所有的依赖库都放到另一个名为Pods的项目中,让主项目依赖Pods项目,如此一来,所有的源码管理工作都从主项目中移到了Pods项目中。...但并不是所有的库都在Podspec的管辖范围之内的,如何确定第三方库是否被Podspec托管了呢? 在github上输入库名,若发现有文件以.podspec结尾,就可以确定它被托管了。...3、说明 例子: platform :ios, '8.0' 用来设置所有第三方库所支持的iOS最低版本 pod 'SDWebImage','~2.6' 设置框架的名称和版本号 版本号规则: '>1.0...它的原理就是将所有的依赖库都放到一个名为Pods的项目中。Pods项目会编译出一个libPods.a的文件,主项目只要依赖这个.a文件即可。这样,依赖库源码管理的工作都从主项目移到了Pods项目中。...4)整合Pods项目:将Pods和项目整合到一个工作空间中,并且设置文件链接 讲解视频: Cocoapods详解 参考链接: 你真的会用CocoaPods吗 iOS开发之 Xcode的 Cocoapods
内存泄漏,广义上有很多,比如内存常驻、内存快速飙升、无主内存未释放等,这里的内存泄漏主要指无主内存未及时释放,即没有任何指针引用的一块内存,并没有释放,而是迷失在APP的运行内存中,至于如何检测到这种情况...为了防止额外代码的影响,从main方法和AppDelegate页面开始,直接进入制造内存泄漏的页面,页面的代码与简单demo一致,这样复杂demo执行的代码与简单demo一致,结果现象依然存在。。。。。...的方式进行管理 CocoaPods是OS X和iOS下的一个第三类库管理工具,通过CocoaPods工具我们可以为项目添加被称为“Pods”的依赖库(这些类库必须是CocoaPods本身所支持的),并且可以轻松管理其版本...日子一天一天过,终于在第三天(是的,需要这么久),顺利减了41包,只剩一个内存泄漏检测包和QMUIKIT包(由于这个包与demo强相关,AppDelegate也继承自它,如果去掉就得完全重写demo了),这里有的同学可能有个疑问...,既然只怀疑sdk的问题,志强反向思考,给简单demo里面用pod添加多容易,没有代码级依赖性,事实上我也这么做了,但最后的结果是即使添加了43个包,简单demo依然无法复现复杂demo的问题,所以复杂
制作这种功能代码段的过程叫做组件化,这种方法带来的产出叫做组件,俗称轮子。 上古时代的轮子 从本质上说,组件是通过库的方式来进行封装从而提供给开发者使用。而库,就是一种组织一个或多个文件的方式。...配置原有的project文件(add build phase) 添加了 Embed Pods Frameworks 添加了 Copy Pod Resources 其中,pre-install hook...所有依赖库下载之后,便进入了和Xcode工程的融合步骤。 Xcode工程有什么变化 ?...但是有时候处于业务需要,我们需要来实现私有Pod库。所以接下来我们来介绍下如何在公司内网来实现一个私有库,实现一个私有组件。...image.png 最后,为了保证本地的repo已经被更新,运行pod update来更新repo 如何在外部项目中使用 我们可以在想要使用的项目中的Podfile里加入如下代码: pod 'helloXXXPod
相乐搞笑(xiangle-ios) 这个项目本来是用来创业的,但上架App Store几个月,下载量寥寥无几,可能方向不对,可能不懂运营......现分享出来,看有没有需要的朋友 Android版在这里 xiangle-android 项目介绍 布局采用纯代码的方式(frame+masonry),没有storyboard 主框架: 自定义UITabBarController...类似Java bean Expand:扩展 Util:工具类 介绍 分享风趣幽默的段子/视频/图片 首页:视频/图片/文字 任你选择 详情:收藏/评论/点赞 雁过留声 发现:搜索/话题/活动 应有尽有 我的...:收藏/评论/点赞 一个不少 截图 快速开始 1.在项目根目录执行 pod install 2.使用 Xcode 打开xiangle.xcworkspace文件 获取最新代码 github:https...://github.com/chudaozhe/xiangle-ios gitee:https://gitee.com/chudaozhe/xiangle-ios
而且这种方式每切换一次就必须重新编译运行一次App,在追查一些偶现崩溃问题时,开发体验非常不友好,也不利于崩溃问题的快速定位分析。...的资料中检索还是从DWARF的资料中检索。...pod zsource 命令 总结 zsource功能的开发基本上都是基于一个个的猜想和实验来完成的,从开发到上线实际只花了两个晚上。...---------- END ---------- 招聘信息 美团App业务容器团队是一个活力四射的团队,现诚招前端、iOS和Android工程师,欢迎有兴趣的同学投递简历至tech@meituan.com...也许你还想看 iOS 增量代码覆盖率检测实践 美团开源Graver框架:用“雕刻”诠释iOS端UI界面的高效渲染 Category 特性在 iOS 组件化中的应用与管控