@expo/cli 0.22.0 → 0.22.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/bin/cli +1 -1
- package/build/src/run/ios/codeSigning/configureCodeSigning.js +1 -1
- package/build/src/run/ios/codeSigning/configureCodeSigning.js.map +1 -1
- package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js +30 -6
- package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js.map +1 -1
- package/build/src/utils/telemetry/clients/FetchClient.js +1 -1
- package/build/src/utils/telemetry/utils/context.js +1 -1
- package/package.json +2 -2
package/build/bin/cli
CHANGED
|
@@ -93,7 +93,7 @@ function isCodeSigningConfigured(projectRoot) {
|
|
|
93
93
|
}
|
|
94
94
|
async function configureCodeSigningAsync(projectRoot) {
|
|
95
95
|
const ids = await _security.findIdentitiesAsync();
|
|
96
|
-
const id = await (0, _resolveCertificateSigningIdentity.resolveCertificateSigningIdentityAsync)(ids);
|
|
96
|
+
const id = await (0, _resolveCertificateSigningIdentity.resolveCertificateSigningIdentityAsync)(projectRoot, ids);
|
|
97
97
|
_log.log(`\u203A Signing and building iOS app with: ${id.codeSigningInfo}`);
|
|
98
98
|
(0, _xcodeCodeSigning.setAutoCodeSigningInfoForPbxproj)(projectRoot, {
|
|
99
99
|
appleTeamId: id.appleTeamId
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/run/ios/codeSigning/configureCodeSigning.ts"],"sourcesContent":["import chalk from 'chalk';\n\nimport * as Security from './Security';\nimport { resolveCertificateSigningIdentityAsync } from './resolveCertificateSigningIdentity';\nimport { getCodeSigningInfoForPbxproj, setAutoCodeSigningInfoForPbxproj } from './xcodeCodeSigning';\nimport * as Log from '../../../log';\n\nexport async function ensureDeviceIsCodeSignedForDeploymentAsync(\n projectRoot: string\n): Promise<string | null> {\n if (isCodeSigningConfigured(projectRoot)) {\n return null;\n }\n return configureCodeSigningAsync(projectRoot);\n}\n\nfunction isCodeSigningConfigured(projectRoot: string): boolean {\n // Check if the app already has a development team defined.\n const signingInfo = getCodeSigningInfoForPbxproj(projectRoot);\n\n const allTargetsHaveTeams = Object.values(signingInfo).reduce((prev, curr) => {\n return prev && !!curr.developmentTeams.length;\n }, true);\n\n if (allTargetsHaveTeams) {\n const teamList = Object.values(signingInfo).reduce<string[]>((prev, curr) => {\n return prev.concat([curr.developmentTeams[0]]);\n }, []);\n Log.log(chalk.dim`\\u203A Auto signing app using team(s): ${teamList.join(', ')}`);\n return true;\n }\n\n const allTargetsHaveProfiles = Object.values(signingInfo).reduce((prev, curr) => {\n return prev && !!curr.provisioningProfiles.length;\n }, true);\n\n if (allTargetsHaveProfiles) {\n // this indicates that the user has manual code signing setup (possibly for production).\n return true;\n }\n return false;\n}\n\nasync function configureCodeSigningAsync(projectRoot: string) {\n const ids = await Security.findIdentitiesAsync();\n\n const id = await resolveCertificateSigningIdentityAsync(ids);\n\n Log.log(`\\u203A Signing and building iOS app with: ${id.codeSigningInfo}`);\n\n setAutoCodeSigningInfoForPbxproj(projectRoot, {\n appleTeamId: id.appleTeamId!,\n });\n return id.appleTeamId!;\n}\n"],"names":["ensureDeviceIsCodeSignedForDeploymentAsync","projectRoot","isCodeSigningConfigured","configureCodeSigningAsync","signingInfo","getCodeSigningInfoForPbxproj","allTargetsHaveTeams","Object","values","reduce","prev","curr","developmentTeams","length","teamList","concat","Log","log","chalk","dim","join","allTargetsHaveProfiles","provisioningProfiles","ids","Security","findIdentitiesAsync","id","resolveCertificateSigningIdentityAsync","codeSigningInfo","setAutoCodeSigningInfoForPbxproj","appleTeamId"],"mappings":"AAAA;;;;+BAOsBA,4CAA0C;;aAA1CA,0CAA0C;;;8DAP9C,OAAO;;;;;;gEAEC,YAAY;mDACiB,qCAAqC;kCACb,oBAAoB;2DAC9E,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE5B,eAAeA,0CAA0C,CAC9DC,WAAmB,EACK;IACxB,IAAIC,uBAAuB,CAACD,WAAW,CAAC,EAAE;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAOE,yBAAyB,CAACF,WAAW,CAAC,CAAC;AAChD,CAAC;AAED,SAASC,uBAAuB,CAACD,WAAmB,EAAW;IAC7D,2DAA2D;IAC3D,MAAMG,WAAW,GAAGC,IAAAA,iBAA4B,6BAAA,EAACJ,WAAW,CAAC,AAAC;IAE9D,MAAMK,mBAAmB,GAAGC,MAAM,CAACC,MAAM,CAACJ,WAAW,CAAC,CAACK,MAAM,CAAC,CAACC,IAAI,EAAEC,IAAI,GAAK;QAC5E,OAAOD,IAAI,IAAI,CAAC,CAACC,IAAI,CAACC,gBAAgB,CAACC,MAAM,CAAC;IAChD,CAAC,EAAE,IAAI,CAAC,AAAC;IAET,IAAIP,mBAAmB,EAAE;QACvB,MAAMQ,QAAQ,GAAGP,MAAM,CAACC,MAAM,CAACJ,WAAW,CAAC,CAACK,MAAM,CAAW,CAACC,IAAI,EAAEC,IAAI,GAAK;YAC3E,OAAOD,IAAI,CAACK,MAAM,CAAC;gBAACJ,IAAI,CAACC,gBAAgB,CAAC,CAAC,CAAC;aAAC,CAAC,CAAC;QACjD,CAAC,EAAE,EAAE,CAAC,AAAC;QACPI,IAAG,CAACC,GAAG,CAACC,MAAK,EAAA,QAAA,CAACC,GAAG,CAAC,uCAAuC,EAAEL,QAAQ,CAACM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAClF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAMC,sBAAsB,GAAGd,MAAM,CAACC,MAAM,CAACJ,WAAW,CAAC,CAACK,MAAM,CAAC,CAACC,IAAI,EAAEC,IAAI,GAAK;QAC/E,OAAOD,IAAI,IAAI,CAAC,CAACC,IAAI,CAACW,oBAAoB,CAACT,MAAM,CAAC;IACpD,CAAC,EAAE,IAAI,CAAC,AAAC;IAET,IAAIQ,sBAAsB,EAAE;QAC1B,wFAAwF;QACxF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,eAAelB,yBAAyB,CAACF,WAAmB,EAAE;IAC5D,MAAMsB,GAAG,GAAG,MAAMC,SAAQ,CAACC,mBAAmB,EAAE,AAAC;IAEjD,MAAMC,EAAE,GAAG,MAAMC,IAAAA,kCAAsC,uCAAA,
|
|
1
|
+
{"version":3,"sources":["../../../../../src/run/ios/codeSigning/configureCodeSigning.ts"],"sourcesContent":["import chalk from 'chalk';\n\nimport * as Security from './Security';\nimport { resolveCertificateSigningIdentityAsync } from './resolveCertificateSigningIdentity';\nimport { getCodeSigningInfoForPbxproj, setAutoCodeSigningInfoForPbxproj } from './xcodeCodeSigning';\nimport * as Log from '../../../log';\n\nexport async function ensureDeviceIsCodeSignedForDeploymentAsync(\n projectRoot: string\n): Promise<string | null> {\n if (isCodeSigningConfigured(projectRoot)) {\n return null;\n }\n return configureCodeSigningAsync(projectRoot);\n}\n\nfunction isCodeSigningConfigured(projectRoot: string): boolean {\n // Check if the app already has a development team defined.\n const signingInfo = getCodeSigningInfoForPbxproj(projectRoot);\n\n const allTargetsHaveTeams = Object.values(signingInfo).reduce((prev, curr) => {\n return prev && !!curr.developmentTeams.length;\n }, true);\n\n if (allTargetsHaveTeams) {\n const teamList = Object.values(signingInfo).reduce<string[]>((prev, curr) => {\n return prev.concat([curr.developmentTeams[0]]);\n }, []);\n Log.log(chalk.dim`\\u203A Auto signing app using team(s): ${teamList.join(', ')}`);\n return true;\n }\n\n const allTargetsHaveProfiles = Object.values(signingInfo).reduce((prev, curr) => {\n return prev && !!curr.provisioningProfiles.length;\n }, true);\n\n if (allTargetsHaveProfiles) {\n // this indicates that the user has manual code signing setup (possibly for production).\n return true;\n }\n return false;\n}\n\nasync function configureCodeSigningAsync(projectRoot: string) {\n const ids = await Security.findIdentitiesAsync();\n\n const id = await resolveCertificateSigningIdentityAsync(projectRoot, ids);\n\n Log.log(`\\u203A Signing and building iOS app with: ${id.codeSigningInfo}`);\n\n setAutoCodeSigningInfoForPbxproj(projectRoot, {\n appleTeamId: id.appleTeamId!,\n });\n return id.appleTeamId!;\n}\n"],"names":["ensureDeviceIsCodeSignedForDeploymentAsync","projectRoot","isCodeSigningConfigured","configureCodeSigningAsync","signingInfo","getCodeSigningInfoForPbxproj","allTargetsHaveTeams","Object","values","reduce","prev","curr","developmentTeams","length","teamList","concat","Log","log","chalk","dim","join","allTargetsHaveProfiles","provisioningProfiles","ids","Security","findIdentitiesAsync","id","resolveCertificateSigningIdentityAsync","codeSigningInfo","setAutoCodeSigningInfoForPbxproj","appleTeamId"],"mappings":"AAAA;;;;+BAOsBA,4CAA0C;;aAA1CA,0CAA0C;;;8DAP9C,OAAO;;;;;;gEAEC,YAAY;mDACiB,qCAAqC;kCACb,oBAAoB;2DAC9E,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE5B,eAAeA,0CAA0C,CAC9DC,WAAmB,EACK;IACxB,IAAIC,uBAAuB,CAACD,WAAW,CAAC,EAAE;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAOE,yBAAyB,CAACF,WAAW,CAAC,CAAC;AAChD,CAAC;AAED,SAASC,uBAAuB,CAACD,WAAmB,EAAW;IAC7D,2DAA2D;IAC3D,MAAMG,WAAW,GAAGC,IAAAA,iBAA4B,6BAAA,EAACJ,WAAW,CAAC,AAAC;IAE9D,MAAMK,mBAAmB,GAAGC,MAAM,CAACC,MAAM,CAACJ,WAAW,CAAC,CAACK,MAAM,CAAC,CAACC,IAAI,EAAEC,IAAI,GAAK;QAC5E,OAAOD,IAAI,IAAI,CAAC,CAACC,IAAI,CAACC,gBAAgB,CAACC,MAAM,CAAC;IAChD,CAAC,EAAE,IAAI,CAAC,AAAC;IAET,IAAIP,mBAAmB,EAAE;QACvB,MAAMQ,QAAQ,GAAGP,MAAM,CAACC,MAAM,CAACJ,WAAW,CAAC,CAACK,MAAM,CAAW,CAACC,IAAI,EAAEC,IAAI,GAAK;YAC3E,OAAOD,IAAI,CAACK,MAAM,CAAC;gBAACJ,IAAI,CAACC,gBAAgB,CAAC,CAAC,CAAC;aAAC,CAAC,CAAC;QACjD,CAAC,EAAE,EAAE,CAAC,AAAC;QACPI,IAAG,CAACC,GAAG,CAACC,MAAK,EAAA,QAAA,CAACC,GAAG,CAAC,uCAAuC,EAAEL,QAAQ,CAACM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAClF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAMC,sBAAsB,GAAGd,MAAM,CAACC,MAAM,CAACJ,WAAW,CAAC,CAACK,MAAM,CAAC,CAACC,IAAI,EAAEC,IAAI,GAAK;QAC/E,OAAOD,IAAI,IAAI,CAAC,CAACC,IAAI,CAACW,oBAAoB,CAACT,MAAM,CAAC;IACpD,CAAC,EAAE,IAAI,CAAC,AAAC;IAET,IAAIQ,sBAAsB,EAAE;QAC1B,wFAAwF;QACxF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,eAAelB,yBAAyB,CAACF,WAAmB,EAAE;IAC5D,MAAMsB,GAAG,GAAG,MAAMC,SAAQ,CAACC,mBAAmB,EAAE,AAAC;IAEjD,MAAMC,EAAE,GAAG,MAAMC,IAAAA,kCAAsC,uCAAA,EAAC1B,WAAW,EAAEsB,GAAG,CAAC,AAAC;IAE1EP,IAAG,CAACC,GAAG,CAAC,CAAC,0CAA0C,EAAES,EAAE,CAACE,eAAe,CAAC,CAAC,CAAC,CAAC;IAE3EC,IAAAA,iBAAgC,iCAAA,EAAC5B,WAAW,EAAE;QAC5C6B,WAAW,EAAEJ,EAAE,CAACI,WAAW;KAC5B,CAAC,CAAC;IACH,OAAOJ,EAAE,CAACI,WAAW,CAAE;AACzB,CAAC"}
|
|
@@ -13,6 +13,13 @@ _export(exports, {
|
|
|
13
13
|
resolveCertificateSigningIdentityAsync: ()=>resolveCertificateSigningIdentityAsync,
|
|
14
14
|
selectDevelopmentTeamAsync: ()=>selectDevelopmentTeamAsync
|
|
15
15
|
});
|
|
16
|
+
function _config() {
|
|
17
|
+
const data = require("@expo/config");
|
|
18
|
+
_config = function() {
|
|
19
|
+
return data;
|
|
20
|
+
};
|
|
21
|
+
return data;
|
|
22
|
+
}
|
|
16
23
|
function _chalk() {
|
|
17
24
|
const data = /*#__PURE__*/ _interopRequireDefault(require("chalk"));
|
|
18
25
|
_chalk = function() {
|
|
@@ -93,7 +100,8 @@ async function sortDefaultIdToBeginningAsync(identities) {
|
|
|
93
100
|
_log.log(`\u203A Your computer requires some additional setup before you can build onto physical iOS devices.\n ${_chalk().default.bold((0, _link.learnMore)("https://expo.fyi/setup-xcode-signing"))}`);
|
|
94
101
|
throw new _errors.CommandError("No code signing certificates are available to use.");
|
|
95
102
|
}
|
|
96
|
-
async function resolveCertificateSigningIdentityAsync(ids) {
|
|
103
|
+
async function resolveCertificateSigningIdentityAsync(projectRoot, ids) {
|
|
104
|
+
var ref;
|
|
97
105
|
// The user has no valid code signing identities.
|
|
98
106
|
if (!ids.length) {
|
|
99
107
|
assertCodeSigningSetup();
|
|
@@ -108,11 +116,27 @@ async function resolveCertificateSigningIdentityAsync(ids) {
|
|
|
108
116
|
}
|
|
109
117
|
// Get identities and sort by the one that the user is most likely to choose.
|
|
110
118
|
const [identities, preferred] = await sortDefaultIdToBeginningAsync(await _security.resolveIdentitiesAsync(ids));
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
119
|
+
// Read the config to interact with the `ios.appleTeamId` property
|
|
120
|
+
const { exp } = (0, _config().getConfig)(projectRoot, {
|
|
121
|
+
// We don't need very many fields here, just use the lightest possible read.
|
|
122
|
+
skipSDKVersionRequirement: true,
|
|
123
|
+
skipPlugins: true
|
|
124
|
+
});
|
|
125
|
+
const configuredTeamId = (ref = exp.ios) == null ? void 0 : ref.appleTeamId;
|
|
126
|
+
const configuredIdentity = configuredTeamId ? identities.find((identity)=>identity.appleTeamId === configuredTeamId) : undefined;
|
|
127
|
+
const selectedIdentity = configuredIdentity ?? await selectDevelopmentTeamAsync(identities, preferred);
|
|
128
|
+
await Promise.all([
|
|
129
|
+
// Store the last used value and suggest it as the first value
|
|
130
|
+
// next time the user has to select a code signing identity.
|
|
131
|
+
(0, _settings.setLastDeveloperCodeSigningIdAsync)(selectedIdentity.signingCertificateId),
|
|
132
|
+
// Store the last used team id in the app manifest, when no team id has been configured yet
|
|
133
|
+
configuredTeamId || !selectedIdentity.appleTeamId ? Promise.resolve() : (0, _config().modifyConfigAsync)(projectRoot, {
|
|
134
|
+
ios: {
|
|
135
|
+
appleTeamId: selectedIdentity.appleTeamId
|
|
136
|
+
}
|
|
137
|
+
}),
|
|
138
|
+
]);
|
|
139
|
+
return selectedIdentity;
|
|
116
140
|
}
|
|
117
141
|
async function selectDevelopmentTeamAsync(identities, preferredId) {
|
|
118
142
|
const index = await (0, _prompts.selectAsync)("Development team for signing the app", identities.map((value, i)=>{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/run/ios/codeSigning/resolveCertificateSigningIdentity.ts"],"sourcesContent":["import chalk from 'chalk';\n\nimport * as Security from './Security';\nimport { getLastDeveloperCodeSigningIdAsync, setLastDeveloperCodeSigningIdAsync } from './settings';\nimport * as Log from '../../../log';\nimport { CommandError } from '../../../utils/errors';\nimport { isInteractive } from '../../../utils/interactive';\nimport { learnMore } from '../../../utils/link';\nimport { selectAsync } from '../../../utils/prompts';\n\n/**\n * Sort the code signing items so the last selected item (user's default) is the first suggested.\n */\nexport async function sortDefaultIdToBeginningAsync(\n identities: Security.CertificateSigningInfo[]\n): Promise<[Security.CertificateSigningInfo[], string | null]> {\n const lastSelected = await getLastDeveloperCodeSigningIdAsync();\n\n if (lastSelected) {\n let iterations = 0;\n while (identities[0].signingCertificateId !== lastSelected && iterations < identities.length) {\n identities.push(identities.shift()!);\n iterations++;\n }\n }\n return [identities, lastSelected];\n}\n\n/**\n * Assert that the computer needs code signing setup.\n * This links to an FYI page that was user tested internally.\n */\nfunction assertCodeSigningSetup(): never {\n // TODO: We can probably do this too automatically.\n Log.log(\n `\\u203A Your computer requires some additional setup before you can build onto physical iOS devices.\\n ${chalk.bold(\n learnMore('https://expo.fyi/setup-xcode-signing')\n )}`\n );\n\n throw new CommandError('No code signing certificates are available to use.');\n}\n\n/**\n * Resolve the best certificate signing identity from a given list of IDs.\n * - If no IDs: Assert that the user has to setup code signing.\n * - If one ID: Return the first ID.\n * - If multiple IDs: Ask the user to select one, then store the value to be suggested first next time (since users generally use the same ID).\n */\nexport async function resolveCertificateSigningIdentityAsync(\n ids: string[]\n): Promise<Security.CertificateSigningInfo> {\n // The user has no valid code signing identities.\n if (!ids.length) {\n assertCodeSigningSetup();\n }\n\n // One ID available 🤝 Program is not interactive\n //\n // using the the first available option\n if (ids.length === 1 || !isInteractive()) {\n // This method is cheaper than `resolveIdentitiesAsync` and checking the\n // cached user preference so we should use this as early as possible.\n return Security.resolveCertificateSigningInfoAsync(ids[0]);\n }\n\n // Get identities and sort by the one that the user is most likely to choose.\n const [identities, preferred] = await sortDefaultIdToBeginningAsync(\n await Security.resolveIdentitiesAsync(ids)\n );\n\n const
|
|
1
|
+
{"version":3,"sources":["../../../../../src/run/ios/codeSigning/resolveCertificateSigningIdentity.ts"],"sourcesContent":["import { getConfig, modifyConfigAsync } from '@expo/config';\nimport chalk from 'chalk';\n\nimport * as Security from './Security';\nimport { getLastDeveloperCodeSigningIdAsync, setLastDeveloperCodeSigningIdAsync } from './settings';\nimport * as Log from '../../../log';\nimport { CommandError } from '../../../utils/errors';\nimport { isInteractive } from '../../../utils/interactive';\nimport { learnMore } from '../../../utils/link';\nimport { selectAsync } from '../../../utils/prompts';\n\n/**\n * Sort the code signing items so the last selected item (user's default) is the first suggested.\n */\nexport async function sortDefaultIdToBeginningAsync(\n identities: Security.CertificateSigningInfo[]\n): Promise<[Security.CertificateSigningInfo[], string | null]> {\n const lastSelected = await getLastDeveloperCodeSigningIdAsync();\n\n if (lastSelected) {\n let iterations = 0;\n while (identities[0].signingCertificateId !== lastSelected && iterations < identities.length) {\n identities.push(identities.shift()!);\n iterations++;\n }\n }\n return [identities, lastSelected];\n}\n\n/**\n * Assert that the computer needs code signing setup.\n * This links to an FYI page that was user tested internally.\n */\nfunction assertCodeSigningSetup(): never {\n // TODO: We can probably do this too automatically.\n Log.log(\n `\\u203A Your computer requires some additional setup before you can build onto physical iOS devices.\\n ${chalk.bold(\n learnMore('https://expo.fyi/setup-xcode-signing')\n )}`\n );\n\n throw new CommandError('No code signing certificates are available to use.');\n}\n\n/**\n * Resolve the best certificate signing identity from a given list of IDs.\n * - If no IDs: Assert that the user has to setup code signing.\n * - If one ID: Return the first ID.\n * - If multiple IDs: Ask the user to select one, then store the value to be suggested first next time (since users generally use the same ID).\n */\nexport async function resolveCertificateSigningIdentityAsync(\n projectRoot: string,\n ids: string[]\n): Promise<Security.CertificateSigningInfo> {\n // The user has no valid code signing identities.\n if (!ids.length) {\n assertCodeSigningSetup();\n }\n\n // One ID available 🤝 Program is not interactive\n //\n // using the the first available option\n if (ids.length === 1 || !isInteractive()) {\n // This method is cheaper than `resolveIdentitiesAsync` and checking the\n // cached user preference so we should use this as early as possible.\n return Security.resolveCertificateSigningInfoAsync(ids[0]);\n }\n\n // Get identities and sort by the one that the user is most likely to choose.\n const [identities, preferred] = await sortDefaultIdToBeginningAsync(\n await Security.resolveIdentitiesAsync(ids)\n );\n\n // Read the config to interact with the `ios.appleTeamId` property\n const { exp } = getConfig(projectRoot, {\n // We don't need very many fields here, just use the lightest possible read.\n skipSDKVersionRequirement: true,\n skipPlugins: true,\n });\n const configuredTeamId = exp.ios?.appleTeamId;\n\n const configuredIdentity = configuredTeamId\n ? identities.find((identity) => identity.appleTeamId === configuredTeamId)\n : undefined;\n\n const selectedIdentity =\n configuredIdentity ?? (await selectDevelopmentTeamAsync(identities, preferred));\n\n await Promise.all([\n // Store the last used value and suggest it as the first value\n // next time the user has to select a code signing identity.\n setLastDeveloperCodeSigningIdAsync(selectedIdentity.signingCertificateId),\n // Store the last used team id in the app manifest, when no team id has been configured yet\n configuredTeamId || !selectedIdentity.appleTeamId\n ? Promise.resolve()\n : modifyConfigAsync(projectRoot, { ios: { appleTeamId: selectedIdentity.appleTeamId } }),\n ]);\n\n return selectedIdentity;\n}\n\n/** Prompt the user to select a development team, highlighting the preferred value based on the user history. */\nexport async function selectDevelopmentTeamAsync(\n identities: Security.CertificateSigningInfo[],\n preferredId: string | null\n): Promise<Security.CertificateSigningInfo> {\n const index = await selectAsync(\n 'Development team for signing the app',\n identities.map((value, i) => {\n const format =\n value.signingCertificateId === preferredId ? chalk.bold : (message: string) => message;\n return {\n // Formatted like: `650 Industries, Inc. (A1BCDEF234) - Apple Development: Evan Bacon (AA00AABB0A)`\n title: format(\n [value.appleTeamName, `(${value.appleTeamId}) -`, value.codeSigningInfo].join(' ')\n ),\n value: i,\n };\n })\n );\n\n return identities[index];\n}\n"],"names":["sortDefaultIdToBeginningAsync","resolveCertificateSigningIdentityAsync","selectDevelopmentTeamAsync","identities","lastSelected","getLastDeveloperCodeSigningIdAsync","iterations","signingCertificateId","length","push","shift","assertCodeSigningSetup","Log","log","chalk","bold","learnMore","CommandError","projectRoot","ids","exp","isInteractive","Security","resolveCertificateSigningInfoAsync","preferred","resolveIdentitiesAsync","getConfig","skipSDKVersionRequirement","skipPlugins","configuredTeamId","ios","appleTeamId","configuredIdentity","find","identity","undefined","selectedIdentity","Promise","all","setLastDeveloperCodeSigningIdAsync","resolve","modifyConfigAsync","preferredId","index","selectAsync","map","value","i","format","message","title","appleTeamName","codeSigningInfo","join"],"mappings":"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"}
|
|
@@ -31,7 +31,7 @@ class FetchClient {
|
|
|
31
31
|
this.headers = {
|
|
32
32
|
accept: "application/json",
|
|
33
33
|
"content-type": "application/json",
|
|
34
|
-
"user-agent": `expo-cli/${"0.22.
|
|
34
|
+
"user-agent": `expo-cli/${"0.22.1"}`,
|
|
35
35
|
authorization: "Basic " + _nodeBuffer().Buffer.from(`${target}:`).toString("base64")
|
|
36
36
|
};
|
|
37
37
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@expo/cli",
|
|
3
|
-
"version": "0.22.
|
|
3
|
+
"version": "0.22.1",
|
|
4
4
|
"description": "The Expo CLI",
|
|
5
5
|
"main": "build/bin/cli",
|
|
6
6
|
"bin": {
|
|
@@ -167,5 +167,5 @@
|
|
|
167
167
|
"tree-kill": "^1.2.2",
|
|
168
168
|
"tsd": "^0.28.1"
|
|
169
169
|
},
|
|
170
|
-
"gitHead": "
|
|
170
|
+
"gitHead": "a1fac063b47a647f2a9737e201d502066c52d4b0"
|
|
171
171
|
}
|