Как создать файл приложения с помощью 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