1. 在Mac上搭建Flutter环境
这部分只需参考官网搭建即可
注意事项
- 多个Path环境变量设置:
1 | export PUB_HOSTED_URL=https://pub.flutter-io.cn |
- 如果你使用的是zsh,终端启动时
~/.bash_profile
将不会被加载,解决办法就是修改~/.zshrc
,在其中添加:source ~/.bash_profile
2. Ruby、CocoaPods安装
CocoaPods 就是iOS 项目的开发 第三方库的管理工具。
CocoaPods
是用ruby
实现的,要想使用它首先需要有ruby
环境。 虽然Mac
系统默认可以运行ruby
。但是ruby
版本过低是无法正常支持CocoaPods
的使用
-
1
2
3
4
5
6查看现有的源
gem source -l
移除
gem sources --remove https://rubygems.org/
添加 ruby-china 的源
gem sources -a https://gems.ruby-china.org/ 安装CocoaPods:
sudo gem install cocoapods
切换清华源安装CocoaPods
1
2
3
4
5
6
7
8移除原仓库镜像
pod repo remove master
使用清华源安装到本地 cd ~/.cocoapods/repos/master
git clone https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git
设置一下
pod setup
查看仓库信息
pod repo安装完成之后进入到项目的iOS目录下,执行
pod install
3. 证书相关申请
Register a new identifier(常见app的功能如第三方应用登录(Associated Domains)、推送(Push Notifications)可提前勾选Capabilities)
1
2
3
4注意事项:
1. Bundle ID的区别
- Explicit App ID「明确的 App ID」,一般格式是:com.company.appName;这种 id 只能用在一个app上,每一个新应用都要创建并只有一个。
- Wildcard App ID「通配符 App ID」, 一般格式是:com.domainname.* ;这种 id 可以用在多个应用上,虽然方便,但是使用这种id的应用不能使用通知功能,所以不常用。在mac上通过钥匙串应用创建两个证书请求文件(CSR文件),分别对应Development环境和Distribution环境
Create a New Certificate(证书)
分别申请开发证书(iOS Development)和分发证书(iOS Distribution),开发证书用于开发和调试应用程序,可用于真机调试;生产证书用于打包上传App Store或者蒲公英,用于验证开发者身份。如果项目集成了推送功能,还需配置推送证书,推送证书同样也分两种:开发环境和生产环境(Apple Push Notification service SSL :Sandbox & Production),同时生成的p12文件需上传到服务端后台(如阿里云移动推送后台)
生成后的证书需要下载并通过钥匙串导入到Mac
1
2注意事项:
打开钥匙串应用,在点击登录-->我的证书页面下,双击证书导入即可
Register a New Provisioning Profile(描述文件)
可参考iOS 证书配置
4. Xcode中的配置
Xcode中的配置
点击
TARGETS
中的Runner
,选中Build Settings
栏,在Code Signing Identity
中配置已下载导入的iOS证书选中
Signing & Capabilities
栏,Provisioning Profile
选择下载相应的描述文件1
注意事项:Automatically manage signing不选中
到此即可连接iOS真机在Android Studio中运行
1
注意事项:需要将真机的UDID添加到apple开发者平台的设备列表(Devices)
5. 打包及上架
- 运行命令:
flutter build ipa --release
- 在 Xcode 中打开
build/ios/archive/MyApp.xcarchive
- 点击
Distribute App
按钮,选择分发的方式:App Store Connect(用于App Store上架)、Ad Hoc(用于蒲公英的分发平台)
参考文章: