xcode编译参数
Ⅰ 【Android开发学Flutter】Xcode编译问题汇总
Xcode编译经常遇到各种问题,处理起来费时费力,挺打击学习积极性的。记录下这些问题,方便自己也帮助后来人。
编译的时候遇到:
网上有很多解决方法,我是用这个方法解决的:
编译的时候遇到:
解决办法:
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
解决办法:
https://www.jianshu.com/p/201df7e9a52f
我是clean Xcode之后就可以了
解决办法:
用的是P12证书,改成手动签名:
Ⅱ 如何加快xcode编译速度
1. 增加XCode执行的线程数
可以根据自己Mac的性能,更改线程数设置5:defaults write com.apple.Xcode 5
另外也有一个设置可以开启:defaults write com.apple.dt.Xcode ShowBuildOperationDuration YES
XCode默认使用与CPU核数相同的线程来进行编译,但由于编译过程中的IO操作往往比CPU运算要多,因此适当的提升线程数可以在一定程度上加快编译速度。
2.将Debug Information Format改为DWARF
在工程对应Target的Build Settings中,找到Debug Information Format这一项,将Debug时的DWARF with dSYM file改为DWARF。
这一项设置的是是否将调试信息加入到可执行文件中,改为DWARF后,如果程序崩溃,将无法输出崩溃位置对应的函数堆栈,但由于Debug模式下可以在XCode中查看调试信息,所以改为DWARF影响并不大。这一项更改完之后,可以大幅提升编译速度。
比如在目前本人负责的项目中,由于依赖了多个Target,所以需要在每个Target的Debug Information Format设置为DWARF。顺便提一下,如果通过Cocoapod引入第三方则Debug Information Format默认就是设置为DWARF的。
SDWebImage通过Cocoapod``Debug Information Format的默认设置
注意:将Debug Information Format改为DWARF之后,会导致在Debug窗口无法查看相关类类型的成员变量的值。当需要查看这些值时,可以将Debug Information Format改回DWARF with dSYM file,clean(必须)之后重新编译即可。
3.将Build Active Architecture Only改为Yes
在工程对应Target的Build Settings中,找到Build Active Architecture Only这一项,将Debug时的NO改为Yes。
664334-fa1eb995c140ce0f.png
这一项设置的是是否仅编译当前架构的版本,如果为NO,会编译所有架构的版本。需要注意的是,此选项在Release模式下必须为NO`,否则发布的ipa在部分设备上将不能运行。这一项更改完之后,可以显着提高编译速度。
4.设计编译优化等级
不要再项目中或者静态库中使用-O4,因为这会让Clang链接Link Time Optimizations (LTO)使得编译更慢,通常使用-O3。
注意:在设置编译优化之后,XCode断点和调试信息会不正常,所以一般静态库或者其他Target这样设置。
4.资源整合
4.1 将常用的代码及文件打包成静态库
4.2 添加预编译文件,把常用的头文件放到预编译文件里面
4.3 能用@class就用@class
Ⅲ iOS自动构建工具 -- xcodebuild
工作项目中的iOS工程都是使用Shell脚本搭配xcodebuild自动构建而成,搭配Jenkins 持续集成(CI)工具,可以很方便的实现项目的构建、部署、自动化。
xcodebuild是苹果发布自动构建的工具。它在一个Xcode项目下能构建一个或者多个targets,也能在一个workspace或者Xcode项目上构建scheme。
文档描述如下:
以下是xcodebuild命令的一些参数,其中有一些参数不会执行构建命令如:
-list,-showBuildSettings, -showdestinations
-showsdks, -showTestPlans, -usage, -version.
-destination参数用于根据 destination specifier 指定特定的目标设备
当前,xcodebuild支持以下platforms
当使用 -destination参数指定大于一个目标设备时,xcodebuild 会并行在目标设备上执行测试。这个模式下,xcodebuild 自动同时的选择设备和模拟器的数目。所有可用的测试在每个目标设备上都会被执行
参数 -exportArchive 指定了xcodebuild根据 -exportOptionPlist参数发布打包到 -archivePath路径下。proct 可以上传到到Apple 或者导出到本地。 导出的proct 会被放在 -exportPath路径下
以下环境变量会影响xcodebuild的执行
XCODE_XCCONFIG_FILE 给一个文件设置一个路径,编译时该文件中的编译设置会被加载,该设置会覆盖所有其他设置
xcodebuild 退出会返回 sysexit(3) 类型。
成功 EX_OK
参数错误 EX_USAGE
输入文件未找到 EX_NOINPUT
文件无法读写 EX_IOERR
命令执行失败 EX_SOFTWARE
其他场景可能会返回其他错误码
Ⅳ 如何用xcode写python
使用Xcode写Python文件方法步骤如下:
1.找到Python位置:(终端中输入which python)
获取python的安装位置,用它来搭建python的编译环境。
2.在Xcode中创建python程序
打开Xcode,新建项目:Cross-platform->Ohter->External Build System
3.设置Edit Scheme
创建项目---点击项目图表---选择Edit Scheme ---Arguments新建.py文件 ---Option里,选Working Directory---Xcode Project所在的文件夹,就是你的.py文件存放的文件夹,最后选择确定。
4.编写代码并运行