Flutter 如何创建一个企业级项目 - iOS篇 ( 三 )
1,初始化项目
1, 安装Cocopods依赖
cd ios
pod install
2,设置最低支持iOS版本,我这里最低支持的设备是iphone6s,系统是iOS13
Podfile 也设置 platform :ios, '13.0'
3,pubspec.yaml 设置 version
[pubspec.yaml]
version: 1.0.1+220
运行项目,会自动生成Generated.xcconfig, 会在这个类看到这两个参数,对应上面设置的版本号
FLUTTER_BUILD_NAME:1.0.1
FLUTTER_BUILD_NUMBER:220
4,查看Info.Plist 中默认版本
Bundle version string (short) / CFBundleShortVersionString: App主要版本号,如1.0.0,只支持数字和小数点,默认为 FLUTTER_BUILD_NAME
Bundle version / CFBundleVersion:App编译版本号,纯数字,如1,2,3,只支持数字和小数点,默认为 FLUTTER_BUILD_NUMBER
这个检查下是否为默认值,不需要修改
5,设置 Xcode General 选项面板版本:
Marketing Version:定义项目的用户可见版本,并在 App Store 页面或应用程序内部向用户展示, 支持字符串,如 Version 1.0.0-dev
Current Project Version: 标识项目的当前版本。该值必须是整数或浮点数,例如123
或,1.1.0
这两个参数会在Xcode General 选项面板中显示
为了方便管理,我们将 Xcode General 选项面板中的版本 设置为 Info.Plist 版本一样
Version 设置为 $(FLUTTER_BUILD_NAME)
Build 设置为 $(FLUTTER_BUILD_NUMBER)
然后查看,发现Version和Build版本已设置与Info.Plist一样,也就就是 Generated.xcconfig 配置的 FLUTTER_BUILD_NAME/FLUTTER_BUILD_NUMBER
这样项目的版本全部由下面的参数控制
[Generated.xcconfig]
FLUTTER_BUILD_NAME=1.0.1
FLUTTER_BUILD_NUMBER=220
2, 创建 PROJECT Configurations
依次 Duplicate "Debug/Release/Profile" Configuration, 并在每种编译模式下增加三种不同环境的后缀,例如: Debug-dev/Debug-qa/Debug-product, 注意:不能写错,否则运行会报错
3,创建不同环境 xcconfig
由于 iOS没有 productFlavors,如果我们需要实现不同环境配置不同参数。 这里有两种方式:
1, 直接修改不同Configurations里面的值
但这样不利于统一管理,因此我们使用第二种方式
2,通过 xcconfig 文件管理不同环境的变量配置
[Debug-dev.xcconfig]
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
#include "Flutter/Generated.xcconfig"
/// App name
PRODUCT_NAME=Pollka Snow Dev
/// App identifier
PRODUCT_BUNDLE_IDENTIFIER=com.ski.pollka.snow.dev
/// FLUTTER_TARGET
FLUTTER_TARGET=lib/main_dev.dart
// Custom
ENV=dev
[Debug-qa.xcconfig]
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
#include "Flutter/Generated.xcconfig"
/// App name
PRODUCT_NAME=Pollka Snow Test
/// App identifier
PRODUCT_BUNDLE_IDENTIFIER=com.ski.pollka.snow.qa
/// FLUTTER_TARGET
FLUTTER_TARGET=lib/main_qa.dart
// Custom
ENV=qa
[Debug-product.xcconfig]
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
#include "Flutter/Generated.xcconfig"
/// App name
PRODUCT_NAME=Pollka Snow
/// App identifier
PRODUCT_BUNDLE_IDENTIFIER=com.ski.pollka.snow
/// FLUTTER_TARGET
FLUTTER_TARGET=lib/main_product.dart
// Custom
ENV=product
Release-dev.xcconfig 只需要导入 Debug-dev.xcconfig
[Release-dev.xcconfig]
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
#include "Flutter/Generated.xcconfig"
#include "Debug-dev.xcconfig"
4,创建不同环境Scheme
1,选中 Runner,依次创建 dev/qa/product Scheme, 创建完成可以删除 Runner Scheme
2,创建完成的效果如下,然后点击 Edit Scheme
3,依次配置 dev/qa/product Scheme 中的各种 Build Configuration
4,设置 Bundle Display Name/Product Name 为 $(PRODUCT_NAME)
App 名字:
IPA文件名字
5,设置Product Bundle Identifier
6,检查FLUTTER_TARGET/ENV
5,Info.Plist设置 Bundle display name / Bundle name
5,VSCode/XCode运行不同环境App
转载自:https://juejin.cn/post/7275943600780591145