Как создать файл приложения с помощью Fastlane для симулятора

Мне нужно создать файл fastlane.app(или файл .ipa, если он работает), который я мог бы перетащить на симулятор на другом компьютере. Я попытался сделать это с помощью тренажерного зала или с параметрами xcodebuild, но я не знаю, как это сделать.

Теперь я делаю это следующим образом:

  • В XCode я создаю приложение для симулятора

  • Далее я ищу файл приложения в DerivedData (~/Library/Developer/XCode/DerivedData/Build/Products/Debug-iphonesimulator/)

  • Я копирую этот файл где-то еще

Но мне нужно сделать это с помощью fastlane.

Ответ 1

Как вы можете найти в проблемах в fastline repo, вы можете сделать это с помощью тренажерного зала, но, возможно, будет лучше, если вы будете использовать xcodebuild (пример):

xcodebuild -configuration Debug -target targetname -arch i386 -sdk iphonesimulator10.3

Чем поиск ~/Library/Developer/Xcode/Archives/<date> (или где вы указываете с помощью -archivePath), а внутри будет xcarchive.

  • Перейдите к файлу .xcarchive в поисковике
  • Щелкните правой кнопкой мыши файл .xcarchive и выберите "Показать пакет Содержание "во всплывающем меню
  • Поисковик переключится на отображение содержимого .xcarchive файл.
  • Перейти к продуктам/приложениям
  • ваш .app будет находиться в продуктах/приложениях

От здесь.


Вот ответ, который поможет вам.


UPDATE: Если вам нужно получить файл приложения из командной строки, вы можете сделать что-то вроде этого:

mv /YourXCArchiveLocation/archive.xcarchive/Products/Applications/AppName.app /YourDesiredLocation/AppName.app

Ответ 2

Это полоса, которую я использую:

lane :generate_test_app do
    xcbuild(
        workspace: "MyApp.xcworkspace",
        scheme: "MyApp",
        configuration: "Debug",
        xcargs: "-sdk iphonesimulator SYMROOT='/var/tmp/'"
    )
end

Приложение будет оставлено в /var/tmp/Debug-iphonesimulator/MyApp.app

Смотрите также: Как мне строить свои проекты из командной строки?

Ответ 3

Мне удалось сделать это с помощью build_app:

build_app(
        scheme: scheme,
        workspace: workspace,
        configuration: build_configuration,
        derived_data_path: output_path,
        skip_package_ipa: true,
        skip_archive: true,
        destination: "generic/platform=iOS Simulator"
    )

Я думаю, что вы могли бы основываться на этом, если бы вы хотели использовать тренажерный зал.

Ответ 4

Я использую fastlane в своей повседневной жизни.

Это действительно просто. Установите fastlane и убедитесь, что вы обновили его до последней версии, прежде чем делать что-либо еще.

Сначала вы должны запустить fastlane init в своей папке приложения.

Затем вы должны убедиться, что в настройках сборки для своей цели у вас есть права профилей и сертификатов (например, AdHoc или AppStore для выпуска).

Затем вам просто нужно запустить эту команду в папке проекта:

gym —workspace "WORKSPACE_NAME.xcworkspace" —scheme "SCHEME_NAME" -n "IPA_FILE_NAME"

Для сборки симулятора вы можете использовать export_options "./ExportOptions.plist" с выделенными опциями экспорта .plist или внутри выделенного Gymfile следующим образом:

export_options( method: "ad-hoc", manifest: { appURL: "https://example.com/My App.ipa", }, thinning: "<thin-for-all-variants>" )

Он использует те же параметры, что и xcodebuild, поэтому вы должны быть в порядке. Например, вы можете передать параметры -archivePath и -exportArchive, если вам нужен архив вместо файла .ipa.

Ответ 5

Самое сложное - найти .app dir. Вот что я использую:

Dir.mktmpdir do |dir|
  xcbuild(
    workspace: "#{project_name}.xcworkspace",
    scheme: "#{project_name}",
    configuration: "Debug",
    xcargs: "-sdk iphonesimulator SYMROOT=#{dir}"
  )
  app_path = sh("find #{dir} -name *.app -type d").strip()
  sh("mv #{app_path} #{options[:output_directory]}/#{app_identifier}.app")
end