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)
- Fastlane is not reading macros from Package.Swift (SPM)
- fastlane sigh download_all and "Error parsing provisioning profile at path..."
- fastlane match HOT 4
- bundler: command not found: fastlane
- Individual API Key not supported HOT 3
- fastlane deliver init is not working in CLI
- JEG2/highline should be updated to avoid warning of abbrev missing in standard lib for ruby 3.3.0
- How to get raw exit code from Fastlane HOT 1
- Match import to s3 Crash on encrypting. HOT 2
- Provisioning profile expiration comparison compares Time and DateTime
- AvailableTerritories is deprecated and fastlane is not upgraded to new api endpoints HOT 5
- Match managing provisioning profiles for DriverKit
- curb-1.0.0/lib/curl/easy.rb - Failed to read/open file
- `match` behaves differently in v2.220.0: `wrong final block length` HOT 12
- Can't upload build to Test Flight; [!] undefined method `refresh!' HOT 2
- A parameter has an invalid value - 'prices' is not a valid relationship name HOT 8
- I run the command 'fastlane match development'. and i got the following error: Looking for related GitHub issues on fastlane/fastlane... Found no similar issues. To create a new issue, please visit: https://github.com/fastlane/fastlane/issues/new Run fastlane env to append the fastlane environment to your issue [!] The request could not be completed because: This request is forbidden for security reasons - You currently don't have access to this membership resource. Contact your team's Account Holder, or an Admin.
- Build_for_testing fails sporadically with error 'Could not find or use auto-linked framework' HOT 2
- Can fastlane support filling in Chinaβs ICP registration number?
- [match] provisioning profile generated via match blocks release installation on TestFlight (or on device) HOT 1
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.