Skip to content

Commit 47eeab6

Browse files
authored
[#68] 자동 배포를 위한 환경 준비
1 parent a33d16e commit 47eeab6

5 files changed

Lines changed: 135 additions & 17 deletions

File tree

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<key>provisioningProfiles</key>
1212
<dict>
1313
<key>com.yourssu.YDS-Storybook</key>
14-
<string>GithubActions_Distribution</string>
14+
<string>GithubActions_Dist</string>
1515
</dict>
1616
<key>signingCertificate</key>
1717
<string>Apple Distribution</string>
7.56 KB
Binary file not shown.
-7.63 KB
Binary file not shown.

.github/workflows/main.yml

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,24 @@
11
name: Archive and export
22
on:
33
release:
4-
types: [published, created, edited]
4+
types: [published, edited]
55
jobs:
66
build:
77
runs-on: [macos-latest]
88
env:
99
XC_VERSION: ${{ '12.4' }}
1010
XC_PROJECT: ${{ 'YDS.xcodeproj' }}
1111
XC_SCHEME: ${{ 'YDS-Storybook' }}
12+
XC_CONFIGURATION: ${{ 'Automation' }}
1213
XC_ARCHIVE_PATH: ${{ './YDS.xcarichive' }}
1314
XC_EXPORT_PATH: ${{ './artifacts' }}
1415
KEYCHAIN: ${{ 'temporary.keychain' }}
1516

1617
DECRYPTED_CERTS_FILE_PATH: ${{ '.github/secrets/yourssuCertification.p12' }}
1718
ENCRYPTED_CERTS_FILE_PATH: ${{ '.github/secrets/yourssuCertification.p12.gpg' }}
1819

19-
DECRYPTED_PROVISION_FILE_PATH: ${{ '.github/secrets/GithubActions_Distribution.mobileprovision' }}
20-
ENCRYPTED_PROVISION_FILE_PATH: ${{ '.github/secrets/GithubActions_Distribution.mobileprovision.gpg' }}
20+
DECRYPTED_PROVISION_FILE_PATH: ${{ '.github/secrets/GithubActions_Dist.mobileprovision' }}
21+
ENCRYPTED_PROVISION_FILE_PATH: ${{ '.github/secrets/GithubActions_Dist.mobileprovision.gpg' }}
2122

2223
CERTS_ENCRYPTION_PWD: ${{ secrets.CERTS_ENCRYPTION_PWD }}
2324
PROVISION_ENCRYPTION_PWD: ${{ secrets.PROVISION_ENCRYPTION_PWD }}
@@ -29,8 +30,6 @@ jobs:
2930
- name: Get tag version
3031
id: get_version
3132
run: echo ::set-output name=RELEASE_VERSION::$(echo ${GITHUB_REF:11})
32-
- name: Set app version
33-
run: sed -i .bak 's/MARKETING_VERSION = 1.0.0;/MARKETING_VERSION = ${{ env.RELEASE_VERSION }};/g' YDS.xcodeproj/project.pbxproj
3433
- name: Configure Keychain
3534
run: |
3635
security create-keychain -p "" "$KEYCHAIN"
@@ -57,14 +56,19 @@ jobs:
5756
- name: Archive app
5857
run: |
5958
mkdir artifacts
60-
xcodebuild archive -project YDS.xcodeproj -scheme YDS-Storybook -configuration release -archivePath YDS.xcarchive
59+
xcodebuild archive -project YDS.xcodeproj -scheme YDS-Storybook -configuration $XC_CONFIGURATION -archivePath YDS.xcarchive "OTHER_CODE_SIGN_FLAGS=--keychain '$KEYCHAIN'"
6160
- name: Export app
6261
run: |
63-
xcodebuild -exportArchive -archivePath YDS.xcarchive -exportOptionsPlist ExportOptions.Plist -exportPath "$XC_EXPORT_PATH"
62+
xcodebuild -exportArchive -archivePath YDS.xcarchive -exportOptionsPlist .github/ExportOptions.Plist -exportPath "$XC_EXPORT_PATH"
63+
- name: Upload Artifact
64+
uses: actions/upload-artifact@v2
65+
with:
66+
name: Artifacts
67+
path: ./artifacts
6468
- name: Upload app to TestFlight
6569
uses: apple-actions/upload-testflight-build@v1
6670
with:
67-
app-path: 'YDS-Storybook.ipa'
71+
app-path: './artifacts/YDS-Storybook.ipa'
6872
issuer-id: ${{ secrets.APPSTORE_ISSUER_ID }}
6973
api-key-id: ${{ secrets.APPSTORE_API_KEY_ID }}
7074
api-private-key: ${{ secrets.APPSTORE_API_PRIVATE_KEY }}

YDS.xcodeproj/project.pbxproj

Lines changed: 122 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -722,6 +722,115 @@
722722
/* End PBXVariantGroup section */
723723

724724
/* Begin XCBuildConfiguration section */
725+
53A5AB5326E1DC3B008E81AB /* Automation */ = {
726+
isa = XCBuildConfiguration;
727+
buildSettings = {
728+
ALWAYS_SEARCH_USER_PATHS = NO;
729+
CLANG_ANALYZER_NONNULL = YES;
730+
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
731+
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
732+
CLANG_CXX_LIBRARY = "libc++";
733+
CLANG_ENABLE_MODULES = YES;
734+
CLANG_ENABLE_OBJC_ARC = YES;
735+
CLANG_ENABLE_OBJC_WEAK = YES;
736+
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
737+
CLANG_WARN_BOOL_CONVERSION = YES;
738+
CLANG_WARN_COMMA = YES;
739+
CLANG_WARN_CONSTANT_CONVERSION = YES;
740+
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
741+
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
742+
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
743+
CLANG_WARN_EMPTY_BODY = YES;
744+
CLANG_WARN_ENUM_CONVERSION = YES;
745+
CLANG_WARN_INFINITE_RECURSION = YES;
746+
CLANG_WARN_INT_CONVERSION = YES;
747+
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
748+
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
749+
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
750+
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
751+
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
752+
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
753+
CLANG_WARN_STRICT_PROTOTYPES = YES;
754+
CLANG_WARN_SUSPICIOUS_MOVE = YES;
755+
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
756+
CLANG_WARN_UNREACHABLE_CODE = YES;
757+
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
758+
COPY_PHASE_STRIP = NO;
759+
CURRENT_PROJECT_VERSION = 1;
760+
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
761+
ENABLE_NS_ASSERTIONS = NO;
762+
ENABLE_STRICT_OBJC_MSGSEND = YES;
763+
GCC_C_LANGUAGE_STANDARD = gnu11;
764+
GCC_NO_COMMON_BLOCKS = YES;
765+
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
766+
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
767+
GCC_WARN_UNDECLARED_SELECTOR = YES;
768+
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
769+
GCC_WARN_UNUSED_FUNCTION = YES;
770+
GCC_WARN_UNUSED_VARIABLE = YES;
771+
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
772+
MTL_ENABLE_DEBUG_INFO = NO;
773+
MTL_FAST_MATH = YES;
774+
ONLY_ACTIVE_ARCH = NO;
775+
SDKROOT = iphoneos;
776+
SWIFT_COMPILATION_MODE = wholemodule;
777+
SWIFT_OPTIMIZATION_LEVEL = "-O";
778+
VALIDATE_PRODUCT = YES;
779+
VERSIONING_SYSTEM = "apple-generic";
780+
VERSION_INFO_PREFIX = "";
781+
};
782+
name = Automation;
783+
};
784+
53A5AB5426E1DC3B008E81AB /* Automation */ = {
785+
isa = XCBuildConfiguration;
786+
buildSettings = {
787+
CLANG_ENABLE_MODULES = YES;
788+
CODE_SIGN_IDENTITY = "Apple Development";
789+
CODE_SIGN_STYLE = Automatic;
790+
DEFINES_MODULE = YES;
791+
DEVELOPMENT_TEAM = "";
792+
DYLIB_COMPATIBILITY_VERSION = 1;
793+
DYLIB_CURRENT_VERSION = 1;
794+
DYLIB_INSTALL_NAME_BASE = "@rpath";
795+
INFOPLIST_FILE = YDS/Info.plist;
796+
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
797+
LD_RUNPATH_SEARCH_PATHS = (
798+
"$(inherited)",
799+
"@executable_path/Frameworks",
800+
"@loader_path/Frameworks",
801+
);
802+
PRODUCT_BUNDLE_IDENTIFIER = com.yourssu.YDS;
803+
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
804+
PROVISIONING_PROFILE_SPECIFIER = "";
805+
SKIP_INSTALL = YES;
806+
SUPPORTS_MACCATALYST = NO;
807+
SWIFT_VERSION = 5.0;
808+
TARGETED_DEVICE_FAMILY = "1,2";
809+
};
810+
name = Automation;
811+
};
812+
53A5AB5526E1DC3B008E81AB /* Automation */ = {
813+
isa = XCBuildConfiguration;
814+
buildSettings = {
815+
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
816+
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
817+
CODE_SIGN_IDENTITY = "iPhone Distribution";
818+
CODE_SIGN_STYLE = Manual;
819+
DEVELOPMENT_TEAM = 2N3PMJ78CA;
820+
INFOPLIST_FILE = "YDS-Storybook/Info.plist";
821+
LD_RUNPATH_SEARCH_PATHS = (
822+
"$(inherited)",
823+
"@executable_path/Frameworks",
824+
);
825+
MARKETING_VERSION = 0.3.0;
826+
PRODUCT_BUNDLE_IDENTIFIER = "com.yourssu.YDS-Storybook";
827+
PRODUCT_NAME = "$(TARGET_NAME)";
828+
PROVISIONING_PROFILE_SPECIFIER = GithubActions_Dist;
829+
SWIFT_VERSION = 5.0;
830+
TARGETED_DEVICE_FAMILY = "1,2";
831+
};
832+
name = Automation;
833+
};
725834
DD151FB02641820200795D7C /* Debug */ = {
726835
isa = XCBuildConfiguration;
727836
buildSettings = {
@@ -865,6 +974,7 @@
865974
PRODUCT_BUNDLE_IDENTIFIER = com.yourssu.YDS;
866975
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
867976
SKIP_INSTALL = YES;
977+
SUPPORTS_MACCATALYST = NO;
868978
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
869979
SWIFT_VERSION = 5.0;
870980
TARGETED_DEVICE_FAMILY = "1,2";
@@ -875,9 +985,10 @@
875985
isa = XCBuildConfiguration;
876986
buildSettings = {
877987
CLANG_ENABLE_MODULES = YES;
988+
CODE_SIGN_IDENTITY = "Apple Development";
878989
CODE_SIGN_STYLE = Automatic;
879990
DEFINES_MODULE = YES;
880-
DEVELOPMENT_TEAM = 2N3PMJ78CA;
991+
DEVELOPMENT_TEAM = "";
881992
DYLIB_COMPATIBILITY_VERSION = 1;
882993
DYLIB_CURRENT_VERSION = 1;
883994
DYLIB_INSTALL_NAME_BASE = "@rpath";
@@ -890,7 +1001,9 @@
8901001
);
8911002
PRODUCT_BUNDLE_IDENTIFIER = com.yourssu.YDS;
8921003
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
1004+
PROVISIONING_PROFILE_SPECIFIER = "";
8931005
SKIP_INSTALL = YES;
1006+
SUPPORTS_MACCATALYST = NO;
8941007
SWIFT_VERSION = 5.0;
8951008
TARGETED_DEVICE_FAMILY = "1,2";
8961009
};
@@ -902,14 +1015,13 @@
9021015
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
9031016
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
9041017
CODE_SIGN_STYLE = Automatic;
905-
CURRENT_PROJECT_VERSION = 2;
9061018
DEVELOPMENT_TEAM = 2N3PMJ78CA;
9071019
INFOPLIST_FILE = "YDS-Storybook/Info.plist";
9081020
LD_RUNPATH_SEARCH_PATHS = (
9091021
"$(inherited)",
9101022
"@executable_path/Frameworks",
9111023
);
912-
MARKETING_VERSION = 0.2.0;
1024+
MARKETING_VERSION = 0.3.0;
9131025
PRODUCT_BUNDLE_IDENTIFIER = "com.yourssu.YDS-Storybook";
9141026
PRODUCT_NAME = "$(TARGET_NAME)";
9151027
SWIFT_VERSION = 5.0;
@@ -922,19 +1034,18 @@
9221034
buildSettings = {
9231035
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
9241036
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
925-
CODE_SIGN_IDENTITY = "iPhone Developer";
926-
CODE_SIGN_STYLE = Manual;
927-
CURRENT_PROJECT_VERSION = 2;
1037+
CODE_SIGN_IDENTITY = "Apple Development";
1038+
CODE_SIGN_STYLE = Automatic;
9281039
DEVELOPMENT_TEAM = 2N3PMJ78CA;
9291040
INFOPLIST_FILE = "YDS-Storybook/Info.plist";
9301041
LD_RUNPATH_SEARCH_PATHS = (
9311042
"$(inherited)",
9321043
"@executable_path/Frameworks",
9331044
);
934-
MARKETING_VERSION = 0.2.0;
1045+
MARKETING_VERSION = 0.3.0;
9351046
PRODUCT_BUNDLE_IDENTIFIER = "com.yourssu.YDS-Storybook";
9361047
PRODUCT_NAME = "$(TARGET_NAME)";
937-
PROVISIONING_PROFILE_SPECIFIER = GithubActions_Distribution;
1048+
PROVISIONING_PROFILE_SPECIFIER = "";
9381049
SWIFT_VERSION = 5.0;
9391050
TARGETED_DEVICE_FAMILY = "1,2";
9401051
};
@@ -948,6 +1059,7 @@
9481059
buildConfigurations = (
9491060
DD151FB02641820200795D7C /* Debug */,
9501061
DD151FB12641820200795D7C /* Release */,
1062+
53A5AB5326E1DC3B008E81AB /* Automation */,
9511063
);
9521064
defaultConfigurationIsVisible = 0;
9531065
defaultConfigurationName = Release;
@@ -957,6 +1069,7 @@
9571069
buildConfigurations = (
9581070
DD151FB32641820200795D7C /* Debug */,
9591071
DD151FB42641820200795D7C /* Release */,
1072+
53A5AB5426E1DC3B008E81AB /* Automation */,
9601073
);
9611074
defaultConfigurationIsVisible = 0;
9621075
defaultConfigurationName = Release;
@@ -966,6 +1079,7 @@
9661079
buildConfigurations = (
9671080
DDFBD00D26739A6B00C5F409 /* Debug */,
9681081
DDFBD00E26739A6B00C5F409 /* Release */,
1082+
53A5AB5526E1DC3B008E81AB /* Automation */,
9691083
);
9701084
defaultConfigurationIsVisible = 0;
9711085
defaultConfigurationName = Release;

0 commit comments

Comments
 (0)