From a29797c5321cd69476959c597867dd9109a4bbab Mon Sep 17 00:00:00 2001 From: Nikolai R Kristiansen Date: Sun, 7 Jan 2018 23:49:21 +0100 Subject: [PATCH] Working fastlane for ios react-native-sentry needed to pin sentry-cli to old version because of this change: https://github.com/getsentry/sentry-cli/pull/200 --- .gitignore | 2 + Gemfile | 4 + Gemfile.lock | 196 ++++++++++++ README.md | 2 + env-example | 3 +- ios/Dusken.xcodeproj/project.pbxproj | 295 +----------------- .../AppIcon.appiconset/Contents.json | 3 +- .../AppIcon.appiconset/app_icon-1.jpg | Bin 0 -> 39646 bytes ios/Dusken/Info.plist | 4 +- ios/DuskenTests/Info.plist | 4 +- ios/fastlane/Fastfile | 47 +-- ios/fastlane/README.md | 38 +++ package.json | 6 +- yarn.lock | 14 +- 14 files changed, 272 insertions(+), 346 deletions(-) create mode 100644 Gemfile create mode 100644 Gemfile.lock create mode 100644 ios/Dusken/Images.xcassets/AppIcon.appiconset/app_icon-1.jpg create mode 100644 ios/fastlane/README.md diff --git a/.gitignore b/.gitignore index e086a43..46dcdd7 100644 --- a/.gitignore +++ b/.gitignore @@ -62,3 +62,5 @@ android/sentry.properties ios/sentry.properties ios/Pods sentry.properties + +ios/Dusken.app.dSYM.zip diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..82d1e30 --- /dev/null +++ b/Gemfile @@ -0,0 +1,4 @@ +source "https://rubygems.org" + +gem "fastlane" +gem "cocoapods" diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..2c53c63 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,196 @@ +GEM + remote: https://rubygems.org/ + specs: + CFPropertyList (2.3.6) + activesupport (4.2.10) + i18n (~> 0.7) + minitest (~> 5.1) + thread_safe (~> 0.3, >= 0.3.4) + tzinfo (~> 1.1) + addressable (2.5.2) + public_suffix (>= 2.0.2, < 4.0) + babosa (1.0.2) + claide (1.0.2) + cocoapods (1.3.1) + activesupport (>= 4.0.2, < 5) + claide (>= 1.0.2, < 2.0) + cocoapods-core (= 1.3.1) + cocoapods-deintegrate (>= 1.0.1, < 2.0) + cocoapods-downloader (>= 1.1.3, < 2.0) + cocoapods-plugins (>= 1.0.0, < 2.0) + cocoapods-search (>= 1.0.0, < 2.0) + cocoapods-stats (>= 1.0.0, < 2.0) + cocoapods-trunk (>= 1.2.0, < 2.0) + cocoapods-try (>= 1.1.0, < 2.0) + colored2 (~> 3.1) + escape (~> 0.0.4) + fourflusher (~> 2.0.1) + gh_inspector (~> 1.0) + molinillo (~> 0.5.7) + nap (~> 1.0) + ruby-macho (~> 1.1) + xcodeproj (>= 1.5.1, < 2.0) + cocoapods-core (1.3.1) + activesupport (>= 4.0.2, < 6) + fuzzy_match (~> 2.0.4) + nap (~> 1.0) + cocoapods-deintegrate (1.0.1) + cocoapods-downloader (1.1.3) + cocoapods-plugins (1.0.0) + nap + cocoapods-search (1.0.0) + cocoapods-stats (1.0.0) + cocoapods-trunk (1.3.0) + nap (>= 0.8, < 2.0) + netrc (~> 0.11) + cocoapods-try (1.1.0) + colored (1.2) + colored2 (3.1.2) + commander-fastlane (4.4.5) + highline (~> 1.7.2) + concurrent-ruby (1.0.5) + declarative (0.0.10) + declarative-option (0.1.0) + domain_name (0.5.20170404) + unf (>= 0.0.5, < 1.0.0) + dotenv (2.2.1) + escape (0.0.4) + excon (0.60.0) + faraday (0.13.1) + multipart-post (>= 1.2, < 3) + faraday-cookie_jar (0.0.6) + faraday (>= 0.7.4) + http-cookie (~> 1.0.0) + faraday_middleware (0.12.2) + faraday (>= 0.7.4, < 1.0) + fastimage (2.1.1) + fastlane (2.73.0) + CFPropertyList (>= 2.3, < 3.0.0) + addressable (>= 2.3, < 3.0.0) + babosa (>= 1.0.2, < 2.0.0) + bundler (>= 1.12.0, < 2.0.0) + colored + commander-fastlane (>= 4.4.5, < 5.0.0) + dotenv (>= 2.1.1, < 3.0.0) + excon (>= 0.45.0, < 1.0.0) + faraday (~> 0.9) + faraday-cookie_jar (~> 0.0.6) + faraday_middleware (~> 0.9) + fastimage (>= 2.1.0, < 3.0.0) + gh_inspector (>= 1.0.1, < 2.0.0) + google-api-client (>= 0.13.1, < 0.14.0) + highline (>= 1.7.2, < 2.0.0) + json (< 3.0.0) + mini_magick (~> 4.5.1) + multi_json + multi_xml (~> 0.5) + multipart-post (~> 2.0.0) + plist (>= 3.1.0, < 4.0.0) + public_suffix (~> 2.0.0) + rubyzip (>= 1.1.0, < 2.0.0) + security (= 0.1.3) + slack-notifier (>= 1.3, < 2.0.0) + terminal-notifier (>= 1.6.2, < 2.0.0) + terminal-table (>= 1.4.5, < 2.0.0) + tty-screen (>= 0.6.3, < 1.0.0) + tty-spinner (>= 0.7.0, < 1.0.0) + word_wrap (~> 1.0.0) + xcodeproj (>= 1.5.2, < 2.0.0) + xcpretty (>= 0.2.4, < 1.0.0) + xcpretty-travis-formatter (>= 0.0.3) + fourflusher (2.0.1) + fuzzy_match (2.0.4) + gh_inspector (1.0.3) + google-api-client (0.13.6) + addressable (~> 2.5, >= 2.5.1) + googleauth (~> 0.5) + httpclient (>= 2.8.1, < 3.0) + mime-types (~> 3.0) + representable (~> 3.0) + retriable (>= 2.0, < 4.0) + googleauth (0.6.2) + faraday (~> 0.12) + jwt (>= 1.4, < 3.0) + logging (~> 2.0) + memoist (~> 0.12) + multi_json (~> 1.11) + os (~> 0.9) + signet (~> 0.7) + highline (1.7.10) + http-cookie (1.0.3) + domain_name (~> 0.5) + httpclient (2.8.3) + i18n (0.9.1) + concurrent-ruby (~> 1.0) + json (2.1.0) + jwt (2.1.0) + little-plugger (1.1.4) + logging (2.2.2) + little-plugger (~> 1.1) + multi_json (~> 1.10) + memoist (0.16.0) + mime-types (3.1) + mime-types-data (~> 3.2015) + mime-types-data (3.2016.0521) + mini_magick (4.5.1) + minitest (5.11.1) + molinillo (0.5.7) + multi_json (1.12.2) + multi_xml (0.6.0) + multipart-post (2.0.0) + nanaimo (0.2.3) + nap (1.1.0) + netrc (0.11.0) + os (0.9.6) + plist (3.4.0) + public_suffix (2.0.5) + representable (3.0.4) + declarative (< 0.1.0) + declarative-option (< 0.2.0) + uber (< 0.2.0) + retriable (3.1.1) + rouge (2.0.7) + ruby-macho (1.1.0) + rubyzip (1.2.1) + security (0.1.3) + signet (0.8.1) + addressable (~> 2.3) + faraday (~> 0.9) + jwt (>= 1.5, < 3.0) + multi_json (~> 1.10) + slack-notifier (1.5.1) + terminal-notifier (1.8.0) + terminal-table (1.8.0) + unicode-display_width (~> 1.1, >= 1.1.1) + thread_safe (0.3.6) + tty-cursor (0.5.0) + tty-screen (0.6.4) + tty-spinner (0.7.0) + tty-cursor (>= 0.5.0) + tzinfo (1.2.4) + thread_safe (~> 0.1) + uber (0.1.0) + unf (0.1.4) + unf_ext + unf_ext (0.0.7.4) + unicode-display_width (1.3.0) + word_wrap (1.0.0) + xcodeproj (1.5.4) + CFPropertyList (~> 2.3.3) + claide (>= 1.0.2, < 2.0) + colored2 (~> 3.1) + nanaimo (~> 0.2.3) + xcpretty (0.2.8) + rouge (~> 2.0.7) + xcpretty-travis-formatter (1.0.0) + xcpretty (~> 0.2, >= 0.0.7) + +PLATFORMS + ruby + +DEPENDENCIES + cocoapods + fastlane + +BUNDLED WITH + 1.16.0 diff --git a/README.md b/README.md index ed4cc27..d3fde71 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,8 @@ # Make sure you have hw.keyboard=yes in your avd config.ini (in $HOME/.android/avd/.../) for reloading when pressing R twice to work. ## Prepare release build + # Fastlane + bundle update # Sentry # Get auth token from https://sentry.neuf.no/api/ with project:write scope diff --git a/env-example b/env-example index f0cd498..92b5f27 100644 --- a/env-example +++ b/env-example @@ -2,4 +2,5 @@ EVENT_API_URL=https://studentersamfundet.no DUSKEN_API_URL=https://galtinn.neuf.no DUSKEN_FORGOT_PASSWORD_URL=https://galtinn.neuf.no/auth/password_reset/ SENTRY_DSN= -STRIPE_PUBLISHABLE_KEY= \ No newline at end of file +STRIPE_PUBLISHABLE_KEY= +SLACK_URL= diff --git a/ios/Dusken.xcodeproj/project.pbxproj b/ios/Dusken.xcodeproj/project.pbxproj index 94500d9..0c20325 100644 --- a/ios/Dusken.xcodeproj/project.pbxproj +++ b/ios/Dusken.xcodeproj/project.pbxproj @@ -23,18 +23,6 @@ 140ED2AC1D01E1AD002B40FF /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; }; 146834051AC3E58100842450 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; }; 29EC0E05561A4FB990648C33 /* Ionicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 59C3A3AC725E4DF083440735 /* Ionicons.ttf */; }; - 2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; - 2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; - 2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; - 2D02E4C21E0B4AEC006451C7 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157351DD0AC6500FF2AA8 /* libRCTAnimation.a */; }; - 2D02E4C31E0B4AEC006451C7 /* libRCTImage-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E841DF850E9000B6D8A /* libRCTImage-tvOS.a */; }; - 2D02E4C41E0B4AEC006451C7 /* libRCTLinking-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E881DF850E9000B6D8A /* libRCTLinking-tvOS.a */; }; - 2D02E4C51E0B4AEC006451C7 /* libRCTNetwork-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E8C1DF850E9000B6D8A /* libRCTNetwork-tvOS.a */; }; - 2D02E4C61E0B4AEC006451C7 /* libRCTSettings-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E901DF850E9000B6D8A /* libRCTSettings-tvOS.a */; }; - 2D02E4C71E0B4AEC006451C7 /* libRCTText-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E941DF850E9000B6D8A /* libRCTText-tvOS.a */; }; - 2D02E4C81E0B4AEC006451C7 /* libRCTWebSocket-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E991DF850E9000B6D8A /* libRCTWebSocket-tvOS.a */; }; - 2D02E4C91E0B4AEC006451C7 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3EA31DF850E9000B6D8A /* libReact.a */; }; - 2DCD954D1E0B4F2C00145EB5 /* DuskenTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* DuskenTests.m */; }; 3A4E389007344A43A8BDB119 /* Roboto.ttf in Resources */ = {isa = PBXBuildFile; fileRef = D4F0955EA08E41F69EEE0DED /* Roboto.ttf */; }; 3E46ED82B1574BB598025413 /* EvilIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 0A6DA7DAB38A43E2BF0FC37C /* EvilIcons.ttf */; }; 4306CBFD81DE4035B0AB4D30 /* SimpleLineIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = C02D46B0229941F69264474C /* SimpleLineIcons.ttf */; }; @@ -121,13 +109,6 @@ remoteGlobalIDString = 83CBBA2E1A601D0E00E9B192; remoteInfo = React; }; - 2D02E4911E0B4A5D006451C7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 2D02E47A1E0B4A5D006451C7; - remoteInfo = "Dusken-tvOS"; - }; 3DAD3E831DF850E9000B6D8A /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */; @@ -365,8 +346,6 @@ 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = Dusken/Info.plist; sourceTree = ""; }; 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = Dusken/main.m; sourceTree = ""; }; 146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "../node_modules/react-native/React/React.xcodeproj"; sourceTree = ""; }; - 2D02E47B1E0B4A5D006451C7 /* Dusken-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Dusken-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - 2D02E4901E0B4A5D006451C7 /* Dusken-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Dusken-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; 32A55FD2F8DE47F3BC5443BB /* TPSStripe.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = TPSStripe.xcodeproj; path = "../node_modules/tipsi-stripe/ios/TPSStripe.xcodeproj"; sourceTree = ""; }; 390970DBF0FD44B0B4C8E2F0 /* Foundation.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Foundation.ttf; path = "../node_modules/native-base/Fonts/Foundation.ttf"; sourceTree = ""; }; 4A651C47D6FC4ED2BAB4F197 /* Zocial.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Zocial.ttf; path = "../node_modules/native-base/Fonts/Zocial.ttf"; sourceTree = ""; }; @@ -426,28 +405,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 2D02E4781E0B4A5D006451C7 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 2D02E4C91E0B4AEC006451C7 /* libReact.a in Frameworks */, - 2D02E4C21E0B4AEC006451C7 /* libRCTAnimation.a in Frameworks */, - 2D02E4C31E0B4AEC006451C7 /* libRCTImage-tvOS.a in Frameworks */, - 2D02E4C41E0B4AEC006451C7 /* libRCTLinking-tvOS.a in Frameworks */, - 2D02E4C51E0B4AEC006451C7 /* libRCTNetwork-tvOS.a in Frameworks */, - 2D02E4C61E0B4AEC006451C7 /* libRCTSettings-tvOS.a in Frameworks */, - 2D02E4C71E0B4AEC006451C7 /* libRCTText-tvOS.a in Frameworks */, - 2D02E4C81E0B4AEC006451C7 /* libRCTWebSocket-tvOS.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2D02E48D1E0B4A5D006451C7 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ @@ -655,8 +612,6 @@ children = ( 13B07F961A680F5B00A75B9A /* Dusken.app */, 00E356EE1AD99517003FC87E /* DuskenTests.xctest */, - 2D02E47B1E0B4A5D006451C7 /* Dusken-tvOS.app */, - 2D02E4901E0B4A5D006451C7 /* Dusken-tvOSTests.xctest */, ); name = Products; sourceTree = ""; @@ -767,42 +722,6 @@ productReference = 13B07F961A680F5B00A75B9A /* Dusken.app */; productType = "com.apple.product-type.application"; }; - 2D02E47A1E0B4A5D006451C7 /* Dusken-tvOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 2D02E4BA1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "Dusken-tvOS" */; - buildPhases = ( - 2D02E4771E0B4A5D006451C7 /* Sources */, - 2D02E4781E0B4A5D006451C7 /* Frameworks */, - 2D02E4791E0B4A5D006451C7 /* Resources */, - 2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Dusken-tvOS"; - productName = "Dusken-tvOS"; - productReference = 2D02E47B1E0B4A5D006451C7 /* Dusken-tvOS.app */; - productType = "com.apple.product-type.application"; - }; - 2D02E48F1E0B4A5D006451C7 /* Dusken-tvOSTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 2D02E4BB1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "Dusken-tvOSTests" */; - buildPhases = ( - 2D02E48C1E0B4A5D006451C7 /* Sources */, - 2D02E48D1E0B4A5D006451C7 /* Frameworks */, - 2D02E48E1E0B4A5D006451C7 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 2D02E4921E0B4A5D006451C7 /* PBXTargetDependency */, - ); - name = "Dusken-tvOSTests"; - productName = "Dusken-tvOSTests"; - productReference = 2D02E4901E0B4A5D006451C7 /* Dusken-tvOSTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -819,15 +738,6 @@ 13B07F861A680F5B00A75B9A = { DevelopmentTeam = 8JB5XG2GPV; }; - 2D02E47A1E0B4A5D006451C7 = { - CreatedOnToolsVersion = 8.2.1; - ProvisioningStyle = Automatic; - }; - 2D02E48F1E0B4A5D006451C7 = { - CreatedOnToolsVersion = 8.2.1; - ProvisioningStyle = Automatic; - TestTargetID = 2D02E47A1E0B4A5D006451C7; - }; }; }; buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "Dusken" */; @@ -907,8 +817,6 @@ targets = ( 13B07F861A680F5B00A75B9A /* Dusken */, 00E356ED1AD99517003FC87E /* DuskenTests */, - 2D02E47A1E0B4A5D006451C7 /* Dusken-tvOS */, - 2D02E48F1E0B4A5D006451C7 /* Dusken-tvOSTests */, ); }; /* End PBXProject section */ @@ -1212,21 +1120,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 2D02E4791E0B4A5D006451C7 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2D02E48E1E0B4A5D006451C7 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ @@ -1244,20 +1137,6 @@ shellPath = /bin/sh; shellScript = "export SENTRY_PROPERTIES=sentry.properties\nexport NODE_BINARY=node\n../node_modules/@sentry/cli/bin/sentry-cli react-native xcode ../node_modules/react-native/scripts/react-native-xcode.sh"; }; - 2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Bundle React Native Code And Images"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "export SENTRY_PROPERTIES=sentry.properties\nexport NODE_BINARY=node\n../node_modules/@sentry/cli/bin/sentry-cli react-native xcode ../node_modules/react-native/scripts/react-native-xcode.sh"; - }; 98D2BF556B534A3FBEC71C2F /* Upload Debug Symbols to Sentry */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -1343,23 +1222,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 2D02E4771E0B4A5D006451C7 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */, - 2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2D02E48C1E0B4A5D006451C7 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 2DCD954D1E0B4F2C00145EB5 /* DuskenTests.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ @@ -1368,11 +1230,6 @@ target = 13B07F861A680F5B00A75B9A /* Dusken */; targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */; }; - 2D02E4921E0B4A5D006451C7 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 2D02E47A1E0B4A5D006451C7 /* Dusken-tvOS */; - targetProxy = 2D02E4911E0B4A5D006451C7 /* PBXContainerItemProxy */; - }; /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ @@ -1454,7 +1311,7 @@ baseConfigurationReference = 020374EEEA8B01E859226AEC /* Pods-Dusken.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; DEAD_CODE_STRIPPING = NO; DEVELOPMENT_TEAM = 8JB5XG2GPV; HEADER_SEARCH_PATHS = ( @@ -1481,7 +1338,7 @@ baseConfigurationReference = ED3E665425D2BF39C276B9FC /* Pods-Dusken.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; DEVELOPMENT_TEAM = 8JB5XG2GPV; HEADER_SEARCH_PATHS = ( "$(inherited)", @@ -1502,136 +1359,6 @@ }; name = Release; }; - 2D02E4971E0B4A5E006451C7 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; - ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; - CLANG_ANALYZER_NONNULL = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_TESTABILITY = YES; - GCC_NO_COMMON_BLOCKS = YES; - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(SRCROOT)/../node_modules/react-native-config/ios/ReactNativeConfig", - "$(SRCROOT)/../node_modules/react-native-sentry/ios/**", - "$(SRCROOT)/../node_modules/tipsi-stripe/ios/TPSStripe", - ); - INFOPLIST_FILE = "Dusken-tvOS/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - ); - OTHER_LDFLAGS = ( - "-ObjC", - "-lc++", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.Dusken-tvOS"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = appletvos; - TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 9.2; - }; - name = Debug; - }; - 2D02E4981E0B4A5E006451C7 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; - ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; - CLANG_ANALYZER_NONNULL = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_NO_COMMON_BLOCKS = YES; - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(SRCROOT)/../node_modules/react-native-config/ios/ReactNativeConfig", - "$(SRCROOT)/../node_modules/react-native-sentry/ios/**", - "$(SRCROOT)/../node_modules/tipsi-stripe/ios/TPSStripe", - ); - INFOPLIST_FILE = "Dusken-tvOS/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - ); - OTHER_LDFLAGS = ( - "-ObjC", - "-lc++", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.Dusken-tvOS"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = appletvos; - TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 9.2; - }; - name = Release; - }; - 2D02E4991E0B4A5E006451C7 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CLANG_ANALYZER_NONNULL = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_TESTABILITY = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Dusken-tvOSTests/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.Dusken-tvOSTests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = appletvos; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Dusken-tvOS.app/Dusken-tvOS"; - TVOS_DEPLOYMENT_TARGET = 10.1; - }; - name = Debug; - }; - 2D02E49A1E0B4A5E006451C7 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CLANG_ANALYZER_NONNULL = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Dusken-tvOSTests/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.Dusken-tvOSTests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = appletvos; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Dusken-tvOS.app/Dusken-tvOS"; - TVOS_DEPLOYMENT_TARGET = 10.1; - }; - name = Release; - }; 83CBBA201A601CBA00E9B192 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -1735,24 +1462,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 2D02E4BA1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "Dusken-tvOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 2D02E4971E0B4A5E006451C7 /* Debug */, - 2D02E4981E0B4A5E006451C7 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 2D02E4BB1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "Dusken-tvOSTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 2D02E4991E0B4A5E006451C7 /* Debug */, - 2D02E49A1E0B4A5E006451C7 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "Dusken" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/ios/Dusken/Images.xcassets/AppIcon.appiconset/Contents.json b/ios/Dusken/Images.xcassets/AppIcon.appiconset/Contents.json index 02c6432..33a813e 100755 --- a/ios/Dusken/Images.xcassets/AppIcon.appiconset/Contents.json +++ b/ios/Dusken/Images.xcassets/AppIcon.appiconset/Contents.json @@ -145,8 +145,9 @@ "scale" : "2x" }, { - "idiom" : "ios-marketing", "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "app_icon-1.jpg", "scale" : "1x" }, { diff --git a/ios/Dusken/Images.xcassets/AppIcon.appiconset/app_icon-1.jpg b/ios/Dusken/Images.xcassets/AppIcon.appiconset/app_icon-1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9c8d30e2d18f92c03bdd6d633f543b3ace2ce0d6 GIT binary patch literal 39646 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 ILth8}KbS42R{#J2 literal 0 HcmV?d00001 diff --git a/ios/Dusken/Info.plist b/ios/Dusken/Info.plist index e71d734..47f1f5c 100644 --- a/ios/Dusken/Info.plist +++ b/ios/Dusken/Info.plist @@ -17,11 +17,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - 1.2.0 + 1.2.2 CFBundleSignature ???? CFBundleVersion - 8 + 2 LSApplicationQueriesSchemes comgooglemaps diff --git a/ios/DuskenTests/Info.plist b/ios/DuskenTests/Info.plist index 886825c..6da344e 100644 --- a/ios/DuskenTests/Info.plist +++ b/ios/DuskenTests/Info.plist @@ -15,10 +15,10 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 1.0 + 1.2.2 CFBundleSignature ???? CFBundleVersion - 1 + 2 diff --git a/ios/fastlane/Fastfile b/ios/fastlane/Fastfile index 113b6a5..e408f7e 100644 --- a/ios/fastlane/Fastfile +++ b/ios/fastlane/Fastfile @@ -1,60 +1,36 @@ -# Customize this file, documentation can be found here: # https://docs.fastlane.tools/actions/ -# All available actions: https://docs.fastlane.tools/actions -# can also be listed using the `fastlane actions` command - # Change the syntax highlighting to Ruby -# All lines starting with a # are ignored when running `fastlane` -# If you want to automatically update fastlane if a new version is available: # update_fastlane -# This is the minimum version number required. -# Update this, if you use features of a newer version min_fastlane_version("2.73.0") default_platform(:ios) platform :ios do before_all do - # ENV["SLACK_URL"] = "https://hooks.slack.com/services/..." cocoapods - # cocoapods - end - - desc "Runs all the tests" - lane :test do - run_tests end desc "Submit a new Beta Build to Apple TestFlight" desc "This will also make sure the profile is up to date" lane :beta do - # sync_code_signing(type: "appstore") # more information: https://codesigning.guide + increment_build_number + increment_version_number build_app(scheme: "Dusken") # more options available - upload_to_testflight - - # sh "your_script.sh" - # You can also use other beta testing services here (run `fastlane actions`) + upload_to_testflight(skip_waiting_for_build_processing: true) + slack(message: "Chateau Neuf app build uploaded to TestFlight") end desc "Deploy a new version to the App Store" lane :release do - # sync_code_signing(type: "appstore") - capture_screenshots + increment_build_number + increment_version_number + # capture_screenshots build_app(scheme: "Dusken") # more options available upload_to_app_store(force: true) # frame_screenshots - end - - # You can define as many lanes as you want - - after_all do |lane| - # This block is called, only if the executed lane was successful - - # slack( - # message: "Successfully deployed new App Update." - # ) + slack(message: "Chateau Neuf app build uploaded to App Store") end error do |lane, exception| @@ -64,10 +40,3 @@ platform :ios do # ) end end - - -# More information about multiple platforms in fastlane: https://docs.fastlane.tools/advanced/#control-configuration-by-lane-and-by-platform -# All available actions: https://docs.fastlane.tools/actions - -# fastlane reports which actions are used. No personal data is recorded. -# Learn more at https://docs.fastlane.tools/#metrics diff --git a/ios/fastlane/README.md b/ios/fastlane/README.md new file mode 100644 index 0000000..429acb8 --- /dev/null +++ b/ios/fastlane/README.md @@ -0,0 +1,38 @@ +fastlane documentation +================ +# Installation + +Make sure you have the latest version of the Xcode command line tools installed: + +``` +xcode-select --install +``` + +## Choose your installation method: + +| Method | OS support | Description | +|----------------------------|-----------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------| +| [Homebrew](http://brew.sh) | macOS | `brew cask install fastlane` | +| Installer Script | macOS | [Download the zip file](https://download.fastlane.tools). Then double click on the `install` script (or run it in a terminal window). | +| RubyGems | macOS or Linux with Ruby 2.0.0 or above | `sudo gem install fastlane -NV` | + +# Available Actions +## iOS +### ios beta +``` +fastlane ios beta +``` +Submit a new Beta Build to Apple TestFlight + +This will also make sure the profile is up to date +### ios release +``` +fastlane ios release +``` +Deploy a new version to the App Store + +---- + +This README.md is auto-generated and will be re-generated every time [fastlane](https://fastlane.tools) is run. +More information about fastlane can be found on [fastlane.tools](https://fastlane.tools). +The documentation of fastlane can be found on [docs.fastlane.tools](https://docs.fastlane.tools). diff --git a/package.json b/package.json index e935976..ca52bc4 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,8 @@ "test": "jest", "emulator": "emulator -avd $(emulator -list-avds | head)&", "build-android": "cd android && ./gradlew assembleRelease", - "release-android": "cd android && fastlane beta" + "release-android": "cd android && bundle exec fastlane beta", + "release-ios": "cd ios && bundle exec fastlane beta" }, "dependencies": { "apollo-cache-inmemory": "^1.1.0", @@ -49,5 +50,8 @@ "transformIgnorePatterns": [ "node_modules/(?!(jest-)?react-native|react-clone-referenced-element|react-navigation|native-base|@shoutem|tipsi-stripe)" ] + }, + "resolutions": { + "@sentry/cli": "1.27.0" } } diff --git a/yarn.lock b/yarn.lock index 79b5f55..a82c1d2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,9 +2,9 @@ # yarn lockfile v1 -"@sentry/cli@^1.27.1": - version "1.27.1" - resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-1.27.1.tgz#4b54a4f2eebe31225758c3b5bd7ee3606cc2d49f" +"@sentry/cli@1.27.0", "@sentry/cli@^1.27.1": + version "1.27.0" + resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-1.27.0.tgz#a47ddc1e67b0306f623effaf5a925777f940b896" dependencies: progress "2.0.0" @@ -3716,9 +3716,9 @@ react-native-drawer-layout@1.3.2: dependencies: react-native-dismiss-keyboard "1.0.0" -"react-native-drawer@git+https://github.com/GeekyAnts/react-native-drawer.git": +"react-native-drawer@https://github.com/GeekyAnts/react-native-drawer": version "2.3.0" - resolved "git+https://github.com/GeekyAnts/react-native-drawer.git#8d9078516d177c9cb02d2579a6860706d2370d25" + resolved "https://github.com/GeekyAnts/react-native-drawer#8d9078516d177c9cb02d2579a6860706d2370d25" dependencies: prop-types "^15.5.8" tween-functions "^1.0.1" @@ -3736,9 +3736,9 @@ react-native-htmlview@^0.12.1: entities "^1.1.1" htmlparser2-without-node-native "^3.9.2" -"react-native-keyboard-aware-scroll-view@git+https://github.com/GeekyAnts/react-native-keyboard-aware-scroll-view.git": +"react-native-keyboard-aware-scroll-view@https://github.com/GeekyAnts/react-native-keyboard-aware-scroll-view": version "0.2.9" - resolved "git+https://github.com/GeekyAnts/react-native-keyboard-aware-scroll-view.git#f4805f254d6cc8e3329f5fb224944401f66655db" + resolved "https://github.com/GeekyAnts/react-native-keyboard-aware-scroll-view#f4805f254d6cc8e3329f5fb224944401f66655db" dependencies: create-react-class "^15.6.0" prop-types "^15.5.10"