CocoaPods私有库生成
发表于|更新于
|浏览量:
CocoaPods私有库生成
文章作者: 今是昨非
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 今是昨非的博客!
相关推荐
2021-05-12
iOS mach-o文件分析多余的类和方法
mach-o文件分析多余的类和方法.md背景最近做包大小优化,在做项目代码优化时,其中有一个过程是分析Mach-O文件,看网上很多文章都说通过otool分析Mach-O,获取__objc_classrefs、__objc_classlist等,然后找出无用类和无用方法。 比如:无用类通过 otool 逆向Mach-O文件 __DATA.__objc_classlist段和__DATA.__objc_classrefs 段获取所有 OC 类和被引用的类,两个集合差值为无用类集合,结合 nm -nm 得到地址和对应类名符号化无用类类名来自干货!京东商城iOS App瘦身实践 又或者结合LinkMap文件的__TEXT.__text,通过正则表达式([+|-][.+\s(.+)]),我们可以提取当前可执行文件里所有objc类方法和实例方法(SelectorsAll)。再使用otool命令otool -v -s __DATA __objc_selrefs逆向__DATA.__objc_selrefs段,提取可执行文件里引用到的方法名(UsedSelectorsAll),我们可以大致分...
2022-09-05
MapManagerSDK集成记录
背景最近集成MapManagerSDK,遇到了几个问题这里记录一下: 问题一: 对接文档中提示的导入GMObjC算法SDK方式如下,导入后编译不通过,提示:"sm2_plaintext_size" Too many arguments to function call, expected 3, have 4 pod 'GMObjC','3.0.0' 问题二: 导入MapManager后,QMUI库或者其他第三方库,原本正常的,现在报错编译不通过。 问题三: 上面都解决了,编译成功,一启动就崩溃。 解决:问题一"sm2_plaintext_size" Too many arguments to function call, expected 3, have 4的解决很简单,改为pod 'GMObjC',安装最新版即可。 问题二,查看后,发现报错的地方是属性或者方法中使用了debug或者release定义变量。但是为什么之前没有问题,导入MapManagerSDK后,就报错了呢?仔细排查后发现...
2021-07-15
weak的实现原理
weak的实现原理
2024-03-13
Xcode 15.3 Archive失败
Xcode 15.3 Archive失败背景昨晚升级 Xcode 到 15.3,今天打包的时候发现 Archive 失败,提示:Call parameter type does not match function signature!,仔细看报错里是和HandyJSON相关的提示。 解决起初以为和 Pod 库有关系,但是找同事确认后,发现低于 Xcode 15.3 的版本是可以打包成功的,但是 Xcode 15.3 的版本就报错了。然后搜索HandyJSON Call parameter type does not match function signature!,发现了这个,Building HandyJSON in Swift 5.10 throws a fatal error ,是Swift 5.10 编译 HandyJSON报错了。目前HandyJSON官方还未解决。 暂时的解决方法是: 在 Pod 的 Target 中找到 HandyJSON, 然后设置Optimization Level为 None和No Optimization,如下图: 然后再次尝试 A...
2024-04-24
借助腾讯混元助手屏蔽简书登录框
背景查东西的时候,有些文章在简书,然后在浏览简书的时候,未登录时会弹出登录框,很烦人,所以想屏蔽掉。也想把右边的热门故事和底部的推荐关闭掉。说实话,我对《离婚后,妈宝男前夫后悔了》之类的是真的不感兴趣啊。。。所以就想通过 js 实现过滤掉这三部分。通过暴力猴,然后自己实现一个过滤脚本,具体步骤如下: 首先明确需求,要移除的共有三个部分, 未登录时的登陆框 右边的热门故事 底部的推荐 如下图所示: 然后一步步来看。 实现登陆框的移除查看网页源代码,对比登录框弹出前后,可以看出,当登陆框弹出时,body的style变为了overflow: hidden;;且尾部多了一个div。如下图: 所以如果想要去除登陆框,要做的就是在登陆框弹出时,移除尾部的div,并把body的style改为none。问题是,如何判断登陆框弹出时? 有两种方案,一种是监听滚动的位置,因为观察发现,登陆框是滚动到指定位置时才弹出的。还有一种是,换一个思路,监听 body 的 style,当body的style变为overflow: hidden;时,说明登陆框弹出了。 这里采用方法二,因为方法一太麻烦...
2022-09-14
Xcode14编译失败修改
背景升级Xcode 14后,项目编译失败修改,共修改了两种编译错误: 一种是bundle code sign error,Xcode 14 needs selected Development Team for Pod Bundles 一种是Module compiled with Swift 5.6.1 cannot be imported by the Swift 5.7 compiler 其中第一种比较容易解决,第二种稍微麻烦点,解决方案如下: 解决Xcode 14 bundle code sign error这个的解决方案,直接Google,第一个stackoverflow的链接是Xcode 14 needs selected Development Team for Pod Bundles,这里面给出的解决方法是,在Podfile里增加下面代码,然后运行Pod install,设置Pod库的DEVELOPMENT_TEAM是开发者账号的team。 笔者有两个项目,其中一个是Swift为主,用下面的设置方法试了,可以解决。要注意的是如果项目有多个target,ta...
公告
This is my Blog