如何在codemagic中创建podfile?

Posted

技术标签:

【中文标题】如何在codemagic中创建podfile?【英文标题】:How to create podfile in codemagic? 【发布时间】:2021-02-19 14:50:10 【问题描述】:

我正在尝试使用 Codemagic 在 Windows 中构建 ios Flutter 应用程序。我在android studio中创建了flutter项目并将其上传到github以便在Codemagic中使用它......但是当我尝试构建iOS应用程序时,Codemagic向我抛出了这个错误:

Warning: Building for device with codesigning disabled. You will have to manually codesign before deploying to device.
Building com.jmmago.saltApp for device (ios-release)...
Running pod install...                                             16.0s
Running Xcode build...                                          
Xcode build done.                                           124.3s
Failed to build iOS app
Error output from Xcode build:
↳
    ** BUILD FAILED **


Xcode's output:
↳
    /Users/builder/programs/flutter/.pub-cache/hosted/pub.dartlang.org/barcode_scan-3.0.1/ios/Classes/protos/protos.pb.swift:14:8: error: compiling for iOS 8.0, but module 'SwiftProtobuf' has a minimum deployment target of iOS 9.0: /Users/builder/clone/build/ios/Release-iphoneos/SwiftProtobuf/SwiftProtobuf.framework/Modules/SwiftProtobuf.swiftmodule/armv7-apple-ios.swiftmodule
    import SwiftProtobuf
           ^
    Command CompileSwift failed with a nonzero exit code
    note: Using new build system
    note: Building targets in parallel
    note: Planning build
    note: Constructing build description
    warning: The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.1.99. (in target 'barcode_scan' from project 'Pods')
    warning: The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.1.99. (in target 'sqflite' from project 'Pods')
    warning: The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.1.99. (in target 'shared_preferences' from project 'Pods')
    warning: The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.1.99. (in target 'path_provider' from project 'Pods')
    warning: The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.1.99. (in target 'image_picker' from project 'Pods')
    warning: The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.1.99. (in target 'MTBBarcodeScanner' from project 'Pods')
    warning: The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.1.99. (in target 'FMDB' from project 'Pods')
    warning: The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.1.99. (in target 'Flutter' from project 'Pods')

════════════════════════════════════════════════════════════════════════════════
Building a deployable iOS app requires a selected Development Team with a 
Provisioning Profile. Please ensure that a Development Team is selected by:
  1- Open the Flutter project's Xcode target with
       open ios/Runner.xcworkspace
  2- Select the 'Runner' project in the navigator then the 'Runner' target
     in the project settings
  3- Make sure a 'Development Team' is selected. 
     - For Xcode 10, look under General > Signing > Team.
     - For Xcode 11 and newer, look under Signing & Capabilities > Team.
     You may need to:
         - Log in with your Apple ID in Xcode first
         - Ensure you have a valid unique Bundle ID
         - Register your device with your Apple Developer Account
         - Let Xcode automatically provision a profile for your app
  4- Build or run your project again

For more information, please visit:
  https://flutter.dev/setup/#deploy-to-ios-devices

Or run on an iOS simulator without code signing
════════════════════════════════════════════════════════════════════════════════
Encountered error while building for device.


Build failed :|
Failed to build for iOS

在question 中,他们解决了创建 podfile 的相同问题。但是我如何创建一个 Podfile? 我必须在我的项目中创建它,然后将它推送到 github?或者有办法在 Codemagic 中创建它?

【问题讨论】:

【参考方案1】:

我特别选择了 beta 作为 Flutter 通道并且运行良好,但还没有在真机上尝试过该应用。

【讨论】:

【参考方案2】:

我认为在 VSCODE 中打开您的项目并在所有 3 个位置将“IPHONEOS_DEPLOYMENT_TARGET”更改为 9.0 可能就足够了。此外检查您的 AppFrameworkInfo.plist 文件并将 MinimumiOSVersion 设置为 9.0。

但是,如果您希望通过 Codemagic 创建一个 podfile,那么您可以尝试将其放入您的预构建脚本中以供首次运行(稍后将其删除):

cd ios && pod init && git add . && git commit -m "添加 Podfile 到项目" && git push

【讨论】:

“IPHONEOS_DEPLOYMENT_TARGET”和“MinimumiOSVersion”默认设置为9.0,这不是问题。试了这条线,得到了这个error。然后,当我添加git config --global user.name "My Name" git config --global user.email my@email.com 时,出现此错误:remote: Permission to obedi123/salt-app.git denied to greenhouseci-team. fatal: unable to access 'https://github.com/myuser/myproject.git/': The requested URL returned error: 403 有什么建议吗? 当然,似乎确实存在一些访问问题,我认为最好的解决方案是使用“推送访问”将 Codemagic 部署密钥添加到您的存储库。将公钥添加到您的存储库“部署密钥”中,并将加密的密钥添加到 UI 或 .yaml 中的环境变量中。例如,将名称设置为 ACCESS_SSH_KEY - 确保它以 _SSH_KEY 结尾,这样 Codemagic 会自动将其添加到您的密钥中。然后使用以下命令更改远程: git remote set-url origin 在脚本之前。快速演示:youtube.com/watch?v=zDpLqDh1ETs 虽然可能更简单的方法是在 Github 上设置访问令牌:docs.github.com/en/free-pro-team@latest/github/… 并将其添加到您的 ENV 变量中,然后您应该可以使用: git push "your-username:$APP_PASSWORD_ENV_VARIABLE@your-git-service.com/… " 在 GitLab 上:docs.gitlab.com/ee/user/profile/personal_access_tokens.html 在 BitBucket 上:support.atlassian.com/bitbucket-cloud/docs/app-passwords 抱歉这三个地方是什么?

以上是关于如何在codemagic中创建podfile?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Codemagic 编译 IOS 失败

如何避免在codemagic中从git触发构建

如何在 Codemagic 中指定目标平台 ios 版本号

在 Xcode 7.3 中使用 Cocoapods

如何解决codemagic中的“致命错误:找不到模块'barcode_scan'”?

如何使用 Codemagic CI 构建和发布 Flutter Web 项目?