eas 构建
- 注册expo dev账号
- 安装eas-cli
npm install -g eas-cli
# or
yarn global add eas-cli
- 登录 eas login
- 配置 eas
eas build:configure
- eas 配置介绍
{
"build": {
// profile name
"development": {
"developmentClient": true, // 是否开启调试模式,开启后会打包成一个自定义的expo client
"distribution": "internal", // 分发机制,内侧包 则开启"distribution": "internal"
"ios": {
"simulator": true // ios 模拟器包需要开启simulator, 否则认为是真机包,模拟器无法安装,安卓则不需要,真机模拟器可通用一个包
}
},
"preview": {
"distribution": "internal"
},
"production": {}
}
}
-
eas构建
- andriod
eas build --profile development --platform android eas build --profile development --platform android --message "Some message"- ios
# ios 真机调试包,需先安装证书(模拟器不用)执行命令, 扫码注册后,则在打包时会提示选择device,使用空格键多选 eas device:create eas build:resign (使用已有包)(复用构建 build,通过 space 多选设备)eas build --profile development --platform ios eas build --profile development --platform ios --message "Some message"- all
eas build --profile development --platform all -
eas脚本本地构建(ios 为例)
eas build --profile local --platform ios --local -
安装已构建好的包
# 建议之间去expo.dev download 也可使用命令行下载 eas build:run -p ios eas build:run -p android -
eas 发布
eas submit --platform ios
- testfilght
config-plugin使用
常见问题解决
eas 打包资源下载不下来问题解决
问题描述: 在使用地图组建 react-native-amap3d 时,依赖高德地图底层AMap3DMap的ios包,常常下载超时,导致服务编译多次失败 解决方案如下:
- 将AMap3DMap下载到本地
- 配置podspec
require "json"
Pod::Spec.new do |s|
s.name = "AMap3DMap"
s.version = "9.6.2"
s.summary = "MAMapKit 3D for iOS."
s.homepage = "http://lbs.amap.com/api/ios-sdk/summary/"
s.license = { :type => 'BSD' }
s.authors = "lbs.amap.com"
s.social_media_url = "https://lbsbbs.amap.com/forum.php?mod=forumdisplay&fid=38"
s.documentation_url = "https://a.amap.com/lbs/static/unzip/iOS_Map_Doc/AMap_iOS_API_Doc_3D/index.html"
# 这里使用本地路径或者使用自己的服务器路径
s.source = { :http => "file:///Users/expo/workingdir/build/test/AMap_iOS_3DMap_Lib_V9.6.2.zip" }
s.source_files = "MAMapKit.framework/**/*.{h}"
s.platforms = { :ios => "9.0" }
s.pod_target_xcconfig = { 'ARCHS' => "$(ARCHS_STANDARD)" }
s.public_header_files = "MAMapKit.framework/Headers/*.h"
s.resources = "MAMapKit.framework/AMap.bundle"
s.vendored_frameworks = 'MAMapKit.framework'
s.frameworks = "QuartzCore", "CoreLocation", "SystemConfiguration", "CoreTelephony", "Security", "OpenGLES", "CoreText", "CoreGraphics", "GLKit"
s.libraries = "z", "c++"
s.dependency 'AMapFoundation', ">=1.8.0"
end
- 配置expo-build-properties
"plugins": [
[
"expo-build-properties",
{
"ios": {
"extraPods": [
{
"name": "AMap3DMap",
// zip包文件所在目录
"path": "../test",
// 制定podspec 这里不能使用json格式,必须使用.podspec格式
"podspec": "../test/AMap3DMap.podspec"
}
]
}
}
],
...