Использование Google Sign In Framework в подспецификации Cocoapod - PullRequest
0 голосов
/ 08 июня 2018

У меня есть Cocoapod, который я создаю, который позволяет пользователям Pod по желанию использовать Google Sign In - я пытаюсь включить Google Sign In как Subspec в подспецификации Cococapod.Непосредственное использование этого, например, в подспецификации, что-то вроде:

  s.subspec 'Google' do |google|
    google.dependency 'GoogleSignIn'
  end

, похоже, не работает, потому что вызывает транзитивные ошибки включения статической структуры.

Мне повезло больше, если я включил соответствующие фреймворки Google.То есть, загрузив здесь фреймворки: https://developers.google.com/identity/sign-in/ios/sdk/,, поместив их в мой проект Cocoapod, а затем используя:

  s.subspec 'Google' do |google|
    google.xcconfig = { 
        'OTHER_SWIFT_FLAGS' => '$(inherited) -DSYNCSERVER_GOOGLE_SIGNIN',
        'OTHER_LDFLAGS' => '$(inherited) -ObjC'
    }

    google.pod_target_xcconfig = {
        'FRAMEWORK_SEARCH_PATHS' => '$(inherited) $(PODS_TARGET_SRCROOT)/SDKs/google_signin_sdk_4_1_2'
    }

    google.frameworks = ['GoogleSignIn', 'GoogleSignInDependencies']

    google.resource_bundles = {
      'GoogleSignIn' => ['$(PODS_TARGET_SRCROOT)/SDKs/google_signin_sdk_4_1_2/*.bundle']
    }
  end

Вышеуказанное будет встроено в мой проект, когда я использую его локально.То есть, когда я делаю следующее в моем Podfile:

pod 'SyncServer/Google', :path => '..'

Однако, если я пытаюсь проверить podspec при подготовке к передаче его в мой репозиторий Git:

pod lib lint

Iполучить следующую ошибку:

- ERROR | [iOS] [SyncServer/Google] file patterns: The `resource_bundles` pattern for `GoogleSignIn` did not match any file.
- ERROR | [iOS] [SyncServer/Google] xcodebuild: Returned an unsuccessful exit code. You can use `--verbose` for more information.

Есть мысли?Спасибо.


Дополнительный комментарий 1) Я подозреваю, что моя проблема связана с моим использованием $ (PODS_TARGET_SRCROOT).каталог "SDKs" находится в корне моего проекта.Кажется, что $(PODS_TARGET_SRCROOT) разрешается в корне при использовании модуля с локальной ссылкой на путь, но не при попытке линтинга проекта.

1 Ответ

0 голосов
/ 08 июня 2018

Чтобы напрямую зависеть от статической vendored_framework, такой как GoogleSignIn, используйте атрибут static_framework podspec .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...