Добавить цель развертывания в виджет в XcodeGen

#swift #xcodegen

#swift #xcodegen

Вопрос:

Я новичок в XcodeGen и попытался добавить целевой виджет iOS 14 в свое приложение

 Widget:
type: app-extension
platform: iOS
settings:
  INFOPLIST_FILE: PIAWidget/Info.plist
  PROVISIONING_PROFILE_SPECIFIER_Release: Development - Widget Extension
  OTHER_LDFLAGS: $(inherited) -framework WidgetKit
configFiles:
  Debug: Configuration/AppExtension-iOS.xcconfig
  Release: Configuration/AppExtension-iOS.xcconfig
sources:
  - path: Widget
    name: "Extension: Widget"
  

В опции project.yml целью развертывания является iOS 13.0

  options:
  deploymentTarget:
    macOS: "10.14"
    iOS: "13.0"
    tvOS: "13.0"
  settingPresets: none
  createIntermediateGroups: true
  carthageExecutablePath: Vendor/carthage.command
  carthageBuildPath: ${APP_CARTHAGE_BUILD_PATH}
  usesTabs: false
  indentWidth: 3
  tabWidth: 3
  

В классе widget swift есть то, @main что меня попросили добавить: @available

 @available(iOSApplicationExtension 14.0, *)
@main 
  

Но после его добавления он все равно показывает мне эту ошибку:

 'main()' is only available in application extensions for iOS 14.0 or newer
  

Вот почему я подумал, может быть, мне нужно добавить a deploymentTarget в раздел виджетов. И, как я искал, это должно быть так:

   Widget:
    type: app-extension
    platform: iOS
    deploymentTarget:
      iOS: "14.0"
    settings:
      INFOPLIST_FILE: PIAWidget/Info.plist
      PROVISIONING_PROFILE_SPECIFIER_Release: Piavet Development - Widget Extension
      OTHER_LDFLAGS: $(inherited) -framework WidgetKit
    configFiles:
      Debug: Configuration/AppExtension-iOS.xcconfig
      Release: Configuration/AppExtension-iOS.xcconfig
    sources:
      - path: Widget
        name: "Extension: Widget" 
  

Но я все равно получил ошибку. Кто-нибудь может мне помочь в этом?

Ответ №1:

измените deploymentTarget с 14.0 на 14.1 следующим образом

     deploymentTarget:
      iOS: "14.1"