Open BANG88 opened 5 years ago
請問一下
我遇到一個怪問題
在Android部分
我的整個結構是
. ├── MyApplication ├── app ├── fastlane ├── mykey.jks │ └── mykey.jks └── gradle
我的fastlane內的Appfile定義了
ENV["KEYSTORE_PATH"]="keystore/mykey.jks"
但是目前執行出現問題
上面的配置會無法通過 !!!
fastlane 會抓兩個地方的 keystore !!!
有嘗試過
../keystore/mykey.jks <-- show error path { /users/me/workspace/myapplicatin/../keystore/mykey.jks } !!?
以及
\keystore/mykey.jks <-- show error path { /users/me/workspace/myapplicatin/app/keystore/mykey.jks } !!?
以及
\/keystore/mykey.jks <-- show error path { /users/me/workspace/myapplicatin/keystore/mykey.jks } !!?
以及
app/keystore/mykey.jks <-- show error path { /users/me/workspace/myapplicatin/app/app/keystore/mykey.jks } !!?
需要在app內在放置一個keystore (同時兩個 keystore !!)
這樣才可以通過build
請問有遇過嗎?
THX
不好意思 沒遇到過,不過之前我也是把keystore文件放到android目錄裡面,我現在不在電腦前 沒辦法幫你看 你可以試試
On Fri, Oct 25, 2019 at 11:23 Neo notifications@github.com wrote:
請問一下
我遇到一個怪問題
在Android部分
我的整個結構是
. ├── MyApplication ├── app ├── fastlane ├── mykey.jks │ └── mykey.jks └── gradle
我的fastlane內的Appfile定義了
ENV["KEYSTORE_PATH"]="keystore/mykey.jks"
但是目前執行出現問題
上面的配置會無法通過 !!!
fastlane 會抓兩個地方的 keystore !!!
有嘗試過
../keystore/mykey.jks <-- show error path { /users/me/workspace/myapplicatin/../keystore/mykey.jks } !!?
以及
\keystore/mykey.jks <-- show error path { /users/me/workspace/myapplicatin/app/keystore/mykey.jks } !!?
以及
/keystore/mykey.jks <-- show error path { /users/me/workspace/myapplicatin/keystore/mykey.jks } !!?
以及
app/keystore/mykey.jks <-- show error path { /users/me/workspace/myapplicatin/app/app/keystore/mykey.jks } !!?
需要在app內在放置一個keystore (同時兩個 keystore !!)
這樣才可以通過build
請問有遇過嗎?
THX
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/bang88/blog/issues/1?email_source=notifications&email_token=AADJY2Z6UI46YLAU2OHR5NLQQJREDA5CNFSM4GS6IMT2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOECHB44I#issuecomment-546184817, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADJY246XPSNKADDHQZ5WQTQQJREDANCNFSM4GS6IMTQ .
官方有一个例子可以结合使用,但是不喜欢分别在不同的目录初始化一个 fastlane,我喜欢放到一个地方后面方便管理 envs
TOC
.env
添加相应的环境变量安装 fastlane
output
激活 shell 全局使用的 ruby 版本
rbenv global 2.6.0
关闭 terminal 重新打开就可以正常使用了安装 fastlane、bundle、cocoapods
新项目里面使用 fastlane
现在必须进入到 fastlane 目录才能执行
fastlane xxx
有点麻烦,把 fastlane 里面的文件 copy 出来到根目录,这样就可以在根目录执行fastlane xxx
命令了。现在的目录结构应该是这样传说可以使用
bundle exec fastlane
执行速度更快...fastlane 初始化完成了,下面主要关注
Fastfile
以及--env=dev
多环境小觑
我们使用
dotenv
来管理不同环境下的环境变量,在Fastfile
里面加载文件:.env
文件相当于一个公共环境所有环境都可以获取到里面的值,有一些公共的属性我们就可以放到这个文件测试环境
每当我们执行
lane
的时候提供不同的 env 参数就可以随意切换到不同的环境里面了。 例如下面的命令表示执行ios
平台 下面的custom_lane
并且env
设置为dev
,这个env
的参数请跟文件名保持一致,因为目前就是根据这个env
的值去加载文件e6f2779
生产环境
811ef31
现在可以正常切换到不同环境了,接下来就是配置平台打包生成对应的可执行文件,打包之前的注意事项:
配置 Android
.env
添加相应的环境变量配置好以后执行
bundle exec fastlane android build --env=dev
将会把apk
文件复制到ANDROID_OUTPUT_PATH
目录,这样就算是完成了,看起来是不是很简单,而且如果只是这点操作的话我们可以完全不用 fastlane 随便写几行 shell 就搞定了。但是但是我们打包的时候需要升级版本号,以及将不同的配置文件或者安全 key、推送通知等等的配置文件都同时修改的话就有点工作量了。所以接下来就是完善配置使其可以根据不同的环境修改我们代码里面的一些配置文件然后再打包,打包完成之后再把这些文件还原回去。
e39b3bb
配置环境
基础配置
set_build_env
这里一共包含
4
个lane
,set_build_env
在build
的时候手动调用执行一次,还原配置就通过after_all
这个全局的配置自动还原了,如果build
的过程中出现错误也自动还原配置。这里的
lib/env.dart
配置文件只是一个例子你可以使用你自己喜欢的命名,然后对应修改Fastfile
里面的路径就可以了。34fa122
To be continued