摘要: 资源文件的引入可以有两种方式,写法如下: 1、s.resource = "DDKit/**/*.{png,bundle,xib,nib}" 2、s.resource_bundles = { 'DDKit' => ['DDKit/**/*.{png,bundle,xib,nib}'] 'DDKit' 阅读全文
posted @ 2016-12-01 19:10 Joel Zeng 阅读(481) 评论(0) 推荐(0) 编辑
摘要: 一、模块化设计的概述: 模块化设计(Block-based design):对一定范围内的不同功能或相同功能的不同性能、不同规格的产品进行功能分析的基础上,划分并设计出一系列功能模块,通过模块的选择和组合构成不同的定制产品,以满足市场的不同需求。 模块化设计是绿色设计方法之一,绿色设计是指... 阅读全文
posted @ 2014-11-26 18:34 Joel Zeng 阅读(2816) 评论(0) 推荐(0) 编辑

背景:工程为iOS原生与Flutter混合开发的工程,在编译Flutter子工程的过程中报了一个错,一度让我以为是ruby与pod的版本不兼容导致了一些奇奇怪怪的问题,随即来回折腾了Ruby环境升级与pod的升级安装。

问题1:flutter子工程执行了flutter pub get,执行flutter build ios --no-codesign时,报了如下错误,下面截取的部分报错信息为关键部分,其实日志已经说的很清楚了。

[!] CocoaPods could not find compatible versions for pod "shared_preferences_foundation":
In Podfile:
FlutterPluginRegistrant (from `../flutter子模块工程文件夹目录/.ios/Flutter/FlutterPluginRegistrant`) was resolved to 0.0.1, which depends on
shared_preferences_foundation

shared_preferences_foundation (from `../flutter子模块工程文件夹目录/.ios/.symlinks/plugins/shared_preferences_foundation/ios`)

Specs satisfying the `shared_preferences_foundation (from `../flutter子模块工程文件夹目录/.ios/.symlinks/plugins/shared_preferences_foundation/ios`), shared_preferences_foundation` dependency were found, but they required a higher minimum deployment target.

解决方案:

此问题发生在flutter子工程依赖插件shared_preferences: ^2.0.15,执行flutter pub get命令后,生成的.ios文件下platform :ios, '9.0' 默认为9.0,而 flutter子模块工程文件夹目录/.ios/.symlinks/plugins/shared_preferences_foundation/ios/shared_preferences_foundation.podspec中的s.ios.deployment_target = '11.0',两者发生了冲突,所以一定要将.ios文件中的改为11.0,即platform :ios, '11.0',之后再执行flutter build ios --no-codesign即正常。

 

问题2:安装ruby 3.0.0时报错,具体错误信息不贴了,报错原因跟openssl版本过高有关,openssl版本超过3.0时,ruby版本也需要大于3.0.0。

解决方案:安装rvm -> 再安装ruby -> 最后安装cocoapods

  • 安装rvm:curl -L get.rvm.io | bash -s stable
  • 安装指定版本的ruby:rvm install ruby-3.2.1 --with-openssl-dir=`brew --prefix openssl`(查看可支持安装的ruby版本:rvm list known,如果显示最高版本是3.0.0,此时又想安装大于3.0.0版本的ruby,不要使用命令:rvm install ruby/rvm install ruby --latest,实操发现默认会安装3.0.0版本,如果openssl版本超过3.0,此时会报错),安装完后通过ruby --version查看当前版本号,如果不是想要的,通过命令将最新版本的ruby设置为默认版本:rvm use ruby -default
  • 安装pod:sudo gem uninstall cocoapods && sudo gem install cocoapods,如果需要安装知道pod版本: sudo gem install cocoapods v 版本号(查看pod安装的历史版本:gem list/sudo gem list),之前的.cocoapods可以不用删除(重新下载太好使,代价巨大,~/Library/Caches/CocoaPods/Podsc此目录下的三方库缓存文件也可以提前进行备份),防止卸载的时候被删,可以先改个名,安装完成后再改回来,如果repo需要升级,执行命令:pod repo update --verbose

备注:ruby卸载后,pod需要重新安装。

 

问题3:安装完pod后执行pod相关命令报错,报错如下:

截取部分日志:undefined method `untaint' for "/Users/Joel/.cocoapods/repos/master/.git":String (NoMethodError),Cocoapods 使用activesupport 中方法找不到对应的方法

解决方案:

查看版本:gem list

sudo gem install activesupport -v 7.0.8

卸载大于v 7.1.0版本的activesupport:sudo gem uninstall activesupport

 

posted @ 2023-12-22 16:26 Joel Zeng 阅读(232) 评论(0) 推荐(0) 编辑
摘要: Flutter中TextField长按输入时,默认展示为英文的【剪切/复制/粘贴/全选等】,需要在工程中额外设置,做相应国际化处理后才可根据手机系统语言展示本地化语言提示。 pubspec.yaml文件中添加依赖库: dependencies: flutter: sdk: flutter flutt 阅读全文
posted @ 2023-06-09 16:18 Joel Zeng 阅读(889) 评论(0) 推荐(0) 编辑
摘要: 腾讯Bugly,为移动开发者提供专业的异常上报和运营统计,帮助开发者快速发现并解决异常,同时掌握产品运营动态,及时跟进用户反馈。当前免费提供给客户使用。 1、官网地址:https://bugly.qq.com/v2/index 2、符号表上传工具下载地址:https://bugly.qq.com/v 阅读全文
posted @ 2023-01-06 11:02 Joel Zeng 阅读(1302) 评论(0) 推荐(0) 编辑
摘要: 背景:项目为iOS原生和Flutter混合开发。Flutter之前使用的版本为2.10.2,升级到最新的发现插件获取有问题,后来跟安卓端保持一致将Flutter升级到了3.0.5版本。折腾了一个多星期后,总算可以成功attach上了,喜大普奔。 mDNS query failed. Checking 阅读全文
posted @ 2023-01-04 15:15 Joel Zeng 阅读(1217) 评论(0) 推荐(0) 编辑
摘要: 使用Homebrew升级Ruby后,替换系统的Ruby参考以下文章: https://mac.install.guide/ruby/13.html pod升级问题参考: https://www.it610.com/article/1294593630094303232.htm 关键步骤如下: pod 阅读全文
posted @ 2022-10-16 21:25 Joel Zeng 阅读(214) 评论(0) 推荐(0) 编辑
摘要: Flutter加载WebView使用了官方插件webview_flutter: ^3.0.4(https://pub.dev/packages/webview_flutter)。WebView网页地址内容转为本地HTML文件的方式,可以用火狐浏览器打开网页后,右击查看页面源代码,将里面的代码复制后粘 阅读全文
posted @ 2022-07-27 11:37 Joel Zeng 阅读(3172) 评论(0) 推荐(0) 编辑
摘要: 从sdk3.2.5升级到sdk 7.1中间废弃了很多的方法,还有一些逻辑关系更加严谨了。1,警告:“xoxoxoxo” is deprecated解决办法:查看xoxoxoxo的这个方法的文档,替换掉这个方法即可。2,警告:Declaration of "struct sockaddr" will 阅读全文
posted @ 2015-02-05 18:26 Joel Zeng 阅读(521) 评论(0) 推荐(0) 编辑
摘要: 当系统动画的执行时间相撞时会产生一些奇怪的现象,比如说两个界面同时push到另一个界面,push的动画时间产生了重叠,这时候导航栏的控件会重叠且崩溃。 再一个就是,当界面push的动画,和下一个界面alertView show的动画时间相撞,如果这时前一个界面的导航栏上添加了一个segme... 阅读全文
posted @ 2014-11-11 22:45 Joel Zeng 阅读(175) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示