Working in Teams

Fabric was designed for working in teams.

At the top level, there is the organization. An organization is a group of accounts (people) that are associated with a particular set of apps.

You could think of this as a company, Awesome Apps Co.

Individual Fabric accounts are associated with organizations in two ways: by signing up and creating a new organization, or being invited by a current user to an existing organization.

The founder of Awesome Apps would create their account first, then invite the rest of the team to their organization.

Once you’ve created your account, you can onboard apps. We know that not everyone within an organization needs to work on every app, so you can also invite individual people to apps within the organization.

Awesome Apps has an iOS app and an Android app. All engineers are part of the Awesome Apps org, but everyone only has access to the apps they work on.

Invite Team Members

When you invite new team members to your organization, you can specify which apps they should have access to.

Note

Once a team member has been added to your organization, they will automatically be added to new apps belonging to that organization.

From the Fabric dashboard, click on the “Invite Team Member” next to the settings gear. This will open your current organization’s settings to invite new colleagues. Add the email addresses you want to invite and select the apps they should have access to see; then send the invitation.

../../_images/working-teams-invite-member.png

Add Organizations

If you’re developing apps for both work and side projects, or you’re building apps for multiple clients, you can create multiple organizations to keep your projects completely separate.

To add a new organization, go to the Settings dashboard, select Organizations, and click “Add”.

../../_images/working-teams-add-organization.png

We currently don’t allow apps to be transferred between organizations. If you’d like to move an app to a new organization (for example, if you are turning app development over to a new team or a different company), you will need to remove the app from your current organization and onboard it into the new organization.

Permissions

There are two permission levels in Fabric- Admins and Members.

Admins automatically see all apps for their organizations and are able to:

  • Modify team member permissions
  • Change organization settings
    • Edit organization name
    • Delete organization
    • Invite/remove team members
  • Change app settings
    • Disable or Enable app versions in Beta or Crashlytics
    • Edit app names
    • Add team members
    • Delete apps
    • Add service hooks
  • Receive notifications
  • Enable Conversion Tracking through Answers

Members see only the apps to which they are assigned, and can:

  • Change app settings
    • Add service hooks
    • Add team members
  • Receive notifications

Source Control

Xcode Projects

To avoid conflicts between Fabric framework versions, we recommend that teams commit all Fabric frameworks to source control.

Android Projects

By default, the Fabric plugin adds your organization’s API key to your project’s AndroidManifest.xml and API secret to fabric.properties. If your project is shared in a private repository, use this default configuration and commit all files to source control.

If your team works on an open source project, it is recommended to exclude your Fabric keys from your repository by following the steps below:

  • Remove the Fabric API key element from your AndroidManifest.xml:

    <meta-data android:name="io.fabric.ApiKey" android:value="<fabric_api_key>" />
    
  • Add the Fabric API key to your fabric.properties: apiKey=fabric_api_key

  • Exclude fabric.properties from your repository:

    • For SVN, add a property to ignore fabric.properties: svn propset svn:ignore fabric.properties .
    • For Git, include fabric.properties in your .gitignore file.
  • Include information in your public repository’s README that instructs developers to create a fabric.properties file and include their own Fabric apiKey and apiSecret.