Add workflow for building and TestFlight

This commit is contained in:
Arkadiusz Fal 2023-02-19 14:43:17 +01:00
parent ddcc134d75
commit de153ab9ac
11 changed files with 483 additions and 140 deletions

98
.github/workflows/release.yml vendored Normal file
View File

@ -0,0 +1,98 @@
name: Build and release to TestFlight and GitHub
on:
push:
branches: [ main ]
workflow_dispatch:
env:
FASTLANE_USER: ${{ secrets.FASTLANE_USER }}
FASTLANE_PASSWORD: ${{ secrets.FASTLANE_PASSWORD }}
ITC_TEAM_ID: ${{ secrets.ITC_TEAM_ID }}
TEAM_ID: ${{ secrets.TEAM_ID }}
DEVELOPER_KEY_ID: ${{ secrets.DEVELOPER_KEY_ID }}
DEVELOPER_KEY_ISSUER_ID: ${{ secrets.DEVELOPER_KEY_ISSUER_ID }}
DEVELOPER_KEY_CONTENT: ${{ secrets.DEVELOPER_KEY_CONTENT }}
TEMP_KEYCHAIN_USER: ${{ secrets.TEMP_KEYCHAIN_USER }}
TEMP_KEYCHAIN_PASSWORD: ${{ secrets.TEMP_KEYCHAIN_PASSWORD }}
DEVELOPER_APP_IDENTIFIER: ${{ secrets.DEVELOPER_APP_IDENTIFIER }}
GIT_AUTHORIZATION: ${{ secrets.GIT_AUTHORIZATION }}
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
CERTIFICATES_GIT_URL: ${{ secrets.CERTIFICATES_GIT_URL }}
TESTFLIGHT_EXTERNAL_GROUPS: ${{ secrets.TESTFLIGHT_EXTERNAL_GROUPS }}
jobs:
testflight:
strategy:
matrix:
lane: ['mac beta', 'ios beta', 'tvos beta']
name: Releasing ${{ matrix.lane }} version to TestFlight
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- uses: ruby/setup-ruby@v1
with:
ruby-version: '3.0'
bundler-cache: true
- name: Replace signing certificate to AppStore
run: |
sed -i '' 's/match Development/match AppStore/' Yattee.xcodeproj/project.pbxproj
sed -i '' 's/iPhone Developer/iPhone Distribution/' Yattee.xcodeproj/project.pbxproj
- uses: maierj/fastlane-action@v3.0.0
with:
lane: ${{ matrix.lane }}
- uses: actions/upload-artifact@v3
with:
name: ${{ matrix.lane }} build
path: fastlane/builds/**/*.ipa
if-no-files-found: ignore
mac_notarized:
name: Build and notarize macOS app
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- uses: ruby/setup-ruby@v1
with:
ruby-version: '3.0'
bundler-cache: true
- name: Replace signing certificate to Direct with Developer ID
run: |
sed -i '' 's/match AppStore/match Direct/' Yattee.xcodeproj/project.pbxproj
sed -i '' 's/3rd Party Mac Developer Application/Developer ID Application/' Yattee.xcodeproj/project.pbxproj
- uses: maierj/fastlane-action@v3.0.0
with:
lane: mac build_and_notarize
- run: |
echo "BUILD_NUMBER=$(cat Yattee.xcodeproj/project.pbxproj | grep -m 1 CURRENT_PROJECT_VERSION | cut -d' ' -f3 | sed 's/;//g')" >> $GITHUB_ENV
echo "VERSION_NUMBER=$(cat Yattee.xcodeproj/project.pbxproj | grep -m 1 MARKETING_VERSION | cut -d' ' -f3 | sed 's/;//g')" >> $GITHUB_ENV
- run: |
echo "APP_PATH=fastlane/builds/${{ env.VERSION_NUMBER }}-${{ env.BUILD_NUMBER }}/macOS/Yattee.app" >> $GITHUB_ENV
echo "ZIP_PATH=fastlane/builds/${{ env.VERSION_NUMBER }}-${{ env.BUILD_NUMBER }}/macOS/Yattee-${{ env.VERSION_NUMBER }}-macOS.zip" >> $GITHUB_ENV
- name: ZIP build
run: /usr/bin/ditto -c -k --keepParent ${{ env.APP_PATH }} ${{ env.ZIP_PATH }}
- uses: actions/upload-artifact@v3
with:
name: mac notarized build
path: ${{ env.ZIP_PATH }}
if-no-files-found: error
release:
needs: ['testflight', 'mac_notarized']
name: Create GitHub release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: echo "BUILD_NUMBER=$(cat Yattee.xcodeproj/project.pbxproj | grep -m 1 CURRENT_PROJECT_VERSION | cut -d' ' -f3 | sed 's/;//g')" >> $GITHUB_ENV
- run: echo "VERSION_NUMBER=$(cat Yattee.xcodeproj/project.pbxproj | grep -m 1 MARKETING_VERSION | cut -d' ' -f3 | sed 's/;//g')" >> $GITHUB_ENV
- uses: actions/download-artifact@v3
with:
path: artifacts
- name: Display structure of downloaded files
run: ls -R
working-directory: artifacts
- uses: ncipollo/release-action@v1
with:
artifacts: artifacts/**/*.ipa,artifacts/**/*.zip
commit: main
tag: ${{ env.VERSION_NUMBER }}-${{ env.BUILD_NUMBER }}
prerelease: true
bodyFile: CHANGELOG.md

4
CHANGELOG.md Normal file
View File

@ -0,0 +1,4 @@
## Build 133
* Fixed issue with loading channels in Favorites with Invidious
* Other minor changes and improvements

View File

@ -1,29 +1,23 @@
GIT
remote: git@github.com:yattee/fastlane-plugin-altool.git
revision: 4390a87c61f68a0efabb76236606d9861708bd46
specs:
fastlane-plugin-altool (1.1.0)
GEM GEM
remote: https://rubygems.org/ remote: https://rubygems.org/
specs: specs:
CFPropertyList (3.0.5) CFPropertyList (3.0.6)
rexml rexml
addressable (2.8.1) addressable (2.8.1)
public_suffix (>= 2.0.2, < 6.0) public_suffix (>= 2.0.2, < 6.0)
artifactory (3.0.15) artifactory (3.0.15)
atomos (0.1.3) atomos (0.1.3)
aws-eventstream (1.2.0) aws-eventstream (1.2.0)
aws-partitions (1.660.0) aws-partitions (1.716.0)
aws-sdk-core (3.167.0) aws-sdk-core (3.170.0)
aws-eventstream (~> 1, >= 1.0.2) aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.651.0) aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.5) aws-sigv4 (~> 1.5)
jmespath (~> 1, >= 1.6.1) jmespath (~> 1, >= 1.6.1)
aws-sdk-kms (1.59.0) aws-sdk-kms (1.62.0)
aws-sdk-core (~> 3, >= 3.165.0) aws-sdk-core (~> 3, >= 3.165.0)
aws-sigv4 (~> 1.1) aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.117.1) aws-sdk-s3 (1.119.1)
aws-sdk-core (~> 3, >= 3.165.0) aws-sdk-core (~> 3, >= 3.165.0)
aws-sdk-kms (~> 1) aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.4) aws-sigv4 (~> 1.4)
@ -42,8 +36,8 @@ GEM
unf (>= 0.0.5, < 1.0.0) unf (>= 0.0.5, < 1.0.0)
dotenv (2.8.1) dotenv (2.8.1)
emoji_regex (3.2.3) emoji_regex (3.2.3)
excon (0.94.0) excon (0.99.0)
faraday (1.10.2) faraday (1.10.3)
faraday-em_http (~> 1.0) faraday-em_http (~> 1.0)
faraday-em_synchrony (~> 1.0) faraday-em_synchrony (~> 1.0)
faraday-excon (~> 1.1) faraday-excon (~> 1.1)
@ -72,7 +66,7 @@ GEM
faraday_middleware (1.2.0) faraday_middleware (1.2.0)
faraday (~> 1.0) faraday (~> 1.0)
fastimage (2.2.6) fastimage (2.2.6)
fastlane (2.211.0) fastlane (2.212.1)
CFPropertyList (>= 2.3, < 4.0.0) CFPropertyList (>= 2.3, < 4.0.0)
addressable (>= 2.8, < 3.0.0) addressable (>= 2.8, < 3.0.0)
artifactory (~> 3.0) artifactory (~> 3.0)
@ -112,9 +106,9 @@ GEM
xcpretty (~> 0.3.0) xcpretty (~> 0.3.0)
xcpretty-travis-formatter (>= 0.0.3) xcpretty-travis-formatter (>= 0.0.3)
gh_inspector (1.1.3) gh_inspector (1.1.3)
google-apis-androidpublisher_v3 (0.31.0) google-apis-androidpublisher_v3 (0.34.0)
google-apis-core (>= 0.9.1, < 2.a) google-apis-core (>= 0.9.1, < 2.a)
google-apis-core (0.9.1) google-apis-core (0.11.0)
addressable (~> 2.5, >= 2.5.1) addressable (~> 2.5, >= 2.5.1)
googleauth (>= 0.16.2, < 2.a) googleauth (>= 0.16.2, < 2.a)
httpclient (>= 2.8.1, < 3.a) httpclient (>= 2.8.1, < 3.a)
@ -123,8 +117,8 @@ GEM
retriable (>= 2.0, < 4.a) retriable (>= 2.0, < 4.a)
rexml rexml
webrick webrick
google-apis-iamcredentials_v1 (0.16.0) google-apis-iamcredentials_v1 (0.17.0)
google-apis-core (>= 0.9.1, < 2.a) google-apis-core (>= 0.11.0, < 2.a)
google-apis-playcustomapp_v1 (0.12.0) google-apis-playcustomapp_v1 (0.12.0)
google-apis-core (>= 0.9.1, < 2.a) google-apis-core (>= 0.9.1, < 2.a)
google-apis-storage_v1 (0.19.0) google-apis-storage_v1 (0.19.0)
@ -154,11 +148,11 @@ GEM
http-cookie (1.0.5) http-cookie (1.0.5)
domain_name (~> 0.5) domain_name (~> 0.5)
httpclient (2.8.3) httpclient (2.8.3)
jmespath (1.6.1) jmespath (1.6.2)
json (2.6.2) json (2.6.3)
jwt (2.5.0) jwt (2.7.0)
memoist (0.16.2) memoist (0.16.2)
mini_magick (4.11.0) mini_magick (4.12.0)
mini_mime (1.1.2) mini_mime (1.1.2)
multi_json (1.15.0) multi_json (1.15.0)
multipart-post (2.0.0) multipart-post (2.0.0)
@ -166,8 +160,8 @@ GEM
naturally (2.2.1) naturally (2.2.1)
optparse (0.1.1) optparse (0.1.1)
os (1.1.4) os (1.1.4)
plist (3.6.0) plist (3.7.0)
public_suffix (5.0.0) public_suffix (5.0.1)
rake (13.0.6) rake (13.0.6)
representable (3.2.0) representable (3.2.0)
declarative (< 0.1.0) declarative (< 0.1.0)
@ -184,7 +178,7 @@ GEM
faraday (>= 0.17.5, < 3.a) faraday (>= 0.17.5, < 3.a)
jwt (>= 1.5, < 3.0) jwt (>= 1.5, < 3.0)
multi_json (~> 1.10) multi_json (~> 1.10)
simctl (1.6.8) simctl (1.6.10)
CFPropertyList CFPropertyList
naturally naturally
terminal-notifier (2.0.0) terminal-notifier (2.0.0)
@ -200,7 +194,7 @@ GEM
unf_ext unf_ext
unf_ext (0.0.8.2) unf_ext (0.0.8.2)
unicode-display_width (1.8.0) unicode-display_width (1.8.0)
webrick (1.7.0) webrick (1.8.1)
word_wrap (1.0.0) word_wrap (1.0.0)
xcodeproj (1.22.0) xcodeproj (1.22.0)
CFPropertyList (>= 2.3.3, < 4.0) CFPropertyList (>= 2.3.3, < 4.0)
@ -216,10 +210,10 @@ GEM
PLATFORMS PLATFORMS
arm64-darwin-21 arm64-darwin-21
x86_64-darwin-19
DEPENDENCIES DEPENDENCIES
fastlane fastlane
fastlane-plugin-altool!
BUNDLED WITH BUNDLED WITH
2.3.6 2.3.6

View File

@ -69,7 +69,6 @@
3703205C27D2BAF3007A0CB8 /* SwiftyJSON in Frameworks */ = {isa = PBXBuildFile; productRef = 3703205B27D2BAF3007A0CB8 /* SwiftyJSON */; }; 3703205C27D2BAF3007A0CB8 /* SwiftyJSON in Frameworks */ = {isa = PBXBuildFile; productRef = 3703205B27D2BAF3007A0CB8 /* SwiftyJSON */; };
3703205E27D2BB12007A0CB8 /* SDWebImageWebPCoder in Frameworks */ = {isa = PBXBuildFile; productRef = 3703205D27D2BB12007A0CB8 /* SDWebImageWebPCoder */; }; 3703205E27D2BB12007A0CB8 /* SDWebImageWebPCoder in Frameworks */ = {isa = PBXBuildFile; productRef = 3703205D27D2BB12007A0CB8 /* SDWebImageWebPCoder */; };
3703206227D2BB1B007A0CB8 /* SDWebImagePINPlugin in Frameworks */ = {isa = PBXBuildFile; productRef = 3703206127D2BB1B007A0CB8 /* SDWebImagePINPlugin */; }; 3703206227D2BB1B007A0CB8 /* SDWebImagePINPlugin in Frameworks */ = {isa = PBXBuildFile; productRef = 3703206127D2BB1B007A0CB8 /* SDWebImagePINPlugin */; };
3703206427D2BB30007A0CB8 /* Logging in Frameworks */ = {isa = PBXBuildFile; productRef = 3703206327D2BB30007A0CB8 /* Logging */; };
3703206627D2BB35007A0CB8 /* PINCache in Frameworks */ = {isa = PBXBuildFile; productRef = 3703206527D2BB35007A0CB8 /* PINCache */; }; 3703206627D2BB35007A0CB8 /* PINCache in Frameworks */ = {isa = PBXBuildFile; productRef = 3703206527D2BB35007A0CB8 /* PINCache */; };
3703206827D2BB45007A0CB8 /* Defaults in Frameworks */ = {isa = PBXBuildFile; productRef = 3703206727D2BB45007A0CB8 /* Defaults */; }; 3703206827D2BB45007A0CB8 /* Defaults in Frameworks */ = {isa = PBXBuildFile; productRef = 3703206727D2BB45007A0CB8 /* Defaults */; };
3703206A27D2BB49007A0CB8 /* Alamofire in Frameworks */ = {isa = PBXBuildFile; productRef = 3703206927D2BB49007A0CB8 /* Alamofire */; }; 3703206A27D2BB49007A0CB8 /* Alamofire in Frameworks */ = {isa = PBXBuildFile; productRef = 3703206927D2BB49007A0CB8 /* Alamofire */; };
@ -261,6 +260,7 @@
37319F0727103F94004ECCD0 /* PlayerQueue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37319F0427103F94004ECCD0 /* PlayerQueue.swift */; }; 37319F0727103F94004ECCD0 /* PlayerQueue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37319F0427103F94004ECCD0 /* PlayerQueue.swift */; };
3732BFD028B83763009F3F4D /* KeychainAccess in Frameworks */ = {isa = PBXBuildFile; productRef = 3732BFCF28B83763009F3F4D /* KeychainAccess */; }; 3732BFD028B83763009F3F4D /* KeychainAccess in Frameworks */ = {isa = PBXBuildFile; productRef = 3732BFCF28B83763009F3F4D /* KeychainAccess */; };
3732C9FD28C012E600E7DCAF /* SafeArea.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37ECED55289FE166002BC2C9 /* SafeArea.swift */; }; 3732C9FD28C012E600E7DCAF /* SafeArea.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37ECED55289FE166002BC2C9 /* SafeArea.swift */; };
3735C4E729A2D3D70051D251 /* Logging in Frameworks */ = {isa = PBXBuildFile; productRef = 3735C4E629A2D3D70051D251 /* Logging */; };
3736A1FE286BB72300C9E5EE /* libavdevice.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3736A1EF286BB72300C9E5EE /* libavdevice.xcframework */; }; 3736A1FE286BB72300C9E5EE /* libavdevice.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3736A1EF286BB72300C9E5EE /* libavdevice.xcframework */; };
3736A1FF286BB72300C9E5EE /* libavdevice.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3736A1EF286BB72300C9E5EE /* libavdevice.xcframework */; }; 3736A1FF286BB72300C9E5EE /* libavdevice.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3736A1EF286BB72300C9E5EE /* libavdevice.xcframework */; };
3736A200286BB72300C9E5EE /* libuchardet.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3736A1F0286BB72300C9E5EE /* libuchardet.xcframework */; }; 3736A200286BB72300C9E5EE /* libuchardet.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3736A1F0286BB72300C9E5EE /* libuchardet.xcframework */; };
@ -555,7 +555,6 @@
3774127227387E0B00423605 /* SiestaConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3700155E271B12DD0049C794 /* SiestaConfiguration.swift */; }; 3774127227387E0B00423605 /* SiestaConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3700155E271B12DD0049C794 /* SiestaConfiguration.swift */; };
3774127427387E8500423605 /* SwiftyJSON in Frameworks */ = {isa = PBXBuildFile; productRef = 3774127327387E8500423605 /* SwiftyJSON */; }; 3774127427387E8500423605 /* SwiftyJSON in Frameworks */ = {isa = PBXBuildFile; productRef = 3774127327387E8500423605 /* SwiftyJSON */; };
3774127627387EA200423605 /* Siesta in Frameworks */ = {isa = PBXBuildFile; productRef = 3774127527387EA200423605 /* Siesta */; }; 3774127627387EA200423605 /* Siesta in Frameworks */ = {isa = PBXBuildFile; productRef = 3774127527387EA200423605 /* Siesta */; };
3774127827387EB000423605 /* Logging in Frameworks */ = {isa = PBXBuildFile; productRef = 3774127727387EB000423605 /* Logging */; };
3774127A27387EBC00423605 /* Defaults in Frameworks */ = {isa = PBXBuildFile; productRef = 3774127927387EBC00423605 /* Defaults */; }; 3774127A27387EBC00423605 /* Defaults in Frameworks */ = {isa = PBXBuildFile; productRef = 3774127927387EBC00423605 /* Defaults */; };
3774127C27387EC800423605 /* Alamofire in Frameworks */ = {isa = PBXBuildFile; productRef = 3774127B27387EC800423605 /* Alamofire */; }; 3774127C27387EC800423605 /* Alamofire in Frameworks */ = {isa = PBXBuildFile; productRef = 3774127B27387EC800423605 /* Alamofire */; };
3776924E294630110055EC18 /* ChannelAvatarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3776924D294630110055EC18 /* ChannelAvatarView.swift */; }; 3776924E294630110055EC18 /* ChannelAvatarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3776924D294630110055EC18 /* ChannelAvatarView.swift */; };
@ -596,7 +595,6 @@
377F9F83294417B40043F856 /* Cache in Frameworks */ = {isa = PBXBuildFile; productRef = 377F9F82294417B40043F856 /* Cache */; }; 377F9F83294417B40043F856 /* Cache in Frameworks */ = {isa = PBXBuildFile; productRef = 377F9F82294417B40043F856 /* Cache */; };
377F9F85294417FA0043F856 /* SwiftyJSON in Frameworks */ = {isa = PBXBuildFile; productRef = 377F9F84294417FA0043F856 /* SwiftyJSON */; }; 377F9F85294417FA0043F856 /* SwiftyJSON in Frameworks */ = {isa = PBXBuildFile; productRef = 377F9F84294417FA0043F856 /* SwiftyJSON */; };
377FC7D5267A080300A6BBAF /* SwiftyJSON in Frameworks */ = {isa = PBXBuildFile; productRef = 377FC7D4267A080300A6BBAF /* SwiftyJSON */; }; 377FC7D5267A080300A6BBAF /* SwiftyJSON in Frameworks */ = {isa = PBXBuildFile; productRef = 377FC7D4267A080300A6BBAF /* SwiftyJSON */; };
377FC7DB267A080300A6BBAF /* Logging in Frameworks */ = {isa = PBXBuildFile; productRef = 377FC7DA267A080300A6BBAF /* Logging */; };
377FC7DC267A081800A6BBAF /* PopularView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37AAF27D26737323007FC770 /* PopularView.swift */; }; 377FC7DC267A081800A6BBAF /* PopularView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37AAF27D26737323007FC770 /* PopularView.swift */; };
377FC7DD267A081A00A6BBAF /* PopularView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37AAF27D26737323007FC770 /* PopularView.swift */; }; 377FC7DD267A081A00A6BBAF /* PopularView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37AAF27D26737323007FC770 /* PopularView.swift */; };
377FC7E2267A084A00A6BBAF /* VideoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37D4B18B26717B3800C925CA /* VideoCell.swift */; }; 377FC7E2267A084A00A6BBAF /* VideoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37D4B18B26717B3800C925CA /* VideoCell.swift */; };
@ -657,6 +655,9 @@
378FFBC628660172009E3FBE /* URLParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 378FFBC328660172009E3FBE /* URLParser.swift */; }; 378FFBC628660172009E3FBE /* URLParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 378FFBC328660172009E3FBE /* URLParser.swift */; };
378FFBC728660172009E3FBE /* URLParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 378FFBC328660172009E3FBE /* URLParser.swift */; }; 378FFBC728660172009E3FBE /* URLParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 378FFBC328660172009E3FBE /* URLParser.swift */; };
378FFBC92866018A009E3FBE /* URLParserTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 378FFBC82866018A009E3FBE /* URLParserTests.swift */; }; 378FFBC92866018A009E3FBE /* URLParserTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 378FFBC82866018A009E3FBE /* URLParserTests.swift */; };
379325D529A265A300181CF1 /* Logging in Frameworks */ = {isa = PBXBuildFile; productRef = 379325D429A265A300181CF1 /* Logging */; };
379325D729A265AE00181CF1 /* Logging in Frameworks */ = {isa = PBXBuildFile; productRef = 379325D629A265AE00181CF1 /* Logging */; };
379325D929A265B500181CF1 /* Logging in Frameworks */ = {isa = PBXBuildFile; productRef = 379325D829A265B500181CF1 /* Logging */; };
3795593627B08538007FF8F4 /* StreamControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3795593527B08538007FF8F4 /* StreamControl.swift */; }; 3795593627B08538007FF8F4 /* StreamControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3795593527B08538007FF8F4 /* StreamControl.swift */; };
3795593727B08538007FF8F4 /* StreamControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3795593527B08538007FF8F4 /* StreamControl.swift */; }; 3795593727B08538007FF8F4 /* StreamControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3795593527B08538007FF8F4 /* StreamControl.swift */; };
3797104928D3D10600D5F53C /* SDWebImageSwiftUI in Frameworks */ = {isa = PBXBuildFile; productRef = 3797104828D3D10600D5F53C /* SDWebImageSwiftUI */; }; 3797104928D3D10600D5F53C /* SDWebImageSwiftUI in Frameworks */ = {isa = PBXBuildFile; productRef = 3797104828D3D10600D5F53C /* SDWebImageSwiftUI */; };
@ -727,7 +728,6 @@
37B767DB2677C3CA0098BAA8 /* PlayerModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B767DA2677C3CA0098BAA8 /* PlayerModel.swift */; }; 37B767DB2677C3CA0098BAA8 /* PlayerModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B767DA2677C3CA0098BAA8 /* PlayerModel.swift */; };
37B767DC2677C3CA0098BAA8 /* PlayerModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B767DA2677C3CA0098BAA8 /* PlayerModel.swift */; }; 37B767DC2677C3CA0098BAA8 /* PlayerModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B767DA2677C3CA0098BAA8 /* PlayerModel.swift */; };
37B767DD2677C3CA0098BAA8 /* PlayerModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B767DA2677C3CA0098BAA8 /* PlayerModel.swift */; }; 37B767DD2677C3CA0098BAA8 /* PlayerModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B767DA2677C3CA0098BAA8 /* PlayerModel.swift */; };
37B767E02678C5BF0098BAA8 /* Logging in Frameworks */ = {isa = PBXBuildFile; productRef = 37B767DF2678C5BF0098BAA8 /* Logging */; };
37B795902771DAE0001CF27B /* OpenURLHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B7958F2771DAE0001CF27B /* OpenURLHandler.swift */; }; 37B795902771DAE0001CF27B /* OpenURLHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B7958F2771DAE0001CF27B /* OpenURLHandler.swift */; };
37B795912771DAE0001CF27B /* OpenURLHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B7958F2771DAE0001CF27B /* OpenURLHandler.swift */; }; 37B795912771DAE0001CF27B /* OpenURLHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B7958F2771DAE0001CF27B /* OpenURLHandler.swift */; };
37B81AF926D2C9A700675966 /* VideoPlayerSizeModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B81AF826D2C9A700675966 /* VideoPlayerSizeModifier.swift */; }; 37B81AF926D2C9A700675966 /* VideoPlayerSizeModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B81AF826D2C9A700675966 /* VideoPlayerSizeModifier.swift */; };
@ -887,7 +887,6 @@
37D9BA0629507F69002586BD /* PlayerControlsSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37D9BA0529507F69002586BD /* PlayerControlsSettings.swift */; }; 37D9BA0629507F69002586BD /* PlayerControlsSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37D9BA0529507F69002586BD /* PlayerControlsSettings.swift */; };
37D9BA0729507F69002586BD /* PlayerControlsSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37D9BA0529507F69002586BD /* PlayerControlsSettings.swift */; }; 37D9BA0729507F69002586BD /* PlayerControlsSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37D9BA0529507F69002586BD /* PlayerControlsSettings.swift */; };
37D9BA0829507F69002586BD /* PlayerControlsSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37D9BA0529507F69002586BD /* PlayerControlsSettings.swift */; }; 37D9BA0829507F69002586BD /* PlayerControlsSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37D9BA0529507F69002586BD /* PlayerControlsSettings.swift */; };
37DA0F20291DD6B8009B38CF /* Logging in Frameworks */ = {isa = PBXBuildFile; productRef = 37DA0F1F291DD6B8009B38CF /* Logging */; };
37DD87C7271C9CFE0027CBF9 /* PlayerStreams.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37DD87C6271C9CFE0027CBF9 /* PlayerStreams.swift */; }; 37DD87C7271C9CFE0027CBF9 /* PlayerStreams.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37DD87C6271C9CFE0027CBF9 /* PlayerStreams.swift */; };
37DD87C8271C9CFE0027CBF9 /* PlayerStreams.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37DD87C6271C9CFE0027CBF9 /* PlayerStreams.swift */; }; 37DD87C8271C9CFE0027CBF9 /* PlayerStreams.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37DD87C6271C9CFE0027CBF9 /* PlayerStreams.swift */; };
37DD87C9271C9CFE0027CBF9 /* PlayerStreams.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37DD87C6271C9CFE0027CBF9 /* PlayerStreams.swift */; }; 37DD87C9271C9CFE0027CBF9 /* PlayerStreams.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37DD87C6271C9CFE0027CBF9 /* PlayerStreams.swift */; };
@ -1524,8 +1523,8 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
3735C4E729A2D3D70051D251 /* Logging in Frameworks */,
377F9F85294417FA0043F856 /* SwiftyJSON in Frameworks */, 377F9F85294417FA0043F856 /* SwiftyJSON in Frameworks */,
37DA0F20291DD6B8009B38CF /* Logging in Frameworks */,
377F9F83294417B40043F856 /* Cache in Frameworks */, 377F9F83294417B40043F856 /* Cache in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
@ -1555,6 +1554,7 @@
37C2212527ADA40A00305B41 /* AudioToolbox.framework in Frameworks */, 37C2212527ADA40A00305B41 /* AudioToolbox.framework in Frameworks */,
372AA410286D067B0000B1DC /* Repeat in Frameworks */, 372AA410286D067B0000B1DC /* Repeat in Frameworks */,
37C2212327ADA3F200305B41 /* libiconv.tbd in Frameworks */, 37C2212327ADA3F200305B41 /* libiconv.tbd in Frameworks */,
379325D529A265A300181CF1 /* Logging in Frameworks */,
37C2212127ADA3A600305B41 /* libbz2.tbd in Frameworks */, 37C2212127ADA3A600305B41 /* libbz2.tbd in Frameworks */,
37EE6DC528A305AD00BFD632 /* Reachability in Frameworks */, 37EE6DC528A305AD00BFD632 /* Reachability in Frameworks */,
37C2211F27ADA3A200305B41 /* libz.tbd in Frameworks */, 37C2211F27ADA3A200305B41 /* libz.tbd in Frameworks */,
@ -1577,7 +1577,6 @@
3736A202286BB72300C9E5EE /* libfribidi.xcframework in Frameworks */, 3736A202286BB72300C9E5EE /* libfribidi.xcframework in Frameworks */,
37FB284D2722099E00A57617 /* SDWebImageWebPCoder in Frameworks */, 37FB284D2722099E00A57617 /* SDWebImageWebPCoder in Frameworks */,
37A5DBC4285DFF5400CA4DD1 /* SwiftUIPager in Frameworks */, 37A5DBC4285DFF5400CA4DD1 /* SwiftUIPager in Frameworks */,
377FC7DB267A080300A6BBAF /* Logging in Frameworks */,
3736A208286BB72300C9E5EE /* libcrypto.xcframework in Frameworks */, 3736A208286BB72300C9E5EE /* libcrypto.xcframework in Frameworks */,
37CF8B8428535E4F00B71E37 /* SDWebImage in Frameworks */, 37CF8B8428535E4F00B71E37 /* SDWebImage in Frameworks */,
3736A20E286BB72300C9E5EE /* libass.xcframework in Frameworks */, 3736A20E286BB72300C9E5EE /* libass.xcframework in Frameworks */,
@ -1588,6 +1587,7 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
379325D729A265AE00181CF1 /* Logging in Frameworks */,
372AA414286D06A10000B1DC /* Repeat in Frameworks */, 372AA414286D06A10000B1DC /* Repeat in Frameworks */,
370F4FD227CC16CB001B35DC /* libavformat.59.16.100.dylib in Frameworks */, 370F4FD227CC16CB001B35DC /* libavformat.59.16.100.dylib in Frameworks */,
370F4FD327CC16CB001B35DC /* libass.9.dylib in Frameworks */, 370F4FD327CC16CB001B35DC /* libass.9.dylib in Frameworks */,
@ -1610,7 +1610,6 @@
370F4FDD27CC16CB001B35DC /* liblcms2.2.dylib in Frameworks */, 370F4FDD27CC16CB001B35DC /* liblcms2.2.dylib in Frameworks */,
3703206227D2BB1B007A0CB8 /* SDWebImagePINPlugin in Frameworks */, 3703206227D2BB1B007A0CB8 /* SDWebImagePINPlugin in Frameworks */,
370F4FCB27CC16CB001B35DC /* libxcb.1.1.0.dylib in Frameworks */, 370F4FCB27CC16CB001B35DC /* libxcb.1.1.0.dylib in Frameworks */,
3703206427D2BB30007A0CB8 /* Logging in Frameworks */,
371AC0B2294D1C230085989E /* CachedAsyncImage in Frameworks */, 371AC0B2294D1C230085989E /* CachedAsyncImage in Frameworks */,
370F4FD027CC16CB001B35DC /* libharfbuzz.0.dylib in Frameworks */, 370F4FD027CC16CB001B35DC /* libharfbuzz.0.dylib in Frameworks */,
370F4FCC27CC16CB001B35DC /* libxcb-xfixes.0.0.0.dylib in Frameworks */, 370F4FCC27CC16CB001B35DC /* libxcb-xfixes.0.0.0.dylib in Frameworks */,
@ -1647,7 +1646,6 @@
files = ( files = (
3774127C27387EC800423605 /* Alamofire in Frameworks */, 3774127C27387EC800423605 /* Alamofire in Frameworks */,
3774127A27387EBC00423605 /* Defaults in Frameworks */, 3774127A27387EBC00423605 /* Defaults in Frameworks */,
3774127827387EB000423605 /* Logging in Frameworks */,
3774127427387E8500423605 /* SwiftyJSON in Frameworks */, 3774127427387E8500423605 /* SwiftyJSON in Frameworks */,
3774127627387EA200423605 /* Siesta in Frameworks */, 3774127627387EA200423605 /* Siesta in Frameworks */,
); );
@ -1670,6 +1668,7 @@
37FB285427220D8400A57617 /* SDWebImagePINPlugin in Frameworks */, 37FB285427220D8400A57617 /* SDWebImagePINPlugin in Frameworks */,
371AC0B4294D1C290085989E /* CachedAsyncImage in Frameworks */, 371AC0B4294D1C290085989E /* CachedAsyncImage in Frameworks */,
3732BFD028B83763009F3F4D /* KeychainAccess in Frameworks */, 3732BFD028B83763009F3F4D /* KeychainAccess in Frameworks */,
379325D929A265B500181CF1 /* Logging in Frameworks */,
3772003927E8EEB700CB2475 /* AVFoundation.framework in Frameworks */, 3772003927E8EEB700CB2475 /* AVFoundation.framework in Frameworks */,
3736A20F286BB72300C9E5EE /* libass.xcframework in Frameworks */, 3736A20F286BB72300C9E5EE /* libass.xcframework in Frameworks */,
3736A1FF286BB72300C9E5EE /* libavdevice.xcframework in Frameworks */, 3736A1FF286BB72300C9E5EE /* libavdevice.xcframework in Frameworks */,
@ -1693,7 +1692,6 @@
37D4B19D2671817900C925CA /* SwiftyJSON in Frameworks */, 37D4B19D2671817900C925CA /* SwiftyJSON in Frameworks */,
3797757D268922D100DD52A8 /* Siesta in Frameworks */, 3797757D268922D100DD52A8 /* Siesta in Frameworks */,
3736A219286BB72300C9E5EE /* libharfbuzz.xcframework in Frameworks */, 3736A219286BB72300C9E5EE /* libharfbuzz.xcframework in Frameworks */,
37B767E02678C5BF0098BAA8 /* Logging in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@ -2545,9 +2543,9 @@
); );
name = "Open in Yattee"; name = "Open in Yattee";
packageProductDependencies = ( packageProductDependencies = (
37DA0F1F291DD6B8009B38CF /* Logging */,
377F9F82294417B40043F856 /* Cache */, 377F9F82294417B40043F856 /* Cache */,
377F9F84294417FA0043F856 /* SwiftyJSON */, 377F9F84294417FA0043F856 /* SwiftyJSON */,
3735C4E629A2D3D70051D251 /* Logging */,
); );
productName = "Open in Yattee"; productName = "Open in Yattee";
productReference = 37095E7F291DC85400301883 /* Open in Yattee.appex */; productReference = 37095E7F291DC85400301883 /* Open in Yattee.appex */;
@ -2589,7 +2587,6 @@
name = "Yattee (iOS)"; name = "Yattee (iOS)";
packageProductDependencies = ( packageProductDependencies = (
377FC7D4267A080300A6BBAF /* SwiftyJSON */, 377FC7D4267A080300A6BBAF /* SwiftyJSON */,
377FC7DA267A080300A6BBAF /* Logging */,
37BD07B62698AB2E003EBB87 /* Defaults */, 37BD07B62698AB2E003EBB87 /* Defaults */,
37BD07B82698AB2E003EBB87 /* Siesta */, 37BD07B82698AB2E003EBB87 /* Siesta */,
37BD07C62698B27B003EBB87 /* Introspect */, 37BD07C62698B27B003EBB87 /* Introspect */,
@ -2606,6 +2603,7 @@
3797104828D3D10600D5F53C /* SDWebImageSwiftUI */, 3797104828D3D10600D5F53C /* SDWebImageSwiftUI */,
377F9F73294403770043F856 /* Cache */, 377F9F73294403770043F856 /* Cache */,
371AC0AB294D1A490085989E /* CachedAsyncImage */, 371AC0AB294D1A490085989E /* CachedAsyncImage */,
379325D429A265A300181CF1 /* Logging */,
); );
productName = "Yattee (iOS)"; productName = "Yattee (iOS)";
productReference = 37D4B0C92671614900C925CA /* Yattee.app */; productReference = 37D4B0C92671614900C925CA /* Yattee.app */;
@ -2633,7 +2631,6 @@
3703205B27D2BAF3007A0CB8 /* SwiftyJSON */, 3703205B27D2BAF3007A0CB8 /* SwiftyJSON */,
3703205D27D2BB12007A0CB8 /* SDWebImageWebPCoder */, 3703205D27D2BB12007A0CB8 /* SDWebImageWebPCoder */,
3703206127D2BB1B007A0CB8 /* SDWebImagePINPlugin */, 3703206127D2BB1B007A0CB8 /* SDWebImagePINPlugin */,
3703206327D2BB30007A0CB8 /* Logging */,
3703206527D2BB35007A0CB8 /* PINCache */, 3703206527D2BB35007A0CB8 /* PINCache */,
3703206727D2BB45007A0CB8 /* Defaults */, 3703206727D2BB45007A0CB8 /* Defaults */,
3703206927D2BB49007A0CB8 /* Alamofire */, 3703206927D2BB49007A0CB8 /* Alamofire */,
@ -2644,6 +2641,7 @@
3797104A28D3D18800D5F53C /* SDWebImageSwiftUI */, 3797104A28D3D18800D5F53C /* SDWebImageSwiftUI */,
374D11E62943C56300CB4350 /* Cache */, 374D11E62943C56300CB4350 /* Cache */,
371AC0B1294D1C230085989E /* CachedAsyncImage */, 371AC0B1294D1C230085989E /* CachedAsyncImage */,
379325D629A265AE00181CF1 /* Logging */,
); );
productName = "Yattee (macOS)"; productName = "Yattee (macOS)";
productReference = 37D4B0CF2671614900C925CA /* Yattee.app */; productReference = 37D4B0CF2671614900C925CA /* Yattee.app */;
@ -2684,7 +2682,6 @@
packageProductDependencies = ( packageProductDependencies = (
3774127327387E8500423605 /* SwiftyJSON */, 3774127327387E8500423605 /* SwiftyJSON */,
3774127527387EA200423605 /* Siesta */, 3774127527387EA200423605 /* Siesta */,
3774127727387EB000423605 /* Logging */,
3774127927387EBC00423605 /* Defaults */, 3774127927387EBC00423605 /* Defaults */,
3774127B27387EC800423605 /* Alamofire */, 3774127B27387EC800423605 /* Alamofire */,
); );
@ -2709,7 +2706,6 @@
name = "Yattee (tvOS)"; name = "Yattee (tvOS)";
packageProductDependencies = ( packageProductDependencies = (
37D4B19C2671817900C925CA /* SwiftyJSON */, 37D4B19C2671817900C925CA /* SwiftyJSON */,
37B767DF2678C5BF0098BAA8 /* Logging */,
372915E32687E33E00F5A35B /* Defaults */, 372915E32687E33E00F5A35B /* Defaults */,
3797757C268922D100DD52A8 /* Siesta */, 3797757C268922D100DD52A8 /* Siesta */,
37BADCA8269A570B009BE4FB /* Alamofire */, 37BADCA8269A570B009BE4FB /* Alamofire */,
@ -2723,6 +2719,7 @@
3797104C28D3D19100D5F53C /* SDWebImageSwiftUI */, 3797104C28D3D19100D5F53C /* SDWebImageSwiftUI */,
377F9F75294403880043F856 /* Cache */, 377F9F75294403880043F856 /* Cache */,
371AC0B3294D1C290085989E /* CachedAsyncImage */, 371AC0B3294D1C290085989E /* CachedAsyncImage */,
379325D829A265B500181CF1 /* Logging */,
); );
productName = Yattee; productName = Yattee;
productReference = 37D4B158267164AE00C925CA /* Yattee.app */; productReference = 37D4B158267164AE00C925CA /* Yattee.app */;
@ -2817,7 +2814,6 @@
mainGroup = 37D4B0BC2671614700C925CA; mainGroup = 37D4B0BC2671614700C925CA;
packageReferences = ( packageReferences = (
37D4B19B2671817900C925CA /* XCRemoteSwiftPackageReference "SwiftyJSON" */, 37D4B19B2671817900C925CA /* XCRemoteSwiftPackageReference "SwiftyJSON" */,
37B767DE2678C5BF0098BAA8 /* XCRemoteSwiftPackageReference "swift-log" */,
372915E22687E33E00F5A35B /* XCRemoteSwiftPackageReference "Defaults" */, 372915E22687E33E00F5A35B /* XCRemoteSwiftPackageReference "Defaults" */,
3797757B268922D100DD52A8 /* XCRemoteSwiftPackageReference "siesta" */, 3797757B268922D100DD52A8 /* XCRemoteSwiftPackageReference "siesta" */,
37BD07C52698B27B003EBB87 /* XCRemoteSwiftPackageReference "SwiftUI-Introspect" */, 37BD07C52698B27B003EBB87 /* XCRemoteSwiftPackageReference "SwiftUI-Introspect" */,
@ -2834,6 +2830,7 @@
3797104728D3D10600D5F53C /* XCRemoteSwiftPackageReference "SDWebImageSwiftUI" */, 3797104728D3D10600D5F53C /* XCRemoteSwiftPackageReference "SDWebImageSwiftUI" */,
374D11E52943C56300CB4350 /* XCRemoteSwiftPackageReference "Cache" */, 374D11E52943C56300CB4350 /* XCRemoteSwiftPackageReference "Cache" */,
371AC0AA294D1A490085989E /* XCRemoteSwiftPackageReference "swiftui-cached-async-image" */, 371AC0AA294D1A490085989E /* XCRemoteSwiftPackageReference "swiftui-cached-async-image" */,
379325D329A265A300181CF1 /* XCRemoteSwiftPackageReference "swift-log" */,
); );
productRefGroup = 37D4B0CA2671614900C925CA /* Products */; productRefGroup = 37D4B0CA2671614900C925CA /* Products */;
projectDirPath = ""; projectDirPath = "";
@ -3961,8 +3958,12 @@
buildSettings = { buildSettings = {
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
CODE_SIGN_ENTITLEMENTS = "Open in Yattee/Open in Yattee.entitlements"; CODE_SIGN_ENTITLEMENTS = "Open in Yattee/Open in Yattee.entitlements";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_IDENTITY = "Apple Development";
CURRENT_PROJECT_VERSION = 114; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 135;
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 78Z5H3M6RJ;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = "Open in Yattee/Info.plist"; INFOPLIST_FILE = "Open in Yattee/Info.plist";
INFOPLIST_KEY_CFBundleDisplayName = "Open in Yattee"; INFOPLIST_KEY_CFBundleDisplayName = "Open in Yattee";
@ -3977,6 +3978,7 @@
PRODUCT_BUNDLE_IDENTIFIER = "stream.yattee.app.Open-in-Yattee"; PRODUCT_BUNDLE_IDENTIFIER = "stream.yattee.app.Open-in-Yattee";
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match Development stream.yattee.app.Open-in-Yattee";
SDKROOT = iphoneos; SDKROOT = iphoneos;
SKIP_INSTALL = YES; SKIP_INSTALL = YES;
SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_EMIT_LOC_STRINGS = YES;
@ -3991,8 +3993,11 @@
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
CODE_SIGN_ENTITLEMENTS = "Open in Yattee/Open in Yattee.entitlements"; CODE_SIGN_ENTITLEMENTS = "Open in Yattee/Open in Yattee.entitlements";
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
CURRENT_PROJECT_VERSION = 114; CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 135;
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 78Z5H3M6RJ;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = "Open in Yattee/Info.plist"; INFOPLIST_FILE = "Open in Yattee/Info.plist";
INFOPLIST_KEY_CFBundleDisplayName = "Open in Yattee"; INFOPLIST_KEY_CFBundleDisplayName = "Open in Yattee";
@ -4006,6 +4011,8 @@
MARKETING_VERSION = 1.4.3; MARKETING_VERSION = 1.4.3;
PRODUCT_BUNDLE_IDENTIFIER = "stream.yattee.app.Open-in-Yattee"; PRODUCT_BUNDLE_IDENTIFIER = "stream.yattee.app.Open-in-Yattee";
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match AppStore stream.yattee.app.Open-in-Yattee";
SDKROOT = iphoneos; SDKROOT = iphoneos;
SKIP_INSTALL = YES; SKIP_INSTALL = YES;
SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_EMIT_LOC_STRINGS = YES;
@ -4020,11 +4027,11 @@
buildSettings = { buildSettings = {
CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++17";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 79; CURRENT_PROJECT_VERSION = 135;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 14.0; IPHONEOS_DEPLOYMENT_TARGET = 14.0;
MACOSX_DEPLOYMENT_TARGET = 11.0; MACOSX_DEPLOYMENT_TARGET = 11.0;
MARKETING_VERSION = 1.0; MARKETING_VERSION = 1.4.3;
PRODUCT_BUNDLE_IDENTIFIER = "net.arekf.Shared-Tests"; PRODUCT_BUNDLE_IDENTIFIER = "net.arekf.Shared-Tests";
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = auto; SDKROOT = auto;
@ -4040,11 +4047,11 @@
buildSettings = { buildSettings = {
CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++17";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 79; CURRENT_PROJECT_VERSION = 135;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 14.0; IPHONEOS_DEPLOYMENT_TARGET = 14.0;
MACOSX_DEPLOYMENT_TARGET = 11.0; MACOSX_DEPLOYMENT_TARGET = 11.0;
MARKETING_VERSION = 1.0; MARKETING_VERSION = 1.4.3;
PRODUCT_BUNDLE_IDENTIFIER = "net.arekf.Shared-Tests"; PRODUCT_BUNDLE_IDENTIFIER = "net.arekf.Shared-Tests";
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = auto; SDKROOT = auto;
@ -4198,8 +4205,12 @@
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CLANG_CXX_LANGUAGE_STANDARD = "c++14"; CLANG_CXX_LANGUAGE_STANDARD = "c++14";
CODE_SIGN_ENTITLEMENTS = "iOS/Yattee (iOS).entitlements"; CODE_SIGN_ENTITLEMENTS = "iOS/Yattee (iOS).entitlements";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_IDENTITY = "Apple Development";
CURRENT_PROJECT_VERSION = 114; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 135;
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 78Z5H3M6RJ;
ENABLE_PREVIEWS = YES; ENABLE_PREVIEWS = YES;
GCC_PREPROCESSOR_DEFINITIONS = ( GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1", "DEBUG=1",
@ -4231,6 +4242,7 @@
PRODUCT_BUNDLE_IDENTIFIER = stream.yattee.app; PRODUCT_BUNDLE_IDENTIFIER = stream.yattee.app;
PRODUCT_NAME = Yattee; PRODUCT_NAME = Yattee;
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match Development stream.yattee.app";
SDKROOT = iphoneos; SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
SUPPORTS_MACCATALYST = NO; SUPPORTS_MACCATALYST = NO;
@ -4250,8 +4262,11 @@
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = "iOS/Yattee (iOS).entitlements"; CODE_SIGN_ENTITLEMENTS = "iOS/Yattee (iOS).entitlements";
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
CURRENT_PROJECT_VERSION = 114; CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 135;
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 78Z5H3M6RJ;
ENABLE_PREVIEWS = YES; ENABLE_PREVIEWS = YES;
GCC_PREPROCESSOR_DEFINITIONS = "GLES_SILENCE_DEPRECATION=1"; GCC_PREPROCESSOR_DEFINITIONS = "GLES_SILENCE_DEPRECATION=1";
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
@ -4279,6 +4294,7 @@
PRODUCT_BUNDLE_IDENTIFIER = stream.yattee.app; PRODUCT_BUNDLE_IDENTIFIER = stream.yattee.app;
PRODUCT_NAME = Yattee; PRODUCT_NAME = Yattee;
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match AppStore stream.yattee.app";
SDKROOT = iphoneos; SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
SUPPORTS_MACCATALYST = NO; SUPPORTS_MACCATALYST = NO;
@ -4299,10 +4315,13 @@
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES; ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
CODE_SIGN_ENTITLEMENTS = Shared/Yattee.entitlements; CODE_SIGN_ENTITLEMENTS = Shared/Yattee.entitlements;
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic; "CODE_SIGN_IDENTITY[sdk=macosx*]" = "3rd Party Mac Developer Application";
CODE_SIGN_STYLE = Manual;
COMBINE_HIDPI_IMAGES = YES; COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 114; CURRENT_PROJECT_VERSION = 135;
DEAD_CODE_STRIPPING = YES; DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=macosx*]" = 78Z5H3M6RJ;
ENABLE_APP_SANDBOX = YES; ENABLE_APP_SANDBOX = YES;
ENABLE_HARDENED_RUNTIME = YES; ENABLE_HARDENED_RUNTIME = YES;
ENABLE_PREVIEWS = YES; ENABLE_PREVIEWS = YES;
@ -4324,6 +4343,8 @@
OTHER_LDFLAGS = "-Wl,-no_compact_unwind"; OTHER_LDFLAGS = "-Wl,-no_compact_unwind";
PRODUCT_BUNDLE_IDENTIFIER = stream.yattee.app; PRODUCT_BUNDLE_IDENTIFIER = stream.yattee.app;
PRODUCT_NAME = Yattee; PRODUCT_NAME = Yattee;
PROVISIONING_PROFILE_SPECIFIER = "";
"PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = "match AppStore stream.yattee.app macos";
SDKROOT = macosx; SDKROOT = macosx;
SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_OBJC_BRIDGING_HEADER = macOS/BridgingHeader.h; SWIFT_OBJC_BRIDGING_HEADER = macOS/BridgingHeader.h;
@ -4339,10 +4360,13 @@
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES; ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
CODE_SIGN_ENTITLEMENTS = Shared/Yattee.entitlements; CODE_SIGN_ENTITLEMENTS = Shared/Yattee.entitlements;
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic; "CODE_SIGN_IDENTITY[sdk=macosx*]" = "3rd Party Mac Developer Application";
CODE_SIGN_STYLE = Manual;
COMBINE_HIDPI_IMAGES = YES; COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 114; CURRENT_PROJECT_VERSION = 135;
DEAD_CODE_STRIPPING = YES; DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=macosx*]" = 78Z5H3M6RJ;
ENABLE_APP_SANDBOX = YES; ENABLE_APP_SANDBOX = YES;
ENABLE_HARDENED_RUNTIME = YES; ENABLE_HARDENED_RUNTIME = YES;
ENABLE_PREVIEWS = YES; ENABLE_PREVIEWS = YES;
@ -4364,6 +4388,8 @@
OTHER_LDFLAGS = "-Wl,-no_compact_unwind"; OTHER_LDFLAGS = "-Wl,-no_compact_unwind";
PRODUCT_BUNDLE_IDENTIFIER = stream.yattee.app; PRODUCT_BUNDLE_IDENTIFIER = stream.yattee.app;
PRODUCT_NAME = Yattee; PRODUCT_NAME = Yattee;
PROVISIONING_PROFILE_SPECIFIER = "";
"PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = "match AppStore stream.yattee.app macos";
SDKROOT = macosx; SDKROOT = macosx;
SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_OBJC_BRIDGING_HEADER = macOS/BridgingHeader.h; SWIFT_OBJC_BRIDGING_HEADER = macOS/BridgingHeader.h;
@ -4376,7 +4402,7 @@
buildSettings = { buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 79; CURRENT_PROJECT_VERSION = 135;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 15.0; IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
@ -4384,7 +4410,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@loader_path/Frameworks", "@loader_path/Frameworks",
); );
MARKETING_VERSION = 1.4; MARKETING_VERSION = 1.4.3;
PRODUCT_BUNDLE_IDENTIFIER = "stream.yattee.Tests-iOS"; PRODUCT_BUNDLE_IDENTIFIER = "stream.yattee.Tests-iOS";
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = iphoneos; SDKROOT = iphoneos;
@ -4400,7 +4426,7 @@
buildSettings = { buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 79; CURRENT_PROJECT_VERSION = 135;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 15.0; IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
@ -4408,7 +4434,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@loader_path/Frameworks", "@loader_path/Frameworks",
); );
MARKETING_VERSION = 1.4; MARKETING_VERSION = 1.4.3;
PRODUCT_BUNDLE_IDENTIFIER = "stream.yattee.Tests-iOS"; PRODUCT_BUNDLE_IDENTIFIER = "stream.yattee.Tests-iOS";
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = iphoneos; SDKROOT = iphoneos;
@ -4426,7 +4452,7 @@
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES; COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 79; CURRENT_PROJECT_VERSION = 135;
DEAD_CODE_STRIPPING = YES; DEAD_CODE_STRIPPING = YES;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
@ -4435,7 +4461,7 @@
"@loader_path/../Frameworks", "@loader_path/../Frameworks",
); );
MACOSX_DEPLOYMENT_TARGET = 12.0; MACOSX_DEPLOYMENT_TARGET = 12.0;
MARKETING_VERSION = 1.4; MARKETING_VERSION = 1.4.3;
PRODUCT_BUNDLE_IDENTIFIER = "stream.yattee.Tests-macOS"; PRODUCT_BUNDLE_IDENTIFIER = "stream.yattee.Tests-macOS";
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = macosx; SDKROOT = macosx;
@ -4451,7 +4477,7 @@
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES; COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 79; CURRENT_PROJECT_VERSION = 135;
DEAD_CODE_STRIPPING = YES; DEAD_CODE_STRIPPING = YES;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
@ -4460,7 +4486,7 @@
"@loader_path/../Frameworks", "@loader_path/../Frameworks",
); );
MACOSX_DEPLOYMENT_TARGET = 12.0; MACOSX_DEPLOYMENT_TARGET = 12.0;
MARKETING_VERSION = 1.4; MARKETING_VERSION = 1.4.3;
PRODUCT_BUNDLE_IDENTIFIER = "stream.yattee.Tests-macOS"; PRODUCT_BUNDLE_IDENTIFIER = "stream.yattee.Tests-macOS";
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = macosx; SDKROOT = macosx;
@ -4475,9 +4501,12 @@
buildSettings = { buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image";
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_STYLE = Automatic; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "iPhone Developer";
CURRENT_PROJECT_VERSION = 114; CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 135;
DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_ASSET_PATHS = "";
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=appletvos*]" = 78Z5H3M6RJ;
ENABLE_PREVIEWS = YES; ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = tvOS/Info.plist; INFOPLIST_FILE = tvOS/Info.plist;
@ -4499,6 +4528,8 @@
); );
PRODUCT_BUNDLE_IDENTIFIER = stream.yattee.app; PRODUCT_BUNDLE_IDENTIFIER = stream.yattee.app;
PRODUCT_NAME = Yattee; PRODUCT_NAME = Yattee;
PROVISIONING_PROFILE_SPECIFIER = "";
"PROVISIONING_PROFILE_SPECIFIER[sdk=appletvos*]" = "match Development stream.yattee.app tvos";
SDKROOT = appletvos; SDKROOT = appletvos;
SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_OBJC_BRIDGING_HEADER = tvOS/BridgingHeader.h; SWIFT_OBJC_BRIDGING_HEADER = tvOS/BridgingHeader.h;
@ -4513,9 +4544,12 @@
buildSettings = { buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image";
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_STYLE = Automatic; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "iPhone Distribution";
CURRENT_PROJECT_VERSION = 114; CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 135;
DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_ASSET_PATHS = "";
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=appletvos*]" = 78Z5H3M6RJ;
ENABLE_PREVIEWS = YES; ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = tvOS/Info.plist; INFOPLIST_FILE = tvOS/Info.plist;
@ -4537,6 +4571,8 @@
); );
PRODUCT_BUNDLE_IDENTIFIER = stream.yattee.app; PRODUCT_BUNDLE_IDENTIFIER = stream.yattee.app;
PRODUCT_NAME = Yattee; PRODUCT_NAME = Yattee;
PROVISIONING_PROFILE_SPECIFIER = "";
"PROVISIONING_PROFILE_SPECIFIER[sdk=appletvos*]" = "match AppStore stream.yattee.app tvos";
SDKROOT = appletvos; SDKROOT = appletvos;
SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_OBJC_BRIDGING_HEADER = tvOS/BridgingHeader.h; SWIFT_OBJC_BRIDGING_HEADER = tvOS/BridgingHeader.h;
@ -4552,14 +4588,14 @@
buildSettings = { buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 79; CURRENT_PROJECT_VERSION = 135;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@loader_path/Frameworks", "@loader_path/Frameworks",
); );
MARKETING_VERSION = 1.4; MARKETING_VERSION = 1.4.3;
PRODUCT_BUNDLE_IDENTIFIER = stream.yattee.YatteeUITests; PRODUCT_BUNDLE_IDENTIFIER = stream.yattee.YatteeUITests;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = appletvos; SDKROOT = appletvos;
@ -4576,14 +4612,14 @@
buildSettings = { buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 79; CURRENT_PROJECT_VERSION = 135;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@loader_path/Frameworks", "@loader_path/Frameworks",
); );
MARKETING_VERSION = 1.4; MARKETING_VERSION = 1.4.3;
PRODUCT_BUNDLE_IDENTIFIER = stream.yattee.YatteeUITests; PRODUCT_BUNDLE_IDENTIFIER = stream.yattee.YatteeUITests;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = appletvos; SDKROOT = appletvos;
@ -4794,6 +4830,14 @@
kind = branch; kind = branch;
}; };
}; };
379325D329A265A300181CF1 /* XCRemoteSwiftPackageReference "swift-log" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/yattee/swift-log.git";
requirement = {
branch = main;
kind = branch;
};
};
3797104728D3D10600D5F53C /* XCRemoteSwiftPackageReference "SDWebImageSwiftUI" */ = { 3797104728D3D10600D5F53C /* XCRemoteSwiftPackageReference "SDWebImageSwiftUI" */ = {
isa = XCRemoteSwiftPackageReference; isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/SDWebImage/SDWebImageSwiftUI.git"; repositoryURL = "https://github.com/SDWebImage/SDWebImageSwiftUI.git";
@ -4826,14 +4870,6 @@
minimumVersion = 2.0.0; minimumVersion = 2.0.0;
}; };
}; };
37B767DE2678C5BF0098BAA8 /* XCRemoteSwiftPackageReference "swift-log" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/apple/swift-log.git";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 1.0.0;
};
};
37BADCA32699FB72009BE4FB /* XCRemoteSwiftPackageReference "Alamofire" */ = { 37BADCA32699FB72009BE4FB /* XCRemoteSwiftPackageReference "Alamofire" */ = {
isa = XCRemoteSwiftPackageReference; isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/Alamofire/Alamofire.git"; repositoryURL = "https://github.com/Alamofire/Alamofire.git";
@ -4913,11 +4949,6 @@
package = 37FB285227220D8400A57617 /* XCRemoteSwiftPackageReference "SDWebImagePINPlugin" */; package = 37FB285227220D8400A57617 /* XCRemoteSwiftPackageReference "SDWebImagePINPlugin" */;
productName = SDWebImagePINPlugin; productName = SDWebImagePINPlugin;
}; };
3703206327D2BB30007A0CB8 /* Logging */ = {
isa = XCSwiftPackageProductDependency;
package = 37B767DE2678C5BF0098BAA8 /* XCRemoteSwiftPackageReference "swift-log" */;
productName = Logging;
};
3703206527D2BB35007A0CB8 /* PINCache */ = { 3703206527D2BB35007A0CB8 /* PINCache */ = {
isa = XCSwiftPackageProductDependency; isa = XCSwiftPackageProductDependency;
package = 3765917827237D07009F956E /* XCRemoteSwiftPackageReference "PINCache" */; package = 3765917827237D07009F956E /* XCRemoteSwiftPackageReference "PINCache" */;
@ -4973,6 +5004,11 @@
package = 375B8AAF28B57F4200397B31 /* XCRemoteSwiftPackageReference "KeychainAccess" */; package = 375B8AAF28B57F4200397B31 /* XCRemoteSwiftPackageReference "KeychainAccess" */;
productName = KeychainAccess; productName = KeychainAccess;
}; };
3735C4E629A2D3D70051D251 /* Logging */ = {
isa = XCSwiftPackageProductDependency;
package = 379325D329A265A300181CF1 /* XCRemoteSwiftPackageReference "swift-log" */;
productName = Logging;
};
374D11E62943C56300CB4350 /* Cache */ = { 374D11E62943C56300CB4350 /* Cache */ = {
isa = XCSwiftPackageProductDependency; isa = XCSwiftPackageProductDependency;
package = 374D11E52943C56300CB4350 /* XCRemoteSwiftPackageReference "Cache" */; package = 374D11E52943C56300CB4350 /* XCRemoteSwiftPackageReference "Cache" */;
@ -5008,11 +5044,6 @@
package = 3797757B268922D100DD52A8 /* XCRemoteSwiftPackageReference "siesta" */; package = 3797757B268922D100DD52A8 /* XCRemoteSwiftPackageReference "siesta" */;
productName = Siesta; productName = Siesta;
}; };
3774127727387EB000423605 /* Logging */ = {
isa = XCSwiftPackageProductDependency;
package = 37B767DE2678C5BF0098BAA8 /* XCRemoteSwiftPackageReference "swift-log" */;
productName = Logging;
};
3774127927387EBC00423605 /* Defaults */ = { 3774127927387EBC00423605 /* Defaults */ = {
isa = XCSwiftPackageProductDependency; isa = XCSwiftPackageProductDependency;
package = 372915E22687E33E00F5A35B /* XCRemoteSwiftPackageReference "Defaults" */; package = 372915E22687E33E00F5A35B /* XCRemoteSwiftPackageReference "Defaults" */;
@ -5048,9 +5079,19 @@
package = 37D4B19B2671817900C925CA /* XCRemoteSwiftPackageReference "SwiftyJSON" */; package = 37D4B19B2671817900C925CA /* XCRemoteSwiftPackageReference "SwiftyJSON" */;
productName = SwiftyJSON; productName = SwiftyJSON;
}; };
377FC7DA267A080300A6BBAF /* Logging */ = { 379325D429A265A300181CF1 /* Logging */ = {
isa = XCSwiftPackageProductDependency; isa = XCSwiftPackageProductDependency;
package = 37B767DE2678C5BF0098BAA8 /* XCRemoteSwiftPackageReference "swift-log" */; package = 379325D329A265A300181CF1 /* XCRemoteSwiftPackageReference "swift-log" */;
productName = Logging;
};
379325D629A265AE00181CF1 /* Logging */ = {
isa = XCSwiftPackageProductDependency;
package = 379325D329A265A300181CF1 /* XCRemoteSwiftPackageReference "swift-log" */;
productName = Logging;
};
379325D829A265B500181CF1 /* Logging */ = {
isa = XCSwiftPackageProductDependency;
package = 379325D329A265A300181CF1 /* XCRemoteSwiftPackageReference "swift-log" */;
productName = Logging; productName = Logging;
}; };
3797104828D3D10600D5F53C /* SDWebImageSwiftUI */ = { 3797104828D3D10600D5F53C /* SDWebImageSwiftUI */ = {
@ -5088,11 +5129,6 @@
package = 37A5DBC2285DFF5400CA4DD1 /* XCRemoteSwiftPackageReference "SwiftUIPager" */; package = 37A5DBC2285DFF5400CA4DD1 /* XCRemoteSwiftPackageReference "SwiftUIPager" */;
productName = SwiftUIPager; productName = SwiftUIPager;
}; };
37B767DF2678C5BF0098BAA8 /* Logging */ = {
isa = XCSwiftPackageProductDependency;
package = 37B767DE2678C5BF0098BAA8 /* XCRemoteSwiftPackageReference "swift-log" */;
productName = Logging;
};
37BADCA42699FB72009BE4FB /* Alamofire */ = { 37BADCA42699FB72009BE4FB /* Alamofire */ = {
isa = XCSwiftPackageProductDependency; isa = XCSwiftPackageProductDependency;
package = 37BADCA32699FB72009BE4FB /* XCRemoteSwiftPackageReference "Alamofire" */; package = 37BADCA32699FB72009BE4FB /* XCRemoteSwiftPackageReference "Alamofire" */;
@ -5138,11 +5174,6 @@
package = 37D4B19B2671817900C925CA /* XCRemoteSwiftPackageReference "SwiftyJSON" */; package = 37D4B19B2671817900C925CA /* XCRemoteSwiftPackageReference "SwiftyJSON" */;
productName = SwiftyJSON; productName = SwiftyJSON;
}; };
37DA0F1F291DD6B8009B38CF /* Logging */ = {
isa = XCSwiftPackageProductDependency;
package = 37B767DE2678C5BF0098BAA8 /* XCRemoteSwiftPackageReference "swift-log" */;
productName = Logging;
};
37E80F42287B7AAF00561799 /* SwiftUIPager */ = { 37E80F42287B7AAF00561799 /* SwiftUIPager */ = {
isa = XCSwiftPackageProductDependency; isa = XCSwiftPackageProductDependency;
package = 37A5DBC2285DFF5400CA4DD1 /* XCRemoteSwiftPackageReference "SwiftUIPager" */; package = 37A5DBC2285DFF5400CA4DD1 /* XCRemoteSwiftPackageReference "SwiftUIPager" */;

View File

@ -14,8 +14,8 @@
"kind" : "remoteSourceControl", "kind" : "remoteSourceControl",
"location" : "https://github.com/Alamofire/Alamofire.git", "location" : "https://github.com/Alamofire/Alamofire.git",
"state" : { "state" : {
"revision" : "8dd85aee02e39dd280c75eef88ffdb86eed4b07b", "revision" : "78424be314842833c04bc3bef5b72e85fff99204",
"version" : "5.6.2" "version" : "5.6.4"
} }
}, },
{ {
@ -42,7 +42,7 @@
"location" : "https://github.com/kishikawakatsumi/KeychainAccess.git", "location" : "https://github.com/kishikawakatsumi/KeychainAccess.git",
"state" : { "state" : {
"branch" : "master", "branch" : "master",
"revision" : "6299daec1d74be12164fec090faf9ed14d0da9d6" "revision" : "ecb18d8ce4d88277cc4fb103973352d91e18c535"
} }
}, },
{ {
@ -60,7 +60,7 @@
"location" : "https://github.com/pinterest/PINCache", "location" : "https://github.com/pinterest/PINCache",
"state" : { "state" : {
"branch" : "master", "branch" : "master",
"revision" : "9ca06045b5aff12ee8c0ef5880aa8469c4896144" "revision" : "97a5dbd3f1e69605bcd4103fdb32ca855887c47a"
} }
}, },
{ {
@ -68,8 +68,8 @@
"kind" : "remoteSourceControl", "kind" : "remoteSourceControl",
"location" : "https://github.com/pinterest/PINOperation.git", "location" : "https://github.com/pinterest/PINOperation.git",
"state" : { "state" : {
"revision" : "44d8ca154a4e75a028a5548c31ff3a53b90cef15", "revision" : "40504c156a68b20f98f7ddc73a115cbb7893be25",
"version" : "1.2.1" "version" : "1.2.2"
} }
}, },
{ {
@ -96,7 +96,7 @@
"location" : "https://github.com/SDWebImage/SDWebImage", "location" : "https://github.com/SDWebImage/SDWebImage",
"state" : { "state" : {
"branch" : "master", "branch" : "master",
"revision" : "484bc774e1091f622c4856e576ff957b29403676" "revision" : "554e05a4415fe20add53531c21e593c403685c3d"
} }
}, },
{ {
@ -113,8 +113,8 @@
"kind" : "remoteSourceControl", "kind" : "remoteSourceControl",
"location" : "https://github.com/SDWebImage/SDWebImageSwiftUI.git", "location" : "https://github.com/SDWebImage/SDWebImageSwiftUI.git",
"state" : { "state" : {
"revision" : "ed288667c909c89127ab1b690113a3e397af3098", "revision" : "61fefe9c284fd41ddef77d02749e88f00c305196",
"version" : "2.2.1" "version" : "2.2.2"
} }
}, },
{ {
@ -122,8 +122,8 @@
"kind" : "remoteSourceControl", "kind" : "remoteSourceControl",
"location" : "https://github.com/SDWebImage/SDWebImageWebPCoder.git", "location" : "https://github.com/SDWebImage/SDWebImageWebPCoder.git",
"state" : { "state" : {
"revision" : "4416805045174938b11edb69a86e9f7dd0699952", "revision" : "e6cd1a9d2c976c14a52a040062646b535d0a6337",
"version" : "0.9.1" "version" : "0.10.1"
} }
}, },
{ {
@ -138,10 +138,10 @@
{ {
"identity" : "swift-log", "identity" : "swift-log",
"kind" : "remoteSourceControl", "kind" : "remoteSourceControl",
"location" : "https://github.com/apple/swift-log.git", "location" : "https://github.com/yattee/swift-log.git",
"state" : { "state" : {
"revision" : "6fe203dc33195667ce1759bf0182975e4653ba1c", "branch" : "main",
"version" : "1.4.4" "revision" : "3f3dc1390a2f116894887c352792dc8d5fa9e875"
} }
}, },
{ {
@ -158,8 +158,8 @@
"kind" : "remoteSourceControl", "kind" : "remoteSourceControl",
"location" : "https://github.com/siteline/SwiftUI-Introspect.git", "location" : "https://github.com/siteline/SwiftUI-Introspect.git",
"state" : { "state" : {
"revision" : "f2616860a41f9d9932da412a8978fec79c06fe24", "revision" : "c18951c747ab62af7c15e17a81bd37d4fd5a9979",
"version" : "0.1.4" "version" : "0.2.3"
} }
}, },
{ {

20
fastlane/.env.sample Normal file
View File

@ -0,0 +1,20 @@
CERTIFICATES_GIT_URL="git@github.com:developer/yattee-certificates.git"
GIT_AUTHORIZATION = "" # For certificates repo, https://github.com/settings/tokens/new (repo scope)
FASTLANE_USER="developer@mail.com" # Apple ID
FASTLANE_PASSWORD="" # Apple ID Password
ITC_TEAM_ID="" # https://sarunw.com/posts/fastlane-find-team-id/
TEAM_ID="" # Developer ID
DEVELOPER_NAME="" # Developer Name (Developer ID)
# Developer Key
DEVELOPER_KEY_ID=""
DEVELOPER_KEY_ISSUER_ID=""
DEVELOPER_KEY_CONTENT=""
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD="" # Not needed for most users
TEMP_KEYCHAIN_USER = "keychain-user"
TEMP_KEYCHAIN_PASSWORD = "keychain-password"
DEVELOPER_APP_IDENTIFIER = "stream.yattee.app"
# TestFlight
TESTFLIGHT_EXTERNAL_GROUPS=Testers,"Other Testers" # Comma separated list of external groups

View File

@ -1,5 +1,5 @@
app_identifier("stream.yattee.app") # The bundle identifier of your app app_identifier(ENV['DEVELOPER_APP_IDENTIFIER']) # The bundle identifier of your app
apple_id(ENV['APPLE_ID']) # Your Apple email address apple_id(ENV['FASTLANE_USER']) # Your Apple email address
itc_team_id(ENV['ITC_TEAM_ID']) # App Store Connect Team ID itc_team_id(ENV['ITC_TEAM_ID']) # App Store Connect Team ID
team_id(ENV['TEAM_ID']) # Developer Portal Team ID team_id(ENV['TEAM_ID']) # Developer Portal Team ID

View File

@ -16,6 +16,32 @@
DEVELOPER_KEY_ID = ENV['DEVELOPER_KEY_ID'] DEVELOPER_KEY_ID = ENV['DEVELOPER_KEY_ID']
DEVELOPER_KEY_ISSUER_ID = ENV['DEVELOPER_KEY_ISSUER_ID'] DEVELOPER_KEY_ISSUER_ID = ENV['DEVELOPER_KEY_ISSUER_ID']
DEVELOPER_KEY_CONTENT = ENV['DEVELOPER_KEY_CONTENT'] DEVELOPER_KEY_CONTENT = ENV['DEVELOPER_KEY_CONTENT']
TEAM_ID = ENV['TEAM_ID']
TEMP_KEYCHAIN_USER = ENV['TEMP_KEYCHAIN_USER']
TEMP_KEYCHAIN_PASSWORD = ENV['TEMP_KEYCHAIN_PASSWORD']
DEVELOPER_APP_IDENTIFIER = ENV['DEVELOPER_APP_IDENTIFIER']
GIT_AUTHORIZATION = ENV['GIT_AUTHORIZATION']
TESTFLIGHT_EXTERNAL_GROUPS = ENV['TESTFLIGHT_EXTERNAL_GROUPS']
def delete_temp_keychain(name)
delete_keychain(
name: name
) if File.exist? File.expand_path("~/Library/Keychains/#{name}-db")
end
def create_temp_keychain(name, password)
create_keychain(
name: name,
password: password,
unlock: false,
timeout: 0
)
end
def ensure_temp_keychain(name, password)
delete_temp_keychain(name)
create_temp_keychain(name, password)
end
add_extra_platforms(platforms: [:tvos]) add_extra_platforms(platforms: [:tvos])
@ -23,10 +49,28 @@ before_all do
update_fastlane update_fastlane
end end
desc "Bump build number and commit"
lane :bump_build do
increment_build_number
commit_version_bump(
message: "Bump build number to #{get_build_number}"
)
end
desc "Bump version number and commit"
lane :bump_version do
increment_version_number
commit_version_bump(
message: "Bump version number to #{get_version_number}"
)
end
platform :ios do platform :ios do
desc "Push a new beta build to TestFlight" desc "Push a new beta build to TestFlight"
lane :beta do lane :beta do
app_store_connect_api_key( ensure_temp_keychain(TEMP_KEYCHAIN_USER, TEMP_KEYCHAIN_PASSWORD)
api_key = app_store_connect_api_key(
key_id: DEVELOPER_KEY_ID, key_id: DEVELOPER_KEY_ID,
issuer_id: DEVELOPER_KEY_ISSUER_ID, issuer_id: DEVELOPER_KEY_ISSUER_ID,
key_content: DEVELOPER_KEY_CONTENT key_content: DEVELOPER_KEY_CONTENT
@ -38,16 +82,37 @@ platform :ios do
target: "Yattee (iOS)" target: "Yattee (iOS)"
) )
match(
type: 'appstore',
platform: 'ios',
app_identifier: ["#{DEVELOPER_APP_IDENTIFIER}", "#{DEVELOPER_APP_IDENTIFIER}.Open-in-Yattee"],
git_basic_authorization: Base64.strict_encode64(GIT_AUTHORIZATION),
readonly: true,
keychain_name: TEMP_KEYCHAIN_USER,
keychain_password: TEMP_KEYCHAIN_PASSWORD,
api_key: api_key
)
build_app( build_app(
scheme: "Yattee (iOS)", scheme: "Yattee (iOS)",
output_directory: "fastlane/builds/#{version}-#{build}/iOS", output_directory: "fastlane/builds/#{version}-#{build}/iOS",
output_name: "Yattee-#{version}-iOS.ipa", output_name: "Yattee-#{version}-iOS.ipa",
xcargs: "-allowProvisioningUpdates" export_options: {
provisioningProfiles: {
"#{DEVELOPER_APP_IDENTIFIER}" => "match AppStore #{DEVELOPER_APP_IDENTIFIER}",
"#{DEVELOPER_APP_IDENTIFIER}.Open-in-Yattee" => "match AppStore #{DEVELOPER_APP_IDENTIFIER}.Open-in-Yattee"
}
}
) )
altool( changelog = File.read('../CHANGELOG.md')
altool_app_type: "ios",
altool_ipa_path: lane_context[SharedValues::IPA_OUTPUT_PATH] upload_to_testflight(
api_key: api_key,
ipa: lane_context[SharedValues::IPA_OUTPUT_PATH],
distribute_external: true,
groups: TESTFLIGHT_EXTERNAL_GROUPS,
changelog: changelog
) )
end end
end end
@ -55,7 +120,9 @@ end
platform :tvos do platform :tvos do
desc "Push a new beta build to TestFlight" desc "Push a new beta build to TestFlight"
lane :beta do lane :beta do
app_store_connect_api_key( ensure_temp_keychain(TEMP_KEYCHAIN_USER, TEMP_KEYCHAIN_PASSWORD)
api_key = app_store_connect_api_key(
key_id: DEVELOPER_KEY_ID, key_id: DEVELOPER_KEY_ID,
issuer_id: DEVELOPER_KEY_ISSUER_ID, issuer_id: DEVELOPER_KEY_ISSUER_ID,
key_content: DEVELOPER_KEY_CONTENT key_content: DEVELOPER_KEY_CONTENT
@ -67,16 +134,37 @@ platform :tvos do
target: "Yattee (tvOS)" target: "Yattee (tvOS)"
) )
match(
type: 'appstore',
platform: 'tvos',
app_identifier: "#{DEVELOPER_APP_IDENTIFIER}",
git_basic_authorization: Base64.strict_encode64(GIT_AUTHORIZATION),
readonly: true,
keychain_name: TEMP_KEYCHAIN_USER,
keychain_password: TEMP_KEYCHAIN_PASSWORD,
api_key: api_key
)
build_app( build_app(
scheme: "Yattee (tvOS)", scheme: "Yattee (tvOS)",
output_directory: "fastlane/builds/#{version}-#{build}/tvOS", output_directory: "fastlane/builds/#{version}-#{build}/tvOS",
output_name: "Yattee-#{version}-tvOS.ipa", output_name: "Yattee-#{version}-tvOS.ipa",
xcargs: "-allowProvisioningUpdates" export_method: "app-store",
export_options: {
provisioningProfiles: {
"#{DEVELOPER_APP_IDENTIFIER}" => "match AppStore #{DEVELOPER_APP_IDENTIFIER} tvos"
}
}
) )
altool( changelog = File.read('../CHANGELOG.md')
altool_app_type: "tvos",
altool_ipa_path: lane_context[SharedValues::IPA_OUTPUT_PATH] upload_to_testflight(
api_key: api_key,
ipa: lane_context[SharedValues::IPA_OUTPUT_PATH],
distribute_external: true,
groups: TESTFLIGHT_EXTERNAL_GROUPS,
changelog: changelog
) )
end end
end end
@ -84,7 +172,9 @@ end
platform :mac do platform :mac do
desc "Push a new beta build to TestFlight" desc "Push a new beta build to TestFlight"
lane :beta do lane :beta do
app_store_connect_api_key( ensure_temp_keychain(TEMP_KEYCHAIN_USER, TEMP_KEYCHAIN_PASSWORD)
api_key = app_store_connect_api_key(
key_id: DEVELOPER_KEY_ID, key_id: DEVELOPER_KEY_ID,
issuer_id: DEVELOPER_KEY_ISSUER_ID, issuer_id: DEVELOPER_KEY_ISSUER_ID,
key_content: DEVELOPER_KEY_CONTENT key_content: DEVELOPER_KEY_CONTENT
@ -96,16 +186,84 @@ platform :mac do
target: "Yattee (macOS)" target: "Yattee (macOS)"
) )
match(
type: 'appstore',
platform: 'macos',
additional_cert_types: ['mac_installer_distribution'],
app_identifier: "#{DEVELOPER_APP_IDENTIFIER}",
git_basic_authorization: Base64.strict_encode64(GIT_AUTHORIZATION),
readonly: true,
keychain_name: TEMP_KEYCHAIN_USER,
keychain_password: TEMP_KEYCHAIN_PASSWORD,
api_key: api_key
)
build_app( build_app(
scheme: "Yattee (macOS)", scheme: "Yattee (macOS)",
output_directory: "fastlane/builds/#{version}-#{build}/macOS", output_directory: "fastlane/builds/#{version}-#{build}/macOS",
output_name: "Yattee-#{version}-macOS.app", output_name: "Yattee-#{version}-macOS.app",
xcargs: "-allowProvisioningUpdates" export_method: "app-store",
export_options: {
provisioningProfiles: {
"#{DEVELOPER_APP_IDENTIFIER}" => "match AppStore #{DEVELOPER_APP_IDENTIFIER} macos"
}
}
) )
altool( changelog = File.read('../CHANGELOG.md')
altool_app_type: "macos",
altool_ipa_path: lane_context[SharedValues::PKG_OUTPUT_PATH] upload_to_testflight(
api_key: api_key,
pkg: lane_context[SharedValues::PKG_OUTPUT_PATH],
distribute_external: true,
groups: TESTFLIGHT_EXTERNAL_GROUPS,
changelog: changelog
)
end
desc "Build for Developer ID distribution and notarize"
lane :build_and_notarize do
ensure_temp_keychain(TEMP_KEYCHAIN_USER, TEMP_KEYCHAIN_PASSWORD)
api_key = app_store_connect_api_key(
key_id: DEVELOPER_KEY_ID,
issuer_id: DEVELOPER_KEY_ISSUER_ID,
key_content: DEVELOPER_KEY_CONTENT
)
build = get_build_number(xcodeproj: "Yattee.xcodeproj")
version = get_version_number(
xcodeproj: "Yattee.xcodeproj",
target: "Yattee (macOS)"
)
match(
type: 'developer_id',
platform: 'macos',
app_identifier: "#{DEVELOPER_APP_IDENTIFIER}",
git_basic_authorization: Base64.strict_encode64(GIT_AUTHORIZATION),
readonly: true,
keychain_name: TEMP_KEYCHAIN_USER,
keychain_password: TEMP_KEYCHAIN_PASSWORD,
api_key: api_key
)
build_mac_app(
scheme: "Yattee (macOS)",
output_directory: "fastlane/builds/#{version}-#{build}/macOS",
output_name: "Yattee",
export_method: "developer-id",
export_options: {
provisioningProfiles: {
"#{DEVELOPER_APP_IDENTIFIER}" => "match Direct #{DEVELOPER_APP_IDENTIFIER} macos"
}
}
)
notarize(
package: "fastlane/builds/#{version}-#{build}/macOS/Yattee.app",
bundle_id: "#{DEVELOPER_APP_IDENTIFIER}",
api_key: api_key,
) )
end end
end end

13
fastlane/Matchfile Normal file
View File

@ -0,0 +1,13 @@
git_url(ENV['CERTIFICATES_GIT_URL'])
storage_mode("git")
type("appstore") # The default type, can be: appstore, adhoc, enterprise or development
# app_identifier(["tools.fastlane.app", "tools.fastlane.app2"])
# username("user@fastlane.tools") # Your Apple Developer Portal username
# For all available options run `fastlane match --help`
# Remove the # in the beginning of the line to enable the other options
# The docs are available on https://docs.fastlane.tools/actions/match

View File

@ -1,5 +1,3 @@
# Autogenerated by fastlane # Autogenerated by fastlane
# #
# Ensure this file is checked in to source control! # Ensure this file is checked in to source control!
gem 'fastlane-plugin-altool', git: "git@github.com:yattee/fastlane-plugin-altool.git"

View File

@ -13,6 +13,25 @@ For _fastlane_ installation instructions, see [Installing _fastlane_](https://do
# Available Actions # Available Actions
### bump_build
```sh
[bundle exec] fastlane bump_build
```
Bump build number and commit
### bump_version
```sh
[bundle exec] fastlane bump_version
```
Bump version number and commit
----
## iOS ## iOS
### ios beta ### ios beta
@ -49,6 +68,14 @@ Push a new beta build to TestFlight
Push a new beta build to TestFlight Push a new beta build to TestFlight
### mac build_and_notarize
```sh
[bundle exec] fastlane mac build_and_notarize
```
Build for Developer ID distribution and notarize
---- ----
This README.md is auto-generated and will be re-generated every time [_fastlane_](https://fastlane.tools) is run. This README.md is auto-generated and will be re-generated every time [_fastlane_](https://fastlane.tools) is run.