Другой результат при установке CocoaPod с идентичными Podspecs для приложения EarlGrey 2.0 - PullRequest
0 голосов
/ 17 октября 2019

Я пытаюсь выяснить, почему я получаю два разных результата после запуска pod install для идентичных файлов podspec. Компонент называется EarlGreyApp, выпуск которого 2.0.0 в этом году. Подспек для релиза 2.0.0 находится здесь в ветви earlgrey2 репо EarlGrey: https://github.com/google/EarlGrey/blob/earlgrey2/EarlGreyApp.podspec

Когда я определил это в подфайле (я использую Demo / EarlGreyExample для воспроизведения):

 target 'EarlGreyExampleSwift' do
  pod 'EarlGreyApp', '2.0.0'
 end

Он корректно изменяет этот раздел файла EarlGreyExample.xcodeproj / project.pbxproj для ссылки на компонент AppFramework.framework EarlGrepApp:

/* Begin PBXShellScriptBuildPhase section */
                4D216774E658C2E4470F936E /* [CP] Embed Pods Frameworks */ = {
                        isa = PBXShellScriptBuildPhase;
                        buildActionMask = 2147483647;
                        files = (
                        );
                        inputPaths = (
                                "${PODS_ROOT}/Target Support Files/Pods-EarlGreyExampleSwift/Pods-EarlGreyExampleSwift-frameworks.sh",
                                "${PODS_ROOT}/EarlGreyApp/AppFramework.framework",
                        );
                        name = "[CP] Embed Pods Frameworks";
                        outputPaths = (
                                "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AppFramework.framework",
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                        shellPath = /bin/sh;
                        shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-EarlGreyExampleSwift/Pods-EarlGreyExampleSwift-frameworks.sh\"\n";
                        showEnvVarsInLog = 0;
                };

Однако, когда я изменяю подфайл, чтобы указать на ветвь:

target 'EarlGreyExampleSwift' do
  pod 'EarlGreyApp', :git => 'https://github.com/google/EarlGrey.git', :branch => 'earlgrey2'
end

Приведенный выше раздел не создается в файле project.pbxproj.

Я затрудняюсь объяснить, почему, поскольку podspec, зарегистрированный для EarlGreyApp, должен быть таким же. Когда я делаю pod spec cat EarlGreyApp , я вижу то же содержимое, что и в ветви earlgrey2.

pod spec cat EarlGreyApp --show-all Показывает, чтодоступно только два Podspecs, 2.0.0 и 2.0.0-rc

Есть идеи, в чем может быть разница?

1 Ответ

2 голосов
/ 19 октября 2019

Причина этого в том, что Podspec не публикуется через ветку earlgrey2, а публикуется через ветку earlgrey2pod.

Причиной этого является то, что некоторые пользователи хотят использовать EarlGrey без CocoaPods инекоторые хотят использовать это с. Эти две ветви имеют тонкие различия, чтобы учесть оба варианта использования (проблемы компиляции).

Кроме того, есть дополнительные сложности с CocoaPods при ручной установке pod, как и при прямой ссылке на github. Я бы порекомендовал не пытаться этого. Поскольку EarlGreyApp скомпилирован как Framework, вы не можете просто сделать это, к сожалению (вы можете с помощью EarlGreyTest, который скомпилирован из исходного кода). CocoaPods имеет плохое неопределенное поведение в этом отношении.

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