- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 azure-pipelines.yml
文件为 Flutter iOS 应用程序创建 CI/CD 管道。android studio
和 Xcode
中一切正常。但是当我尝试在 Azure DevOps 中构建 ios 应用程序时,我收到此错误:
/usr/local/lib/ruby/gems/2.7.0/bin/pod --version
1.11.3
/usr/local/lib/ruby/gems/2.7.0/bin/pod install --repo-update
[!] No `Podfile' found in the project directory.
##[error]The process '/usr/local/lib/ruby/gems/2.7.0/bin/pod' failed with exit code 1
##[error]The 'pod' command failed with error: The process '/usr/local/lib/ruby/gems/2.7.0/bin/pod' failed with exit code 1
Finishing: CocoaPods
我的azure-pipelines.yml
文件是:
- task: InstallAppleCertificate@2
inputs:
certSecureFile: '$(p12FileName)'
certPwd: '$(p12Password)'
keychain: 'temp'
deleteCert: true
- task: InstallAppleProvisioningProfile@1
displayName: "Install provisioning file"
inputs:
provisioningProfileLocation: 'secureFiles'
provProfileSecureFile: '$(provisioningProfile)'
- task: CocoaPods@0
inputs:
forceRepoUpdate: true
- task: Xcode@5
displayName: 'Xcode task'
inputs:
actions: 'build'
sdk:
configuration: 'Release'
xcWorkspacePath: '**/*.xcodeproj/project.xcworkspace'
xcodeVersion: '12'
packageApp: true
signingOption: 'manual'
signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
provisioningProfileUuid: '$(APPLE_PROV_PROFILE_UUID)'
- task: FlutterInstall@0
displayName: "Install Flutter SDK"
inputs:
mode: 'auto'
channel: 'stable'
version: 'latest'
- task: FlutterBuild@0
displayName: "Build application"
inputs:
target: ipa
projectDirectory: '$(Build.SourcesDirectory)'
exportOptionsPlist: 'ios/exportOptions.plist'
这是myPodfile
:
platform :ios, '12.0'
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
project 'Runner', {
'Debug' => :debug,
'Profile' => :release,
'Release' => :release,
}
def flutter_root
generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
unless File.exist?(generated_xcode_build_settings_path)
raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
end
File.foreach(generated_xcode_build_settings_path) do |line|
matches = line.match(/FLUTTER_ROOT\=(.*)/)
return matches[1].strip if matches
end
raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
end
require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)
flutter_ios_podfile_setup
def flutter_install_ios_plugin_pods(ios_application_path = nil)
ios_application_path ||= File.dirname(defined_in_file.realpath) if self.respond_to?(:defined_in_file)
raise 'Could not find iOS application path' unless ios_application_path
symlink_dir = File.expand_path('.symlinks', ios_application_path)
system('rm', '-rf', symlink_dir) # Avoid the complication of dependencies like FileUtils.
symlink_plugins_dir = File.expand_path('plugins', symlink_dir)
system('mkdir', '-p', symlink_plugins_dir)
plugins_file = File.join(ios_application_path, '..', '.flutter-plugins-dependencies')
plugin_pods = flutter_parse_plugins_file(plugins_file)
plugin_pods.each do |plugin_hash|
plugin_name = plugin_hash['name']
plugin_path = plugin_hash['path']
if (plugin_name && plugin_path)
symlink = File.join(symlink_plugins_dir, plugin_name)
File.symlink(plugin_path, symlink)
if plugin_name == 'flutter_ffmpeg'
pod 'flutter_ffmpeg/full-lts', :path => File.join('.symlinks', 'plugins', plugin_name, 'ios')
else
pod plugin_name, :path => File.join('.symlinks', 'plugins', plugin_name, 'ios')
end
end
end
end
target 'Runner' do
use_frameworks!
use_modular_headers!
flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
end
post_install do |installer|
installer.pods_project.build_configurations.each do |config|
config.build_settings['PROVISIONING_PROFILE_SPECIFIER'] = ''
config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO'
config.build_settings['CODE_SIGNING_REQUIRED'] = 'NO'
end
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['PROVISIONING_PROFILE_SPECIFIER'] = ''
config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO'
config.build_settings['CODE_SIGNING_REQUIRED'] = 'NO'
end
end
end
如果我添加
工作目录:'$(Build.SourcesDirectory)/ios'
我会收到此错误消息:
“无效的 Podfile 文件:/Users/runner/work/1/s/ios/Flutter/Generated.xcconfig 必须存在。如果您手动运行 pod install,请确保首先执行 flutter pub get。 “
最佳答案
最后,我找到了解决方案:
- stage: iOSStage
dependsOn: []
displayName: iOS
condition: always()
jobs:
- job: iOSJob
displayName: iOS
steps:
- task: FlutterInstall@0
displayName: "Install Flutter SDK"
inputs:
mode: 'auto'
channel: 'stable'
version: 'latest'
- task: InstallAppleCertificate@2
displayName: 'Install Apple Certificate'
inputs:
certSecureFile: '$(p12FileName)'
certPwd: '$(p12Password)'
keychain: 'temp'
deleteCert: true
- task: InstallAppleProvisioningProfile@1
displayName: "Install provisioning file"
inputs:
provisioningProfileLocation: 'secureFiles'
provProfileSecureFile: '$(provisioningProfile)'
- task: Bash@3
displayName: '[Flutter] Configure Flutter'
inputs:
targetType: 'inline'
script: |
$(FlutterToolPath)/flutter doctor -v
$(FlutterToolPath)/flutter config --no-analytics
- task: Bash@3
displayName: '[Flutter] Build project environment'
inputs:
targetType: 'inline'
script: |
$(FlutterToolPath)/flutter pub get
$(FlutterToolPath)/flutter pub global activate junitreport
- task: Bash@3
displayName: '[Flutter] Flutter coverage'
inputs:
targetType: 'inline'
script: |
pip install lcov_cobertura
$(FlutterToolPath)/flutter test --coverage
python -m lcov_cobertura coverage/lcov.info -o coverage/coverage.xml
- task: Bash@3
displayName: '[Flutter] Flutter build'
inputs:
targetType: 'inline'
script: |
$(FlutterToolPath)/flutter build ios --release --no-codesign --build-number $(Build.BuildId)
- task: CocoaPods@0
inputs:
workingDirectory: '$(Build.SourcesDirectory)/ios/Flutter'
forceRepoUpdate: true
- task: Xcode@5
displayName: 'Xcode task'
inputs:
actions: 'build'
sdk: '$(sdk)'
configuration: '$(configuration)'
scheme: '$(scheme)'
xcWorkspacePath: ios/Runner.xcworkspace
signingOption: 'manual'
signingIdentity: $(APPLE_CERTIFICATE_SIGNING_IDENTITY)
provisioningProfileUuid: $(APPLE_PROV_PROFILE_UUID)
packageApp: true
workingDirectory: 'ios'
exportOptions: 'auto'
exportMethod: 'ad-hoc'
archivePath: 'output/$(sdk)/$(configuration)/Runner.xcarchive'
exportPath: 'output/$(sdk)/$(configuration)'
useXcpretty: 'false'
args: '-verbose'
- task: CopyFiles@2
displayName: 'Copy app to staging directory'
inputs:
Contents: '**/*.ipa'
TargetFolder: '$(build.artifactStagingDirectory)'
OverWrite: true
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'drop'
publishLocation: 'Container'
关于flutter - Azure管道错误: No `Podfile' found in the project directory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72725563/
最近接手一个iOS项目,有框架,用的是CocoaPods。我正在尝试复制此设置,以便更好地理解。 它有两个框架(作为 Xcode 项目),名为 RaterCommon 和 RaterAPIKit。 这
我正在尝试确定是否需要在我的 Podfile 中指定版本。据我所知,Podfile.lock 正在为我做这件事,所以我认为没有必要用版本更新 Podfile。我错过了什么吗? 最佳答案 具体是什么版本
我正在尝试更新 podfile 中的三个 pod。我无法弄清楚为什么 Podfile.lock 版本号和 获取的版本号 pod [podfile] --version 命令给出不同的结果。我尝试清理
我正在尝试使用 npm React Native Flurry Analytics 为 React Native 安装 Flurry 这是我的 pod 文件: target 'myApp' do
我使用终端创建 podfile: $ cd /Users/user_name/Desktop/CocoaPodsTest $ touch Podfile 但我在 finder 中找不到 podfile
您好,我正在尝试添加 https://github.com/fxm90/GradientLoadingBar/tree/feature/notch-gradient-loading-bar在我的 Xc
我从 git 克隆了一个存储库。然后删除 .git 和 .gitignore。 podFile 看起来像 platform :ios, '6.1' pod 'AFNetworking', '~>1.3
在firebase nativescript中,我已经完成了给出的所有步骤,并推送了通知,该操作适用于Android。 在iOS应用中,当我尝试将应用放入itunesconnect时,它弹出错误。但是
我正在尝试 pod 更新,但收到此错误 [!] Invalid Podfile file: [!] Cannot set inheritance for abstract target definit
这是我的 podfile platform :ios, '7.0' pod 'Mantle' pod 'LBBlurredImage' pod 'TSMessages' pod 'ReactiveCo
我已经安装了 Cocoapods,运行 pod setup,创建了一个 pod 文件,然后当我尝试安装它时,出现以下错误。 fatal: Not a git repository (or an
我已将我的操作系统从 Mac Os Sierra 降级到 el Capitan,因此所有文件都已从我的系统中删除,但我已经备份了我的项目。现在,当我打开我的项目以运行 .Workspace 文件时,它
我正在使用 CocoaPods 安装特定版本的 AFNetworking。我的播客文件如下: # Uncomment this line to define a global platform for
我安装了最新的 cocoapods 并在我的项目中运行了 pod init。我用 textedit 手动打开文件,它看起来像这样: # Uncomment this line to define a
有没有什么办法可以通过podfile为单个target添加多平台支持? 例如,我的项目在 iOS 和 Mac 上都是通用的。他们使用相同的代码库。因此,我没有为同一代码创建多个目标,而是在同一目标中添
我的项目使用的是 Swift 2.0。我尝试了所有可能的方法,但没有找到任何解决方案。 我的pod文件 # Uncomment this line to define a global platfor
我正在尝试将 Google 移动广告 SKD 安装到我的 Xcode 项目中。我安装了 Cocoapods,然后将 Podfile 初始化到我的项目中: # Uncomment the next li
具有以下项目结构: 应用程序目标驻留在 Xcode 项目 (App.xcodeproj) 上,依赖于驻留在不同 Xcode 项目 (Framework.xcodeproj) 上的框架目标。 应用目标取
我正在准备一个支持 OS X 和 iOS 的 pod。我的 pod 有一些自己的依赖项,这些依赖项在 podspec 文件中定义,因此我使用 Podfile 来管理我用来开发 pod 和运行测试的项目
如何读取 podfile 中定义的变量?例如, platform :ios, '8.0' $myversion = ‘1.0’ target 'rubytest' do pod 'AFNetworki
我是一名优秀的程序员,十分优秀!