From 68db8854caed438d652a5e69b93fff42dbc1c511 Mon Sep 17 00:00:00 2001 From: taetae98coding Date: Thu, 7 Nov 2024 01:56:36 +0900 Subject: [PATCH] 1.0.0-beta01 feat: app - Calendar feat: app - Login/Logout feat: app - Online/Offline Sync Memo feat: server - Login/Logout feat: server - Upsert/Fetch Memo feat: server - Migrate Memo --- .github/actions/ci-setup/action.yml | 31 +++++++++- .github/workflows/build.yml | 42 -------------- .github/workflows/check_code_style.yml | 18 ------ .github/workflows/dependency_guard.yml | 18 ------ .../workflows/firebase_app_distribution.yml | 56 +++---------------- Diary/Diary.xcodeproj/project.pbxproj | 8 +-- Diary/ExportOptions.plist | 10 ++-- 7 files changed, 45 insertions(+), 138 deletions(-) diff --git a/.github/actions/ci-setup/action.yml b/.github/actions/ci-setup/action.yml index 00e4e0de..2e251c51 100644 --- a/.github/actions/ci-setup/action.yml +++ b/.github/actions/ci-setup/action.yml @@ -3,8 +3,37 @@ name: CI setup runs: using: composite steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Setup Java 17 uses: actions/setup-java@v4 with: distribution: 'temurin' - java-version: '17' \ No newline at end of file + java-version: '17' + + - name: Set local.properties + shell: bash + run: | + echo diary.dev.api.base.url=${{ secrets.DIARY_DEV_API_BASE_URL }} >> local.properties + echo diary.real.api.base.url=${{ secrets.DIARY_REAL_API_BASE_URL }} >> local.properties + echo holiday.dev.api.url=${{ secrets.HOLIDAY_DEV_API_URL }} >> local.properties + echo holiday.dev.api.key=${{ secrets.HOLIDAY_DEV_API_KEY }} >> local.properties + echo holiday.real.api.url=${{ secrets.HOLIDAY_REAL_API_URL }} >> local.properties + echo holiday.real.api.key=${{ secrets.HOLIDAY_REAL_API_KEY }} >> local.properties + echo android.dev.store.password=${{ secrets.ANDROID_DEV_STORE_PASSWORD }} >> local.properties + echo android.dev.key.alias=${{ secrets.ANDROID_DEV_KEY_ALIAS }} >> local.properties + echo android.dev.key.password=${{ secrets.ANDROID_DEV_KEY_PASSWORD }} >> local.properties + echo android.real.store.password=${{ secrets.ANDROID_REAL_STORE_PASSWORD }} >> local.properties + echo android.real.key.alias=${{ secrets.ANDROID_REAL_KEY_ALIAS }} >> local.properties + echo android.real.key.password=${{ secrets.ANDROID_REAL_KEY_PASSWORD }} >> local.properties + + - name: Set xcconfig + shell: bash + run: | + echo DIARY_API_URL = ${{ secrets.DIARY_DEV_API_BASE_URL_APPLE }} >> Diary/dev.xcconfig + echo HOLIDAY_API_URL = ${{ secrets.HOLIDAY_DEV_API_URL_APPLE }} >> Diary/dev.xcconfig + echo HOLIDAY_API_KEY = ${{ secrets.HOLIDAY_DEV_API_KEY }} >> Diary/dev.xcconfig + echo DIARY_API_URL = ${{ secrets.DIARY_REAL_API_BASE_URL_APPLE }} >> Diary/real.xcconfig + echo HOLIDAY_API_URL = ${{ secrets.HOLIDAY_REAL_API_URL_APPLE }} >> Diary/real.xcconfig + echo HOLIDAY_API_KEY = ${{ secrets.HOLIDAY_REAL_API_KEY }} >> Diary/real.xcconfig \ No newline at end of file diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 26a48e28..412eaecc 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,27 +13,9 @@ jobs: './gradlew :app:platform:android:assembleRealRelease', ] steps: - - name: Checkout repository - uses: actions/checkout@v4 - - name: CI setup uses: './.github/actions/ci-setup' - - name: Set local.properties - run: | - echo diary.dev.api.base.url=${{ secrets.DIARY_DEV_API_BASE_URL }} >> local.properties - echo diary.real.api.base.url=${{ secrets.DIARY_REAL_API_BASE_URL }} >> local.properties - echo holiday.dev.api.url=${{ secrets.HOLIDAY_DEV_API_URL }} >> local.properties - echo holiday.dev.api.key=${{ secrets.HOLIDAY_DEV_API_KEY }} >> local.properties - echo holiday.real.api.url=${{ secrets.HOLIDAY_REAL_API_URL }} >> local.properties - echo holiday.real.api.key=${{ secrets.HOLIDAY_REAL_API_KEY }} >> local.properties - echo android.dev.store.password=${{ secrets.ANDROID_DEV_STORE_PASSWORD }} >> local.properties - echo android.dev.key.alias=${{ secrets.ANDROID_DEV_KEY_ALIAS }} >> local.properties - echo android.dev.key.password=${{ secrets.ANDROID_DEV_KEY_PASSWORD }} >> local.properties - echo android.real.store.password=${{ secrets.ANDROID_REAL_STORE_PASSWORD }} >> local.properties - echo android.real.key.alias=${{ secrets.ANDROID_REAL_KEY_ALIAS }} >> local.properties - echo android.real.key.password=${{ secrets.ANDROID_REAL_KEY_PASSWORD }} >> local.properties - - name: Build ${{ matrix.command }} run: ${{ matrix.command }} @@ -46,29 +28,5 @@ jobs: - name: CI setup uses: './.github/actions/ci-setup' - - name: Set local.properties - run: | - echo diary.dev.api.base.url=${{ secrets.DIARY_DEV_API_BASE_URL }} >> local.properties - echo diary.real.api.base.url=${{ secrets.DIARY_REAL_API_BASE_URL }} >> local.properties - echo holiday.dev.api.url=${{ secrets.HOLIDAY_DEV_API_URL }} >> local.properties - echo holiday.dev.api.key=${{ secrets.HOLIDAY_DEV_API_KEY }} >> local.properties - echo holiday.real.api.url=${{ secrets.HOLIDAY_REAL_API_URL }} >> local.properties - echo holiday.real.api.key=${{ secrets.HOLIDAY_REAL_API_KEY }} >> local.properties - echo android.dev.store.password=${{ secrets.ANDROID_DEV_STORE_PASSWORD }} >> local.properties - echo android.dev.key.alias=${{ secrets.ANDROID_DEV_KEY_ALIAS }} >> local.properties - echo android.dev.key.password=${{ secrets.ANDROID_DEV_KEY_PASSWORD }} >> local.properties - echo android.real.store.password=${{ secrets.ANDROID_REAL_STORE_PASSWORD }} >> local.properties - echo android.real.key.alias=${{ secrets.ANDROID_REAL_KEY_ALIAS }} >> local.properties - echo android.real.key.password=${{ secrets.ANDROID_REAL_KEY_PASSWORD }} >> local.properties - - - name: Set xcconfig - run: | - echo DIARY_API_URL = ${{ secrets.DIARY_DEV_API_BASE_URL }} >> Diary/dev.xcconfig - echo HOLIDAY_API_URL = ${{ secrets.HOLIDAY_DEV_API_URL }} >> Diary/dev.xcconfig - echo HOLIDAY_API_KEY = ${{ secrets.HOLIDAY_DEV_API_KEY }} >> Diary/dev.xcconfig - echo DIARY_API_URL = ${{ secrets.DIARY_REAL_API_BASE_URL }} >> Diary/real.xcconfig - echo HOLIDAY_API_URL = ${{ secrets.HOLIDAY_REAL_API_URL }} >> Diary/real.xcconfig - echo HOLIDAY_API_KEY = ${{ secrets.HOLIDAY_REAL_API_KEY }} >> Diary/real.xcconfig - - name: Build iOS run: xcodebuild -project Diary/Diary.xcodeproj -scheme CI -destination 'platform=iOS Simulator,name=iPhone 16,OS=18.0' \ No newline at end of file diff --git a/.github/workflows/check_code_style.yml b/.github/workflows/check_code_style.yml index f855de37..1d6951d5 100644 --- a/.github/workflows/check_code_style.yml +++ b/.github/workflows/check_code_style.yml @@ -6,25 +6,7 @@ jobs: Spotless: runs-on: ubuntu-latest steps: - - name: Checkout repository - uses: actions/checkout@v4 - - name: CI setup uses: './.github/actions/ci-setup' - - name: Set local.properties - run: | - echo diary.dev.api.base.url=${{ secrets.DIARY_DEV_API_BASE_URL }} >> local.properties - echo diary.real.api.base.url=${{ secrets.DIARY_REAL_API_BASE_URL }} >> local.properties - echo holiday.dev.api.url=${{ secrets.HOLIDAY_DEV_API_URL }} >> local.properties - echo holiday.dev.api.key=${{ secrets.HOLIDAY_DEV_API_KEY }} >> local.properties - echo holiday.real.api.url=${{ secrets.HOLIDAY_REAL_API_URL }} >> local.properties - echo holiday.real.api.key=${{ secrets.HOLIDAY_REAL_API_KEY }} >> local.properties - echo android.dev.store.password=${{ secrets.ANDROID_DEV_STORE_PASSWORD }} >> local.properties - echo android.dev.key.alias=${{ secrets.ANDROID_DEV_KEY_ALIAS }} >> local.properties - echo android.dev.key.password=${{ secrets.ANDROID_DEV_KEY_PASSWORD }} >> local.properties - echo android.real.store.password=${{ secrets.ANDROID_REAL_STORE_PASSWORD }} >> local.properties - echo android.real.key.alias=${{ secrets.ANDROID_REAL_KEY_ALIAS }} >> local.properties - echo android.real.key.password=${{ secrets.ANDROID_REAL_KEY_PASSWORD }} >> local.properties - - run: ./gradlew :spotlessCheck \ No newline at end of file diff --git a/.github/workflows/dependency_guard.yml b/.github/workflows/dependency_guard.yml index d564cc14..1ded5e68 100644 --- a/.github/workflows/dependency_guard.yml +++ b/.github/workflows/dependency_guard.yml @@ -12,26 +12,8 @@ jobs: './gradlew :server:app:dependencyGuard' ] steps: - - name: Checkout repository - uses: actions/checkout@v4 - - name: CI setup uses: './.github/actions/ci-setup' - - name: Set local.properties - run: | - echo diary.dev.api.base.url=${{ secrets.DIARY_DEV_API_BASE_URL }} >> local.properties - echo diary.real.api.base.url=${{ secrets.DIARY_REAL_API_BASE_URL }} >> local.properties - echo holiday.dev.api.url=${{ secrets.HOLIDAY_DEV_API_URL }} >> local.properties - echo holiday.dev.api.key=${{ secrets.HOLIDAY_DEV_API_KEY }} >> local.properties - echo holiday.real.api.url=${{ secrets.HOLIDAY_REAL_API_URL }} >> local.properties - echo holiday.real.api.key=${{ secrets.HOLIDAY_REAL_API_KEY }} >> local.properties - echo android.dev.store.password=${{ secrets.ANDROID_DEV_STORE_PASSWORD }} >> local.properties - echo android.dev.key.alias=${{ secrets.ANDROID_DEV_KEY_ALIAS }} >> local.properties - echo android.dev.key.password=${{ secrets.ANDROID_DEV_KEY_PASSWORD }} >> local.properties - echo android.real.store.password=${{ secrets.ANDROID_REAL_STORE_PASSWORD }} >> local.properties - echo android.real.key.alias=${{ secrets.ANDROID_REAL_KEY_ALIAS }} >> local.properties - echo android.real.key.password=${{ secrets.ANDROID_REAL_KEY_PASSWORD }} >> local.properties - - name: Build ${{ matrix.command }} run: ${{ matrix.command }} \ No newline at end of file diff --git a/.github/workflows/firebase_app_distribution.yml b/.github/workflows/firebase_app_distribution.yml index d898c9a8..cc77bc30 100644 --- a/.github/workflows/firebase_app_distribution.yml +++ b/.github/workflows/firebase_app_distribution.yml @@ -10,27 +10,9 @@ jobs: Android-Distribution: runs-on: ubuntu-latest steps: - - name: Checkout repository - uses: actions/checkout@v4 - - name: CI setup uses: './.github/actions/ci-setup' - - name: Set local.properties - run: | - echo diary.dev.api.base.url=${{ secrets.DIARY_DEV_API_BASE_URL }} >> local.properties - echo diary.real.api.base.url=${{ secrets.DIARY_REAL_API_BASE_URL }} >> local.properties - echo holiday.dev.api.url=${{ secrets.HOLIDAY_DEV_API_URL }} >> local.properties - echo holiday.dev.api.key=${{ secrets.HOLIDAY_DEV_API_KEY }} >> local.properties - echo holiday.real.api.url=${{ secrets.HOLIDAY_REAL_API_URL }} >> local.properties - echo holiday.real.api.key=${{ secrets.HOLIDAY_REAL_API_KEY }} >> local.properties - echo android.dev.store.password=${{ secrets.ANDROID_DEV_STORE_PASSWORD }} >> local.properties - echo android.dev.key.alias=${{ secrets.ANDROID_DEV_KEY_ALIAS }} >> local.properties - echo android.dev.key.password=${{ secrets.ANDROID_DEV_KEY_PASSWORD }} >> local.properties - echo android.real.store.password=${{ secrets.ANDROID_REAL_STORE_PASSWORD }} >> local.properties - echo android.real.key.alias=${{ secrets.ANDROID_REAL_KEY_ALIAS }} >> local.properties - echo android.real.key.password=${{ secrets.ANDROID_REAL_KEY_PASSWORD }} >> local.properties - - name: Build APK run: ./gradlew :app:platform:android:assembleRealRelease @@ -39,43 +21,16 @@ jobs: with: appId: ${{ secrets.FIREBASE_ANDROID_REAL_RELEASE_APP_ID }} serviceCredentialsFileContent: ${{ secrets.FIREBASE_APP_DISTRIBUTION_KEY }} - groups: Developer,Tester + groups: Developer,Android file: app/platform/android/build/outputs/apk/real/release/android-real-release.apk releaseNotesFile: CHANGELOG.md iOS-Build: runs-on: macos-15 steps: - - name: Checkout repository - uses: actions/checkout@v4 - - name: CI setup uses: './.github/actions/ci-setup' - - name: Set local.properties - run: | - echo diary.dev.api.base.url=${{ secrets.DIARY_DEV_API_BASE_URL }} >> local.properties - echo diary.real.api.base.url=${{ secrets.DIARY_REAL_API_BASE_URL }} >> local.properties - echo holiday.dev.api.url=${{ secrets.HOLIDAY_DEV_API_URL }} >> local.properties - echo holiday.dev.api.key=${{ secrets.HOLIDAY_DEV_API_KEY }} >> local.properties - echo holiday.real.api.url=${{ secrets.HOLIDAY_REAL_API_URL }} >> local.properties - echo holiday.real.api.key=${{ secrets.HOLIDAY_REAL_API_KEY }} >> local.properties - echo android.dev.store.password=${{ secrets.ANDROID_DEV_STORE_PASSWORD }} >> local.properties - echo android.dev.key.alias=${{ secrets.ANDROID_DEV_KEY_ALIAS }} >> local.properties - echo android.dev.key.password=${{ secrets.ANDROID_DEV_KEY_PASSWORD }} >> local.properties - echo android.real.store.password=${{ secrets.ANDROID_REAL_STORE_PASSWORD }} >> local.properties - echo android.real.key.alias=${{ secrets.ANDROID_REAL_KEY_ALIAS }} >> local.properties - echo android.real.key.password=${{ secrets.ANDROID_REAL_KEY_PASSWORD }} >> local.properties - - - name: Set xcconfig - run: | - echo DIARY_API_URL = ${{ secrets.DIARY_DEV_API_BASE_URL }} >> Diary/dev.xcconfig - echo HOLIDAY_API_URL = ${{ secrets.HOLIDAY_DEV_API_URL }} >> Diary/dev.xcconfig - echo HOLIDAY_API_KEY = ${{ secrets.HOLIDAY_DEV_API_KEY }} >> Diary/dev.xcconfig - echo DIARY_API_URL = ${{ secrets.DIARY_REAL_API_BASE_URL }} >> Diary/real.xcconfig - echo HOLIDAY_API_URL = ${{ secrets.HOLIDAY_REAL_API_URL }} >> Diary/real.xcconfig - echo HOLIDAY_API_KEY = ${{ secrets.HOLIDAY_REAL_API_KEY }} >> Diary/real.xcconfig - - name: Install the Apple certificate and provisioning profile env: BUILD_CERTIFICATE_BASE64: ${{ secrets.APPLE_DISTRIBUTION_CERTIFICATE }} @@ -116,12 +71,15 @@ jobs: uses: actions/upload-artifact@v4 with: name: Diary.ipa - path: Diary/build/Diary.ipa + path: Diary/build/Apps/Diary.ipa iOS-Distribution: needs: [iOS-Build] runs-on: ubuntu-latest steps: + - name: CI setup + uses: './.github/actions/ci-setup' + - name: Download ipa uses: actions/download-artifact@v4 with: @@ -130,9 +88,9 @@ jobs: - name: Distribution uses: wzieba/Firebase-Distribution-Github-Action@v1 with: - appId: ${{ secrets.FIREBASE_ANDROID_REAL_RELEASE_APP_ID }} + appId: ${{ secrets.FIREBASE_IOS_REAL_RELEASE_APP_ID }} serviceCredentialsFileContent: ${{ secrets.FIREBASE_APP_DISTRIBUTION_KEY }} - groups: Developer,Tester + groups: Developer,iOS file: Diary.ipa releaseNotesFile: CHANGELOG.md diff --git a/Diary/Diary.xcodeproj/project.pbxproj b/Diary/Diary.xcodeproj/project.pbxproj index 0abbf6c4..31d0bc26 100644 --- a/Diary/Diary.xcodeproj/project.pbxproj +++ b/Diary/Diary.xcodeproj/project.pbxproj @@ -249,7 +249,7 @@ ENABLE_USER_SCRIPT_SANDBOXING = NO; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = Diary/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = Diary; + INFOPLIST_KEY_CFBundleDisplayName = "Diary-RealDebug"; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.productivity"; INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; @@ -360,7 +360,7 @@ PRODUCT_BUNDLE_IDENTIFIER = io.github.taetae98coding.diary; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; - "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = Provision; + "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = adhoc; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; @@ -445,7 +445,7 @@ ENABLE_USER_SCRIPT_SANDBOXING = NO; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = Diary/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = Diary; + INFOPLIST_KEY_CFBundleDisplayName = "Diary-DevDebug"; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.productivity"; INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; @@ -537,7 +537,7 @@ ENABLE_USER_SCRIPT_SANDBOXING = NO; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = Diary/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = Diary; + INFOPLIST_KEY_CFBundleDisplayName = "Diary-DevRelease"; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.productivity"; INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; diff --git a/Diary/ExportOptions.plist b/Diary/ExportOptions.plist index 80c326e4..7739f167 100644 --- a/Diary/ExportOptions.plist +++ b/Diary/ExportOptions.plist @@ -4,14 +4,12 @@ destination export - manageAppVersionAndBuildNumber - method - app-store-connect + release-testing provisioningProfiles io.github.taetae98coding.diary - Provision + adhoc signingCertificate Apple Distribution @@ -21,7 +19,7 @@ teamID 4TV6L66XZ8 - uploadSymbols - + thinning + <thin-for-all-variants>