Xcode编译经常遇到各种问题,处理起来费时费力,挺打击学习积极性的。记录下这些问题,方便自己也帮助后来人。
目前成都创新互联公司已为上1000家的企业提供了网站建设、域名、网站空间、绵阳服务器托管、企业网站设计、枣庄网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
编译的时候遇到:
网上有很多解决方法,我是用这个方法解决的:
编译的时候遇到:
解决办法:
Project - User-Defined - FLUTTER_ROOT 改成本地 flutter SDK路径
感谢 issues 上的小哥,给你个????
在项目目录下执行 flutter run 可以正常运行到手机,但是在Xcode build 还是有问题。
这时需要手动添加 FLUTTER_ROOT 到 User-Defined :
添加之后:
就可以正常在Xcode build 安装到手机了。
flutter build ios 后出现:
pod install 后出现:
解决办法:
这是因为terminal没有走代理的流量,
使用 git config --global http.proxy "localhost:port" ,设置代理。
port是端口号,根据不同的vpn不一样,我的端口是10080。
执行 git config --global http.proxy "localhost:10080"
Xcode build 的时候出现:
解决办法:打开 ios/Podflie 文件:
关于 bitcode 的问题,我检查了下用到的第三方SDK,应该是百度地图的问题,我引入了个第三方插件(吐槽下没官方插件),百度地图有支持和不支持 bitcode 的两个SDK,我取消这个插件就没有报这个错了,奇怪的是,再次引入同一个插件,也可以正常打包,所以说这个问题还没有完全解决。
大家可以试下这个处理方法:
TARGETS - Build Seettings 搜 arm ,试一下把其他删除,只留下armv7跟armv7s或者只留下armv7
解决办法:
我是clean Xcode之后就可以了
解决办法:
用的是P12证书,改成手动签名:
1.打开 VS Code。
2.打开 查看 命令面板…。
3.输入 “install”,然后选择 扩展: 安装扩展(就是点击选择第一行内容)。
4.在扩展搜索输入框中输入 “flutter”,然后在列表中选择 Flutter 并单击 安装。此过程中会自动安装必需的 Dart 插件。(选择第一行并安装)
5.退出然后重新启动 VS Code。
1.打开 查看 命令面板…。
2.输入 “doctor”,选择 Flutter: Run Flutter Doctor。
3.打开 输出 (OUTPUT) 面板查看是否有错误,确保在不同的输出选项 (Output Options) 的下拉列表中选择了 Flutter。
我们在上篇文章已经用命令行创建了一个 my_app 的flutter项目了,这里我们就可以使用 vscode 打开看看了
创建新项目 ,则是在命令面板输 flutter , 选择 Flutter: New Application Project
运行项目 ,找到 VS Code 的状态栏(窗口底部蓝色的条)
1.打开 Android Studio。
2.打开插件设置(在 v3.6.3.0 以上的系统打开 Configure Plugins)。
这里需要先改一下网络请求的设置
3.然后搜索Flutter 插件,选择并点击 安装。
4.当弹出安装 Dart 插件提示时,点击 Yes。
5.退出重新启动编译器,然后在编译器主页面就可以看到多了了 create new flutter project 可供选择,代表flutter插件安装成功,我们试着点击来创建一个新项目。
当一个纯Flutter APP开发完成,我们要打包发布到App Store和各大安卓市场,这时候我们需要设置APP的版本号。
如果我们在使用原生iOS或者Android开发的时,我们会在info.plist中设置 version 和 build 或是在build.gradle中设置 versionName 和 versionCode ,他们分别表示APP的版本和构建版本。
但是我们在使用Flutter管理APP版本时,打开 pubspec.yaml 只看到一个 version 字段。这时候我们应该怎么设置APP的 version 和 build 呢?
我们在pub上随便找一个Flutter的组件,例如官方的 camera ,我们可以看到截止目前为止最新的版本为: camera: ^0.5.2+1 。看到这里,我想大家都明白了,Dart采用的是加号式的版本描述方式, + 前面是版本号, + 后面是当前版本的build号。所以我们设置APP的版本号和build次数,在这里设置即可,例如: version: 1.2.0+1 。
当我们新建一个Flutter工程的时候,我们分别使用Xcode和Android Studio打开iOS和Android的工程可以看到,iOS中的 version 和 build 的值分别为 FLUTTER_BUILD_NAME 和 FLUTTER_BUILD_NUMBER :
同样我们打开Android工程可以看到有如下定义:
事实上,Flutter在编译的时候会生成 ios/Flutter/Generated.xcconfig 和 android/local.properties 文件。这两个文件由Flutter编译自动生成,不可更改。记录了包含SDK路径或者文件路径,版本信息,环境配置(release/debug)等信息。原生工程获取版本信息的变量就定义在这两个文件里面。
Flutter有生成构造函数、默认构造函数、命名构造函数、重定向构造函数、常量构造函数、工厂构造函数
生成构造函数是最常见的构造函数,即生成实体类对象。
如果未声明构造函数,则会提供默认构造函数。 默认构造函数没有参数,并调用父类无参数构造函数。
默认情况下,子类中的构造函数调用父类的未命名无参数构造函数。 父类的构造函数在子类构造函数体的开头被调用。 如果还使用初始化了列表,则会在调用父类构造函数之前执行。 执行顺序如下:
如果父类没有未命名的无参数构造函数,则必须手动调用父类中的一个构造函数。 在子类的构造函数体之后用冒号(:)指定父类构造函数
当需要定义一个有特别含义的构造函数的时候,可以通过命名构造 形式:构造函数.XXX来命名构造函数
有时构造函数需要重定向到同一个类中的另一个构造函数,在冒号后面用this:
如果你的类需要成为永远不会更改的对象,则可以使这些对象成为编译时常量。 定义const构造函数要确保所有实例变量都是final。
不用直接创建对象(可以通过调用其他构造函数创建)