Flutter开发03

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
    1. cd到你的iOS项目下
$:pod install

如果成功,那么flutter的framework应该被pod引入了,应该如下图:


Flutter开发03_第1张图片
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

    1. Xcode中直接command + B,进行你的flutter表演...

现在的大多数项目都是老项目,为了快速开发,一些业务需要缩短周期,提高效率,会使用flutter开发,那么这些代码怎么维护呢?特别是多人开发团队,iOS和安卓都已经有了相应的代码仓,如果接入flutter,那么flutter的代码如何管理?同事提交代码后又怎么去更新,这是个问题,目前我还没有想到更好的,除非你是独立开发,或者整个项目是flutter做的。

关于上面的问题,我个人给出点小建议,如下:
Android,iOS,flutter代码分开管理,如果是SVN代码仓,可以把flutter_ module单独放到一个路径,Android和iOS的同事check out这个文件到相应的本地路径,做替换即可。
如果对于上述的问题有更简便的方法,欢迎留言交流,我也想过插件或组件的方式来管理,但是维护起来麻烦,而且估计未知的问题会很多。

你可能感兴趣的:(Flutter开发03)