From 91344300c8c475a83b55b2b6d15e2c2654890eea Mon Sep 17 00:00:00 2001 From: Lei Nelissen Date: Tue, 25 Aug 2020 10:39:02 +0200 Subject: [PATCH] Update fastlane to support signing and TestFlight --- .gitignore | 4 +- Gemfile.lock | 20 ++++---- fastlane/Appfile | 6 ++- fastlane/Fastfile | 46 ++++++++++++++----- fastlane/README.md | 5 ++ .../project.pbxproj | 31 ++++++++----- ios/JellyfinAudioPlayer/Info.plist | 4 +- ios/JellyfinAudioPlayerTests/Info.plist | 2 +- 8 files changed, 79 insertions(+), 39 deletions(-) diff --git a/.gitignore b/.gitignore index 1255c8a..2d1469a 100644 --- a/.gitignore +++ b/.gitignore @@ -63,4 +63,6 @@ buck-out/ /ios/Pods/ build/ -fastlane/report.xml \ No newline at end of file +fastlane/report.xml +fastlane/Appfile +certificates/ \ No newline at end of file diff --git a/Gemfile.lock b/Gemfile.lock index 09e0c52..1e6be0b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -6,7 +6,7 @@ GEM public_suffix (>= 2.0.2, < 5.0) atomos (0.1.3) aws-eventstream (1.1.0) - aws-partitions (1.345.0) + aws-partitions (1.355.0) aws-sdk-core (3.104.3) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.239.0) @@ -15,11 +15,11 @@ GEM aws-sdk-kms (1.36.0) aws-sdk-core (~> 3, >= 3.99.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.75.0) - aws-sdk-core (~> 3, >= 3.104.1) + aws-sdk-s3 (1.78.0) + aws-sdk-core (~> 3, >= 3.104.3) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.1) - aws-sigv4 (1.2.1) + aws-sigv4 (1.2.2) aws-eventstream (~> 1, >= 1.0.2) babosa (1.0.3) claide (1.0.3) @@ -35,7 +35,7 @@ GEM unf (>= 0.0.5, < 1.0.0) dotenv (2.7.6) emoji_regex (3.0.0) - excon (0.75.0) + excon (0.76.0) faraday (1.0.1) multipart-post (>= 1.2, < 3) faraday-cookie_jar (0.0.6) @@ -44,7 +44,7 @@ GEM faraday_middleware (1.0.0) faraday (~> 1.0) fastimage (2.2.0) - fastlane (2.153.1) + fastlane (2.156.1) CFPropertyList (>= 2.3, < 4.0.0) addressable (>= 2.3, < 3.0.0) aws-sdk-s3 (~> 1.0) @@ -95,14 +95,14 @@ GEM google-cloud-env (1.3.3) faraday (>= 0.17.3, < 2.0) google-cloud-errors (1.0.1) - google-cloud-storage (1.26.2) + google-cloud-storage (1.27.0) addressable (~> 2.5) digest-crc (~> 0.4) google-api-client (~> 0.33) google-cloud-core (~> 1.2) googleauth (~> 0.9) mini_mime (~> 1.0) - googleauth (0.13.0) + googleauth (0.13.1) faraday (>= 0.17.3, < 2.0) jwt (>= 1.4, < 3.0) memoist (~> 0.16) @@ -123,7 +123,7 @@ GEM multipart-post (2.0.0) nanaimo (0.3.0) naturally (2.2.0) - os (1.1.0) + os (1.1.1) plist (3.5.0) public_suffix (4.0.5) rake (13.0.1) @@ -157,7 +157,7 @@ GEM unf_ext (0.0.7.7) unicode-display_width (1.7.0) word_wrap (1.0.0) - xcodeproj (1.17.1) + xcodeproj (1.18.0) CFPropertyList (>= 2.3.3, < 4.0) atomos (~> 0.1.3) claide (>= 1.0.2, < 2.0) diff --git a/fastlane/Appfile b/fastlane/Appfile index 71f4b3c..ffd3547 100644 --- a/fastlane/Appfile +++ b/fastlane/Appfile @@ -1,2 +1,4 @@ -package_name("org.leinelissen.jellyfinaudioplayer") -app_identifier("org.leinelissen.JellyfinAudioPlayer") \ No newline at end of file +package_name("nl.moeilijkedingen.jellyfinaudioplayer") +app_identifier("nl.moeilijkedingen.jellyfinaudioplayer") +apple_id("lei@moeilijkedingen.nl") +team_id("238P3C58WC") \ No newline at end of file diff --git a/fastlane/Fastfile b/fastlane/Fastfile index e68b2d5..1cb2db4 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -1,10 +1,10 @@ default_platform(:ios) platform :ios do - lane :beta do - enable_automatic_code_signing( - use_automatic_signing: true, - path: "ios/JellyfinAudioPlayer.xcodeproj" + lane :alpha do + get_certificates( + development: true, + output_path: 'certificates/' ) build_app( scheme: "JellyfinAudioPlayer", @@ -13,14 +13,38 @@ platform :ios do workspace: "ios/JellyfinAudioPlayer.xcworkspace" ) end + lane :beta do + get_certificates( + output_path: 'certificates/' + ) + get_provisioning_profile( + output_path: 'certificates/', + filename: "provisioning.mobileprovision", + fail_on_name_taken: true, + ) + update_code_signing_settings( + use_automatic_signing: true, + path: "ios/JellyfinAudioPlayer.xcodeproj" + ) + increment_build_number( + xcodeproj: "ios/JellyfinAudioPlayer.xcodeproj" + ) + build_app( + scheme: "JellyfinAudioPlayer", + output_directory: "build", + workspace: "ios/JellyfinAudioPlayer.xcworkspace", + export_method: "app-store", + ) + upload_to_testflight + end end platform :android do - desc "Generate beta build" - lane :beta do - gradle( - task: "clean assembleRelease", - project_dir: "android" - ) - end + desc "Generate beta build" + lane :beta do + gradle( + task: "clean assembleRelease", + project_dir: "android" + ) + end end diff --git a/fastlane/README.md b/fastlane/README.md index f913afb..5bc28b4 100644 --- a/fastlane/README.md +++ b/fastlane/README.md @@ -16,6 +16,11 @@ or alternatively using `brew install fastlane` # Available Actions ## iOS +### ios alpha +``` +fastlane ios alpha +``` + ### ios beta ``` fastlane ios beta diff --git a/ios/JellyfinAudioPlayer.xcodeproj/project.pbxproj b/ios/JellyfinAudioPlayer.xcodeproj/project.pbxproj index 560d1f9..ae6dbb0 100644 --- a/ios/JellyfinAudioPlayer.xcodeproj/project.pbxproj +++ b/ios/JellyfinAudioPlayer.xcodeproj/project.pbxproj @@ -216,12 +216,12 @@ TargetAttributes = { 00E356ED1AD99517003FC87E = { CreatedOnToolsVersion = 6.2; - DevelopmentTeam = HD2D35G9Y4; + DevelopmentTeam = 238P3C58WC; ProvisioningStyle = Automatic; TestTargetID = 13B07F861A680F5B00A75B9A; }; 13B07F861A680F5B00A75B9A = { - DevelopmentTeam = HD2D35G9Y4; + DevelopmentTeam = 238P3C58WC; LastSwiftMigration = 1120; ProvisioningStyle = Automatic; }; @@ -431,7 +431,7 @@ buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = HD2D35G9Y4; + DEVELOPMENT_TEAM = 238P3C58WC; GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", "$(inherited)", @@ -457,7 +457,7 @@ BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; COPY_PHASE_STRIP = NO; - DEVELOPMENT_TEAM = HD2D35G9Y4; + DEVELOPMENT_TEAM = 238P3C58WC; INFOPLIST_FILE = JellyfinAudioPlayerTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; @@ -468,6 +468,8 @@ ); PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = "915c5213-22f6-4f9d-8065-2a06300f9bfb"; + PROVISIONING_PROFILE_SPECIFIER = ""; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/JellyfinAudioPlayer.app/JellyfinAudioPlayer"; }; name = Release; @@ -479,8 +481,8 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = HD2D35G9Y4; + CURRENT_PROJECT_VERSION = 3; + DEVELOPMENT_TEAM = 238P3C58WC; ENABLE_BITCODE = NO; GCC_PREPROCESSOR_DEFINITIONS = ( "$(inherited)", @@ -493,8 +495,9 @@ "-ObjC", "-lc++", ); - PRODUCT_BUNDLE_IDENTIFIER = org.leinelissen.JellyfinAudioPlayer; + PRODUCT_BUNDLE_IDENTIFIER = nl.moeilijkedingen.jellyfinaudioplayer; PRODUCT_NAME = "Jellyfin Player"; + PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; VERSIONING_SYSTEM = "apple-generic"; @@ -508,8 +511,8 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = HD2D35G9Y4; + CURRENT_PROJECT_VERSION = 3; + DEVELOPMENT_TEAM = 238P3C58WC; INFOPLIST_FILE = JellyfinAudioPlayer/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; OTHER_LDFLAGS = ( @@ -517,8 +520,10 @@ "-ObjC", "-lc++", ); - PRODUCT_BUNDLE_IDENTIFIER = org.leinelissen.JellyfinAudioPlayer; + PRODUCT_BUNDLE_IDENTIFIER = nl.moeilijkedingen.jellyfinaudioplayer; PRODUCT_NAME = "Jellyfin Player"; + PROVISIONING_PROFILE = "915c5213-22f6-4f9d-8065-2a06300f9bfb"; + PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_VERSION = 5.0; VERSIONING_SYSTEM = "apple-generic"; }; @@ -552,7 +557,8 @@ CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development"; COPY_PHASE_STRIP = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; @@ -612,7 +618,8 @@ CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development"; COPY_PHASE_STRIP = YES; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; diff --git a/ios/JellyfinAudioPlayer/Info.plist b/ios/JellyfinAudioPlayer/Info.plist index 9f5ec40..880f452 100644 --- a/ios/JellyfinAudioPlayer/Info.plist +++ b/ios/JellyfinAudioPlayer/Info.plist @@ -21,7 +21,7 @@ CFBundleSignature ???? CFBundleVersion - 1 + 3 LSRequiresIPhoneOS NSAppTransportSecurity @@ -42,7 +42,7 @@ UIBackgroundModes audio - processing + fetch UILaunchStoryboardName LaunchScreen diff --git a/ios/JellyfinAudioPlayerTests/Info.plist b/ios/JellyfinAudioPlayerTests/Info.plist index ba72822..ba7f37c 100644 --- a/ios/JellyfinAudioPlayerTests/Info.plist +++ b/ios/JellyfinAudioPlayerTests/Info.plist @@ -19,6 +19,6 @@ CFBundleSignature ???? CFBundleVersion - 1 + 3