#xcode #ionic-framework #cocoapods #capacitor #visual-studio-app-center
Вопрос:
Есть много вопросов с сообщением об ошибке, подобным моему, но я не смог найти для себя подходящего решения.
У меня есть мобильное приложение, и я использую ионный фреймворк с конденсатором в версии 2. Я решил перейти на версию 3, и все отлично работает локально на Android и ios. Единственная проблема, с которой я столкнулся, — это когда я хотел создать свое приложение с помощью app center. Версия для Android построена без каких-либо проблем, но встроенная iOS выдает мне ошибку, как показано ниже:
ld: framework not found CapacitorApp
clang: error: linker command failed with exit code 1 (use -v to see invocation)
и где-то ниже приведен код ошибки:
##[error]Error: /usr/bin/xcodebuild failed with return code: 65
Я не знаю, поможет ли это вам, но ниже вы можете найти мой подфайл
platform :ios, '12.0'
use_frameworks!
# workaround to avoid Xcode 10 caching of Pods that requires
# Product -> Clean Build Folder after new Cordova plugins installed
# Requires CocoaPods 1.6 or newer
install! 'cocoapods', :disable_input_output_paths => true
def capacitor_pods
pod 'Capacitor', :path => '../../node_modules/@capacitor/ios'
pod 'CapacitorCordova', :path => '../../node_modules/@capacitor/ios'
pod 'CapacitorApp', :path => '../../node_modules/@capacitor/app'
pod 'CapacitorAppLauncher', :path => '../../node_modules/@capacitor/app-launcher'
pod 'CapacitorBrowser', :path => '../../node_modules/@capacitor/browser'
pod 'CapacitorDevice', :path => '../../node_modules/@capacitor/device'
pod 'CapacitorHaptics', :path => '../../node_modules/@capacitor/haptics'
pod 'CapacitorKeyboard', :path => '../../node_modules/@capacitor/keyboard'
pod 'CapacitorPushNotifications', :path => '../../node_modules/@capacitor/push-notifications'
pod 'CapacitorSplashScreen', :path => '../../node_modules/@capacitor/splash-screen'
pod 'CapacitorStatusBar', :path => '../../node_modules/@capacitor/status-bar'
pod 'CapacitorStorage', :path => '../../node_modules/@capacitor/storage'
pod 'CordovaPlugins', :path => '../capacitor-cordova-ios-plugins'
pod 'CordovaPluginsResources', :path => '../capacitor-cordova-ios-plugins'
end
target 'App' do
capacitor_pods
# Add your Pods here
end
К сожалению, я не могу показать вам весь свой код, но если вам нужна какая-то его часть, просто скажите мне в комментарии.
обновление: Я смог воспроизвести его локально. Это происходит только по App staging
схеме. Другой App
выглядит хорошо.
Комментарии:
1. Позволяет ли центр приложений запускать команды перед сборкой? вы должны запустить
npm run build
иnpx cap sync ios
перед выполнением собственной сборки.2. Не уверен. Однако со вчерашнего дня я смог воспроизвести проблему локально. У меня есть 2 экземпляра моего приложения.
App
иApp Staging
и все работает нормально наApp
примере, ноApp staging
показывает мне ошибку, которую я разместил в своем вопросе. Не уверен, в чем разница между экземплярами. Конечно, я что-то упускаю, но я не могу понять, что я там упустил.3. Что вы подразумеваете под «2 экземпляром»?
4. Извините, я не был точен. У меня есть 2 конфигурации схемы (?), как здесь .
5. затем добавьте
target 'App Staging' do capacitor_pods # Add your Pods here end
в свой подфайл
Ответ №1:
Если у вас несколько схем, вам нужно добавить их в Podfile
, чтобы они могли использовать плагины конденсатора
target 'App Staging' do
capacitor_pods
# Add your Pods here
end
Комментарии:
1. К сожалению, это не сработало. Я обновил вопрос.
2. Вы запустили синхронизацию шапок npx после добавления этого? Вы не должны удалять запись приложения, иначе эта схема нарушится, у вас должна быть запись для каждой схемы.
3. Да, я это сделал. Я не уверен, что понимаю вас. У меня есть запись по каждой схеме.
4. На вашем последнем скриншоте я вижу подфайл, а в строке 26 есть синяя метка, которая означает, что вы отредактировали эту строку, вероятно, из «Приложения» в «Промежуточное приложение». И я не вижу другого блока для схемы «Приложение» на скриншоте, возможно, вы не захватили весь подфайл, но похоже, что у вас есть только запись «Промежуточное приложение».
5. Да, я отредактировал его, как вы и сказали. Когда я добавляю еще один блок(в подфайл),
App
он показывает мне ошибкуnpx cap sync ios
. Сообщение об ошибке таковоUnable to find a target named 'App Staging' in project 'App.xcodeproj', did find 'App'.
. Однако внутриApp.xcodeproj
папки у меня есть файлы под названиемApp.xcscheme
иApp Staging.xcscheme
. Разве это не должно быть правильно тогда?