@expo/build-tools 1.0.205 → 1.0.206

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.
Files changed (232) hide show
  1. package/dist/android/credentials.js +1 -2
  2. package/dist/android/credentials.js.map +1 -1
  3. package/dist/android/expoUpdates.js +5 -5
  4. package/dist/android/expoUpdates.js.map +1 -1
  5. package/dist/android/gradle.d.ts +0 -1
  6. package/dist/android/gradle.js +3 -4
  7. package/dist/android/gradle.js.map +1 -1
  8. package/dist/android/gradleConfig.js +1 -2
  9. package/dist/android/gradleConfig.js.map +1 -1
  10. package/dist/buildErrors/detectError.js +1 -2
  11. package/dist/buildErrors/detectError.js.map +1 -1
  12. package/dist/builders/android.js +1 -1
  13. package/dist/builders/android.js.map +1 -1
  14. package/dist/builders/common.js +1 -2
  15. package/dist/builders/common.js.map +1 -1
  16. package/dist/builders/custom.js +1 -2
  17. package/dist/builders/custom.js.map +1 -1
  18. package/dist/builders/ios.js +1 -1
  19. package/dist/builders/ios.js.map +1 -1
  20. package/dist/common/eagerBundle.d.ts +0 -1
  21. package/dist/common/eagerBundle.js +2 -3
  22. package/dist/common/eagerBundle.js.map +1 -1
  23. package/dist/common/easBuildInternal.d.ts +0 -1
  24. package/dist/common/easBuildInternal.js +2 -3
  25. package/dist/common/easBuildInternal.js.map +1 -1
  26. package/dist/common/git.d.ts +0 -1
  27. package/dist/common/git.js +1 -2
  28. package/dist/common/git.js.map +1 -1
  29. package/dist/common/installDependencies.js +2 -3
  30. package/dist/common/installDependencies.js.map +1 -1
  31. package/dist/common/prebuild.d.ts +0 -1
  32. package/dist/common/prebuild.js +1 -2
  33. package/dist/common/prebuild.js.map +1 -1
  34. package/dist/common/projectSources.js +2 -3
  35. package/dist/common/projectSources.js.map +1 -1
  36. package/dist/common/setup.js +1 -2
  37. package/dist/common/setup.js.map +1 -1
  38. package/dist/context.d.ts +0 -1
  39. package/dist/customBuildContext.d.ts +0 -1
  40. package/dist/gcs/LoggerStream.d.ts +0 -2
  41. package/dist/gcs/client.d.ts +0 -1
  42. package/dist/gcs/retry.js +1 -2
  43. package/dist/gcs/retry.js.map +1 -1
  44. package/dist/generic.js +1 -2
  45. package/dist/generic.js.map +1 -1
  46. package/dist/ios/configure.js +2 -3
  47. package/dist/ios/configure.js.map +1 -1
  48. package/dist/ios/credentials/distributionCertificate.js +2 -3
  49. package/dist/ios/credentials/distributionCertificate.js.map +1 -1
  50. package/dist/ios/credentials/provisioningProfile.d.ts +0 -1
  51. package/dist/ios/expoUpdates.js +5 -5
  52. package/dist/ios/expoUpdates.js.map +1 -1
  53. package/dist/ios/fastfile.js +1 -2
  54. package/dist/ios/fastfile.js.map +1 -1
  55. package/dist/ios/fastlane.d.ts +0 -1
  56. package/dist/ios/fastlane.js +3 -4
  57. package/dist/ios/fastlane.js.map +1 -1
  58. package/dist/ios/gymfile.js +2 -3
  59. package/dist/ios/gymfile.js.map +1 -1
  60. package/dist/ios/pod.js +1 -2
  61. package/dist/ios/pod.js.map +1 -1
  62. package/dist/ios/resign.js +1 -2
  63. package/dist/ios/resign.js.map +1 -1
  64. package/dist/ios/resolve.js +3 -4
  65. package/dist/ios/resolve.js.map +1 -1
  66. package/dist/ios/tvos.js +1 -2
  67. package/dist/ios/tvos.js.map +1 -1
  68. package/dist/ios/xcodeBuildLogs.d.ts +0 -1
  69. package/dist/ios/xcodeBuildLogs.js +2 -3
  70. package/dist/ios/xcodeBuildLogs.js.map +1 -1
  71. package/dist/ios/xcodeEnv.js +1 -2
  72. package/dist/ios/xcodeEnv.js.map +1 -1
  73. package/dist/ios/xcpretty.d.ts +0 -1
  74. package/dist/steps/easFunctionGroups.js +1 -2
  75. package/dist/steps/easFunctionGroups.js.map +1 -1
  76. package/dist/steps/easFunctions.js +1 -2
  77. package/dist/steps/easFunctions.js.map +1 -1
  78. package/dist/steps/functionGroups/build.js +1 -2
  79. package/dist/steps/functionGroups/build.js.map +1 -1
  80. package/dist/steps/functionGroups/maestroTest.js +1 -2
  81. package/dist/steps/functionGroups/maestroTest.js.map +1 -1
  82. package/dist/steps/functions/calculateEASUpdateRuntimeVersion.js +1 -2
  83. package/dist/steps/functions/calculateEASUpdateRuntimeVersion.js.map +1 -1
  84. package/dist/steps/functions/checkout.js +1 -2
  85. package/dist/steps/functions/checkout.js.map +1 -1
  86. package/dist/steps/functions/configureAndroidVersion.js +1 -2
  87. package/dist/steps/functions/configureAndroidVersion.js.map +1 -1
  88. package/dist/steps/functions/configureEASUpdateIfInstalled.js +1 -2
  89. package/dist/steps/functions/configureEASUpdateIfInstalled.js.map +1 -1
  90. package/dist/steps/functions/configureIosCredentials.js +1 -2
  91. package/dist/steps/functions/configureIosCredentials.js.map +1 -1
  92. package/dist/steps/functions/configureIosVersion.js +1 -2
  93. package/dist/steps/functions/configureIosVersion.js.map +1 -1
  94. package/dist/steps/functions/createSubmissionEntity.js +1 -2
  95. package/dist/steps/functions/createSubmissionEntity.js.map +1 -1
  96. package/dist/steps/functions/downloadArtifact.d.ts +0 -1
  97. package/dist/steps/functions/downloadArtifact.js +2 -3
  98. package/dist/steps/functions/downloadArtifact.js.map +1 -1
  99. package/dist/steps/functions/downloadBuild.d.ts +0 -1
  100. package/dist/steps/functions/downloadBuild.js +2 -3
  101. package/dist/steps/functions/downloadBuild.js.map +1 -1
  102. package/dist/steps/functions/eagerBundle.js +1 -2
  103. package/dist/steps/functions/eagerBundle.js.map +1 -1
  104. package/dist/steps/functions/findAndUploadBuildArtifacts.js +1 -2
  105. package/dist/steps/functions/findAndUploadBuildArtifacts.js.map +1 -1
  106. package/dist/steps/functions/generateGymfileFromTemplate.js +1 -2
  107. package/dist/steps/functions/generateGymfileFromTemplate.js.map +1 -1
  108. package/dist/steps/functions/getCredentialsForBuildTriggeredByGitHubIntegration.js +1 -2
  109. package/dist/steps/functions/getCredentialsForBuildTriggeredByGitHubIntegration.js.map +1 -1
  110. package/dist/steps/functions/injectAndroidCredentials.js +1 -2
  111. package/dist/steps/functions/injectAndroidCredentials.js.map +1 -1
  112. package/dist/steps/functions/installMaestro.js +14 -16
  113. package/dist/steps/functions/installMaestro.js.map +1 -1
  114. package/dist/steps/functions/installNodeModules.js +2 -3
  115. package/dist/steps/functions/installNodeModules.js.map +1 -1
  116. package/dist/steps/functions/installPods.js +1 -2
  117. package/dist/steps/functions/installPods.js.map +1 -1
  118. package/dist/steps/functions/internalMaestroTest.js +2 -3
  119. package/dist/steps/functions/internalMaestroTest.js.map +1 -1
  120. package/dist/steps/functions/prebuild.js +1 -2
  121. package/dist/steps/functions/prebuild.js.map +1 -1
  122. package/dist/steps/functions/repack.d.ts +0 -1
  123. package/dist/steps/functions/repack.js +3 -4
  124. package/dist/steps/functions/repack.js.map +1 -1
  125. package/dist/steps/functions/resolveAppleTeamIdFromCredentials.js +1 -2
  126. package/dist/steps/functions/resolveAppleTeamIdFromCredentials.js.map +1 -1
  127. package/dist/steps/functions/resolveBuildConfig.d.ts +0 -1
  128. package/dist/steps/functions/resolveBuildConfig.js +2 -3
  129. package/dist/steps/functions/resolveBuildConfig.js.map +1 -1
  130. package/dist/steps/functions/runFastlane.js +1 -2
  131. package/dist/steps/functions/runFastlane.js.map +1 -1
  132. package/dist/steps/functions/runGradle.js +1 -2
  133. package/dist/steps/functions/runGradle.js.map +1 -1
  134. package/dist/steps/functions/sendSlackMessage.js +1 -2
  135. package/dist/steps/functions/sendSlackMessage.js.map +1 -1
  136. package/dist/steps/functions/startAndroidEmulator.js +1 -2
  137. package/dist/steps/functions/startAndroidEmulator.js.map +1 -1
  138. package/dist/steps/functions/startIosSimulator.js +1 -2
  139. package/dist/steps/functions/startIosSimulator.js.map +1 -1
  140. package/dist/steps/functions/uploadArtifact.js +1 -2
  141. package/dist/steps/functions/uploadArtifact.js.map +1 -1
  142. package/dist/steps/functions/useNpmToken.js +1 -2
  143. package/dist/steps/functions/useNpmToken.js.map +1 -1
  144. package/dist/steps/utils/android/expoUpdates.js +4 -4
  145. package/dist/steps/utils/android/expoUpdates.js.map +1 -1
  146. package/dist/steps/utils/android/gradle.d.ts +0 -1
  147. package/dist/steps/utils/android/gradle.js +2 -3
  148. package/dist/steps/utils/android/gradle.js.map +1 -1
  149. package/dist/steps/utils/android/gradleConfig.d.ts +0 -1
  150. package/dist/steps/utils/android/gradleConfig.js +2 -3
  151. package/dist/steps/utils/android/gradleConfig.js.map +1 -1
  152. package/dist/steps/utils/expoUpdates.d.ts +0 -1
  153. package/dist/steps/utils/expoUpdates.js +2 -3
  154. package/dist/steps/utils/expoUpdates.js.map +1 -1
  155. package/dist/steps/utils/ios/configure.d.ts +0 -1
  156. package/dist/steps/utils/ios/configure.js +3 -4
  157. package/dist/steps/utils/ios/configure.js.map +1 -1
  158. package/dist/steps/utils/ios/credentials/distributionCertificate.js +2 -3
  159. package/dist/steps/utils/ios/credentials/distributionCertificate.js.map +1 -1
  160. package/dist/steps/utils/ios/credentials/keychain.d.ts +0 -1
  161. package/dist/steps/utils/ios/credentials/manager.d.ts +0 -1
  162. package/dist/steps/utils/ios/credentials/provisioningProfile.d.ts +0 -2
  163. package/dist/steps/utils/ios/expoUpdates.js +4 -4
  164. package/dist/steps/utils/ios/expoUpdates.js.map +1 -1
  165. package/dist/steps/utils/ios/fastlane.d.ts +0 -1
  166. package/dist/steps/utils/ios/fastlane.js +2 -3
  167. package/dist/steps/utils/ios/fastlane.js.map +1 -1
  168. package/dist/steps/utils/ios/resolve.js +2 -3
  169. package/dist/steps/utils/ios/resolve.js.map +1 -1
  170. package/dist/steps/utils/ios/tvos.js +1 -2
  171. package/dist/steps/utils/ios/tvos.js.map +1 -1
  172. package/dist/steps/utils/ios/xcpretty.d.ts +0 -1
  173. package/dist/utils/AndroidEmulatorUtils.d.ts +0 -2
  174. package/dist/utils/IosSimulatorUtils.d.ts +0 -1
  175. package/dist/utils/appConfig.d.ts +0 -1
  176. package/dist/utils/appConfig.js +1 -2
  177. package/dist/utils/appConfig.js.map +1 -1
  178. package/dist/utils/artifacts.d.ts +0 -1
  179. package/dist/utils/artifacts.js +5 -5
  180. package/dist/utils/artifacts.js.map +1 -1
  181. package/dist/utils/diffFingerprintsAsync.d.ts +0 -1
  182. package/dist/utils/diffFingerprintsAsync.js +1 -2
  183. package/dist/utils/diffFingerprintsAsync.js.map +1 -1
  184. package/dist/utils/environmentSecrets.js +1 -2
  185. package/dist/utils/environmentSecrets.js.map +1 -1
  186. package/dist/utils/expoFingerprintCli.js +3 -3
  187. package/dist/utils/expoFingerprintCli.js.map +1 -1
  188. package/dist/utils/expoUpdates.d.ts +0 -1
  189. package/dist/utils/expoUpdates.js +9 -10
  190. package/dist/utils/expoUpdates.js.map +1 -1
  191. package/dist/utils/expoUpdatesCli.js +2 -2
  192. package/dist/utils/expoUpdatesCli.js.map +1 -1
  193. package/dist/utils/files.js +2 -3
  194. package/dist/utils/files.js.map +1 -1
  195. package/dist/utils/findMaestroPathsFlowsToExecuteAsync.d.ts +0 -1
  196. package/dist/utils/findMaestroPathsFlowsToExecuteAsync.js +1 -2
  197. package/dist/utils/findMaestroPathsFlowsToExecuteAsync.js.map +1 -1
  198. package/dist/utils/fingerprint.js +1 -2
  199. package/dist/utils/fingerprint.js.map +1 -1
  200. package/dist/utils/getExpoUpdatesPackageVersionIfInstalledAsync.d.ts +0 -1
  201. package/dist/utils/getExpoUpdatesPackageVersionIfInstalledAsync.js +1 -1
  202. package/dist/utils/getExpoUpdatesPackageVersionIfInstalledAsync.js.map +1 -1
  203. package/dist/utils/hooks.js +2 -2
  204. package/dist/utils/hooks.js.map +1 -1
  205. package/dist/utils/npmrc.d.ts +0 -1
  206. package/dist/utils/npmrc.js +1 -2
  207. package/dist/utils/npmrc.js.map +1 -1
  208. package/dist/utils/outputs.d.ts +0 -1
  209. package/dist/utils/outputs.js +2 -3
  210. package/dist/utils/outputs.js.map +1 -1
  211. package/dist/utils/packageManager.js +6 -6
  212. package/dist/utils/packageManager.js.map +1 -1
  213. package/dist/utils/prepareBuildExecutable.js +1 -2
  214. package/dist/utils/prepareBuildExecutable.js.map +1 -1
  215. package/dist/utils/processes.js +1 -2
  216. package/dist/utils/processes.js.map +1 -1
  217. package/dist/utils/project.js +3 -4
  218. package/dist/utils/project.js.map +1 -1
  219. package/dist/utils/promiseRetryWithCondition.js +1 -2
  220. package/dist/utils/promiseRetryWithCondition.js.map +1 -1
  221. package/dist/utils/resolveRuntimeVersionAsync.d.ts +0 -1
  222. package/dist/utils/resolveRuntimeVersionAsync.js +1 -2
  223. package/dist/utils/resolveRuntimeVersionAsync.js.map +1 -1
  224. package/dist/utils/retry.d.ts +0 -1
  225. package/dist/utils/retry.js +2 -3
  226. package/dist/utils/retry.js.map +1 -1
  227. package/dist/utils/retryOnDNSFailure.js +2 -3
  228. package/dist/utils/retryOnDNSFailure.js.map +1 -1
  229. package/dist/utils/turtleFetch.d.ts +0 -1
  230. package/dist/utils/turtleFetch.js +2 -2
  231. package/dist/utils/turtleFetch.js.map +1 -1
  232. package/package.json +9 -9
@@ -1 +1 @@
1
- {"version":3,"file":"distributionCertificate.js","sourceRoot":"","sources":["../../../src/ios/credentials/distributionCertificate.ts"],"names":[],"mappings":";;;;;;AACA,4DAA+B;AAE/B,SAAgB,cAAc,CAAC,EAAE,UAAU,EAAE,QAAQ,EAA+B;IAClF,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,oBAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,oBAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;IACtD,MAAM,WAAW,GAAG,oBAAK,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,CAAC;IAC1F,OAAO,WAAW,CAAC;AACrB,CAAC;AAND,wCAMC;AAED,SAAgB,aAAa,CAAC,EAAE,UAAU,EAAE,QAAQ,EAA+B;IACjF,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACnD,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC;IACxC,MAAM,mBAAmB,GAAG,UAAU,CAAC,IAAI,CACzC,CAAC,EAAE,IAAI,EAAqB,EAAE,EAAE,CAAC,IAAI,KAAK,YAAY,CACvD,CAAC;IACF,OAAO,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;AACpE,CAAC;AAPD,sCAOC;AAED,SAAS,WAAW,CAAC,iBAAyB,EAAE,QAAgB;;IAC9D,MAAM,MAAM,GAAG,oBAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,oBAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,GAA2B,CAAC;IAChC,IAAI,CAAC;QACH,IAAI,QAAQ,EAAE,CAAC;YACb,GAAG,GAAG,oBAAK,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,GAAG,GAAG,oBAAK,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAAC,OAAO,MAAW,EAAE,CAAC;QACrB,MAAM,KAAK,GAAU,MAAM,CAAC;QAC5B,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;QAC5F,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,oBAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;IAC3C,MAAM,QAAQ,GAAG,MAAA,MAAA,MAAA,GAAG,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,0CAAG,WAAW,CAAC,0CAAG,CAAC,CAAC,0CAAE,IAAI,CAAC;IACjF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC","sourcesContent":["import { Ios } from '@expo/eas-build-job';\nimport forge from 'node-forge';\n\nexport function getFingerprint({ dataBase64, password }: Ios.DistributionCertificate): string {\n const certData = getCertData(dataBase64, password);\n const certAsn1 = forge.pki.certificateToAsn1(certData);\n const certDer = forge.asn1.toDer(certAsn1).getBytes();\n const fingerprint = forge.md.sha1.create().update(certDer).digest().toHex().toUpperCase();\n return fingerprint;\n}\n\nexport function getCommonName({ dataBase64, password }: Ios.DistributionCertificate): string {\n const certData = getCertData(dataBase64, password);\n const { attributes } = certData.subject;\n const commonNameAttribute = attributes.find(\n ({ name }: { name?: string }) => name === 'commonName'\n );\n return Buffer.from(commonNameAttribute.value, 'ascii').toString();\n}\n\nfunction getCertData(certificateBase64: string, password: string): any {\n const p12Der = forge.util.decode64(certificateBase64);\n const p12Asn1 = forge.asn1.fromDer(p12Der);\n let p12: forge.pkcs12.Pkcs12Pfx;\n try {\n if (password) {\n p12 = forge.pkcs12.pkcs12FromAsn1(p12Asn1, password);\n } else {\n p12 = forge.pkcs12.pkcs12FromAsn1(p12Asn1);\n }\n } catch (_error: any) {\n const error: Error = _error;\n if (/Invalid password/.exec(error.message)) {\n throw new Error('Provided password for the distribution certificate is probably invalid');\n } else {\n throw error;\n }\n }\n\n const certBagType = forge.pki.oids.certBag;\n const certData = p12.getBags({ bagType: certBagType })?.[certBagType]?.[0]?.cert;\n if (!certData) {\n throw new Error(\"getCertData: couldn't find cert bag\");\n }\n return certData;\n}\n"]}
1
+ {"version":3,"file":"distributionCertificate.js","sourceRoot":"","sources":["../../../src/ios/credentials/distributionCertificate.ts"],"names":[],"mappings":";;;;;AAGA,wCAMC;AAED,sCAOC;AAjBD,4DAA+B;AAE/B,SAAgB,cAAc,CAAC,EAAE,UAAU,EAAE,QAAQ,EAA+B;IAClF,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,oBAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,oBAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;IACtD,MAAM,WAAW,GAAG,oBAAK,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,CAAC;IAC1F,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAgB,aAAa,CAAC,EAAE,UAAU,EAAE,QAAQ,EAA+B;IACjF,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACnD,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC;IACxC,MAAM,mBAAmB,GAAG,UAAU,CAAC,IAAI,CACzC,CAAC,EAAE,IAAI,EAAqB,EAAE,EAAE,CAAC,IAAI,KAAK,YAAY,CACvD,CAAC;IACF,OAAO,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;AACpE,CAAC;AAED,SAAS,WAAW,CAAC,iBAAyB,EAAE,QAAgB;;IAC9D,MAAM,MAAM,GAAG,oBAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,oBAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,GAA2B,CAAC;IAChC,IAAI,CAAC;QACH,IAAI,QAAQ,EAAE,CAAC;YACb,GAAG,GAAG,oBAAK,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,GAAG,GAAG,oBAAK,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAAC,OAAO,MAAW,EAAE,CAAC;QACrB,MAAM,KAAK,GAAU,MAAM,CAAC;QAC5B,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;QAC5F,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,oBAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;IAC3C,MAAM,QAAQ,GAAG,MAAA,MAAA,MAAA,GAAG,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,0CAAG,WAAW,CAAC,0CAAG,CAAC,CAAC,0CAAE,IAAI,CAAC;IACjF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC","sourcesContent":["import { Ios } from '@expo/eas-build-job';\nimport forge from 'node-forge';\n\nexport function getFingerprint({ dataBase64, password }: Ios.DistributionCertificate): string {\n const certData = getCertData(dataBase64, password);\n const certAsn1 = forge.pki.certificateToAsn1(certData);\n const certDer = forge.asn1.toDer(certAsn1).getBytes();\n const fingerprint = forge.md.sha1.create().update(certDer).digest().toHex().toUpperCase();\n return fingerprint;\n}\n\nexport function getCommonName({ dataBase64, password }: Ios.DistributionCertificate): string {\n const certData = getCertData(dataBase64, password);\n const { attributes } = certData.subject;\n const commonNameAttribute = attributes.find(\n ({ name }: { name?: string }) => name === 'commonName'\n );\n return Buffer.from(commonNameAttribute.value, 'ascii').toString();\n}\n\nfunction getCertData(certificateBase64: string, password: string): any {\n const p12Der = forge.util.decode64(certificateBase64);\n const p12Asn1 = forge.asn1.fromDer(p12Der);\n let p12: forge.pkcs12.Pkcs12Pfx;\n try {\n if (password) {\n p12 = forge.pkcs12.pkcs12FromAsn1(p12Asn1, password);\n } else {\n p12 = forge.pkcs12.pkcs12FromAsn1(p12Asn1);\n }\n } catch (_error: any) {\n const error: Error = _error;\n if (/Invalid password/.exec(error.message)) {\n throw new Error('Provided password for the distribution certificate is probably invalid');\n } else {\n throw error;\n }\n }\n\n const certBagType = forge.pki.oids.certBag;\n const certData = p12.getBags({ bagType: certBagType })?.[certBagType]?.[0]?.cert;\n if (!certData) {\n throw new Error(\"getCertData: couldn't find cert bag\");\n }\n return certData;\n}\n"]}
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { Ios } from '@expo/eas-build-job';
3
2
  import { BuildContext } from '../../context';
4
3
  export interface ProvisioningProfileData {
@@ -3,7 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.iosGetNativelyDefinedRuntimeVersionAsync = exports.iosGetNativelyDefinedChannelAsync = exports.iosSetChannelNativelyAsync = exports.iosSetRuntimeVersionNativelyAsync = exports.IosMetadataName = void 0;
6
+ exports.IosMetadataName = void 0;
7
+ exports.iosSetRuntimeVersionNativelyAsync = iosSetRuntimeVersionNativelyAsync;
8
+ exports.iosSetChannelNativelyAsync = iosSetChannelNativelyAsync;
9
+ exports.iosGetNativelyDefinedChannelAsync = iosGetNativelyDefinedChannelAsync;
10
+ exports.iosGetNativelyDefinedRuntimeVersionAsync = iosGetNativelyDefinedRuntimeVersionAsync;
7
11
  const assert_1 = __importDefault(require("assert"));
8
12
  const config_plugins_1 = require("@expo/config-plugins");
9
13
  const fs_extra_1 = __importDefault(require("fs-extra"));
@@ -24,7 +28,6 @@ async function iosSetRuntimeVersionNativelyAsync(ctx, runtimeVersion) {
24
28
  const updatedExpoPlistContents = plist_1.default.build(items);
25
29
  await fs_extra_1.default.writeFile(expoPlistPath, updatedExpoPlistContents);
26
30
  }
27
- exports.iosSetRuntimeVersionNativelyAsync = iosSetRuntimeVersionNativelyAsync;
28
31
  async function iosSetChannelNativelyAsync(ctx) {
29
32
  var _a, _b;
30
33
  (0, assert_1.default)((_a = ctx.job.updates) === null || _a === void 0 ? void 0 : _a.channel, 'updates.channel must be defined');
@@ -41,7 +44,6 @@ async function iosSetChannelNativelyAsync(ctx) {
41
44
  const updatedExpoPlistContents = plist_1.default.build(items);
42
45
  await fs_extra_1.default.writeFile(expoPlistPath, updatedExpoPlistContents);
43
46
  }
44
- exports.iosSetChannelNativelyAsync = iosSetChannelNativelyAsync;
45
47
  async function iosGetNativelyDefinedChannelAsync(ctx) {
46
48
  var _a, _b;
47
49
  const expoPlistPath = config_plugins_1.IOSConfig.Paths.getExpoPlistPath(ctx.getReactNativeProjectDirectory());
@@ -58,7 +60,6 @@ async function iosGetNativelyDefinedChannelAsync(ctx) {
58
60
  throw new Error(`Failed to parse ${IosMetadataName.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY} from Expo.plist: ${err.message}`);
59
61
  }
60
62
  }
61
- exports.iosGetNativelyDefinedChannelAsync = iosGetNativelyDefinedChannelAsync;
62
63
  async function iosGetNativelyDefinedRuntimeVersionAsync(ctx) {
63
64
  var _a;
64
65
  const expoPlistPath = config_plugins_1.IOSConfig.Paths.getExpoPlistPath(ctx.getReactNativeProjectDirectory());
@@ -72,5 +73,4 @@ async function iosGetNativelyDefinedRuntimeVersionAsync(ctx) {
72
73
  }
73
74
  return (_a = parsedPlist[IosMetadataName.RUNTIME_VERSION]) !== null && _a !== void 0 ? _a : null;
74
75
  }
75
- exports.iosGetNativelyDefinedRuntimeVersionAsync = iosGetNativelyDefinedRuntimeVersionAsync;
76
76
  //# sourceMappingURL=expoUpdates.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"expoUpdates.js","sourceRoot":"","sources":["../../src/ios/expoUpdates.ts"],"names":[],"mappings":"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","sourcesContent":["import assert from 'assert';\n\nimport { IOSConfig } from '@expo/config-plugins';\nimport fs from 'fs-extra';\nimport plist from '@expo/plist';\nimport { BuildJob, Job } from '@expo/eas-build-job';\n\nimport { BuildContext } from '../context';\n\nexport enum IosMetadataName {\n UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY = 'EXUpdatesRequestHeaders',\n RUNTIME_VERSION = 'EXUpdatesRuntimeVersion',\n}\n\nexport async function iosSetRuntimeVersionNativelyAsync(\n ctx: BuildContext<Job>,\n runtimeVersion: string\n): Promise<void> {\n const expoPlistPath = IOSConfig.Paths.getExpoPlistPath(ctx.getReactNativeProjectDirectory());\n\n if (!(await fs.pathExists(expoPlistPath))) {\n throw new Error(`${expoPlistPath} does not exist`);\n }\n\n const expoPlistContents = await fs.readFile(expoPlistPath, 'utf8');\n const items = plist.parse(expoPlistContents);\n items[IosMetadataName.RUNTIME_VERSION] = runtimeVersion;\n const updatedExpoPlistContents = plist.build(items);\n\n await fs.writeFile(expoPlistPath, updatedExpoPlistContents);\n}\n\nexport async function iosSetChannelNativelyAsync(ctx: BuildContext<BuildJob>): Promise<void> {\n assert(ctx.job.updates?.channel, 'updates.channel must be defined');\n\n const expoPlistPath = IOSConfig.Paths.getExpoPlistPath(ctx.getReactNativeProjectDirectory());\n\n if (!(await fs.pathExists(expoPlistPath))) {\n throw new Error(`${expoPlistPath} does not exist`);\n }\n\n const expoPlistContents = await fs.readFile(expoPlistPath, 'utf8');\n const items: Record<string, string | Record<string, string>> = plist.parse(expoPlistContents);\n items[IosMetadataName.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY] = {\n ...((items[IosMetadataName.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY] as Record<\n string,\n string\n >) ?? {}),\n 'expo-channel-name': ctx.job.updates.channel,\n };\n const updatedExpoPlistContents = plist.build(items);\n\n await fs.writeFile(expoPlistPath, updatedExpoPlistContents);\n}\n\nexport async function iosGetNativelyDefinedChannelAsync(\n ctx: BuildContext<Job>\n): Promise<string | null> {\n const expoPlistPath = IOSConfig.Paths.getExpoPlistPath(ctx.getReactNativeProjectDirectory());\n\n if (!(await fs.pathExists(expoPlistPath))) {\n return null;\n }\n\n const expoPlistContents = await fs.readFile(expoPlistPath, 'utf8');\n try {\n const items: Record<string, string | Record<string, string>> = plist.parse(expoPlistContents);\n const updatesRequestHeaders = (items[\n IosMetadataName.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY\n ] ?? {}) as Record<string, string>;\n return updatesRequestHeaders['expo-channel-name'] ?? null;\n } catch (err: any) {\n throw new Error(\n `Failed to parse ${IosMetadataName.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY} from Expo.plist: ${err.message}`\n );\n }\n}\n\nexport async function iosGetNativelyDefinedRuntimeVersionAsync(\n ctx: BuildContext<Job>\n): Promise<string | null> {\n const expoPlistPath = IOSConfig.Paths.getExpoPlistPath(ctx.getReactNativeProjectDirectory());\n if (!(await fs.pathExists(expoPlistPath))) {\n return null;\n }\n const expoPlistContents = await fs.readFile(expoPlistPath, 'utf8');\n const parsedPlist = plist.parse(expoPlistContents);\n if (!parsedPlist) {\n return null;\n }\n return parsedPlist[IosMetadataName.RUNTIME_VERSION] ?? null;\n}\n"]}
1
+ {"version":3,"file":"expoUpdates.js","sourceRoot":"","sources":["../../src/ios/expoUpdates.ts"],"names":[],"mappings":"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","sourcesContent":["import assert from 'assert';\n\nimport { IOSConfig } from '@expo/config-plugins';\nimport fs from 'fs-extra';\nimport plist from '@expo/plist';\nimport { BuildJob, Job } from '@expo/eas-build-job';\n\nimport { BuildContext } from '../context';\n\nexport enum IosMetadataName {\n UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY = 'EXUpdatesRequestHeaders',\n RUNTIME_VERSION = 'EXUpdatesRuntimeVersion',\n}\n\nexport async function iosSetRuntimeVersionNativelyAsync(\n ctx: BuildContext<Job>,\n runtimeVersion: string\n): Promise<void> {\n const expoPlistPath = IOSConfig.Paths.getExpoPlistPath(ctx.getReactNativeProjectDirectory());\n\n if (!(await fs.pathExists(expoPlistPath))) {\n throw new Error(`${expoPlistPath} does not exist`);\n }\n\n const expoPlistContents = await fs.readFile(expoPlistPath, 'utf8');\n const items = plist.parse(expoPlistContents);\n items[IosMetadataName.RUNTIME_VERSION] = runtimeVersion;\n const updatedExpoPlistContents = plist.build(items);\n\n await fs.writeFile(expoPlistPath, updatedExpoPlistContents);\n}\n\nexport async function iosSetChannelNativelyAsync(ctx: BuildContext<BuildJob>): Promise<void> {\n assert(ctx.job.updates?.channel, 'updates.channel must be defined');\n\n const expoPlistPath = IOSConfig.Paths.getExpoPlistPath(ctx.getReactNativeProjectDirectory());\n\n if (!(await fs.pathExists(expoPlistPath))) {\n throw new Error(`${expoPlistPath} does not exist`);\n }\n\n const expoPlistContents = await fs.readFile(expoPlistPath, 'utf8');\n const items: Record<string, string | Record<string, string>> = plist.parse(expoPlistContents);\n items[IosMetadataName.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY] = {\n ...((items[IosMetadataName.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY] as Record<\n string,\n string\n >) ?? {}),\n 'expo-channel-name': ctx.job.updates.channel,\n };\n const updatedExpoPlistContents = plist.build(items);\n\n await fs.writeFile(expoPlistPath, updatedExpoPlistContents);\n}\n\nexport async function iosGetNativelyDefinedChannelAsync(\n ctx: BuildContext<Job>\n): Promise<string | null> {\n const expoPlistPath = IOSConfig.Paths.getExpoPlistPath(ctx.getReactNativeProjectDirectory());\n\n if (!(await fs.pathExists(expoPlistPath))) {\n return null;\n }\n\n const expoPlistContents = await fs.readFile(expoPlistPath, 'utf8');\n try {\n const items: Record<string, string | Record<string, string>> = plist.parse(expoPlistContents);\n const updatesRequestHeaders = (items[\n IosMetadataName.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY\n ] ?? {}) as Record<string, string>;\n return updatesRequestHeaders['expo-channel-name'] ?? null;\n } catch (err: any) {\n throw new Error(\n `Failed to parse ${IosMetadataName.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY} from Expo.plist: ${err.message}`\n );\n }\n}\n\nexport async function iosGetNativelyDefinedRuntimeVersionAsync(\n ctx: BuildContext<Job>\n): Promise<string | null> {\n const expoPlistPath = IOSConfig.Paths.getExpoPlistPath(ctx.getReactNativeProjectDirectory());\n if (!(await fs.pathExists(expoPlistPath))) {\n return null;\n }\n const expoPlistContents = await fs.readFile(expoPlistPath, 'utf8');\n const parsedPlist = plist.parse(expoPlistContents);\n if (!parsedPlist) {\n return null;\n }\n return parsedPlist[IosMetadataName.RUNTIME_VERSION] ?? null;\n}\n"]}
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createFastfileForResigningBuild = void 0;
6
+ exports.createFastfileForResigningBuild = createFastfileForResigningBuild;
7
7
  const path_1 = __importDefault(require("path"));
8
8
  const template_file_1 = __importDefault(require("@expo/template-file"));
9
9
  const RESIGN_TEMPLATE_FILE_PATH = path_1.default.join(__dirname, '../../templates/Fastfile.resign.template');
@@ -24,5 +24,4 @@ async function createFastfileForResigningBuild({ outputFile, ipaPath, signingIde
24
24
  KEYCHAIN_PATH: keychainPath,
25
25
  }, outputFile, { mustache: false });
26
26
  }
27
- exports.createFastfileForResigningBuild = createFastfileForResigningBuild;
28
27
  //# sourceMappingURL=fastfile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fastfile.js","sourceRoot":"","sources":["../../src/ios/fastfile.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAExB,wEAA+C;AAI/C,MAAM,yBAAyB,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,0CAA0C,CAAC,CAAC;AAE5F,KAAK,UAAU,+BAA+B,CAAC,EACpD,UAAU,EACV,OAAO,EACP,eAAe,EACf,YAAY,EACZ,0BAA0B,GAO3B;IACC,MAAM,QAAQ,GAA0C,EAAE,CAAC;IAC3D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACxD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;QACnD,QAAQ,CAAC,IAAI,CAAC;YACZ,SAAS,EAAE,OAAO,CAAC,gBAAgB;YACnC,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,IAAA,uBAAY,EAChB,yBAAyB,EACzB;QACE,QAAQ,EAAE,OAAO;QACjB,gBAAgB,EAAE,eAAe;QACjC,QAAQ;QACR,aAAa,EAAE,YAAY;KAC5B,EACD,UAAU,EACV,EAAE,QAAQ,EAAE,KAAK,EAAE,CACpB,CAAC;AACJ,CAAC;AAlCD,0EAkCC","sourcesContent":["import path from 'path';\n\nimport templateFile from '@expo/template-file';\n\nimport { TargetProvisioningProfiles } from './credentials/manager';\n\nconst RESIGN_TEMPLATE_FILE_PATH = path.join(__dirname, '../../templates/Fastfile.resign.template');\n\nexport async function createFastfileForResigningBuild({\n outputFile,\n ipaPath,\n signingIdentity,\n keychainPath,\n targetProvisioningProfiles,\n}: {\n outputFile: string;\n ipaPath: string;\n signingIdentity: string;\n keychainPath: string;\n targetProvisioningProfiles: TargetProvisioningProfiles;\n}): Promise<void> {\n const PROFILES: { BUNDLE_ID: string; PATH: string }[] = [];\n const targets = Object.keys(targetProvisioningProfiles);\n for (const target of targets) {\n const profile = targetProvisioningProfiles[target];\n PROFILES.push({\n BUNDLE_ID: profile.bundleIdentifier,\n PATH: profile.path,\n });\n }\n\n await templateFile(\n RESIGN_TEMPLATE_FILE_PATH,\n {\n IPA_PATH: ipaPath,\n SIGNING_IDENTITY: signingIdentity,\n PROFILES,\n KEYCHAIN_PATH: keychainPath,\n },\n outputFile,\n { mustache: false }\n );\n}\n"]}
1
+ {"version":3,"file":"fastfile.js","sourceRoot":"","sources":["../../src/ios/fastfile.ts"],"names":[],"mappings":";;;;;AAQA,0EAkCC;AA1CD,gDAAwB;AAExB,wEAA+C;AAI/C,MAAM,yBAAyB,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,0CAA0C,CAAC,CAAC;AAE5F,KAAK,UAAU,+BAA+B,CAAC,EACpD,UAAU,EACV,OAAO,EACP,eAAe,EACf,YAAY,EACZ,0BAA0B,GAO3B;IACC,MAAM,QAAQ,GAA0C,EAAE,CAAC;IAC3D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACxD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;QACnD,QAAQ,CAAC,IAAI,CAAC;YACZ,SAAS,EAAE,OAAO,CAAC,gBAAgB;YACnC,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,IAAA,uBAAY,EAChB,yBAAyB,EACzB;QACE,QAAQ,EAAE,OAAO;QACjB,gBAAgB,EAAE,eAAe;QACjC,QAAQ;QACR,aAAa,EAAE,YAAY;KAC5B,EACD,UAAU,EACV,EAAE,QAAQ,EAAE,KAAK,EAAE,CACpB,CAAC;AACJ,CAAC","sourcesContent":["import path from 'path';\n\nimport templateFile from '@expo/template-file';\n\nimport { TargetProvisioningProfiles } from './credentials/manager';\n\nconst RESIGN_TEMPLATE_FILE_PATH = path.join(__dirname, '../../templates/Fastfile.resign.template');\n\nexport async function createFastfileForResigningBuild({\n outputFile,\n ipaPath,\n signingIdentity,\n keychainPath,\n targetProvisioningProfiles,\n}: {\n outputFile: string;\n ipaPath: string;\n signingIdentity: string;\n keychainPath: string;\n targetProvisioningProfiles: TargetProvisioningProfiles;\n}): Promise<void> {\n const PROFILES: { BUNDLE_ID: string; PATH: string }[] = [];\n const targets = Object.keys(targetProvisioningProfiles);\n for (const target of targets) {\n const profile = targetProvisioningProfiles[target];\n PROFILES.push({\n BUNDLE_ID: profile.bundleIdentifier,\n PATH: profile.path,\n });\n }\n\n await templateFile(\n RESIGN_TEMPLATE_FILE_PATH,\n {\n IPA_PATH: ipaPath,\n SIGNING_IDENTITY: signingIdentity,\n PROFILES,\n KEYCHAIN_PATH: keychainPath,\n },\n outputFile,\n { mustache: false }\n );\n}\n"]}
@@ -1,4 +1,3 @@
1
- /// <reference types="bunyan" />
2
1
  import { Env, Ios } from '@expo/eas-build-job';
3
2
  import { bunyan } from '@expo/logger';
4
3
  import { SpawnResult } from '@expo/turtle-spawn';
@@ -3,7 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.runFastlane = exports.runFastlaneResign = exports.runFastlaneGym = void 0;
6
+ exports.runFastlaneGym = runFastlaneGym;
7
+ exports.runFastlaneResign = runFastlaneResign;
8
+ exports.runFastlane = runFastlane;
7
9
  const path_1 = __importDefault(require("path"));
8
10
  const turtle_spawn_1 = __importDefault(require("@expo/turtle-spawn"));
9
11
  const fs_extra_1 = __importDefault(require("fs-extra"));
@@ -38,7 +40,6 @@ async function runFastlaneGym(ctx, { scheme, buildConfiguration, credentials, en
38
40
  await buildLogger.flush();
39
41
  }
40
42
  }
41
- exports.runFastlaneGym = runFastlaneGym;
42
43
  async function runFastlaneResign(ctx, { credentials, ipaPath }) {
43
44
  const { certificateCommonName } = credentials.applicationTargetProvisioningProfile.data;
44
45
  const fastlaneDirPath = path_1.default.join(ctx.buildDirectory, 'fastlane');
@@ -57,7 +58,6 @@ async function runFastlaneResign(ctx, { credentials, ipaPath }) {
57
58
  env: ctx.env,
58
59
  });
59
60
  }
60
- exports.runFastlaneResign = runFastlaneResign;
61
61
  async function runFastlane(fastlaneArgs, { logger, env, cwd, } = {}) {
62
62
  return await (0, turtle_spawn_1.default)('fastlane', fastlaneArgs, {
63
63
  env: {
@@ -68,7 +68,6 @@ async function runFastlane(fastlaneArgs, { logger, env, cwd, } = {}) {
68
68
  cwd,
69
69
  });
70
70
  }
71
- exports.runFastlane = runFastlane;
72
71
  async function ensureGymfileExists(ctx, { scheme, buildConfiguration, credentials, logsDirectory, entitlements, }) {
73
72
  const gymfilePath = path_1.default.join(ctx.getReactNativeProjectDirectory(), 'ios/Gymfile');
74
73
  if (await fs_extra_1.default.pathExists(gymfilePath)) {
@@ -1 +1 @@
1
- {"version":3,"file":"fastlane.js","sourceRoot":"","sources":["../../src/ios/fastlane.ts"],"names":[],"mappings":"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","sourcesContent":["import path from 'path';\n\nimport { Env, Ios } from '@expo/eas-build-job';\nimport { bunyan } from '@expo/logger';\nimport spawn, { SpawnResult } from '@expo/turtle-spawn';\nimport fs from 'fs-extra';\nimport nullthrows from 'nullthrows';\n\nimport { BuildContext, SkipNativeBuildError } from '../context';\nimport { COMMON_FASTLANE_ENV } from '../common/fastlane';\n\nimport { createGymfileForArchiveBuild, createGymfileForSimulatorBuild } from './gymfile';\nimport { Credentials } from './credentials/manager';\nimport { XcodeBuildLogger } from './xcpretty';\nimport { isTVOS } from './tvos';\nimport { createFastfileForResigningBuild } from './fastfile';\n\nexport async function runFastlaneGym<TJob extends Ios.Job>(\n ctx: BuildContext<TJob>,\n {\n scheme,\n buildConfiguration,\n credentials,\n entitlements,\n extraEnv,\n }: {\n scheme: string;\n buildConfiguration?: string;\n credentials: Credentials | null;\n entitlements: object | null;\n extraEnv?: Env;\n }\n): Promise<void> {\n await ensureGymfileExists(ctx, {\n scheme,\n buildConfiguration,\n credentials,\n logsDirectory: ctx.buildLogsDirectory,\n entitlements,\n });\n if (ctx.skipNativeBuild) {\n throw new SkipNativeBuildError('Skipping fastlane build');\n }\n const buildLogger = new XcodeBuildLogger(ctx.logger, ctx.getReactNativeProjectDirectory());\n void buildLogger.watchLogFiles(ctx.buildLogsDirectory);\n try {\n await runFastlane(['gym'], {\n cwd: path.join(ctx.getReactNativeProjectDirectory(), 'ios'),\n logger: ctx.logger,\n env: { ...ctx.env, ...extraEnv },\n });\n } finally {\n await buildLogger.flush();\n }\n}\n\nexport async function runFastlaneResign<TJob extends Ios.Job>(\n ctx: BuildContext<TJob>,\n { credentials, ipaPath }: { credentials: Credentials; ipaPath: string }\n): Promise<void> {\n const { certificateCommonName } = credentials.applicationTargetProvisioningProfile.data;\n\n const fastlaneDirPath = path.join(ctx.buildDirectory, 'fastlane');\n await fs.ensureDir(fastlaneDirPath);\n const fastfilePath = path.join(fastlaneDirPath, 'Fastfile');\n await createFastfileForResigningBuild({\n outputFile: fastfilePath,\n ipaPath,\n keychainPath: credentials.keychainPath,\n signingIdentity: certificateCommonName,\n targetProvisioningProfiles: credentials.targetProvisioningProfiles,\n });\n\n await runFastlane(['do_resign'], {\n cwd: ctx.buildDirectory,\n logger: ctx.logger,\n env: ctx.env,\n });\n}\n\nexport async function runFastlane(\n fastlaneArgs: string[],\n {\n logger,\n env,\n cwd,\n }: {\n logger?: bunyan;\n env?: Record<string, string>;\n cwd?: string;\n } = {}\n): Promise<SpawnResult> {\n return await spawn('fastlane', fastlaneArgs, {\n env: {\n ...COMMON_FASTLANE_ENV,\n ...(env ?? process.env),\n },\n logger,\n cwd,\n });\n}\n\nasync function ensureGymfileExists<TJob extends Ios.Job>(\n ctx: BuildContext<TJob>,\n {\n scheme,\n buildConfiguration,\n credentials,\n logsDirectory,\n entitlements,\n }: {\n scheme: string;\n buildConfiguration?: string;\n credentials: Credentials | null;\n logsDirectory: string;\n entitlements: object | null;\n }\n): Promise<void> {\n const gymfilePath = path.join(ctx.getReactNativeProjectDirectory(), 'ios/Gymfile');\n\n if (await fs.pathExists(gymfilePath)) {\n ctx.logger.info('Gymfile already exists');\n return;\n }\n\n ctx.logger.info('Creating Gymfile');\n if (ctx.job.simulator) {\n const isTV = await isTVOS(ctx);\n const simulatorDestination = `generic/platform=${isTV ? 'tvOS' : 'iOS'} Simulator`;\n\n await createGymfileForSimulatorBuild({\n outputFile: gymfilePath,\n scheme,\n buildConfiguration: buildConfiguration ?? 'release',\n derivedDataPath: './build',\n clean: false,\n logsDirectory,\n simulatorDestination,\n });\n } else {\n await createGymfileForArchiveBuild({\n outputFile: gymfilePath,\n credentials: nullthrows(credentials, 'credentials must exist for non-simulator builds'),\n scheme,\n buildConfiguration,\n outputDirectory: './build',\n clean: false,\n logsDirectory,\n entitlements: entitlements ?? undefined,\n });\n }\n\n ctx.logger.info('Gymfile created');\n}\n"]}
1
+ {"version":3,"file":"fastlane.js","sourceRoot":"","sources":["../../src/ios/fastlane.ts"],"names":[],"mappings":";;;;;AAiBA,wCAqCC;AAED,8CAsBC;AAED,kCAoBC;AApGD,gDAAwB;AAIxB,sEAAwD;AACxD,wDAA0B;AAC1B,4DAAoC;AAEpC,wCAAgE;AAChE,iDAAyD;AAEzD,uCAAyF;AAEzF,yCAA8C;AAC9C,iCAAgC;AAChC,yCAA6D;AAEtD,KAAK,UAAU,cAAc,CAClC,GAAuB,EACvB,EACE,MAAM,EACN,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,QAAQ,GAOT;IAED,MAAM,mBAAmB,CAAC,GAAG,EAAE;QAC7B,MAAM;QACN,kBAAkB;QAClB,WAAW;QACX,aAAa,EAAE,GAAG,CAAC,kBAAkB;QACrC,YAAY;KACb,CAAC,CAAC;IACH,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;QACxB,MAAM,IAAI,8BAAoB,CAAC,yBAAyB,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,2BAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,8BAA8B,EAAE,CAAC,CAAC;IAC3F,KAAK,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACvD,IAAI,CAAC;QACH,MAAM,WAAW,CAAC,CAAC,KAAK,CAAC,EAAE;YACzB,GAAG,EAAE,cAAI,CAAC,IAAI,CAAC,GAAG,CAAC,8BAA8B,EAAE,EAAE,KAAK,CAAC;YAC3D,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,GAAG,EAAE,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE;SACjC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,iBAAiB,CACrC,GAAuB,EACvB,EAAE,WAAW,EAAE,OAAO,EAAiD;IAEvE,MAAM,EAAE,qBAAqB,EAAE,GAAG,WAAW,CAAC,oCAAoC,CAAC,IAAI,CAAC;IAExF,MAAM,eAAe,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IAClE,MAAM,kBAAE,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IACpC,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IAC5D,MAAM,IAAA,0CAA+B,EAAC;QACpC,UAAU,EAAE,YAAY;QACxB,OAAO;QACP,YAAY,EAAE,WAAW,CAAC,YAAY;QACtC,eAAe,EAAE,qBAAqB;QACtC,0BAA0B,EAAE,WAAW,CAAC,0BAA0B;KACnE,CAAC,CAAC;IAEH,MAAM,WAAW,CAAC,CAAC,WAAW,CAAC,EAAE;QAC/B,GAAG,EAAE,GAAG,CAAC,cAAc;QACvB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,GAAG,EAAE,GAAG,CAAC,GAAG;KACb,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,WAAW,CAC/B,YAAsB,EACtB,EACE,MAAM,EACN,GAAG,EACH,GAAG,MAKD,EAAE;IAEN,OAAO,MAAM,IAAA,sBAAK,EAAC,UAAU,EAAE,YAAY,EAAE;QAC3C,GAAG,EAAE;YACH,GAAG,8BAAmB;YACtB,GAAG,CAAC,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,OAAO,CAAC,GAAG,CAAC;SACxB;QACD,MAAM;QACN,GAAG;KACJ,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,GAAuB,EACvB,EACE,MAAM,EACN,kBAAkB,EAClB,WAAW,EACX,aAAa,EACb,YAAY,GAOb;IAED,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,CAAC,8BAA8B,EAAE,EAAE,aAAa,CAAC,CAAC;IAEnF,IAAI,MAAM,kBAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACrC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC1C,OAAO;IACT,CAAC;IAED,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACpC,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,MAAM,IAAA,aAAM,EAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,oBAAoB,GAAG,oBAAoB,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC;QAEnF,MAAM,IAAA,wCAA8B,EAAC;YACnC,UAAU,EAAE,WAAW;YACvB,MAAM;YACN,kBAAkB,EAAE,kBAAkB,aAAlB,kBAAkB,cAAlB,kBAAkB,GAAI,SAAS;YACnD,eAAe,EAAE,SAAS;YAC1B,KAAK,EAAE,KAAK;YACZ,aAAa;YACb,oBAAoB;SACrB,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,IAAA,sCAA4B,EAAC;YACjC,UAAU,EAAE,WAAW;YACvB,WAAW,EAAE,IAAA,oBAAU,EAAC,WAAW,EAAE,iDAAiD,CAAC;YACvF,MAAM;YACN,kBAAkB;YAClB,eAAe,EAAE,SAAS;YAC1B,KAAK,EAAE,KAAK;YACZ,aAAa;YACb,YAAY,EAAE,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,SAAS;SACxC,CAAC,CAAC;IACL,CAAC;IAED,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACrC,CAAC","sourcesContent":["import path from 'path';\n\nimport { Env, Ios } from '@expo/eas-build-job';\nimport { bunyan } from '@expo/logger';\nimport spawn, { SpawnResult } from '@expo/turtle-spawn';\nimport fs from 'fs-extra';\nimport nullthrows from 'nullthrows';\n\nimport { BuildContext, SkipNativeBuildError } from '../context';\nimport { COMMON_FASTLANE_ENV } from '../common/fastlane';\n\nimport { createGymfileForArchiveBuild, createGymfileForSimulatorBuild } from './gymfile';\nimport { Credentials } from './credentials/manager';\nimport { XcodeBuildLogger } from './xcpretty';\nimport { isTVOS } from './tvos';\nimport { createFastfileForResigningBuild } from './fastfile';\n\nexport async function runFastlaneGym<TJob extends Ios.Job>(\n ctx: BuildContext<TJob>,\n {\n scheme,\n buildConfiguration,\n credentials,\n entitlements,\n extraEnv,\n }: {\n scheme: string;\n buildConfiguration?: string;\n credentials: Credentials | null;\n entitlements: object | null;\n extraEnv?: Env;\n }\n): Promise<void> {\n await ensureGymfileExists(ctx, {\n scheme,\n buildConfiguration,\n credentials,\n logsDirectory: ctx.buildLogsDirectory,\n entitlements,\n });\n if (ctx.skipNativeBuild) {\n throw new SkipNativeBuildError('Skipping fastlane build');\n }\n const buildLogger = new XcodeBuildLogger(ctx.logger, ctx.getReactNativeProjectDirectory());\n void buildLogger.watchLogFiles(ctx.buildLogsDirectory);\n try {\n await runFastlane(['gym'], {\n cwd: path.join(ctx.getReactNativeProjectDirectory(), 'ios'),\n logger: ctx.logger,\n env: { ...ctx.env, ...extraEnv },\n });\n } finally {\n await buildLogger.flush();\n }\n}\n\nexport async function runFastlaneResign<TJob extends Ios.Job>(\n ctx: BuildContext<TJob>,\n { credentials, ipaPath }: { credentials: Credentials; ipaPath: string }\n): Promise<void> {\n const { certificateCommonName } = credentials.applicationTargetProvisioningProfile.data;\n\n const fastlaneDirPath = path.join(ctx.buildDirectory, 'fastlane');\n await fs.ensureDir(fastlaneDirPath);\n const fastfilePath = path.join(fastlaneDirPath, 'Fastfile');\n await createFastfileForResigningBuild({\n outputFile: fastfilePath,\n ipaPath,\n keychainPath: credentials.keychainPath,\n signingIdentity: certificateCommonName,\n targetProvisioningProfiles: credentials.targetProvisioningProfiles,\n });\n\n await runFastlane(['do_resign'], {\n cwd: ctx.buildDirectory,\n logger: ctx.logger,\n env: ctx.env,\n });\n}\n\nexport async function runFastlane(\n fastlaneArgs: string[],\n {\n logger,\n env,\n cwd,\n }: {\n logger?: bunyan;\n env?: Record<string, string>;\n cwd?: string;\n } = {}\n): Promise<SpawnResult> {\n return await spawn('fastlane', fastlaneArgs, {\n env: {\n ...COMMON_FASTLANE_ENV,\n ...(env ?? process.env),\n },\n logger,\n cwd,\n });\n}\n\nasync function ensureGymfileExists<TJob extends Ios.Job>(\n ctx: BuildContext<TJob>,\n {\n scheme,\n buildConfiguration,\n credentials,\n logsDirectory,\n entitlements,\n }: {\n scheme: string;\n buildConfiguration?: string;\n credentials: Credentials | null;\n logsDirectory: string;\n entitlements: object | null;\n }\n): Promise<void> {\n const gymfilePath = path.join(ctx.getReactNativeProjectDirectory(), 'ios/Gymfile');\n\n if (await fs.pathExists(gymfilePath)) {\n ctx.logger.info('Gymfile already exists');\n return;\n }\n\n ctx.logger.info('Creating Gymfile');\n if (ctx.job.simulator) {\n const isTV = await isTVOS(ctx);\n const simulatorDestination = `generic/platform=${isTV ? 'tvOS' : 'iOS'} Simulator`;\n\n await createGymfileForSimulatorBuild({\n outputFile: gymfilePath,\n scheme,\n buildConfiguration: buildConfiguration ?? 'release',\n derivedDataPath: './build',\n clean: false,\n logsDirectory,\n simulatorDestination,\n });\n } else {\n await createGymfileForArchiveBuild({\n outputFile: gymfilePath,\n credentials: nullthrows(credentials, 'credentials must exist for non-simulator builds'),\n scheme,\n buildConfiguration,\n outputDirectory: './build',\n clean: false,\n logsDirectory,\n entitlements: entitlements ?? undefined,\n });\n }\n\n ctx.logger.info('Gymfile created');\n}\n"]}
@@ -3,7 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createGymfileForSimulatorBuild = exports.createGymfileForArchiveBuild = void 0;
6
+ exports.createGymfileForArchiveBuild = createGymfileForArchiveBuild;
7
+ exports.createGymfileForSimulatorBuild = createGymfileForSimulatorBuild;
7
8
  const path_1 = __importDefault(require("path"));
8
9
  const template_file_1 = __importDefault(require("@expo/template-file"));
9
10
  const fs_extra_1 = __importDefault(require("fs-extra"));
@@ -37,7 +38,6 @@ async function createGymfileForArchiveBuild({ outputFile, clean, credentials, sc
37
38
  },
38
39
  });
39
40
  }
40
- exports.createGymfileForArchiveBuild = createGymfileForArchiveBuild;
41
41
  async function createGymfileForSimulatorBuild({ outputFile, clean, scheme, buildConfiguration, derivedDataPath, logsDirectory, simulatorDestination, }) {
42
42
  await fs_extra_1.default.mkdirp(logsDirectory);
43
43
  await createGymfile({
@@ -53,7 +53,6 @@ async function createGymfileForSimulatorBuild({ outputFile, clean, scheme, build
53
53
  },
54
54
  });
55
55
  }
56
- exports.createGymfileForSimulatorBuild = createGymfileForSimulatorBuild;
57
56
  async function createGymfile({ template, outputFile, vars, }) {
58
57
  await (0, template_file_1.default)(template, vars, outputFile, { mustache: false });
59
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"gymfile.js","sourceRoot":"","sources":["../../src/ios/gymfile.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAExB,wEAA+C;AAC/C,wDAA0B;AAI1B,MAAM,0BAA0B,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,0CAA0C,CAAC,CAAC;AACpG,MAAM,4BAA4B,GAAG,cAAI,CAAC,IAAI,CAC5C,SAAS,EACT,4CAA4C,CAC7C,CAAC;AAuBK,KAAK,UAAU,4BAA4B,CAAC,EACjD,UAAU,EACV,KAAK,EACL,WAAW,EACX,MAAM,EACN,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,aAAa,GACO;IACpB,MAAM,QAAQ,GAA0C,EAAE,CAAC;IAC3D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAC;IACpE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,WAAW,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;QAC/D,QAAQ,CAAC,IAAI,CAAC;YACZ,SAAS,EAAE,OAAO,CAAC,gBAAgB;YACnC,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,4BAA4B,GAChC,YACD,aADC,YAAY,uBAAZ,YAAY,CACV,kDAAkD,CAAuB,CAAC;IAE9E,MAAM,kBAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC/B,MAAM,aAAa,CAAC;QAClB,QAAQ,EAAE,0BAA0B;QACpC,UAAU;QACV,IAAI,EAAE;YACJ,aAAa,EAAE,WAAW,CAAC,YAAY;YACvC,MAAM,EAAE,MAAM;YACd,0BAA0B,EAAE,kBAAkB;YAC9C,gBAAgB,EAAE,eAAe;YACjC,aAAa,EAAE,WAAW,CAAC,gBAAgB;YAC3C,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;YACpB,cAAc,EAAE,aAAa;YAC7B,QAAQ;YACR,4BAA4B;SAC7B;KACF,CAAC,CAAC;AACL,CAAC;AAxCD,oEAwCC;AAEM,KAAK,UAAU,8BAA8B,CAAC,EACnD,UAAU,EACV,KAAK,EACL,MAAM,EACN,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,oBAAoB,GACE;IACtB,MAAM,kBAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC/B,MAAM,aAAa,CAAC;QAClB,QAAQ,EAAE,4BAA4B;QACtC,UAAU;QACV,IAAI,EAAE;YACJ,MAAM,EAAE,MAAM;YACd,0BAA0B,EAAE,kBAAkB;YAC9C,4BAA4B,EAAE,oBAAoB;YAClD,iBAAiB,EAAE,eAAe;YAClC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;YACpB,cAAc,EAAE,aAAa;SAC9B;KACF,CAAC,CAAC;AACL,CAAC;AAtBD,wEAsBC;AAED,KAAK,UAAU,aAAa,CAAC,EAC3B,QAAQ,EACR,UAAU,EACV,IAAI,GAKL;IACC,MAAM,IAAA,uBAAY,EAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;AACtE,CAAC","sourcesContent":["import path from 'path';\n\nimport templateFile from '@expo/template-file';\nimport fs from 'fs-extra';\n\nimport { Credentials } from './credentials/manager';\n\nconst ARCHIVE_TEMPLATE_FILE_PATH = path.join(__dirname, '../../templates/Gymfile.archive.template');\nconst SIMULATOR_TEMPLATE_FILE_PATH = path.join(\n __dirname,\n '../../templates/Gymfile.simulator.template'\n);\n\ninterface ArchiveBuildOptions {\n outputFile: string;\n credentials: Credentials;\n scheme: string;\n buildConfiguration?: string;\n outputDirectory: string;\n clean: boolean;\n logsDirectory: string;\n entitlements?: object;\n}\n\ninterface SimulatorBuildOptions {\n outputFile: string;\n scheme: string;\n buildConfiguration?: string;\n derivedDataPath: string;\n clean: boolean;\n logsDirectory: string;\n simulatorDestination: string;\n}\n\nexport async function createGymfileForArchiveBuild({\n outputFile,\n clean,\n credentials,\n scheme,\n buildConfiguration,\n entitlements,\n outputDirectory,\n logsDirectory,\n}: ArchiveBuildOptions): Promise<void> {\n const PROFILES: { BUNDLE_ID: string; UUID: string }[] = [];\n const targets = Object.keys(credentials.targetProvisioningProfiles);\n for (const target of targets) {\n const profile = credentials.targetProvisioningProfiles[target];\n PROFILES.push({\n BUNDLE_ID: profile.bundleIdentifier,\n UUID: profile.uuid,\n });\n }\n\n const ICLOUD_CONTAINER_ENVIRONMENT = (\n entitlements as Record<string, string | Record<string, string>>\n )?.['com.apple.developer.icloud-container-environment'] as string | undefined;\n\n await fs.mkdirp(logsDirectory);\n await createGymfile({\n template: ARCHIVE_TEMPLATE_FILE_PATH,\n outputFile,\n vars: {\n KEYCHAIN_PATH: credentials.keychainPath,\n SCHEME: scheme,\n SCHEME_BUILD_CONFIGURATION: buildConfiguration,\n OUTPUT_DIRECTORY: outputDirectory,\n EXPORT_METHOD: credentials.distributionType,\n CLEAN: String(clean),\n LOGS_DIRECTORY: logsDirectory,\n PROFILES,\n ICLOUD_CONTAINER_ENVIRONMENT,\n },\n });\n}\n\nexport async function createGymfileForSimulatorBuild({\n outputFile,\n clean,\n scheme,\n buildConfiguration,\n derivedDataPath,\n logsDirectory,\n simulatorDestination,\n}: SimulatorBuildOptions): Promise<void> {\n await fs.mkdirp(logsDirectory);\n await createGymfile({\n template: SIMULATOR_TEMPLATE_FILE_PATH,\n outputFile,\n vars: {\n SCHEME: scheme,\n SCHEME_BUILD_CONFIGURATION: buildConfiguration,\n SCHEME_SIMULATOR_DESTINATION: simulatorDestination,\n DERIVED_DATA_PATH: derivedDataPath,\n CLEAN: String(clean),\n LOGS_DIRECTORY: logsDirectory,\n },\n });\n}\n\nasync function createGymfile({\n template,\n outputFile,\n vars,\n}: {\n template: string;\n outputFile: string;\n vars: Record<string, string | number | any>;\n}): Promise<void> {\n await templateFile(template, vars, outputFile, { mustache: false });\n}\n"]}
1
+ {"version":3,"file":"gymfile.js","sourceRoot":"","sources":["../../src/ios/gymfile.ts"],"names":[],"mappings":";;;;;AAkCA,oEAwCC;AAED,wEAsBC;AAlGD,gDAAwB;AAExB,wEAA+C;AAC/C,wDAA0B;AAI1B,MAAM,0BAA0B,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,0CAA0C,CAAC,CAAC;AACpG,MAAM,4BAA4B,GAAG,cAAI,CAAC,IAAI,CAC5C,SAAS,EACT,4CAA4C,CAC7C,CAAC;AAuBK,KAAK,UAAU,4BAA4B,CAAC,EACjD,UAAU,EACV,KAAK,EACL,WAAW,EACX,MAAM,EACN,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,aAAa,GACO;IACpB,MAAM,QAAQ,GAA0C,EAAE,CAAC;IAC3D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAC;IACpE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,WAAW,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;QAC/D,QAAQ,CAAC,IAAI,CAAC;YACZ,SAAS,EAAE,OAAO,CAAC,gBAAgB;YACnC,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,4BAA4B,GAChC,YACD,aADC,YAAY,uBAAZ,YAAY,CACV,kDAAkD,CAAuB,CAAC;IAE9E,MAAM,kBAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC/B,MAAM,aAAa,CAAC;QAClB,QAAQ,EAAE,0BAA0B;QACpC,UAAU;QACV,IAAI,EAAE;YACJ,aAAa,EAAE,WAAW,CAAC,YAAY;YACvC,MAAM,EAAE,MAAM;YACd,0BAA0B,EAAE,kBAAkB;YAC9C,gBAAgB,EAAE,eAAe;YACjC,aAAa,EAAE,WAAW,CAAC,gBAAgB;YAC3C,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;YACpB,cAAc,EAAE,aAAa;YAC7B,QAAQ;YACR,4BAA4B;SAC7B;KACF,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,8BAA8B,CAAC,EACnD,UAAU,EACV,KAAK,EACL,MAAM,EACN,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,oBAAoB,GACE;IACtB,MAAM,kBAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC/B,MAAM,aAAa,CAAC;QAClB,QAAQ,EAAE,4BAA4B;QACtC,UAAU;QACV,IAAI,EAAE;YACJ,MAAM,EAAE,MAAM;YACd,0BAA0B,EAAE,kBAAkB;YAC9C,4BAA4B,EAAE,oBAAoB;YAClD,iBAAiB,EAAE,eAAe;YAClC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;YACpB,cAAc,EAAE,aAAa;SAC9B;KACF,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,EAC3B,QAAQ,EACR,UAAU,EACV,IAAI,GAKL;IACC,MAAM,IAAA,uBAAY,EAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;AACtE,CAAC","sourcesContent":["import path from 'path';\n\nimport templateFile from '@expo/template-file';\nimport fs from 'fs-extra';\n\nimport { Credentials } from './credentials/manager';\n\nconst ARCHIVE_TEMPLATE_FILE_PATH = path.join(__dirname, '../../templates/Gymfile.archive.template');\nconst SIMULATOR_TEMPLATE_FILE_PATH = path.join(\n __dirname,\n '../../templates/Gymfile.simulator.template'\n);\n\ninterface ArchiveBuildOptions {\n outputFile: string;\n credentials: Credentials;\n scheme: string;\n buildConfiguration?: string;\n outputDirectory: string;\n clean: boolean;\n logsDirectory: string;\n entitlements?: object;\n}\n\ninterface SimulatorBuildOptions {\n outputFile: string;\n scheme: string;\n buildConfiguration?: string;\n derivedDataPath: string;\n clean: boolean;\n logsDirectory: string;\n simulatorDestination: string;\n}\n\nexport async function createGymfileForArchiveBuild({\n outputFile,\n clean,\n credentials,\n scheme,\n buildConfiguration,\n entitlements,\n outputDirectory,\n logsDirectory,\n}: ArchiveBuildOptions): Promise<void> {\n const PROFILES: { BUNDLE_ID: string; UUID: string }[] = [];\n const targets = Object.keys(credentials.targetProvisioningProfiles);\n for (const target of targets) {\n const profile = credentials.targetProvisioningProfiles[target];\n PROFILES.push({\n BUNDLE_ID: profile.bundleIdentifier,\n UUID: profile.uuid,\n });\n }\n\n const ICLOUD_CONTAINER_ENVIRONMENT = (\n entitlements as Record<string, string | Record<string, string>>\n )?.['com.apple.developer.icloud-container-environment'] as string | undefined;\n\n await fs.mkdirp(logsDirectory);\n await createGymfile({\n template: ARCHIVE_TEMPLATE_FILE_PATH,\n outputFile,\n vars: {\n KEYCHAIN_PATH: credentials.keychainPath,\n SCHEME: scheme,\n SCHEME_BUILD_CONFIGURATION: buildConfiguration,\n OUTPUT_DIRECTORY: outputDirectory,\n EXPORT_METHOD: credentials.distributionType,\n CLEAN: String(clean),\n LOGS_DIRECTORY: logsDirectory,\n PROFILES,\n ICLOUD_CONTAINER_ENVIRONMENT,\n },\n });\n}\n\nexport async function createGymfileForSimulatorBuild({\n outputFile,\n clean,\n scheme,\n buildConfiguration,\n derivedDataPath,\n logsDirectory,\n simulatorDestination,\n}: SimulatorBuildOptions): Promise<void> {\n await fs.mkdirp(logsDirectory);\n await createGymfile({\n template: SIMULATOR_TEMPLATE_FILE_PATH,\n outputFile,\n vars: {\n SCHEME: scheme,\n SCHEME_BUILD_CONFIGURATION: buildConfiguration,\n SCHEME_SIMULATOR_DESTINATION: simulatorDestination,\n DERIVED_DATA_PATH: derivedDataPath,\n CLEAN: String(clean),\n LOGS_DIRECTORY: logsDirectory,\n },\n });\n}\n\nasync function createGymfile({\n template,\n outputFile,\n vars,\n}: {\n template: string;\n outputFile: string;\n vars: Record<string, string | number | any>;\n}): Promise<void> {\n await templateFile(template, vars, outputFile, { mustache: false });\n}\n"]}
package/dist/ios/pod.js CHANGED
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.installPods = void 0;
6
+ exports.installPods = installPods;
7
7
  const path_1 = __importDefault(require("path"));
8
8
  const turtle_spawn_1 = __importDefault(require("@expo/turtle-spawn"));
9
9
  async function installPods(ctx, { infoCallbackFn }) {
@@ -31,5 +31,4 @@ async function installPods(ctx, { infoCallbackFn }) {
31
31
  }),
32
32
  };
33
33
  }
34
- exports.installPods = installPods;
35
34
  //# sourceMappingURL=pod.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pod.js","sourceRoot":"","sources":["../../src/ios/pod.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAGxB,sEAAoF;AAI7E,KAAK,UAAU,WAAW,CAC/B,GAAuB,EACvB,EAAE,cAAc,EAAgB;IAEhC,MAAM,MAAM,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,CAAC,8BAA8B,EAAE,EAAE,KAAK,CAAC,CAAC;IAEtE,MAAM,WAAW,GAAG,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxE,MAAM,uBAAuB,GAAG,GAAG,CAAC,GAAG,CAAC,wBAAwB,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAElG,OAAO;QACL,YAAY,EAAE,IAAA,sBAAK,EAAC,KAAK,EAAE,CAAC,SAAS,EAAE,GAAG,WAAW,EAAE,GAAG,uBAAuB,CAAC,EAAE;YAClF,GAAG,EAAE,MAAM;YACX,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,GAAG,EAAE;gBACH,GAAG,GAAG,CAAC,GAAG;gBACV,IAAI,EAAE,aAAa;aACpB;YACD,eAAe,EAAE,CAAC,IAAa,EAAE,EAAE;gBACjC,IACE,CAAC,IAAI;oBACL,2EAA2E,CAAC,IAAI,CAAC,IAAI,CAAC,EACtF,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC;qBAAM,CAAC;oBACN,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YACD,cAAc;SACf,CAAC;KACH,CAAC;AACJ,CAAC;AA9BD,kCA8BC","sourcesContent":["import path from 'path';\n\nimport { Ios } from '@expo/eas-build-job';\nimport spawn, { SpawnOptions, SpawnPromise, SpawnResult } from '@expo/turtle-spawn';\n\nimport { BuildContext } from '../context';\n\nexport async function installPods<TJob extends Ios.Job>(\n ctx: BuildContext<TJob>,\n { infoCallbackFn }: SpawnOptions\n): Promise<{ spawnPromise: SpawnPromise<SpawnResult> }> {\n const iosDir = path.join(ctx.getReactNativeProjectDirectory(), 'ios');\n\n const verboseFlag = ctx.env['EAS_VERBOSE'] === '1' ? ['--verbose'] : [];\n const cocoapodsDeploymentFlag = ctx.env['POD_INSTALL_DEPLOYMENT'] === '1' ? ['--deployment'] : [];\n\n return {\n spawnPromise: spawn('pod', ['install', ...verboseFlag, ...cocoapodsDeploymentFlag], {\n cwd: iosDir,\n logger: ctx.logger,\n env: {\n ...ctx.env,\n LANG: 'en_US.UTF-8',\n },\n lineTransformer: (line?: string) => {\n if (\n !line ||\n /\\[!\\] '[\\w-]+' uses the unencrypted 'http' protocol to transfer the Pod\\./.exec(line)\n ) {\n return null;\n } else {\n return line;\n }\n },\n infoCallbackFn,\n }),\n };\n}\n"]}
1
+ {"version":3,"file":"pod.js","sourceRoot":"","sources":["../../src/ios/pod.ts"],"names":[],"mappings":";;;;;AAOA,kCA8BC;AArCD,gDAAwB;AAGxB,sEAAoF;AAI7E,KAAK,UAAU,WAAW,CAC/B,GAAuB,EACvB,EAAE,cAAc,EAAgB;IAEhC,MAAM,MAAM,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,CAAC,8BAA8B,EAAE,EAAE,KAAK,CAAC,CAAC;IAEtE,MAAM,WAAW,GAAG,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxE,MAAM,uBAAuB,GAAG,GAAG,CAAC,GAAG,CAAC,wBAAwB,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAElG,OAAO;QACL,YAAY,EAAE,IAAA,sBAAK,EAAC,KAAK,EAAE,CAAC,SAAS,EAAE,GAAG,WAAW,EAAE,GAAG,uBAAuB,CAAC,EAAE;YAClF,GAAG,EAAE,MAAM;YACX,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,GAAG,EAAE;gBACH,GAAG,GAAG,CAAC,GAAG;gBACV,IAAI,EAAE,aAAa;aACpB;YACD,eAAe,EAAE,CAAC,IAAa,EAAE,EAAE;gBACjC,IACE,CAAC,IAAI;oBACL,2EAA2E,CAAC,IAAI,CAAC,IAAI,CAAC,EACtF,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC;qBAAM,CAAC;oBACN,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YACD,cAAc;SACf,CAAC;KACH,CAAC;AACJ,CAAC","sourcesContent":["import path from 'path';\n\nimport { Ios } from '@expo/eas-build-job';\nimport spawn, { SpawnOptions, SpawnPromise, SpawnResult } from '@expo/turtle-spawn';\n\nimport { BuildContext } from '../context';\n\nexport async function installPods<TJob extends Ios.Job>(\n ctx: BuildContext<TJob>,\n { infoCallbackFn }: SpawnOptions\n): Promise<{ spawnPromise: SpawnPromise<SpawnResult> }> {\n const iosDir = path.join(ctx.getReactNativeProjectDirectory(), 'ios');\n\n const verboseFlag = ctx.env['EAS_VERBOSE'] === '1' ? ['--verbose'] : [];\n const cocoapodsDeploymentFlag = ctx.env['POD_INSTALL_DEPLOYMENT'] === '1' ? ['--deployment'] : [];\n\n return {\n spawnPromise: spawn('pod', ['install', ...verboseFlag, ...cocoapodsDeploymentFlag], {\n cwd: iosDir,\n logger: ctx.logger,\n env: {\n ...ctx.env,\n LANG: 'en_US.UTF-8',\n },\n lineTransformer: (line?: string) => {\n if (\n !line ||\n /\\[!\\] '[\\w-]+' uses the unencrypted 'http' protocol to transfer the Pod\\./.exec(line)\n ) {\n return null;\n } else {\n return line;\n }\n },\n infoCallbackFn,\n }),\n };\n}\n"]}
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.downloadApplicationArchiveAsync = void 0;
6
+ exports.downloadApplicationArchiveAsync = downloadApplicationArchiveAsync;
7
7
  const assert_1 = __importDefault(require("assert"));
8
8
  const path_1 = __importDefault(require("path"));
9
9
  const downloader_1 = __importDefault(require("@expo/downloader"));
@@ -29,5 +29,4 @@ async function downloadApplicationArchiveAsync(ctx) {
29
29
  }
30
30
  return applicationArchivePath;
31
31
  }
32
- exports.downloadApplicationArchiveAsync = downloadApplicationArchiveAsync;
33
32
  //# sourceMappingURL=resign.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resign.js","sourceRoot":"","sources":["../../src/ios/resign.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAC5B,gDAAwB;AAExB,kEAA4C;AAC5C,uDAA6D;AAItD,KAAK,UAAU,+BAA+B,CAAC,GAA0B;;IAC9E,IAAA,gBAAM,EAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEvB,MAAM,sBAAsB,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;IAE5E,MAAM,EAAE,wBAAwB,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;IACpD,IAAI,wBAAwB,CAAC,IAAI,KAAK,iCAAiB,CAAC,GAAG,EAAE,CAAC;QAC5D,IAAI,CAAC;YACH,MAAM,IAAA,oBAAY,EAAC,wBAAwB,CAAC,GAAG,EAAE,sBAAsB,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QACzF,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,MAAA,GAAG,CAAC,WAAW,oDAAG,4CAA4C,EAAE,GAAG,EAAE;gBACnE,MAAM,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE;aAC1C,CAAC,CAAC;YACH,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,sBAAsB,CAAC;AAChC,CAAC;AApBD,0EAoBC","sourcesContent":["import assert from 'assert';\nimport path from 'path';\n\nimport downloadFile from '@expo/downloader';\nimport { ArchiveSourceType, Ios } from '@expo/eas-build-job';\n\nimport { BuildContext } from '../context';\n\nexport async function downloadApplicationArchiveAsync(ctx: BuildContext<Ios.Job>): Promise<string> {\n assert(ctx.job.resign);\n\n const applicationArchivePath = path.join(ctx.workingdir, 'application.ipa');\n\n const { applicationArchiveSource } = ctx.job.resign;\n if (applicationArchiveSource.type === ArchiveSourceType.URL) {\n try {\n await downloadFile(applicationArchiveSource.url, applicationArchivePath, { retry: 3 });\n } catch (err: any) {\n ctx.reportError?.('Failed to download the application archive', err, {\n extras: { buildId: ctx.env.EAS_BUILD_ID },\n });\n throw err;\n }\n } else {\n throw new Error('Only application archive URLs are supported');\n }\n\n return applicationArchivePath;\n}\n"]}
1
+ {"version":3,"file":"resign.js","sourceRoot":"","sources":["../../src/ios/resign.ts"],"names":[],"mappings":";;;;;AAQA,0EAoBC;AA5BD,oDAA4B;AAC5B,gDAAwB;AAExB,kEAA4C;AAC5C,uDAA6D;AAItD,KAAK,UAAU,+BAA+B,CAAC,GAA0B;;IAC9E,IAAA,gBAAM,EAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEvB,MAAM,sBAAsB,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;IAE5E,MAAM,EAAE,wBAAwB,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;IACpD,IAAI,wBAAwB,CAAC,IAAI,KAAK,iCAAiB,CAAC,GAAG,EAAE,CAAC;QAC5D,IAAI,CAAC;YACH,MAAM,IAAA,oBAAY,EAAC,wBAAwB,CAAC,GAAG,EAAE,sBAAsB,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QACzF,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,MAAA,GAAG,CAAC,WAAW,oDAAG,4CAA4C,EAAE,GAAG,EAAE;gBACnE,MAAM,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE;aAC1C,CAAC,CAAC;YACH,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,sBAAsB,CAAC;AAChC,CAAC","sourcesContent":["import assert from 'assert';\nimport path from 'path';\n\nimport downloadFile from '@expo/downloader';\nimport { ArchiveSourceType, Ios } from '@expo/eas-build-job';\n\nimport { BuildContext } from '../context';\n\nexport async function downloadApplicationArchiveAsync(ctx: BuildContext<Ios.Job>): Promise<string> {\n assert(ctx.job.resign);\n\n const applicationArchivePath = path.join(ctx.workingdir, 'application.ipa');\n\n const { applicationArchiveSource } = ctx.job.resign;\n if (applicationArchiveSource.type === ArchiveSourceType.URL) {\n try {\n await downloadFile(applicationArchiveSource.url, applicationArchivePath, { retry: 3 });\n } catch (err: any) {\n ctx.reportError?.('Failed to download the application archive', err, {\n extras: { buildId: ctx.env.EAS_BUILD_ID },\n });\n throw err;\n }\n } else {\n throw new Error('Only application archive URLs are supported');\n }\n\n return applicationArchivePath;\n}\n"]}
@@ -3,7 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.resolveBuildConfiguration = exports.resolveArtifactPath = exports.resolveScheme = void 0;
6
+ exports.resolveScheme = resolveScheme;
7
+ exports.resolveArtifactPath = resolveArtifactPath;
8
+ exports.resolveBuildConfiguration = resolveBuildConfiguration;
7
9
  const assert_1 = __importDefault(require("assert"));
8
10
  const config_plugins_1 = require("@expo/config-plugins");
9
11
  function resolveScheme(ctx) {
@@ -14,7 +16,6 @@ function resolveScheme(ctx) {
14
16
  (0, assert_1.default)(schemes.length === 1, 'Ejected project should have exactly one scheme');
15
17
  return schemes[0];
16
18
  }
17
- exports.resolveScheme = resolveScheme;
18
19
  function resolveArtifactPath(ctx) {
19
20
  if (ctx.job.applicationArchivePath) {
20
21
  return ctx.job.applicationArchivePath;
@@ -26,7 +27,6 @@ function resolveArtifactPath(ctx) {
26
27
  return 'ios/build/*.ipa';
27
28
  }
28
29
  }
29
- exports.resolveArtifactPath = resolveArtifactPath;
30
30
  function resolveBuildConfiguration(ctx) {
31
31
  if (ctx.job.buildConfiguration) {
32
32
  return ctx.job.buildConfiguration;
@@ -38,5 +38,4 @@ function resolveBuildConfiguration(ctx) {
38
38
  return 'Release';
39
39
  }
40
40
  }
41
- exports.resolveBuildConfiguration = resolveBuildConfiguration;
42
41
  //# sourceMappingURL=resolve.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/ios/resolve.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAG5B,yDAAiD;AAIjD,SAAgB,aAAa,CAAC,GAA0B;IACtD,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;IACxB,CAAC;IACD,MAAM,OAAO,GAAG,0BAAS,CAAC,WAAW,CAAC,uBAAuB,CAC3D,GAAG,CAAC,8BAA8B,EAAE,CACrC,CAAC;IACF,IAAA,gBAAM,EAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,gDAAgD,CAAC,CAAC;IAC/E,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AATD,sCASC;AAED,SAAgB,mBAAmB,CAAC,GAA0B;IAC5D,IAAI,GAAG,CAAC,GAAG,CAAC,sBAAsB,EAAE,CAAC;QACnC,OAAO,GAAG,CAAC,GAAG,CAAC,sBAAsB,CAAC;IACxC,CAAC;SAAM,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QAC7B,OAAO,2CAA2C,CAAC;IACrD,CAAC;SAAM,CAAC;QACN,OAAO,iBAAiB,CAAC;IAC3B,CAAC;AACH,CAAC;AARD,kDAQC;AAED,SAAgB,yBAAyB,CAAC,GAA0B;IAClE,IAAI,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;QAC/B,OAAO,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC;IACpC,CAAC;SAAM,IAAI,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;QACrC,OAAO,OAAO,CAAC;IACjB,CAAC;SAAM,CAAC;QACN,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AARD,8DAQC","sourcesContent":["import assert from 'assert';\n\nimport { Ios } from '@expo/eas-build-job';\nimport { IOSConfig } from '@expo/config-plugins';\n\nimport { BuildContext } from '../context';\n\nexport function resolveScheme(ctx: BuildContext<Ios.Job>): string {\n if (ctx.job.scheme) {\n return ctx.job.scheme;\n }\n const schemes = IOSConfig.BuildScheme.getSchemesFromXcodeproj(\n ctx.getReactNativeProjectDirectory()\n );\n assert(schemes.length === 1, 'Ejected project should have exactly one scheme');\n return schemes[0];\n}\n\nexport function resolveArtifactPath(ctx: BuildContext<Ios.Job>): string {\n if (ctx.job.applicationArchivePath) {\n return ctx.job.applicationArchivePath;\n } else if (ctx.job.simulator) {\n return 'ios/build/Build/Products/*simulator/*.app';\n } else {\n return 'ios/build/*.ipa';\n }\n}\n\nexport function resolveBuildConfiguration(ctx: BuildContext<Ios.Job>): string {\n if (ctx.job.buildConfiguration) {\n return ctx.job.buildConfiguration;\n } else if (ctx.job.developmentClient) {\n return 'Debug';\n } else {\n return 'Release';\n }\n}\n"]}
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/ios/resolve.ts"],"names":[],"mappings":";;;;;AAOA,sCASC;AAED,kDAQC;AAED,8DAQC;AApCD,oDAA4B;AAG5B,yDAAiD;AAIjD,SAAgB,aAAa,CAAC,GAA0B;IACtD,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;IACxB,CAAC;IACD,MAAM,OAAO,GAAG,0BAAS,CAAC,WAAW,CAAC,uBAAuB,CAC3D,GAAG,CAAC,8BAA8B,EAAE,CACrC,CAAC;IACF,IAAA,gBAAM,EAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,gDAAgD,CAAC,CAAC;IAC/E,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED,SAAgB,mBAAmB,CAAC,GAA0B;IAC5D,IAAI,GAAG,CAAC,GAAG,CAAC,sBAAsB,EAAE,CAAC;QACnC,OAAO,GAAG,CAAC,GAAG,CAAC,sBAAsB,CAAC;IACxC,CAAC;SAAM,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QAC7B,OAAO,2CAA2C,CAAC;IACrD,CAAC;SAAM,CAAC;QACN,OAAO,iBAAiB,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,SAAgB,yBAAyB,CAAC,GAA0B;IAClE,IAAI,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;QAC/B,OAAO,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC;IACpC,CAAC;SAAM,IAAI,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;QACrC,OAAO,OAAO,CAAC;IACjB,CAAC;SAAM,CAAC;QACN,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC","sourcesContent":["import assert from 'assert';\n\nimport { Ios } from '@expo/eas-build-job';\nimport { IOSConfig } from '@expo/config-plugins';\n\nimport { BuildContext } from '../context';\n\nexport function resolveScheme(ctx: BuildContext<Ios.Job>): string {\n if (ctx.job.scheme) {\n return ctx.job.scheme;\n }\n const schemes = IOSConfig.BuildScheme.getSchemesFromXcodeproj(\n ctx.getReactNativeProjectDirectory()\n );\n assert(schemes.length === 1, 'Ejected project should have exactly one scheme');\n return schemes[0];\n}\n\nexport function resolveArtifactPath(ctx: BuildContext<Ios.Job>): string {\n if (ctx.job.applicationArchivePath) {\n return ctx.job.applicationArchivePath;\n } else if (ctx.job.simulator) {\n return 'ios/build/Build/Products/*simulator/*.app';\n } else {\n return 'ios/build/*.ipa';\n }\n}\n\nexport function resolveBuildConfiguration(ctx: BuildContext<Ios.Job>): string {\n if (ctx.job.buildConfiguration) {\n return ctx.job.buildConfiguration;\n } else if (ctx.job.developmentClient) {\n return 'Debug';\n } else {\n return 'Release';\n }\n}\n"]}
package/dist/ios/tvos.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isTVOS = void 0;
3
+ exports.isTVOS = isTVOS;
4
4
  const config_plugins_1 = require("@expo/config-plugins");
5
5
  const resolve_1 = require("./resolve");
6
6
  // Functions specific to Apple TV support should be added here
@@ -22,5 +22,4 @@ async function isTVOS(ctx) {
22
22
  });
23
23
  return (_b = (_a = xcBuildConfiguration === null || xcBuildConfiguration === void 0 ? void 0 : xcBuildConfiguration.buildSettings) === null || _a === void 0 ? void 0 : _a.SDKROOT) === null || _b === void 0 ? void 0 : _b.includes('appletv');
24
24
  }
25
- exports.isTVOS = isTVOS;
26
25
  //# sourceMappingURL=tvos.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tvos.js","sourceRoot":"","sources":["../../src/ios/tvos.ts"],"names":[],"mappings":";;;AACA,yDAAiD;AAIjD,uCAAqE;AAErE,8DAA8D;AAE9D;;;;;GAKG;AACI,KAAK,UAAU,MAAM,CAAC,GAA0B;;IACrD,MAAM,MAAM,GAAG,IAAA,uBAAa,EAAC,GAAG,CAAC,CAAC;IAElC,MAAM,OAAO,GAAG,0BAAS,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,8BAA8B,EAAE,CAAC,CAAC;IAEtF,MAAM,UAAU,GAAG,MAAM,0BAAS,CAAC,WAAW,CAAC,sCAAsC,CACnF,GAAG,CAAC,8BAA8B,EAAE,EACpC,MAAM,CACP,CAAC;IAEF,MAAM,kBAAkB,GAAG,IAAA,mCAAyB,EAAC,GAAG,CAAC,CAAC;IAE1D,MAAM,oBAAoB,GAAG,0BAAS,CAAC,MAAM,CAAC,kCAAkC,CAAC,OAAO,EAAE;QACxF,UAAU;QACV,kBAAkB;KACnB,CAAC,CAAC;IACH,OAAO,MAAA,MAAA,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,aAAa,0CAAE,OAAO,0CAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC3E,CAAC;AAjBD,wBAiBC","sourcesContent":["import { Ios } from '@expo/eas-build-job';\nimport { IOSConfig } from '@expo/config-plugins';\n\nimport { BuildContext } from '../context';\n\nimport { resolveBuildConfiguration, resolveScheme } from './resolve';\n\n// Functions specific to Apple TV support should be added here\n\n/**\n * Use XcodeUtils to check if a build configuration is for Apple TV and not iOS\n *\n * @param ctx The build context\n * @returns true if this is an Apple TV configuration, false otherwise\n */\nexport async function isTVOS(ctx: BuildContext<Ios.Job>): Promise<boolean> {\n const scheme = resolveScheme(ctx);\n\n const project = IOSConfig.XcodeUtils.getPbxproj(ctx.getReactNativeProjectDirectory());\n\n const targetName = await IOSConfig.BuildScheme.getApplicationTargetNameForSchemeAsync(\n ctx.getReactNativeProjectDirectory(),\n scheme\n );\n\n const buildConfiguration = resolveBuildConfiguration(ctx);\n\n const xcBuildConfiguration = IOSConfig.Target.getXCBuildConfigurationFromPbxproj(project, {\n targetName,\n buildConfiguration,\n });\n return xcBuildConfiguration?.buildSettings?.SDKROOT?.includes('appletv');\n}\n"]}
1
+ {"version":3,"file":"tvos.js","sourceRoot":"","sources":["../../src/ios/tvos.ts"],"names":[],"mappings":";;AAeA,wBAiBC;AA/BD,yDAAiD;AAIjD,uCAAqE;AAErE,8DAA8D;AAE9D;;;;;GAKG;AACI,KAAK,UAAU,MAAM,CAAC,GAA0B;;IACrD,MAAM,MAAM,GAAG,IAAA,uBAAa,EAAC,GAAG,CAAC,CAAC;IAElC,MAAM,OAAO,GAAG,0BAAS,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,8BAA8B,EAAE,CAAC,CAAC;IAEtF,MAAM,UAAU,GAAG,MAAM,0BAAS,CAAC,WAAW,CAAC,sCAAsC,CACnF,GAAG,CAAC,8BAA8B,EAAE,EACpC,MAAM,CACP,CAAC;IAEF,MAAM,kBAAkB,GAAG,IAAA,mCAAyB,EAAC,GAAG,CAAC,CAAC;IAE1D,MAAM,oBAAoB,GAAG,0BAAS,CAAC,MAAM,CAAC,kCAAkC,CAAC,OAAO,EAAE;QACxF,UAAU;QACV,kBAAkB;KACnB,CAAC,CAAC;IACH,OAAO,MAAA,MAAA,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,aAAa,0CAAE,OAAO,0CAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC3E,CAAC","sourcesContent":["import { Ios } from '@expo/eas-build-job';\nimport { IOSConfig } from '@expo/config-plugins';\n\nimport { BuildContext } from '../context';\n\nimport { resolveBuildConfiguration, resolveScheme } from './resolve';\n\n// Functions specific to Apple TV support should be added here\n\n/**\n * Use XcodeUtils to check if a build configuration is for Apple TV and not iOS\n *\n * @param ctx The build context\n * @returns true if this is an Apple TV configuration, false otherwise\n */\nexport async function isTVOS(ctx: BuildContext<Ios.Job>): Promise<boolean> {\n const scheme = resolveScheme(ctx);\n\n const project = IOSConfig.XcodeUtils.getPbxproj(ctx.getReactNativeProjectDirectory());\n\n const targetName = await IOSConfig.BuildScheme.getApplicationTargetNameForSchemeAsync(\n ctx.getReactNativeProjectDirectory(),\n scheme\n );\n\n const buildConfiguration = resolveBuildConfiguration(ctx);\n\n const xcBuildConfiguration = IOSConfig.Target.getXCBuildConfigurationFromPbxproj(project, {\n targetName,\n buildConfiguration,\n });\n return xcBuildConfiguration?.buildSettings?.SDKROOT?.includes('appletv');\n}\n"]}
@@ -1,4 +1,3 @@
1
- /// <reference types="bunyan" />
2
1
  import { Ios } from '@expo/eas-build-job';
3
2
  import { bunyan } from '@expo/logger';
4
3
  import { BuildContext } from '../context';
@@ -3,7 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.findXcodeBuildLogsPathAsync = exports.findAndUploadXcodeBuildLogsAsync = void 0;
6
+ exports.findAndUploadXcodeBuildLogsAsync = findAndUploadXcodeBuildLogsAsync;
7
+ exports.findXcodeBuildLogsPathAsync = findXcodeBuildLogsPathAsync;
7
8
  const os_1 = __importDefault(require("os"));
8
9
  const path_1 = __importDefault(require("path"));
9
10
  const eas_build_job_1 = require("@expo/eas-build-job");
@@ -25,7 +26,6 @@ async function findAndUploadXcodeBuildLogsAsync(ctx, { logger }) {
25
26
  logger.debug({ err }, 'Failed to upload Xcode build logs');
26
27
  }
27
28
  }
28
- exports.findAndUploadXcodeBuildLogsAsync = findAndUploadXcodeBuildLogsAsync;
29
29
  async function findXcodeBuildLogsPathAsync(buildLogsDirectory) {
30
30
  var _a, _b;
31
31
  const customLogPaths = (await (0, fast_glob_1.default)('*.log', { cwd: buildLogsDirectory })).map((filename) => path_1.default.join(buildLogsDirectory, filename));
@@ -35,5 +35,4 @@ async function findXcodeBuildLogsPathAsync(buildLogsDirectory) {
35
35
  const fallbackLogPaths = (await (0, fast_glob_1.default)('Library/Logs/gym/*.log', { cwd: os_1.default.homedir() })).map((relativePath) => path_1.default.join(os_1.default.homedir(), relativePath));
36
36
  return (_b = (_a = customLogPaths[0]) !== null && _a !== void 0 ? _a : fallbackLogPaths[0]) !== null && _b !== void 0 ? _b : undefined;
37
37
  }
38
- exports.findXcodeBuildLogsPathAsync = findXcodeBuildLogsPathAsync;
39
38
  //# sourceMappingURL=xcodeBuildLogs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"xcodeBuildLogs.js","sourceRoot":"","sources":["../../src/ios/xcodeBuildLogs.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AAExB,uDAA+D;AAC/D,0DAA2B;AAKpB,KAAK,UAAU,gCAAgC,CACpD,GAA0B,EAC1B,EAAE,MAAM,EAAsB;IAE9B,IAAI,CAAC;QACH,MAAM,kBAAkB,GAAG,MAAM,2BAA2B,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACrF,IAAI,kBAAkB,EAAE,CAAC;YACvB,MAAM,GAAG,CAAC,cAAc,CAAC;gBACvB,QAAQ,EAAE;oBACR,IAAI,EAAE,mCAAmB,CAAC,gBAAgB;oBAC1C,KAAK,EAAE,CAAC,kBAAkB,CAAC;iBAC5B;gBACD,MAAM;aACP,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,mCAAmC,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAlBD,4EAkBC;AAEM,KAAK,UAAU,2BAA2B,CAC/C,kBAA0B;;IAE1B,MAAM,cAAc,GAAG,CAAC,MAAM,IAAA,mBAAE,EAAC,OAAO,EAAE,EAAE,GAAG,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CACvF,cAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CACxC,CAAC;IACF,IAAI,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;QACtB,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,MAAM,gBAAgB,GAAG,CAAC,MAAM,IAAA,mBAAE,EAAC,wBAAwB,EAAE,EAAE,GAAG,EAAE,YAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CACtF,CAAC,YAAY,EAAE,EAAE,CAAC,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CACxD,CAAC;IAEF,OAAO,MAAA,MAAA,cAAc,CAAC,CAAC,CAAC,mCAAI,gBAAgB,CAAC,CAAC,CAAC,mCAAI,SAAS,CAAC;AAC/D,CAAC;AAdD,kEAcC","sourcesContent":["import os from 'os';\nimport path from 'path';\n\nimport { ManagedArtifactType, Ios } from '@expo/eas-build-job';\nimport fg from 'fast-glob';\nimport { bunyan } from '@expo/logger';\n\nimport { BuildContext } from '../context';\n\nexport async function findAndUploadXcodeBuildLogsAsync(\n ctx: BuildContext<Ios.Job>,\n { logger }: { logger: bunyan }\n): Promise<void> {\n try {\n const xcodeBuildLogsPath = await findXcodeBuildLogsPathAsync(ctx.buildLogsDirectory);\n if (xcodeBuildLogsPath) {\n await ctx.uploadArtifact({\n artifact: {\n type: ManagedArtifactType.XCODE_BUILD_LOGS,\n paths: [xcodeBuildLogsPath],\n },\n logger,\n });\n }\n } catch (err: any) {\n logger.debug({ err }, 'Failed to upload Xcode build logs');\n }\n}\n\nexport async function findXcodeBuildLogsPathAsync(\n buildLogsDirectory: string\n): Promise<string | undefined> {\n const customLogPaths = (await fg('*.log', { cwd: buildLogsDirectory })).map((filename) =>\n path.join(buildLogsDirectory, filename)\n );\n if (customLogPaths[0]) {\n return customLogPaths[0];\n }\n const fallbackLogPaths = (await fg('Library/Logs/gym/*.log', { cwd: os.homedir() })).map(\n (relativePath) => path.join(os.homedir(), relativePath)\n );\n\n return customLogPaths[0] ?? fallbackLogPaths[0] ?? undefined;\n}\n"]}
1
+ {"version":3,"file":"xcodeBuildLogs.js","sourceRoot":"","sources":["../../src/ios/xcodeBuildLogs.ts"],"names":[],"mappings":";;;;;AASA,4EAkBC;AAED,kEAcC;AA3CD,4CAAoB;AACpB,gDAAwB;AAExB,uDAA+D;AAC/D,0DAA2B;AAKpB,KAAK,UAAU,gCAAgC,CACpD,GAA0B,EAC1B,EAAE,MAAM,EAAsB;IAE9B,IAAI,CAAC;QACH,MAAM,kBAAkB,GAAG,MAAM,2BAA2B,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACrF,IAAI,kBAAkB,EAAE,CAAC;YACvB,MAAM,GAAG,CAAC,cAAc,CAAC;gBACvB,QAAQ,EAAE;oBACR,IAAI,EAAE,mCAAmB,CAAC,gBAAgB;oBAC1C,KAAK,EAAE,CAAC,kBAAkB,CAAC;iBAC5B;gBACD,MAAM;aACP,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,mCAAmC,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,2BAA2B,CAC/C,kBAA0B;;IAE1B,MAAM,cAAc,GAAG,CAAC,MAAM,IAAA,mBAAE,EAAC,OAAO,EAAE,EAAE,GAAG,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CACvF,cAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CACxC,CAAC;IACF,IAAI,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;QACtB,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,MAAM,gBAAgB,GAAG,CAAC,MAAM,IAAA,mBAAE,EAAC,wBAAwB,EAAE,EAAE,GAAG,EAAE,YAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CACtF,CAAC,YAAY,EAAE,EAAE,CAAC,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CACxD,CAAC;IAEF,OAAO,MAAA,MAAA,cAAc,CAAC,CAAC,CAAC,mCAAI,gBAAgB,CAAC,CAAC,CAAC,mCAAI,SAAS,CAAC;AAC/D,CAAC","sourcesContent":["import os from 'os';\nimport path from 'path';\n\nimport { ManagedArtifactType, Ios } from '@expo/eas-build-job';\nimport fg from 'fast-glob';\nimport { bunyan } from '@expo/logger';\n\nimport { BuildContext } from '../context';\n\nexport async function findAndUploadXcodeBuildLogsAsync(\n ctx: BuildContext<Ios.Job>,\n { logger }: { logger: bunyan }\n): Promise<void> {\n try {\n const xcodeBuildLogsPath = await findXcodeBuildLogsPathAsync(ctx.buildLogsDirectory);\n if (xcodeBuildLogsPath) {\n await ctx.uploadArtifact({\n artifact: {\n type: ManagedArtifactType.XCODE_BUILD_LOGS,\n paths: [xcodeBuildLogsPath],\n },\n logger,\n });\n }\n } catch (err: any) {\n logger.debug({ err }, 'Failed to upload Xcode build logs');\n }\n}\n\nexport async function findXcodeBuildLogsPathAsync(\n buildLogsDirectory: string\n): Promise<string | undefined> {\n const customLogPaths = (await fg('*.log', { cwd: buildLogsDirectory })).map((filename) =>\n path.join(buildLogsDirectory, filename)\n );\n if (customLogPaths[0]) {\n return customLogPaths[0];\n }\n const fallbackLogPaths = (await fg('Library/Logs/gym/*.log', { cwd: os.homedir() })).map(\n (relativePath) => path.join(os.homedir(), relativePath)\n );\n\n return customLogPaths[0] ?? fallbackLogPaths[0] ?? undefined;\n}\n"]}
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.deleteXcodeEnvLocalIfExistsAsync = void 0;
6
+ exports.deleteXcodeEnvLocalIfExistsAsync = deleteXcodeEnvLocalIfExistsAsync;
7
7
  const path_1 = __importDefault(require("path"));
8
8
  const fs_extra_1 = __importDefault(require("fs-extra"));
9
9
  async function deleteXcodeEnvLocalIfExistsAsync(ctx) {
@@ -14,5 +14,4 @@ async function deleteXcodeEnvLocalIfExistsAsync(ctx) {
14
14
  await fs_extra_1.default.remove(xcodeEnvLocalPath);
15
15
  }
16
16
  }
17
- exports.deleteXcodeEnvLocalIfExistsAsync = deleteXcodeEnvLocalIfExistsAsync;
18
17
  //# sourceMappingURL=xcodeEnv.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"xcodeEnv.js","sourceRoot":"","sources":["../../src/ios/xcodeEnv.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAGxB,wDAA0B;AAInB,KAAK,UAAU,gCAAgC,CAAC,GAA0B;IAC/E,MAAM,iBAAiB,GAAG,cAAI,CAAC,IAAI,CACjC,GAAG,CAAC,8BAA8B,EAAE,EACpC,KAAK,EACL,kBAAkB,CACnB,CAAC;IACF,IAAI,MAAM,kBAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,yBAAyB,EAAE,CAAC;QAChC,GAAG,CAAC,MAAM,CAAC,IAAI,CACb,oJAAoJ,CACrJ,CAAC;QACF,MAAM,kBAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAbD,4EAaC","sourcesContent":["import path from 'path';\n\nimport { Ios } from '@expo/eas-build-job';\nimport fs from 'fs-extra';\n\nimport { BuildContext } from '../context';\n\nexport async function deleteXcodeEnvLocalIfExistsAsync(ctx: BuildContext<Ios.Job>): Promise<void> {\n const xcodeEnvLocalPath = path.join(\n ctx.getReactNativeProjectDirectory(),\n 'ios',\n '.xcode.env.local'\n );\n if (await fs.pathExists(xcodeEnvLocalPath)) {\n ctx.markBuildPhaseHasWarnings();\n ctx.logger.warn(\n `Detected and removed file: ios/.xcode.env.local. This file should not be committed to source control. Learn more: https://expo.fyi/xcode-env-local`\n );\n await fs.remove(xcodeEnvLocalPath);\n }\n}\n"]}
1
+ {"version":3,"file":"xcodeEnv.js","sourceRoot":"","sources":["../../src/ios/xcodeEnv.ts"],"names":[],"mappings":";;;;;AAOA,4EAaC;AApBD,gDAAwB;AAGxB,wDAA0B;AAInB,KAAK,UAAU,gCAAgC,CAAC,GAA0B;IAC/E,MAAM,iBAAiB,GAAG,cAAI,CAAC,IAAI,CACjC,GAAG,CAAC,8BAA8B,EAAE,EACpC,KAAK,EACL,kBAAkB,CACnB,CAAC;IACF,IAAI,MAAM,kBAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,yBAAyB,EAAE,CAAC;QAChC,GAAG,CAAC,MAAM,CAAC,IAAI,CACb,oJAAoJ,CACrJ,CAAC;QACF,MAAM,kBAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;AACH,CAAC","sourcesContent":["import path from 'path';\n\nimport { Ios } from '@expo/eas-build-job';\nimport fs from 'fs-extra';\n\nimport { BuildContext } from '../context';\n\nexport async function deleteXcodeEnvLocalIfExistsAsync(ctx: BuildContext<Ios.Job>): Promise<void> {\n const xcodeEnvLocalPath = path.join(\n ctx.getReactNativeProjectDirectory(),\n 'ios',\n '.xcode.env.local'\n );\n if (await fs.pathExists(xcodeEnvLocalPath)) {\n ctx.markBuildPhaseHasWarnings();\n ctx.logger.warn(\n `Detected and removed file: ios/.xcode.env.local. This file should not be committed to source control. Learn more: https://expo.fyi/xcode-env-local`\n );\n await fs.remove(xcodeEnvLocalPath);\n }\n}\n"]}
@@ -1,4 +1,3 @@
1
- /// <reference types="bunyan" />
2
1
  import { bunyan } from '@expo/logger';
3
2
  export declare class XcodeBuildLogger {
4
3
  private readonly logger;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getEasFunctionGroups = void 0;
3
+ exports.getEasFunctionGroups = getEasFunctionGroups;
4
4
  const build_1 = require("./functionGroups/build");
5
5
  const maestroTest_1 = require("./functionGroups/maestroTest");
6
6
  function getEasFunctionGroups(ctx) {
@@ -10,5 +10,4 @@ function getEasFunctionGroups(ctx) {
10
10
  }
11
11
  return functionGroups;
12
12
  }
13
- exports.getEasFunctionGroups = getEasFunctionGroups;
14
13
  //# sourceMappingURL=easFunctionGroups.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"easFunctionGroups.js","sourceRoot":"","sources":["../../src/steps/easFunctionGroups.ts"],"names":[],"mappings":";;;AAIA,kDAA0E;AAC1E,8DAAiF;AAEjF,SAAgB,oBAAoB,CAAC,GAAuB;IAC1D,MAAM,cAAc,GAAG,CAAC,IAAA,+CAAiC,EAAC,GAAG,CAAC,CAAC,CAAC;IAEhE,IAAI,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;QACtB,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,IAAA,wCAAgC,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC;AARD,oDAQC","sourcesContent":["import { BuildFunctionGroup } from '@expo/steps';\n\nimport { CustomBuildContext } from '../customBuildContext';\n\nimport { createEasBuildBuildFunctionGroup } from './functionGroups/build';\nimport { createEasMaestroTestFunctionGroup } from './functionGroups/maestroTest';\n\nexport function getEasFunctionGroups(ctx: CustomBuildContext): BuildFunctionGroup[] {\n const functionGroups = [createEasMaestroTestFunctionGroup(ctx)];\n\n if (ctx.hasBuildJob()) {\n functionGroups.push(...[createEasBuildBuildFunctionGroup(ctx)]);\n }\n\n return functionGroups;\n}\n"]}
1
+ {"version":3,"file":"easFunctionGroups.js","sourceRoot":"","sources":["../../src/steps/easFunctionGroups.ts"],"names":[],"mappings":";;AAOA,oDAQC;AAXD,kDAA0E;AAC1E,8DAAiF;AAEjF,SAAgB,oBAAoB,CAAC,GAAuB;IAC1D,MAAM,cAAc,GAAG,CAAC,IAAA,+CAAiC,EAAC,GAAG,CAAC,CAAC,CAAC;IAEhE,IAAI,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;QACtB,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,IAAA,wCAAgC,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC","sourcesContent":["import { BuildFunctionGroup } from '@expo/steps';\n\nimport { CustomBuildContext } from '../customBuildContext';\n\nimport { createEasBuildBuildFunctionGroup } from './functionGroups/build';\nimport { createEasMaestroTestFunctionGroup } from './functionGroups/maestroTest';\n\nexport function getEasFunctionGroups(ctx: CustomBuildContext): BuildFunctionGroup[] {\n const functionGroups = [createEasMaestroTestFunctionGroup(ctx)];\n\n if (ctx.hasBuildJob()) {\n functionGroups.push(...[createEasBuildBuildFunctionGroup(ctx)]);\n }\n\n return functionGroups;\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getEasFunctions = void 0;
3
+ exports.getEasFunctions = getEasFunctions;
4
4
  const uploadArtifact_1 = require("./functions/uploadArtifact");
5
5
  const checkout_1 = require("./functions/checkout");
6
6
  const useNpmToken_1 = require("./functions/useNpmToken");
@@ -68,5 +68,4 @@ function getEasFunctions(ctx) {
68
68
  }
69
69
  return functions;
70
70
  }
71
- exports.getEasFunctions = getEasFunctions;
72
71
  //# sourceMappingURL=easFunctions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"easFunctions.js","sourceRoot":"","sources":["../../src/steps/easFunctions.ts"],"names":[],"mappings":";;;AAIA,+DAA+E;AAC/E,mDAAmE;AACnE,yDAAwE;AACxE,uEAAuF;AACvF,mDAAmE;AACnE,yFAAyG;AACzG,6FAAkG;AAClG,mFAAwF;AACxF,iFAAsF;AACtF,qDAA0D;AAC1D,qGAA0G;AAC1G,iFAAsF;AACtF,yEAA8E;AAC9E,yFAA8F;AAC9F,yDAA8D;AAC9D,2EAA2F;AAC3F,qEAAqF;AACrF,+DAA+E;AAC/E,uIAA0I;AAC1I,yDAAyE;AACzE,mEAA8E;AAC9E,uEAAuF;AACvF,mGAAwG;AACxG,yDAAmE;AACnE,+EAAoF;AACpF,6DAAwE;AACxE,+CAA+D;AAC/D,mEAA8E;AAC9E,yEAAuF;AAEvF,SAAgB,eAAe,CAAC,GAAuB;IACrD,MAAM,SAAS,GAAG;QAChB,IAAA,sCAA2B,GAAE;QAC7B,IAAA,iDAA8B,GAAE;QAChC,IAAA,kDAAiC,EAAC,GAAG,CAAC;QACtC,IAAA,2CAA6B,GAAE;QAC/B,IAAA,0DAAqC,GAAE;QACvC,IAAA,sCAA2B,GAAE;QAC7B,IAAA,2CAA2B,GAAE;QAC7B,IAAA,kCAAyB,GAAE;QAE3B,IAAA,qEAAqC,GAAE;QACvC,IAAA,2DAAgC,GAAE;QAClC,IAAA,yDAA+B,GAAE;QACjC,IAAA,sCAAwB,GAAE;QAC1B,IAAA,6BAAiB,GAAE;QACnB,IAAA,6EAAyC,GAAE;QAC3C,IAAA,yDAA+B,GAAE;QACjC,IAAA,iDAA2B,GAAE;QAC7B,IAAA,iEAAmC,GAAE;QACrC,IAAA,iCAAmB,GAAE;QACrB,IAAA,8DAAuC,GAAE;QACzC,IAAA,wDAAoC,GAAE;QACtC,IAAA,kDAAiC,GAAE;QAEnC,IAAA,4CAA8B,GAAE;QAChC,IAAA,iDAA8B,GAAE;QAEhC,IAAA,2EAAwC,GAAE;QAE1C,IAAA,uDAA8B,GAAE;QAEhC,IAAA,0DAAoC,EAAC,GAAG,CAAC;KAC1C,CAAC;IAEF,IAAI,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;QACtB,SAAS,CAAC,IAAI,CACZ,GAAG;YACD,IAAA,4EAA8C,EAAC,GAAG,CAAC;YACnD,IAAA,0DAAqC,EAAC,GAAG,CAAC;YAC1C,IAAA,6GAAwD,EAAC,GAAG,CAAC;SAC9D,CACF,CAAC;IACJ,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AA9CD,0CA8CC","sourcesContent":["import { BuildFunction } from '@expo/steps';\n\nimport { CustomBuildContext } from '../customBuildContext';\n\nimport { createUploadArtifactBuildFunction } from './functions/uploadArtifact';\nimport { createCheckoutBuildFunction } from './functions/checkout';\nimport { createSetUpNpmrcBuildFunction } from './functions/useNpmToken';\nimport { createInstallNodeModulesBuildFunction } from './functions/installNodeModules';\nimport { createPrebuildBuildFunction } from './functions/prebuild';\nimport { createFindAndUploadBuildArtifactsBuildFunction } from './functions/findAndUploadBuildArtifacts';\nimport { configureEASUpdateIfInstalledFunction } from './functions/configureEASUpdateIfInstalled';\nimport { injectAndroidCredentialsFunction } from './functions/injectAndroidCredentials';\nimport { configureAndroidVersionFunction } from './functions/configureAndroidVersion';\nimport { runGradleFunction } from './functions/runGradle';\nimport { resolveAppleTeamIdFromCredentialsFunction } from './functions/resolveAppleTeamIdFromCredentials';\nimport { configureIosCredentialsFunction } from './functions/configureIosCredentials';\nimport { configureIosVersionFunction } from './functions/configureIosVersion';\nimport { generateGymfileFromTemplateFunction } from './functions/generateGymfileFromTemplate';\nimport { runFastlaneFunction } from './functions/runFastlane';\nimport { createStartAndroidEmulatorBuildFunction } from './functions/startAndroidEmulator';\nimport { createStartIosSimulatorBuildFunction } from './functions/startIosSimulator';\nimport { createInstallMaestroBuildFunction } from './functions/installMaestro';\nimport { createGetCredentialsForBuildTriggeredByGithubIntegration } from './functions/getCredentialsForBuildTriggeredByGitHubIntegration';\nimport { createInstallPodsBuildFunction } from './functions/installPods';\nimport { createSendSlackMessageFunction } from './functions/sendSlackMessage';\nimport { createResolveBuildConfigBuildFunction } from './functions/resolveBuildConfig';\nimport { calculateEASUpdateRuntimeVersionFunction } from './functions/calculateEASUpdateRuntimeVersion';\nimport { eagerBundleBuildFunction } from './functions/eagerBundle';\nimport { createSubmissionEntityFunction } from './functions/createSubmissionEntity';\nimport { createDownloadBuildFunction } from './functions/downloadBuild';\nimport { createRepackBuildFunction } from './functions/repack';\nimport { createDownloadArtifactFunction } from './functions/downloadArtifact';\nimport { createInternalEasMaestroTestFunction } from './functions/internalMaestroTest';\n\nexport function getEasFunctions(ctx: CustomBuildContext): BuildFunction[] {\n const functions = [\n createCheckoutBuildFunction(),\n createDownloadArtifactFunction(),\n createUploadArtifactBuildFunction(ctx),\n createSetUpNpmrcBuildFunction(),\n createInstallNodeModulesBuildFunction(),\n createPrebuildBuildFunction(),\n createDownloadBuildFunction(),\n createRepackBuildFunction(),\n\n configureEASUpdateIfInstalledFunction(),\n injectAndroidCredentialsFunction(),\n configureAndroidVersionFunction(),\n eagerBundleBuildFunction(),\n runGradleFunction(),\n resolveAppleTeamIdFromCredentialsFunction(),\n configureIosCredentialsFunction(),\n configureIosVersionFunction(),\n generateGymfileFromTemplateFunction(),\n runFastlaneFunction(),\n createStartAndroidEmulatorBuildFunction(),\n createStartIosSimulatorBuildFunction(),\n createInstallMaestroBuildFunction(),\n\n createInstallPodsBuildFunction(),\n createSendSlackMessageFunction(),\n\n calculateEASUpdateRuntimeVersionFunction(),\n\n createSubmissionEntityFunction(),\n\n createInternalEasMaestroTestFunction(ctx),\n ];\n\n if (ctx.hasBuildJob()) {\n functions.push(\n ...[\n createFindAndUploadBuildArtifactsBuildFunction(ctx),\n createResolveBuildConfigBuildFunction(ctx),\n createGetCredentialsForBuildTriggeredByGithubIntegration(ctx),\n ]\n );\n }\n\n return functions;\n}\n"]}
1
+ {"version":3,"file":"easFunctions.js","sourceRoot":"","sources":["../../src/steps/easFunctions.ts"],"names":[],"mappings":";;AAkCA,0CA8CC;AA5ED,+DAA+E;AAC/E,mDAAmE;AACnE,yDAAwE;AACxE,uEAAuF;AACvF,mDAAmE;AACnE,yFAAyG;AACzG,6FAAkG;AAClG,mFAAwF;AACxF,iFAAsF;AACtF,qDAA0D;AAC1D,qGAA0G;AAC1G,iFAAsF;AACtF,yEAA8E;AAC9E,yFAA8F;AAC9F,yDAA8D;AAC9D,2EAA2F;AAC3F,qEAAqF;AACrF,+DAA+E;AAC/E,uIAA0I;AAC1I,yDAAyE;AACzE,mEAA8E;AAC9E,uEAAuF;AACvF,mGAAwG;AACxG,yDAAmE;AACnE,+EAAoF;AACpF,6DAAwE;AACxE,+CAA+D;AAC/D,mEAA8E;AAC9E,yEAAuF;AAEvF,SAAgB,eAAe,CAAC,GAAuB;IACrD,MAAM,SAAS,GAAG;QAChB,IAAA,sCAA2B,GAAE;QAC7B,IAAA,iDAA8B,GAAE;QAChC,IAAA,kDAAiC,EAAC,GAAG,CAAC;QACtC,IAAA,2CAA6B,GAAE;QAC/B,IAAA,0DAAqC,GAAE;QACvC,IAAA,sCAA2B,GAAE;QAC7B,IAAA,2CAA2B,GAAE;QAC7B,IAAA,kCAAyB,GAAE;QAE3B,IAAA,qEAAqC,GAAE;QACvC,IAAA,2DAAgC,GAAE;QAClC,IAAA,yDAA+B,GAAE;QACjC,IAAA,sCAAwB,GAAE;QAC1B,IAAA,6BAAiB,GAAE;QACnB,IAAA,6EAAyC,GAAE;QAC3C,IAAA,yDAA+B,GAAE;QACjC,IAAA,iDAA2B,GAAE;QAC7B,IAAA,iEAAmC,GAAE;QACrC,IAAA,iCAAmB,GAAE;QACrB,IAAA,8DAAuC,GAAE;QACzC,IAAA,wDAAoC,GAAE;QACtC,IAAA,kDAAiC,GAAE;QAEnC,IAAA,4CAA8B,GAAE;QAChC,IAAA,iDAA8B,GAAE;QAEhC,IAAA,2EAAwC,GAAE;QAE1C,IAAA,uDAA8B,GAAE;QAEhC,IAAA,0DAAoC,EAAC,GAAG,CAAC;KAC1C,CAAC;IAEF,IAAI,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;QACtB,SAAS,CAAC,IAAI,CACZ,GAAG;YACD,IAAA,4EAA8C,EAAC,GAAG,CAAC;YACnD,IAAA,0DAAqC,EAAC,GAAG,CAAC;YAC1C,IAAA,6GAAwD,EAAC,GAAG,CAAC;SAC9D,CACF,CAAC;IACJ,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC","sourcesContent":["import { BuildFunction } from '@expo/steps';\n\nimport { CustomBuildContext } from '../customBuildContext';\n\nimport { createUploadArtifactBuildFunction } from './functions/uploadArtifact';\nimport { createCheckoutBuildFunction } from './functions/checkout';\nimport { createSetUpNpmrcBuildFunction } from './functions/useNpmToken';\nimport { createInstallNodeModulesBuildFunction } from './functions/installNodeModules';\nimport { createPrebuildBuildFunction } from './functions/prebuild';\nimport { createFindAndUploadBuildArtifactsBuildFunction } from './functions/findAndUploadBuildArtifacts';\nimport { configureEASUpdateIfInstalledFunction } from './functions/configureEASUpdateIfInstalled';\nimport { injectAndroidCredentialsFunction } from './functions/injectAndroidCredentials';\nimport { configureAndroidVersionFunction } from './functions/configureAndroidVersion';\nimport { runGradleFunction } from './functions/runGradle';\nimport { resolveAppleTeamIdFromCredentialsFunction } from './functions/resolveAppleTeamIdFromCredentials';\nimport { configureIosCredentialsFunction } from './functions/configureIosCredentials';\nimport { configureIosVersionFunction } from './functions/configureIosVersion';\nimport { generateGymfileFromTemplateFunction } from './functions/generateGymfileFromTemplate';\nimport { runFastlaneFunction } from './functions/runFastlane';\nimport { createStartAndroidEmulatorBuildFunction } from './functions/startAndroidEmulator';\nimport { createStartIosSimulatorBuildFunction } from './functions/startIosSimulator';\nimport { createInstallMaestroBuildFunction } from './functions/installMaestro';\nimport { createGetCredentialsForBuildTriggeredByGithubIntegration } from './functions/getCredentialsForBuildTriggeredByGitHubIntegration';\nimport { createInstallPodsBuildFunction } from './functions/installPods';\nimport { createSendSlackMessageFunction } from './functions/sendSlackMessage';\nimport { createResolveBuildConfigBuildFunction } from './functions/resolveBuildConfig';\nimport { calculateEASUpdateRuntimeVersionFunction } from './functions/calculateEASUpdateRuntimeVersion';\nimport { eagerBundleBuildFunction } from './functions/eagerBundle';\nimport { createSubmissionEntityFunction } from './functions/createSubmissionEntity';\nimport { createDownloadBuildFunction } from './functions/downloadBuild';\nimport { createRepackBuildFunction } from './functions/repack';\nimport { createDownloadArtifactFunction } from './functions/downloadArtifact';\nimport { createInternalEasMaestroTestFunction } from './functions/internalMaestroTest';\n\nexport function getEasFunctions(ctx: CustomBuildContext): BuildFunction[] {\n const functions = [\n createCheckoutBuildFunction(),\n createDownloadArtifactFunction(),\n createUploadArtifactBuildFunction(ctx),\n createSetUpNpmrcBuildFunction(),\n createInstallNodeModulesBuildFunction(),\n createPrebuildBuildFunction(),\n createDownloadBuildFunction(),\n createRepackBuildFunction(),\n\n configureEASUpdateIfInstalledFunction(),\n injectAndroidCredentialsFunction(),\n configureAndroidVersionFunction(),\n eagerBundleBuildFunction(),\n runGradleFunction(),\n resolveAppleTeamIdFromCredentialsFunction(),\n configureIosCredentialsFunction(),\n configureIosVersionFunction(),\n generateGymfileFromTemplateFunction(),\n runFastlaneFunction(),\n createStartAndroidEmulatorBuildFunction(),\n createStartIosSimulatorBuildFunction(),\n createInstallMaestroBuildFunction(),\n\n createInstallPodsBuildFunction(),\n createSendSlackMessageFunction(),\n\n calculateEASUpdateRuntimeVersionFunction(),\n\n createSubmissionEntityFunction(),\n\n createInternalEasMaestroTestFunction(ctx),\n ];\n\n if (ctx.hasBuildJob()) {\n functions.push(\n ...[\n createFindAndUploadBuildArtifactsBuildFunction(ctx),\n createResolveBuildConfigBuildFunction(ctx),\n createGetCredentialsForBuildTriggeredByGithubIntegration(ctx),\n ]\n );\n }\n\n return functions;\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createEasBuildBuildFunctionGroup = void 0;
3
+ exports.createEasBuildBuildFunctionGroup = createEasBuildBuildFunctionGroup;
4
4
  const steps_1 = require("@expo/steps");
5
5
  const eas_build_job_1 = require("@expo/eas-build-job");
6
6
  const checkout_1 = require("../functions/checkout");
@@ -60,7 +60,6 @@ function createEasBuildBuildFunctionGroup(buildToolsContext) {
60
60
  },
61
61
  });
62
62
  }
63
- exports.createEasBuildBuildFunctionGroup = createEasBuildBuildFunctionGroup;
64
63
  function createStepsForIosSimulatorBuild({ globalCtx, buildToolsContext, }) {
65
64
  const calculateEASUpdateRuntimeVersion = (0, calculateEASUpdateRuntimeVersion_1.calculateEASUpdateRuntimeVersionFunction)().createBuildStepFromFunctionCall(globalCtx, {
66
65
  id: 'calculate_eas_update_runtime_version',