我目前正在尝试使用Fastlane通过CircleCI为React-Native应用程序设置iOS部署,而我遇到的问题是我的fastlane脚本中的pilot
,我将构建上传到iTunes连接,但构建从用于TestFlight内部测试器消失。如果我在本地存档并将构建内容上传到iTunes Connect,它将可用于测试。
我的Fastfile
,使用版本2.51.0
platform :ios do
lane :deploy_staging do
match(
type: "adhoc",
force: true
)
increment_build_number(
xcodeproj: './ios/MyApp.xcodeproj'
)
gym(
export_method: "ad-hoc",
scheme: "MyApp Staging",
project: "./ios/MyApp.xcodeproj"
)
pilot(
skip_submission: false,
distribute_external: false,
)
clean_build_artifacts
git_add(
path: '.'
)
git_commit(
path: '.',
message: "Deployed new staging version #{lane_context[SharedValues::BUILD_NUMBER]} [skip ci]",
)
push_to_git_remote(
local_branch: ENV["CIRCLE_BRANCH"],
remote_branch: ENV["CIRCLE_BRANCH"]
)
end
end
我的circle.yml
machine:
environment:
PATH: '$PATH:$HOME/node/node-v8.1.3-darwin-x64/bin'
xcode:
version: 8.3.3
dependencies:
cache_directories:
- $HOME/node
pre:
- "ls \"$HOME/node/node-v8.1.3-darwin-x64\" || mkdir \"$HOME/node\""
- "ls \"$HOME/node/node-v8.1.3-darwin-x64\" || curl -L \"https://nodejs.org/dist/v8.1.3/node-v8.1.3-darwin-x64.tar.gz\" -o \"$HOME/node/node-v8.1.3-darwin-x64.tar.gz\""
- "ls \"$HOME/node/node-v8.1.3-darwin-x64\" || tar -xzf \"$HOME/node/node-v8.1.3-darwin-x64.tar.gz\" -C \"$HOME/node/\""
- "rm -f \"$HOME/node/node-v8.1.3-darwin-x64.tar.gz\""
override:
- npm install -g react-native-cli
- npm install
test:
override:
- npm test
post:
- mkdir -p $CIRCLE_TEST_REPORTS/junit/
- find . -type f -regex ".*/test_out/.*xml" -exec cp {} $CIRCLE_TEST_REPORTS/junit/ \;
deployment:
pre:
- gem install fastlane
staging:
branch: staging
commands:
- npm run build:ios
- fastlane deploy_staging
CircleCI测试的输出
在iTunes Connect上构建完成的处理
在TestFlight选项卡上构建不可用(不可见)
我尝试通过使用相同的证书和配置文件在本地存档来调试它,但它上传成功,我可以在TestFlight上分发给内部测试人员。
非常感谢你的帮助。
答案 0 :(得分:1)
找到了解决此问题的解决方案。
两个部分似乎有助于解决它
将使用的个人资料从adhoc
更改为appstore
一个。我必须通过匹配生成appstore配置文件:
fastlane match appstore -a com.myapp.app.staging
将include_symbols
和include_bitcode
添加到我的gym
构建参数中。
处理花费的时间比平时长,但在处理之后,它会返回到pilot
识别它的构建列表,并将其发布到TestFlight。
我的新Fastfile:
lane :deploy_staging do
match(
type: "appstore"
)
increment_build_number(
xcodeproj: './ios/MyApp.xcodeproj'
)
gym(
include_symbols: true,
include_bitcode: true,
export_method: "app-store",
scheme: "MyApp Staging",
project: "./ios/MyApp.xcodeproj"
) # Build your app - more options available
pilot
clean_build_artifacts
git_add(
path: '.'
)
git_commit(
path: '.',
message: "Deployed new staging version #{lane_context[SharedValues::BUILD_NUMBER]} [skip ci]",
)
push_to_git_remote(
local_branch: ENV["CIRCLE_BRANCH"],
remote_branch: ENV["CIRCLE_BRANCH"]
)
end