startBuildWithCertificateAndPassword method
Future<void>
startBuildWithCertificateAndPassword(
{ - required String keyChainName,
- required File certFile,
- required Secret certPassword,
- required Future<void> onStartBuild(),
- Secret? globalKeyChainPassword,
})
Implementation
Future<void> startBuildWithCertificateAndPassword({
required String keyChainName,
required File certFile,
required Secret certPassword,
required Future<void> Function() onStartBuild,
Secret? globalKeyChainPassword,
}) async {
ImpaktfullCliEnvironment.requiresMacOs(reason: 'Building iOS/macOS apps');
final globalKeyChainPasswordSecret = globalKeyChainPassword ??
ImpaktfullCliEnvironmentVariables.getUnlockKeyChainPassword();
final defaultKeyChain = await macOsKeyChainPlugin.getDefaultKeyChain();
await macOsKeyChainPlugin.createKeyChain(
keyChainName, globalKeyChainPasswordSecret);
await ForceQuitListener.catchForceQuit(
() async {
await macOsKeyChainPlugin.setDefaultKeyChain(keyChainName);
// await macOsKeyChainPlugin.unlockKeyChain(keyChainName, globalKeyChainPasswordSecret);
await macOsKeyChainPlugin.addCertificateToKeyChain(
keyChainName,
certFile,
certPassword,
accessControlAll: true,
);
await onStartBuild();
},
cleanup: () async {
await macOsKeyChainPlugin.setDefaultKeyChain(defaultKeyChain);
await macOsKeyChainPlugin.removeKeyChain(keyChainName);
},
);
}