Обновлено: решено ниже, отредактировал вопрос, чтобы помочь другим искать симптомы в Google.
ionic capacitor build ios
создает пустое рабочее пространство Xcode
Я переношу свое приложение Ionic с Кордовы на конденсатор. Следуя инструкциям Здесь и Здесь
При попытке сборки для iOS рабочая область Xcode, которую выводит конденсатор, пуста.
Изображение пустой рабочей области Xcode
Мне удалось воспроизвести это с помощью стартового шаблона, поэтому у меня сложилось впечатление, что в моей настройке чего-то не хватает.
Чего мне может не хватать при установке?
Заранее спасибо.
Репродукция:
#from fresh with angular and capacitor
ionic start
<snip>
XXXX@XXXXs-Mac-mini test % ionic cap build ios
<snip>
> capacitor sync ios
[capacitor] ✔ Copying web assets from www to ios/App/App/public in 4.81ms
[capacitor] ✔ Creating capacitor.config.json in ios/App/App in 454.83μs
[capacitor] ✔ copy ios in 26.84ms
[capacitor] ✔ Updating iOS plugins in 1.98ms
[capacitor] [warn] Skipping pod install because CocoaPods is not installed
[capacitor] ✔ Updating iOS native dependencies with pod install in 2.29s
[capacitor] [info] Found 4 Capacitor plugins for ios:
[capacitor] @capacitor/[email protected]
[capacitor] @capacitor/[email protected]
[capacitor] @capacitor/[email protected]
[capacitor] @capacitor/[email protected]
[capacitor] ✔ update ios in 2.31s
[capacitor] [info] Sync finished in 2.485s
[INFO] Ready for use in your Native IDE!
To continue, build your project using Xcode!
> capacitor open ios
[capacitor] ✔ Opening the Xcode workspace... in 3.00s
.. Откроется пустое окно кода.
ionic serve
работает нормально, и я могу создать приложение для Android на компьютере с Windows.
Если я попробую ionic cap run ios
, выдаст ошибку:
<snip>
> capacitor run ios --target XXXX-XXXX
[capacitor] ✔ Copying web assets from www to ios/App/App/public in 231.03ms
[capacitor] ✔ Creating capacitor.config.json in ios/App/App in 1.25ms
[capacitor] [info] Inlining sourcemaps
[capacitor] ✔ copy ios in 261.11ms
[capacitor] ✔ Updating iOS plugins in 2.36ms
[capacitor] [warn] Skipping pod install because CocoaPods is not installed
[capacitor] ✔ Updating iOS native dependencies with pod install in 696.90ms
[capacitor] [info] Found 4 Capacitor plugins for ios:
[capacitor] @capacitor/[email protected]
[capacitor] @capacitor/[email protected]
[capacitor] @capacitor/[email protected]
[capacitor] @capacitor/[email protected]
[capacitor] ✔ update ios in 716.42ms
[capacitor] ✖ Running xcodebuild - failed!
[capacitor] [error] Command line invocation:
[capacitor] /Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -workspace App.xcworkspace -scheme App -configuration Debug -destination id=XXXX-XXXX -derivedDataPath /Users/XXXX/Documents/git_repos/test/ios/DerivedData/XXXX-XXXX
[capacitor]
[capacitor] User defaults from command line:
[capacitor] IDEDerivedDataPathOverride = /Users/XXXX/Documents/git_repos/test/ios/DerivedData/XXXX-XXXX
[capacitor] IDEPackageSupportUseBuiltinSCM = YES
[capacitor]
[capacitor] 2024-06-06 17:23:13.823 xcodebuild[20496:197702] Writing error result bundle to /var/folders/n0/5ynq2fzj05gcqq1bgvfbp0rc0000gn/T/ResultBundle_2024-06-06_17-23-0013.xcresult
[capacitor] xcodebuild: error: The workspace named "App" does not contain a scheme named "App". The "-list" option can be used to find the names of the schemes in the workspace.
[capacitor]
[ERROR] An error occurred while running subprocess capacitor.
capacitor run ios --target XXXX-XXXX exited with exit code 1.
Дополнительная информация:
Код работает на новом Mac mini
Xcode v15.3
macOS Сонома 14.5
ionic info
[WARN] Error loading @capacitor/android package.json: Error: Cannot find module '@capacitor/android/package.json'
Require stack:
- /Users/XXXX/.nvm/versions/node/v22.2.0/lib/node_modules/@ionic/cli/lib/project/index.js
- /Users/XXXX/.nvm/versions/node/v22.2.0/lib/node_modules/@ionic/cli/lib/index.js
- /Users/XXXX/.nvm/versions/node/v22.2.0/lib/node_modules/@ionic/cli/index.js
- /Users/XXXX/.nvm/versions/node/v22.2.0/lib/node_modules/@ionic/cli/bin/ionic
Ionic:
Ionic CLI : 7.2.0 (/Users/XXXX/.nvm/versions/node/v22.2.0/lib/node_modules/@ionic/cli)
Ionic Framework : @ionic/angular 8.2.1
@angular-devkit/build-angular : 18.0.3
@angular-devkit/schematics : 18.0.3
@angular/cli : 18.0.3
@ionic/angular-toolkit : 11.0.1
Capacitor:
Capacitor CLI : 6.0.0
@capacitor/android : not installed
@capacitor/core : 6.0.0
@capacitor/ios : 6.0.0
Utility:
cordova-res : not installed globally
native-run : 2.0.1
System:
NodeJS : v22.2.0 (/Users/XXXX/.nvm/versions/node/v22.2.0/bin/node)
npm : 10.7.0
OS : macOS Unknown
Я могу открыть App.xcodeproj (вместо App.xcworkspace), и попытка собрать этот проект в xcode выдает ошибку:
Unable to open base configuration reference file '.../test/ios/App/Pods/Target Support Files/Pods-App/Pods-App.debug.xconfig'
Еще раз заранее спасибо
Отсутствующие зависимости
Следуя инструкциям, я пропустил шаг Настройка среды, на котором были установлены новые зависимости.
Подсказка была
[capacitor] [warn] Skipping pod install because CocoaPods is not installed
В другом месте упоминается, что вам не нужно устанавливать CocoaPods, если вы управляете пакетом другим методом. Поэтому я не сразу это понял, думая, что конденсатор справится сам.
Можно было бы подумать, что конденсатор выдаст ошибку, а не создаст пустой проект, но вот мы здесь.
Чтобы установить зависимости:
#install Xcode cli tools and verify
xcode-select --install
xcode-select -p
#homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
#add to path
(echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> /Users/asptech/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
#CocoaPods install and verify
brew install cocoapods
pod --version
После установки зависимостей вам может потребоваться удалить и заново добавить платформу ios.
#unlike cordova, capacitor does not have a remove command
rm -rf ./ios/
ionic cap add ios
ionic cap build ios