Skip to content

Commit

Permalink
fix(cli): use helper in Podfile with correct path (#6888)
Browse files Browse the repository at this point in the history
Co-authored-by: Mike Summerfeldt <20338451+IT-MikeS@users.noreply.github.com>
  • Loading branch information
jcesarmobile and IT-MikeS authored Sep 12, 2023

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
1 parent 54a63ae commit 9048432
Showing 2 changed files with 22 additions and 21 deletions.
30 changes: 21 additions & 9 deletions cli/src/ios/update.ts
Original file line number Diff line number Diff line change
@@ -95,14 +95,18 @@ async function updatePodfile(
deployment: boolean,
): Promise<void> {
const dependenciesContent = await generatePodFile(config, plugins);
const relativeCapacitoriOSPath = await getRelativeCapacitoriOSPath(config);
const podfilePath = join(config.ios.nativeProjectDirAbs, 'Podfile');
let podfileContent = await readFile(podfilePath, { encoding: 'utf-8' });
podfileContent = podfileContent.replace(
/(def capacitor_pods)[\s\S]+?(\nend)/,
`$1${dependenciesContent}$2`,
);
podfileContent = podfileContent.replace(
`require_relative '../../node_modules/@capacitor/ios/scripts/pods_helpers'`,
/(require_relative)[\s\S]+?(@capacitor\/ios\/scripts\/pods_helpers')/,
`require_relative '${relativeCapacitoriOSPath}/scripts/pods_helpers'`,
);
podfileContent = podfileContent.replace(
`def assertDeploymentTarget(installer)
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
@@ -115,6 +119,7 @@ async function updatePodfile(
end
end
end`,
`require_relative '${relativeCapacitoriOSPath}/scripts/pods_helpers'`,
);
await writeFile(podfilePath, podfileContent, { encoding: 'utf-8' });

@@ -155,26 +160,33 @@ end`,
}
}

async function generatePodFile(
config: Config,
plugins: Plugin[],
): Promise<string> {
async function getRelativeCapacitoriOSPath(config: Config) {
const capacitoriOSPath = resolveNode(
config.app.rootDir,
'@capacitor/ios',
'package.json',
);

if (!capacitoriOSPath) {
fatal(
`Unable to find ${c.strong('node_modules/@capacitor/ios')}.\n` +
`Are you sure ${c.strong('@capacitor/ios')} is installed?`,
);
}

const podfilePath = config.ios.nativeProjectDirAbs;
const relativeCapacitoriOSPath = convertToUnixPath(
relative(podfilePath, await realpath(dirname(capacitoriOSPath))),
return convertToUnixPath(
relative(
config.ios.nativeProjectDirAbs,
await realpath(dirname(capacitoriOSPath)),
),
);
}

async function generatePodFile(
config: Config,
plugins: Plugin[],
): Promise<string> {
const relativeCapacitoriOSPath = await getRelativeCapacitoriOSPath(config);

const capacitorPlugins = plugins.filter(
p => getPluginType(p, platform) === PluginType.Core,
@@ -186,7 +198,7 @@ async function generatePodFile(
}

return ` pod '${p.ios.name}', :path => '${convertToUnixPath(
relative(podfilePath, await realpath(p.rootPath)),
relative(config.ios.nativeProjectDirAbs, await realpath(p.rootPath)),
)}'\n`;
}),
);
13 changes: 1 addition & 12 deletions ios-template/App/Podfile
Original file line number Diff line number Diff line change
@@ -1,15 +1,4 @@
def assertDeploymentTarget(installer)
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
# ensure IPHONEOS_DEPLOYMENT_TARGET is at least 13.0
deployment_target = config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'].to_f
should_upgrade = deployment_target < 13.0 && deployment_target != 0.0
if should_upgrade
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0'
end
end
end
end
require_relative '../../node_modules/@capacitor/ios/scripts/pods_helpers'

platform :ios, '13.0'
use_frameworks!

0 comments on commit 9048432

Please sign in to comment.