Skip to main content

TestFlight

Coming soon


Fallback via Build Hooks

You can still use automated deploy via build hooks

create file ./buildHooks/src/iosDeployTestFlight.js

import { Exec, Common } from 'rnv';

const iosDeploy = async c => {
let fastlaneArguments = [];
const basePath = Common.getAppFolder(c, c.platform);
const path = `${basePath}/release/RNVApp.ipa`;
const teamID = Common.getConfigProp(c, c.platform, 'teamIdentifier');
const appleId = Common.getConfigProp(c, c.platform, 'appleId');
const appId = Common.getConfigProp(c, c.platform, 'id');

fastlaneArguments = [
'run',
'upload_to_testflight',
`app_identifier:${appId}`,
`app_platform:ios`,
`team_id:${teamID}`,
`ipa:${path}`,
`apple_id:${appleId}`,
'skip_waiting_for_build_processing:true',
];

if (process.env.APPLE_DEVELOPER_USERNAME) {
fastlaneArguments.push(`username:${process.env.APPLE_DEVELOPER_USERNAME}`);
}

try {
await Exec.executeAsync(c, `fastlane ${fastlaneArguments.join(' ')}`, {
env: process.env,
shell: true,
stdio: 'inherit',
silent: true,
});
} catch (e) {
console.log(`Fastlane ${c.platform} upload to AppStore failed with error ${e}`);
}
};

export default iosDeploy;

update file ./buildHooks/src/index.js

import iosDeployTestFlight from './iosDeployTestFlight';

const hooks = {
iosDeployTestFlight
}

const pipes = {
'deploy:after': [
iosDeployTestFlight
],
};

export { pipes, hooks };

run deploy command:

rnv deploy -p ios -s appstore