iOS老项目集成flutter(选择pod安装)
首先记得Xcode中的bitCode关掉
- 1.啥也不说,新建一个文件夹包裹你现在的工程文件夹。
例如:
A/iOSAppName/iOSAppName.xcodeproj
- 2.创建flutter文件夹,终端cd到你的
A文件夹下
$:flutter create -t module my_flutter
- 3编写pod文件,my_flutter:就是第
2步创建的flutter文件夹
顺便吐槽一下官方最近提供的cdn源,source 'https://cdn.cocoapods.org/,谁用谁知道,卡的不要不要的,果断换回git源
#source 'https://cdn.cocoapods.org/'
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '10.0'
use_frameworks!
# flutter 配置路径 flutter_application_path
# 本地更新(必须保证你的本地已经有flutter的repo) pod update --verbose --no-repo-update
flutter_application_path = '../my_flutter'
load File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb')
def install_pods
pod 'rebekka', '~> 1.0'
pod 'Alamofire', '~> 4.5'
pod 'SwiftyJSON'
pod 'HandyJSON', '~> 5.0.0'
pod "SwiftyXMLParser", :git => 'https://github.com/yahoojapan/SwiftyXMLParser.git'
pod 'Kingfisher', '~> 4.6.4'
pod 'Spring'
pod 'MJRefresh', '~> 3.2.0'
end
target 'iOSAppName' do
install_pods
install_all_flutter_pods(flutter_application_path)
end
target ‘ iOSAppNameTests‘ do
install_all_flutter_pods(flutter_application_path)
end
- 4.打开终端cd到在你的my_flutter
$:flutter packages get
$:flutter build ios
- cd到你的iOS项目下
$:pod install
如果成功,那么flutter的framework应该被pod引入了,应该如下图:
Snip20200521_6.png
如果pod install 报签名的错,那么你可以使用“control + command + . ”打开my_flutter 下面的隐藏文件 .ios,然后进入填写不一样的bundleID,获取签名,这里填的bundleID尽量不要填和你自己的iOS项目一样的名,有可能会出意外的惊喜。
⚠️ 如果你的podfile文件修改了一点点,也必须重新pod install,你在flutter中可以做任何修改,在你command + R项目之前都是可用的,如果flutter的yaml文件修改了,你必须cd到flutter的目录,进行flutter build ios,如果必要的话,还需重新pod install。
- Xcode中直接command + B,进行你的flutter表演...
现在的大多数项目都是老项目,为了快速开发,一些业务需要缩短周期,提高效率,会使用flutter开发,那么这些代码怎么维护呢?特别是多人开发团队,iOS和安卓都已经有了相应的代码仓,如果接入flutter,那么flutter的代码如何管理?同事提交代码后又怎么去更新,这是个问题,目前我还没有想到更好的,除非你是独立开发,或者整个项目是flutter做的。
关于上面的问题,我个人给出点小建议,如下:
Android,iOS,flutter代码分开管理,如果是SVN代码仓,可以把flutter_ module单独放到一个路径,Android和iOS的同事check out这个文件到相应的本地路径,做替换即可。
如果对于上述的问题有更简便的方法,欢迎留言交流,我也想过插件或组件的方式来管理,但是维护起来麻烦,而且估计未知的问题会很多。












网友评论