Comments (18)
For anyone looking to use fastlane with multiple apps in one xcode project:
-
make separate targets per app
-
Make separate directories for metadata & screenshots. If you already have the apps in the appstore, run these
deliver download_metadata --metadata_path fastlane/metadata-app1 --app_identifier com.yourcompany.App1
and
deliver download_screenshots --screenshots_path fastlane/screenshots-app1 --app_identifier com.yourcompany.App1
- Setup your Fastfile for multiple targets / dirs:
lane :app1_appstore do
match(type: "appstore",
app_identifier: "com.yourcompany.App1",
git_url: "https://github.com/username/repos")
gym(scheme: "App 1 Scheme")
deliver(metadata_path: "fastlane/metadata-app1",
screenshots_path: "fastlane/screenshots-app1",
app_identifier: "com.yourcompany.App1")
end
lane :app2_appstore do
match(type: "appstore",
app_identifier: "com.yourcompany.App2",
git_url: "https://github.com/username/repos")
gym(scheme: "App 2 Scheme")
deliver(metadata_path: "fastlane/metadata-app2",
screenshots_path: "fastlane/screenshots-app2",
app_identifier: "com.yourcompany.App2")
end
from fastlane.
There are many industrial&service scenarios when we have to create multiple target. I would prefer handle simple project but the reality is that we need to use this kind of solution and it si much more efficient to use target in one project and be able to run into the simulator the wanted project by switching scheme than having to close and find&open the corresponding Xcode proj. Also, imagine you have to adapte a class or a xib by target, in one Xcode project it is much more easy to navigate, update and refactor.
Anyway, I don't want to convince you, I just I think there is a need for that kind of support.
from fastlane.
Thanks to this plug you can now update the plists directly for version numbers and build: https://github.com/SiarheiFedartsou/fastlane-plugin-versioning
I'm using it like this (inside a lane):
increment_build_number_in_plist(
build_number: Time.now.strftime("%Y%m%d%H%M"),
target: 'Lite'
)
and I have one of those per lane (I'm just learning this stuff... I imagine I could DRY it out somehow?)
Big shout out to @SiarheiFedartsou for providing this necessary plug. Cool stuff, thank you!
from fastlane.
Honestly I don't think it's correct to abuse Xcode targets to be different Apps, which is why I didn't have this in mind when creating fastlane
and its tools. Why don't you use different Xcode projects with a shared code base?
Currently the only good solution is to write some Ruby code in your Deliverfile
, Fastfile
and Appfile
to work with all your apps.
from fastlane.
Hi, i'm in the same situation; 1 project with (a lot) of multiple targets. That sounds more easy to maintain to me. (?)
from fastlane.
Okay. What kind of solution would you suggest? How would your perfect 'interface' look like for fastlane
and its tools?
from fastlane.
My vision would be (user point of view):
- centralize all the configuration into one unique file "App" (so it would take care of the redondant information I mentioned before).
- keep a default usage configuration so it still work the same but allow to create some specific configuration "AppXXX" (having an extension would be even better to associate it to its favorite edition tool with associate color syntax)
- then call the action just by be providing the config to load, like heroku command line for ex:
fastline deploy --app AppXXX
from fastlane.
To your points
- If you init your project, the app_identifier should only be stored in the
Appfile
. Older versions ofdeliver
also stored it in theDeliverfile
, not any more. - Syntax highlighting can easily be enabled (at least on Sublime Text), since the file name is the extension, if there is no real extension
- I like that, looks good. This reminds me of this issue: fastlane-old/credentials_manager#2
from fastlane.
- I just did a test from scratch and confirm the issue. By doing a
fastlane init
I got theapp_identifier
&apple_id
stored inDeliverfile
andAppfile
. I also checked that I'm up to date with fastlane & deliver. If you do not reproduce maybe we can open a new thread for that or I can send you my log by mail. - Ok for one but for multiple config app it wont anymore.
- cool :)
from fastlane.
- Oh, there must have been an error when merging, it's not there at https://github.com/KrauseFx/deliver/blob/master/lib/assets/DeliverfileExample, but still is at https://github.com/KrauseFx/deliver/blob/master/lib/assets/DeliverfileDefault, I'll push a fix
- True, I just followed the convention for
Rakefile
,Gemfile
,Podfile
,Makefile
, which all don't have an extension
from fastlane.
👍
from fastlane.
Is this feature available ? Just tested with fastlane 0.7 the default ".env" file is well loaded but using a specific config file ".env.production" is not working:
fastlane inhouse --env production
/Library/Ruby/Gems/2.0.0/gems/fastlane-0.7.0/lib/fastlane/lane_manager.rb:38:in `cruise_lanes': undefined method `overload' for Dotenv:Module (NoMethodError)
from /Library/Ruby/Gems/2.0.0/gems/fastlane-0.7.0/bin/fastlane:32:in `block (2 levels) in run'
from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.0/lib/commander/command.rb:179:in `call'
The command is working well with the default config file:
fastlane inhouse
INFO [2015-04-14 17:50:39.74]: -------------------------------------------------
INFO [2015-04-14 17:50:39.74]: --- Step: Verifying required fastlane version ---
INFO [2015-04-14 17:50:39.74]: -------------------------------------------------
INFO [2015-04-14 17:50:39.74]: fastlane version valid
INFO [2015-04-14 17:50:39.74]: Driving the lane 'inhouse'
ENV=ENV DEFAULT
INFO [2015-04-14 17:50:39.74]: fastlane.tools finished successfully 🎉
Files are present:
ls -al fastlane/.env*
fastlane/.env
fastlane/.env.development
fastlane/.env.production
Did I missed something? I followed the doc available here : https://github.com/KrauseFx/fastlane/blob/master/docs/Advanced.md
from fastlane.
@joshdholtz did the .env
integration, maybe he can help? 😃
from fastlane.
@KrauseFx So is it possible to have multiple sets of metadata and screenshots? 1 for each target?
from fastlane.
Thank you for the great job. But I need this feature! I have 63 targets^_^
from fastlane.
@agassiyzh It is possible, have you tried using the env
plugin? Do you need help on this? Do you have some Ruby experience?
Maybe @joshdholtz can add a comment on this.
from fastlane.
@KrauseFx Thx, I will try this plugin.
from fastlane.
For people coming from Google, check out the Guide to use fastlane for apps with multiple targets.
from fastlane.
Related Issues (20)
- Exit status: 65 HOT 1
- Apple changed AppStatus 'Ready for Sales' to 'Ready for Distribution' HOT 2
- `match init` assumes a default branch of `master` when using git storage, which is no longer the Github default HOT 1
- upload_to_app_store does not upload release_notes.txt. No error thrown. All other metadata files are uploaded HOT 1
- Unable to upload to app store " Could not find action, lane or variable 'id'" HOT 1
- No ipa or pkg file given while uploading to app store HOT 7
- [spaceship] incomplete support for tvOS platform HOT 2
- Fastlane could not find action or lane 'get_certificates' HOT 1
- The version number has been previously used.
- `fastlane build_app` is trying to access Development provisioning profiles when run for `appstore` only with Github Actions HOT 5
- Fastlane run_tests fails when attempting to get runtimes
- Generated error ENV HOT 2
- Fastlane `2.219.0` was published without changes. HOT 2
- "ar-SA - Invalid request" when uploading metadata to Play Store with a locale it does not support HOT 1
- gym export_options : {method} resolves into empty string HOT 2
- Documentation for iOS screenshots on Xcode is outdated.
- TestFairy Action Fails with NoMethodError for key? Method on String
- Unable to ^C in response to 'Could not find fastlane ... Would you like to set fastlane up?'
- Match CLI Doc wrong? HOT 1
- [Sigh] Creating tvos provisioning profile fails when fetching devices.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fastlane.