I am currently trying to set up iOS deployment for a React-Native app, using Fastlane through CircleCI, and I am having an issue where I get to pilot
in my fastlane script, I upload the build to iTunes Connect, but the build disappears from being used for TestFlight Internal Testers. If I archive locally and upload the build to iTunes Connect, it will be available for testing.
My Fastfile
, using version 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
My 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
Output from the CircleCI test
Build completed processing on iTunes Connect
Build not available (invisible) on TestFlight tab
I tried debugging this by archiving locally with the same certificates and profiles, but it uploads successfully and I am able to distribute to internal testers on TestFlight.
Thanks very much for the help.
Found the solution that helped resolve this issue.
Two parts seem to help fix it
Changing profile used from
adhoc
toappstore
a. I had to generate the appstore provisioning profile through match:
fastlane match appstore -a com.myapp.app.staging
Adding
include_symbols
andinclude_bitcode
to mygym
build parameters.
Processing took longer than normal, but after processing, it returns to the build list where pilot
recognizes it and it posts to TestFlight.
My new 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
来源:https://stackoverflow.com/questions/45471405/build-not-available-on-itunes-connect-for-internal-testing-through-circleci-fast