Skip to content
This repository was archived by the owner on Jan 30, 2021. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions PRODUCTNAME/Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,6 @@ gem 'fastlane'
gem 'cocoapods', '>=1.7.2'
gem 'synx'
gem 'nanaimo'

plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
eval_gemfile(plugins_path) if File.exist?(plugins_path)
10 changes: 4 additions & 6 deletions PRODUCTNAME/README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,14 @@
# {{ cookiecutter.project_name }}

[![Develop](https://img.shields.io/badge/Hockey-Develop-green.svg)][develop-hockey]
[![Sprint](https://img.shields.io/badge/Hockey-Sprint-green.svg)][sprint-hockey]
[![AppCenter](https://img.shields.io/badge/AppCenter-Yes-blue)](https://appcenter.ms/orgs/APPCENTERORG/apps/APPCENTERAPP)
[![CircleCI](https://circleci.com/gh/Rightpoint/{{ cookiecutter.company_name | replace(' ', '-') | lower }}-ios/tree/develop.svg?style=shield&circle-token=ZZCIRCLE_PROJECT_STATUS_KEYZZ)][circle-ci] [![codecov](https://codecov.io/gh/Rightpoint/{{ cookiecutter.company_name | replace(' ', '-') | lower }}-ios/branch/master/graph/badge.svg)](https://codecov.io/gh/Rightpoint/{{ cookiecutter.company_name | replace(' ', '-') | lower }}-ios)

## Development Process
All stories and bugs are tracked in [JIRA][]. Development occurs on branches that are tested with the `test` fastlane task once a PR is created. The PR is reviewed and then merged into the `develop` branch. This triggers the `develop` fastlane task which distributes a build to the [develop][develop-hockey] hockey app for testing and PO approval. At the end of a sprint, a `sprint-X` tag is manually created which triggers the `sprint` fastlane task which distributes a build to the [sprint][sprint-hockey] hockey app.
All stories and bugs are tracked in [JIRA][]. Development occurs on branches that are tested with the `test` fastlane task once a PR is created. The PR is reviewed and then merged into the `develop` branch. This triggers the `develop` fastlane task which distributes a build to the [develop][develop-appcenter] Appcenter app for testing and PO approval. At the end of a sprint, a `sprint-X` tag is manually created which triggers the `sprint` fastlane task which distributes a build to the [sprint][sprint-appcenter] Appcenter app.

[circle-ci]: https://circleci.com/gh/Rightpoint/{{ cookiecutter.project_name }}-ios
[circle-ci]: https://circleci.com/gh/Rightpoint/PRODUCTNAME-ios
[JIRA]: https://raizlabs.atlassian.net/secure/RapidBoard.jspa?projectKey={{ cookiecutter.jira_key }}
[sprint-hockey]: https://rink.hockeyapp.net/apps/ZZHOCKEY_SPRINT_IDZZ
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like the structure of these links won't play well for AppCenter :(

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is there a reason this format won't work?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We'll need an account (user) in the url, which may vary per project.

[develop-hockey]: https://rink.hockeyapp.net/apps/ZZHOCKEY_DEVELOP_IDZZ
[AppCenter]: https://appcenter.ms/orgs/APPCENTERORG/apps/APPCENTERAPP

To get started, see [Contributing](#contributing)

Expand Down
72 changes: 58 additions & 14 deletions PRODUCTNAME/app/PRODUCTNAME.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
209BE2512051C768004CF0FF /* Actionable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 209BE2502051C768004CF0FF /* Actionable.swift */; };
209BE2562051C90C004CF0FF /* actionable.swifttemplate in Resources */ = {isa = PBXBuildFile; fileRef = 209BE2552051C90C004CF0FF /* actionable.swifttemplate */; };
209BE2592051CB4B004CF0FF /* Actionable+AutoConformance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 209BE2582051CB4B004CF0FF /* Actionable+AutoConformance.swift */; };
280520562371F60E003E1041 /* AppCenterConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 280520552371F60E003E1041 /* AppCenterConfiguration.swift */; };
2D4FA8F51E8574F9006C38ED /* AppCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D4FA8F41E8574F9006C38ED /* AppCoordinator.swift */; };
2D4FA8F71E85752B006C38ED /* Coordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D4FA8F61E85752B006C38ED /* Coordinator.swift */; };
2D75C6C71E8EEAE900F2EB1D /* OnboardingCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DFF1CEC1E8944B900B1AD70 /* OnboardingCoordinator.swift */; };
Expand Down Expand Up @@ -79,7 +80,7 @@
ABF84FA81DCBFF84002DB24D /* TestEndpoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABF84FA71DCBFF84002DB24D /* TestEndpoint.swift */; };
BE28092A1E802893006E50D5 /* Analytics.swift in Sources */ = {isa = PBXBuildFile; fileRef = BE2809271E802893006E50D5 /* Analytics.swift */; };
BE28092B1E802893006E50D5 /* AnalyticsPageNames.swift in Sources */ = {isa = PBXBuildFile; fileRef = BE2809281E802893006E50D5 /* AnalyticsPageNames.swift */; };
BE28092C1E802893006E50D5 /* GoogleAnalytics.swift in Sources */ = {isa = PBXBuildFile; fileRef = BE2809291E802893006E50D5 /* GoogleAnalytics.swift */; };
BE28092C1E802893006E50D5 /* FirebaseAnalytics.swift in Sources */ = {isa = PBXBuildFile; fileRef = BE2809291E802893006E50D5 /* FirebaseAnalytics.swift */; };
BE28092E1E8029D8006E50D5 /* AnalyticsConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = BE28092D1E8029D8006E50D5 /* AnalyticsConfiguration.swift */; };
BE2809301E8038BE006E50D5 /* ContentTabBarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BE28092F1E8038BE006E50D5 /* ContentTabBarViewController.swift */; };
BE4C21EB1E81970A00645143 /* DebugMenuConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = BE4C21EA1E81970A00645143 /* DebugMenuConfiguration.swift */; };
Expand Down Expand Up @@ -144,6 +145,7 @@
209BE2502051C768004CF0FF /* Actionable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Actionable.swift; sourceTree = "<group>"; };
209BE2552051C90C004CF0FF /* actionable.swifttemplate */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = actionable.swifttemplate; sourceTree = "<group>"; };
209BE2582051CB4B004CF0FF /* Actionable+AutoConformance.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Actionable+AutoConformance.swift"; sourceTree = "<group>"; };
280520552371F60E003E1041 /* AppCenterConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppCenterConfiguration.swift; sourceTree = "<group>"; };
2D4FA8F41E8574F9006C38ED /* AppCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppCoordinator.swift; sourceTree = "<group>"; };
2D4FA8F61E85752B006C38ED /* Coordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Coordinator.swift; sourceTree = "<group>"; };
2D4FA8F81E8577B5006C38ED /* AuthCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthCoordinator.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -223,10 +225,9 @@
ABF84FA31DCBCD89002DB24D /* APIClientTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = APIClientTests.swift; sourceTree = "<group>"; };
ABF84FA51DCBCEA1002DB24D /* Payloads.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Payloads.swift; sourceTree = "<group>"; };
ABF84FA71DCBFF84002DB24D /* TestEndpoint.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestEndpoint.swift; sourceTree = "<group>"; };
BE2809251E802474006E50D5 /* PRODUCTNAME-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "PRODUCTNAME-Bridging-Header.h"; sourceTree = "<group>"; };
BE2809271E802893006E50D5 /* Analytics.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Analytics.swift; sourceTree = "<group>"; };
BE2809281E802893006E50D5 /* AnalyticsPageNames.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AnalyticsPageNames.swift; sourceTree = "<group>"; };
BE2809291E802893006E50D5 /* GoogleAnalytics.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GoogleAnalytics.swift; sourceTree = "<group>"; };
BE2809291E802893006E50D5 /* FirebaseAnalytics.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FirebaseAnalytics.swift; sourceTree = "<group>"; };
BE28092D1E8029D8006E50D5 /* AnalyticsConfiguration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AnalyticsConfiguration.swift; sourceTree = "<group>"; };
BE28092F1E8038BE006E50D5 /* ContentTabBarViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContentTabBarViewController.swift; sourceTree = "<group>"; };
BE4C21EA1E81970A00645143 /* DebugMenuConfiguration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DebugMenuConfiguration.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -546,7 +547,6 @@
00551421206144E200E4CF68 /* InfoPlist.strings */,
ABC778811DC90B7A00815FB9 /* LaunchScreen.storyboard */,
ABF84F801DC97653002DB24D /* Localizable.strings */,
BE2809251E802474006E50D5 /* PRODUCTNAME-Bridging-Header.h */,
);
path = Resources;
sourceTree = "<group>";
Expand Down Expand Up @@ -576,6 +576,7 @@
children = (
BE2809261E802893006E50D5 /* Analytics */,
BE28092D1E8029D8006E50D5 /* AnalyticsConfiguration.swift */,
280520552371F60E003E1041 /* AppCenterConfiguration.swift */,
ABC778E01DC94F4400815FB9 /* AppLifecycle.swift */,
ABC778E51DC94FFC00815FB9 /* CrashlyticsConfiguration.swift */,
BE4C21EA1E81970A00645143 /* DebugMenuConfiguration.swift */,
Expand Down Expand Up @@ -632,7 +633,7 @@
children = (
BE2809271E802893006E50D5 /* Analytics.swift */,
BE2809281E802893006E50D5 /* AnalyticsPageNames.swift */,
BE2809291E802893006E50D5 /* GoogleAnalytics.swift */,
BE2809291E802893006E50D5 /* FirebaseAnalytics.swift */,
);
path = Analytics;
sourceTree = "<group>";
Expand Down Expand Up @@ -703,6 +704,7 @@
ABC778BD1DC924EF00815FB9 /* Embed Frameworks */,
4B79AD4EE86D9527DA2201EB /* [CP] Embed Pods Frameworks */,
006EFEFF1F27B3C0004A95DE /* Crashlytics */,
E1B38BEC3F6162E864695F4C /* [CP] Copy Pods Resources */,
);
buildRules = (
);
Expand All @@ -723,6 +725,7 @@
ABC778861DC90B7A00815FB9 /* Frameworks */,
ABC778871DC90B7A00815FB9 /* Resources */,
4E662DA2F7DDCC9B41361541 /* [CP] Embed Pods Frameworks */,
E61364E507C43F52B6FB7F4B /* [CP] Copy Pods Resources */,
);
buildRules = (
);
Expand Down Expand Up @@ -915,22 +918,26 @@
"${BUILT_PRODUCTS_DIR}/Alamofire/Alamofire.framework",
"${BUILT_PRODUCTS_DIR}/Anchorage/Anchorage.framework",
"${BUILT_PRODUCTS_DIR}/BonMot/BonMot.framework",
"${BUILT_PRODUCTS_DIR}/GoogleUtilities/GoogleUtilities.framework",
"${PODS_ROOT}/Instabug/Instabug.framework",
"${PODS_ROOT}/Instabug/Instabug.framework.dSYM",
"${BUILT_PRODUCTS_DIR}/KeychainAccess/KeychainAccess.framework",
"${BUILT_PRODUCTS_DIR}/Protobuf/Protobuf.framework",
"${BUILT_PRODUCTS_DIR}/SimulatorStatusMagic/SimulatorStatusMagic.framework",
"${BUILT_PRODUCTS_DIR}/Swiftilities/Swiftilities.framework",
"${BUILT_PRODUCTS_DIR}/nanopb/nanopb.framework",
);
name = "[CP] Embed Pods Frameworks";
outputPaths = (
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Alamofire.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Anchorage.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/BonMot.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GoogleUtilities.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Instabug.framework",
"${DWARF_DSYM_FOLDER_PATH}/Instabug.framework.dSYM",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/KeychainAccess.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Protobuf.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SimulatorStatusMagic.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Swiftilities.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/nanopb.framework",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
Expand All @@ -947,23 +954,27 @@
"${BUILT_PRODUCTS_DIR}/Alamofire/Alamofire.framework",
"${BUILT_PRODUCTS_DIR}/Anchorage/Anchorage.framework",
"${BUILT_PRODUCTS_DIR}/BonMot/BonMot.framework",
"${BUILT_PRODUCTS_DIR}/GoogleUtilities/GoogleUtilities.framework",
"${PODS_ROOT}/Instabug/Instabug.framework",
"${PODS_ROOT}/Instabug/Instabug.framework.dSYM",
"${BUILT_PRODUCTS_DIR}/KeychainAccess/KeychainAccess.framework",
"${BUILT_PRODUCTS_DIR}/Protobuf/Protobuf.framework",
"${BUILT_PRODUCTS_DIR}/SimulatorStatusMagic/SimulatorStatusMagic.framework",
"${BUILT_PRODUCTS_DIR}/Swiftilities/Swiftilities.framework",
"${BUILT_PRODUCTS_DIR}/nanopb/nanopb.framework",
"${BUILT_PRODUCTS_DIR}/OHHTTPStubs/OHHTTPStubs.framework",
);
name = "[CP] Embed Pods Frameworks";
outputPaths = (
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Alamofire.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Anchorage.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/BonMot.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GoogleUtilities.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Instabug.framework",
"${DWARF_DSYM_FOLDER_PATH}/Instabug.framework.dSYM",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/KeychainAccess.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Protobuf.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SimulatorStatusMagic.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Swiftilities.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/nanopb.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OHHTTPStubs.framework",
);
runOnlyForDeploymentPostprocessing = 0;
Expand Down Expand Up @@ -1039,6 +1050,42 @@
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
E1B38BEC3F6162E864695F4C /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-PRODUCTNAME/Pods-PRODUCTNAME-resources.sh",
"${PODS_CONFIGURATION_BUILD_DIR}/AppCenter/AppCenterDistributeResources.bundle",
);
name = "[CP] Copy Pods Resources";
outputPaths = (
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AppCenterDistributeResources.bundle",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-PRODUCTNAME/Pods-PRODUCTNAME-resources.sh\"\n";
showEnvVarsInLog = 0;
};
E61364E507C43F52B6FB7F4B /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-PRODUCTNAME-PRODUCTNAMETests/Pods-PRODUCTNAME-PRODUCTNAMETests-resources.sh",
"${PODS_CONFIGURATION_BUILD_DIR}/AppCenter/AppCenterDistributeResources.bundle",
);
name = "[CP] Copy Pods Resources";
outputPaths = (
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AppCenterDistributeResources.bundle",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-PRODUCTNAME-PRODUCTNAMETests/Pods-PRODUCTNAME-PRODUCTNAMETests-resources.sh\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
Expand Down Expand Up @@ -1087,7 +1134,7 @@
861732F81FA2989100C14354 /* TableViewContainerCell.swift in Sources */,
CD09C94D207428AE006D3501 /* StatusBarConfiguration.swift in Sources */,
861732F51FA2984600C14354 /* TableViewCellRepresentable.swift in Sources */,
BE28092C1E802893006E50D5 /* GoogleAnalytics.swift in Sources */,
BE28092C1E802893006E50D5 /* FirebaseAnalytics.swift in Sources */,
ABC778E11DC94F4400815FB9 /* AppLifecycle.swift in Sources */,
2DFF1D161E8BF38F00B1AD70 /* UIColor+Extensions.swift in Sources */,
ABF84F921DC99D33002DB24D /* UIImage+Asset.swift in Sources */,
Expand All @@ -1113,6 +1160,7 @@
86A65B201FA0F6DB00705C14 /* UserDefaults+Utilities.swift in Sources */,
861732FE1FA29BE600C14354 /* DebugMenuViewController.swift in Sources */,
2DFF1D181E8BF82A00B1AD70 /* Color.swift in Sources */,
280520562371F60E003E1041 /* AppCenterConfiguration.swift in Sources */,
861732D51FA28DB600C14354 /* ModalDismissBehavior.swift in Sources */,
BE28092A1E802893006E50D5 /* Analytics.swift in Sources */,
2DFF1D121E8BE27B00B1AD70 /* OnboardingPageViewController.swift in Sources */,
Expand Down Expand Up @@ -1240,7 +1288,6 @@
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_MODULE_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "${PROVISIONING_PROFILE_PRODUCTNAME}";
SWIFT_OBJC_BRIDGING_HEADER = "PRODUCTNAME/Resources/PRODUCTNAME-Bridging-Header.h";
SWIFT_VERSION = 5.0;
};
name = AppStore;
Expand Down Expand Up @@ -1608,7 +1655,6 @@
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_MODULE_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "${PROVISIONING_PROFILE_PRODUCTNAME}";
SWIFT_OBJC_BRIDGING_HEADER = "PRODUCTNAME/Resources/PRODUCTNAME-Bridging-Header.h";
SWIFT_VERSION = 5.0;
};
name = Debug;
Expand All @@ -1623,7 +1669,6 @@
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_MODULE_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "${PROVISIONING_PROFILE_PRODUCTNAME}";
SWIFT_OBJC_BRIDGING_HEADER = "PRODUCTNAME/Resources/PRODUCTNAME-Bridging-Header.h";
SWIFT_VERSION = 5.0;
};
name = Develop;
Expand Down Expand Up @@ -1722,7 +1767,6 @@
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_MODULE_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "${PROVISIONING_PROFILE_PRODUCTNAME}";
SWIFT_OBJC_BRIDGING_HEADER = "PRODUCTNAME/Resources/PRODUCTNAME-Bridging-Header.h";
SWIFT_VERSION = 5.0;
};
name = Sprint;
Expand Down
12 changes: 12 additions & 0 deletions PRODUCTNAME/app/PRODUCTNAME/Application/AppDelegate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@
//

import UIKit
#if canImport(AppCenter)
import AppCenter
import AppCenterDistribute
#endif

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
Expand All @@ -23,6 +27,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
AnalyticsConfiguration(),
DebugMenuConfiguration(),
StatusBarConfiguration(),
AppCenterConfiguration(),
]

// Anything that relies on the existence of a window and an initial viewcontroller should be in this postWindowConfigurations array
Expand Down Expand Up @@ -53,4 +58,11 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
return true
}

func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
#if canImport(AppCenter)
return MSDistribute.open(url)
#else
return false
#endif
}
}
Loading