diff --git a/.github/workflows/pull_request_test.yml b/.github/workflows/pull_request_test.yml index 67a7f93b..5f66a322 100644 --- a/.github/workflows/pull_request_test.yml +++ b/.github/workflows/pull_request_test.yml @@ -30,18 +30,21 @@ jobs: - name: Get swift version run: swift --version - - - name: Install Tuist - run: curl -Ls https://install.tuist.io|bash + + - name: Mise + uses: jdx/mise-action@v2 + - name: Install Tuist + run: mise install tuist@4.33.0 + + - name: Tuist version + run: mise use -g tuist@4.33.0 + + - name: Setup Project + run: make init + - name: Install SwiftLint run: brew install swiftlint - - name: Tuist Clean - run: tuist clean - - - name: Tuist Fetch - run: tuist fetch - - name: Tuist Build Test run: tuist build App diff --git a/.github/workflows/upload_testflight.yml b/.github/workflows/upload_testflight.yml index 6760ffc5..4e169208 100644 --- a/.github/workflows/upload_testflight.yml +++ b/.github/workflows/upload_testflight.yml @@ -39,22 +39,22 @@ jobs: uses: swift-actions/setup-swift@v2 with: swift-version: "5.10" + + - name: Mise + uses: jdx/mise-action@v2 - name: Install Tuist - run: curl -Ls https://install.tuist.io|bash - + run: mise install tuist@4.33.0 + + - name: Tuist version + run: mise use -g tuist@4.33.0 + + - name: Setup Project + run: make init + - name: Install Fastlane run: brew install fastlane - - name: Tuist clean - run: tuist clean - - - name: Tuist fetch - run: tuist fetch - - - name: Tuist generate - run: tuist generate - - name: Fastlane Upload Testflight run: fastlane tf_remote env: diff --git a/.tuist-version b/.tuist-version deleted file mode 100644 index 0f414fd3..00000000 --- a/.tuist-version +++ /dev/null @@ -1 +0,0 @@ -3.28.0 \ No newline at end of file diff --git a/Frameworks/NMapsMap/NMapsGeometry.xcframework/Info.plist b/Frameworks/NMapsGeometry.xcframework/Info.plist similarity index 100% rename from Frameworks/NMapsMap/NMapsGeometry.xcframework/Info.plist rename to Frameworks/NMapsGeometry.xcframework/Info.plist diff --git a/Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGBounds.h b/Frameworks/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGBounds.h similarity index 100% rename from Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGBounds.h rename to Frameworks/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGBounds.h diff --git a/Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGConstants.h b/Frameworks/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGConstants.h similarity index 100% rename from Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGConstants.h rename to Frameworks/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGConstants.h diff --git a/Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGGeometry.h b/Frameworks/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGGeometry.h similarity index 100% rename from Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGGeometry.h rename to Frameworks/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGGeometry.h diff --git a/Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGLatLng.h b/Frameworks/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGLatLng.h similarity index 100% rename from Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGLatLng.h rename to Frameworks/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGLatLng.h diff --git a/Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGLatLngBounds.h b/Frameworks/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGLatLngBounds.h similarity index 100% rename from Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGLatLngBounds.h rename to Frameworks/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGLatLngBounds.h diff --git a/Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGLineString.h b/Frameworks/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGLineString.h similarity index 100% rename from Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGLineString.h rename to Frameworks/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGLineString.h diff --git a/Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGMultiPolygon.h b/Frameworks/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGMultiPolygon.h similarity index 100% rename from Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGMultiPolygon.h rename to Frameworks/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGMultiPolygon.h diff --git a/Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGPoint.h b/Frameworks/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGPoint.h similarity index 100% rename from Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGPoint.h rename to Frameworks/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGPoint.h diff --git a/Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGPolygon.h b/Frameworks/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGPolygon.h similarity index 100% rename from Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGPolygon.h rename to Frameworks/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGPolygon.h diff --git a/Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGSegment.h b/Frameworks/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGSegment.h similarity index 100% rename from Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGSegment.h rename to Frameworks/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGSegment.h diff --git a/Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGTm128.h b/Frameworks/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGTm128.h similarity index 100% rename from Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGTm128.h rename to Frameworks/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGTm128.h diff --git a/Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGUtils.h b/Frameworks/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGUtils.h similarity index 100% rename from Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGUtils.h rename to Frameworks/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGUtils.h diff --git a/Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGUtmk.h b/Frameworks/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGUtmk.h similarity index 100% rename from Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGUtmk.h rename to Frameworks/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGUtmk.h diff --git a/Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGWebMercatorCoord.h b/Frameworks/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGWebMercatorCoord.h similarity index 100% rename from Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGWebMercatorCoord.h rename to Frameworks/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMGWebMercatorCoord.h diff --git a/Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMapsGeometry.h b/Frameworks/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMapsGeometry.h similarity index 100% rename from Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMapsGeometry.h rename to Frameworks/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Headers/NMapsGeometry.h diff --git a/Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Info.plist b/Frameworks/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Info.plist similarity index 100% rename from Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Info.plist rename to Frameworks/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Info.plist diff --git a/Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Modules/module.modulemap b/Frameworks/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Modules/module.modulemap similarity index 100% rename from Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Modules/module.modulemap rename to Frameworks/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/Modules/module.modulemap diff --git a/Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/NMapsGeometry b/Frameworks/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/NMapsGeometry similarity index 100% rename from Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/NMapsGeometry rename to Frameworks/NMapsGeometry.xcframework/ios-arm64_armv7/NMapsGeometry.framework/NMapsGeometry diff --git a/Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGBounds.h b/Frameworks/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGBounds.h similarity index 100% rename from Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGBounds.h rename to Frameworks/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGBounds.h diff --git a/Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGConstants.h b/Frameworks/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGConstants.h similarity index 100% rename from Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGConstants.h rename to Frameworks/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGConstants.h diff --git a/Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGGeometry.h b/Frameworks/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGGeometry.h similarity index 100% rename from Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGGeometry.h rename to Frameworks/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGGeometry.h diff --git a/Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGLatLng.h b/Frameworks/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGLatLng.h similarity index 100% rename from Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGLatLng.h rename to Frameworks/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGLatLng.h diff --git a/Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGLatLngBounds.h b/Frameworks/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGLatLngBounds.h similarity index 100% rename from Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGLatLngBounds.h rename to Frameworks/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGLatLngBounds.h diff --git a/Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGLineString.h b/Frameworks/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGLineString.h similarity index 100% rename from Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGLineString.h rename to Frameworks/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGLineString.h diff --git a/Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGMultiPolygon.h b/Frameworks/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGMultiPolygon.h similarity index 100% rename from Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGMultiPolygon.h rename to Frameworks/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGMultiPolygon.h diff --git a/Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGPoint.h b/Frameworks/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGPoint.h similarity index 100% rename from Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGPoint.h rename to Frameworks/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGPoint.h diff --git a/Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGPolygon.h b/Frameworks/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGPolygon.h similarity index 100% rename from Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGPolygon.h rename to Frameworks/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGPolygon.h diff --git a/Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGSegment.h b/Frameworks/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGSegment.h similarity index 100% rename from Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGSegment.h rename to Frameworks/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGSegment.h diff --git a/Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGTm128.h b/Frameworks/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGTm128.h similarity index 100% rename from Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGTm128.h rename to Frameworks/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGTm128.h diff --git a/Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGUtils.h b/Frameworks/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGUtils.h similarity index 100% rename from Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGUtils.h rename to Frameworks/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGUtils.h diff --git a/Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGUtmk.h b/Frameworks/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGUtmk.h similarity index 100% rename from Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGUtmk.h rename to Frameworks/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGUtmk.h diff --git a/Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGWebMercatorCoord.h b/Frameworks/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGWebMercatorCoord.h similarity index 100% rename from Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGWebMercatorCoord.h rename to Frameworks/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMGWebMercatorCoord.h diff --git a/Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMapsGeometry.h b/Frameworks/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMapsGeometry.h similarity index 100% rename from Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMapsGeometry.h rename to Frameworks/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Headers/NMapsGeometry.h diff --git a/Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Info.plist b/Frameworks/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Info.plist similarity index 100% rename from Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Info.plist rename to Frameworks/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Info.plist diff --git a/Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Modules/module.modulemap b/Frameworks/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Modules/module.modulemap similarity index 100% rename from Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Modules/module.modulemap rename to Frameworks/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/Modules/module.modulemap diff --git a/Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/NMapsGeometry b/Frameworks/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/NMapsGeometry similarity index 100% rename from Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/NMapsGeometry rename to Frameworks/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/NMapsGeometry diff --git a/Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/_CodeSignature/CodeResources b/Frameworks/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/_CodeSignature/CodeResources similarity index 100% rename from Frameworks/NMapsMap/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/_CodeSignature/CodeResources rename to Frameworks/NMapsGeometry.xcframework/ios-arm64_i386_x86_64-simulator/NMapsGeometry.framework/_CodeSignature/CodeResources diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/Info.plist b/Frameworks/NMapsMap.xcframework/Info.plist similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/Info.plist rename to Frameworks/NMapsMap.xcframework/Info.plist diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Assets.car b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Assets.car similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Assets.car rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Assets.car diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Base.lproj/Foundation.strings b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Base.lproj/Foundation.strings similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Base.lproj/Foundation.strings rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Base.lproj/Foundation.strings diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCBuilder.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCBuilder.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCBuilder.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCBuilder.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCCluster.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCCluster.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCCluster.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCCluster.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCClusterMarkerInfo.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCClusterMarkerInfo.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCClusterMarkerInfo.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCClusterMarkerInfo.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCClusterMarkerUpdater.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCClusterMarkerUpdater.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCClusterMarkerUpdater.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCClusterMarkerUpdater.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCClusterer.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCClusterer.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCClusterer.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCClusterer.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCClustererUpdateCallback.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCClustererUpdateCallback.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCClustererUpdateCallback.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCClustererUpdateCallback.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCClusteringKey.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCClusteringKey.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCClusteringKey.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCClusteringKey.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCComplexBuilder.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCComplexBuilder.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCComplexBuilder.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCComplexBuilder.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCDefaultClusterMarkerUpdater.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCDefaultClusterMarkerUpdater.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCDefaultClusterMarkerUpdater.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCDefaultClusterMarkerUpdater.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCDefaultDistanceStrategy.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCDefaultDistanceStrategy.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCDefaultDistanceStrategy.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCDefaultDistanceStrategy.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCDefaultLeafMarkerUpdater.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCDefaultLeafMarkerUpdater.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCDefaultLeafMarkerUpdater.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCDefaultLeafMarkerUpdater.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCDefaultMarkerManager.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCDefaultMarkerManager.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCDefaultMarkerManager.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCDefaultMarkerManager.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCDefaultPositioningStrategy.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCDefaultPositioningStrategy.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCDefaultPositioningStrategy.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCDefaultPositioningStrategy.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCDefaultTagMergeStrategy.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCDefaultTagMergeStrategy.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCDefaultTagMergeStrategy.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCDefaultTagMergeStrategy.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCDefaultThresholdStrategy.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCDefaultThresholdStrategy.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCDefaultThresholdStrategy.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCDefaultThresholdStrategy.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCDistanceStrategy.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCDistanceStrategy.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCDistanceStrategy.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCDistanceStrategy.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCLeaf.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCLeaf.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCLeaf.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCLeaf.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCLeafMarkerInfo.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCLeafMarkerInfo.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCLeafMarkerInfo.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCLeafMarkerInfo.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCLeafMarkerUpdater.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCLeafMarkerUpdater.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCLeafMarkerUpdater.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCLeafMarkerUpdater.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCMarkerInfo.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCMarkerInfo.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCMarkerInfo.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCMarkerInfo.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCMarkerManager.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCMarkerManager.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCMarkerManager.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCMarkerManager.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCNode.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCNode.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCNode.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCNode.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCPositioningStrategy.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCPositioningStrategy.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCPositioningStrategy.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCPositioningStrategy.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCTagMergeStrategy.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCTagMergeStrategy.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCTagMergeStrategy.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCTagMergeStrategy.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCThresholdStrategy.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCThresholdStrategy.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCThresholdStrategy.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMCThresholdStrategy.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFArrowheadPath.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFArrowheadPath.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFArrowheadPath.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFArrowheadPath.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFAuthManager.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFAuthManager.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFAuthManager.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFAuthManager.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFCameraCommon.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFCameraCommon.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFCameraCommon.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFCameraCommon.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFCameraPosition.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFCameraPosition.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFCameraPosition.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFCameraPosition.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFCameraUpdate.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFCameraUpdate.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFCameraUpdate.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFCameraUpdate.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFCameraUpdateParams.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFCameraUpdateParams.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFCameraUpdateParams.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFCameraUpdateParams.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFCircleOverlay.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFCircleOverlay.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFCircleOverlay.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFCircleOverlay.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFCompassView.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFCompassView.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFCompassView.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFCompassView.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFFoundation.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFFoundation.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFFoundation.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFFoundation.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFGeometry.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFGeometry.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFGeometry.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFGeometry.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFGroundOverlay.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFGroundOverlay.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFGroundOverlay.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFGroundOverlay.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFIndoorLevel.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFIndoorLevel.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFIndoorLevel.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFIndoorLevel.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFIndoorLevelPickerView.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFIndoorLevelPickerView.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFIndoorLevelPickerView.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFIndoorLevelPickerView.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFIndoorRegion.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFIndoorRegion.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFIndoorRegion.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFIndoorRegion.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFIndoorSelection.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFIndoorSelection.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFIndoorSelection.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFIndoorSelection.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFIndoorSelectionDelegate.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFIndoorSelectionDelegate.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFIndoorSelectionDelegate.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFIndoorSelectionDelegate.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFIndoorView.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFIndoorView.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFIndoorView.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFIndoorView.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFIndoorZone.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFIndoorZone.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFIndoorZone.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFIndoorZone.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFInfoWindow.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFInfoWindow.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFInfoWindow.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFInfoWindow.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFInfoWindowDefaultTextSource.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFInfoWindowDefaultTextSource.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFInfoWindowDefaultTextSource.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFInfoWindowDefaultTextSource.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFLocationButton.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFLocationButton.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFLocationButton.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFLocationButton.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFLocationManager.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFLocationManager.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFLocationManager.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFLocationManager.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFLocationOverlay.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFLocationOverlay.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFLocationOverlay.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFLocationOverlay.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMapView+IBAdditions.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMapView+IBAdditions.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMapView+IBAdditions.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMapView+IBAdditions.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMapView.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMapView.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMapView.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMapView.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMapViewCameraDelegate.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMapViewCameraDelegate.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMapViewCameraDelegate.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMapViewCameraDelegate.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMapViewDelegate.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMapViewDelegate.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMapViewDelegate.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMapViewDelegate.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMapViewOptionDelegate.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMapViewOptionDelegate.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMapViewOptionDelegate.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMapViewOptionDelegate.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMapViewTouchDelegate.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMapViewTouchDelegate.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMapViewTouchDelegate.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMapViewTouchDelegate.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMarker.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMarker.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMarker.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMarker.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMarkerConstants.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMarkerConstants.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMarkerConstants.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMarkerConstants.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMultipartPath.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMultipartPath.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMultipartPath.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMultipartPath.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMyPositionMode.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMyPositionMode.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMyPositionMode.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFMyPositionMode.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFNaverMapView.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFNaverMapView.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFNaverMapView.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFNaverMapView.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFOfflinePack.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFOfflinePack.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFOfflinePack.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFOfflinePack.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFOfflineRegion.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFOfflineRegion.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFOfflineRegion.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFOfflineRegion.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFOfflineStorage.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFOfflineStorage.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFOfflineStorage.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFOfflineStorage.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFOverlay.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFOverlay.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFOverlay.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFOverlay.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFOverlayImage.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFOverlayImage.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFOverlayImage.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFOverlayImage.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFPath.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFPath.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFPath.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFPath.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFPathColor.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFPathColor.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFPathColor.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFPathColor.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFPickable.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFPickable.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFPickable.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFPickable.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFPolygonOverlay.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFPolygonOverlay.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFPolygonOverlay.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFPolygonOverlay.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFPolylineOverlay.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFPolylineOverlay.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFPolylineOverlay.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFPolylineOverlay.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFProjection.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFProjection.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFProjection.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFProjection.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFRendererOptions.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFRendererOptions.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFRendererOptions.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFRendererOptions.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFScaleView.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFScaleView.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFScaleView.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFScaleView.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFSymbol.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFSymbol.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFSymbol.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFSymbol.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFTileCoverHelper.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFTileCoverHelper.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFTileCoverHelper.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFTileCoverHelper.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFTileId.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFTileId.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFTileId.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFTileId.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFTypes.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFTypes.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFTypes.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFTypes.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFUtils.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFUtils.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFUtils.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFUtils.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFZoomControlView.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFZoomControlView.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFZoomControlView.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMFZoomControlView.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMapsMap.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMapsMap.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMapsMap.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NMapsMap.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NSBundle+NMFAdditions.h b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NSBundle+NMFAdditions.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NSBundle+NMFAdditions.h rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Headers/NSBundle+NMFAdditions.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Info.plist b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Info.plist similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Info.plist rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Info.plist diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/LICENSE b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/LICENSE similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/LICENSE rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/LICENSE diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Modules/module.modulemap b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Modules/module.modulemap similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Modules/module.modulemap rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/Modules/module.modulemap diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMFIndoorLevelPickerCell.nib/objects-11.0+.nib b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMFIndoorLevelPickerCell.nib/objects-11.0+.nib similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMFIndoorLevelPickerCell.nib/objects-11.0+.nib rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMFIndoorLevelPickerCell.nib/objects-11.0+.nib diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMFIndoorLevelPickerCell.nib/runtime.nib b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMFIndoorLevelPickerCell.nib/runtime.nib similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMFIndoorLevelPickerCell.nib/runtime.nib rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMFIndoorLevelPickerCell.nib/runtime.nib diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMFIndoorLevelPickerView.nib/objects-11.0+.nib b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMFIndoorLevelPickerView.nib/objects-11.0+.nib similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMFIndoorLevelPickerView.nib/objects-11.0+.nib rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMFIndoorLevelPickerView.nib/objects-11.0+.nib diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMFIndoorLevelPickerView.nib/runtime.nib b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMFIndoorLevelPickerView.nib/runtime.nib similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMFIndoorLevelPickerView.nib/runtime.nib rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMFIndoorLevelPickerView.nib/runtime.nib diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMFInfoWindowDefaultTextSource.nib b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMFInfoWindowDefaultTextSource.nib similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMFInfoWindowDefaultTextSource.nib rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMFInfoWindowDefaultTextSource.nib diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMFNaverMapView.nib/objects-11.0+.nib b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMFNaverMapView.nib/objects-11.0+.nib similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMFNaverMapView.nib/objects-11.0+.nib rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMFNaverMapView.nib/objects-11.0+.nib diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMFNaverMapView.nib/runtime.nib b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMFNaverMapView.nib/runtime.nib similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMFNaverMapView.nib/runtime.nib rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMFNaverMapView.nib/runtime.nib diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMFScaleView.nib b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMFScaleView.nib similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMFScaleView.nib rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMFScaleView.nib diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMFZoomControlView.nib b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMFZoomControlView.nib similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMFZoomControlView.nib rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMFZoomControlView.nib diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMapsMap b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMapsMap similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMapsMap rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NMapsMap diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NOTICE b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NOTICE similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NOTICE rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/NOTICE diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/default.metallib b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/default.metallib similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/default.metallib rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/default.metallib diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/en.lproj/Foundation.strings b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/en.lproj/Foundation.strings similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/en.lproj/Foundation.strings rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/en.lproj/Foundation.strings diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/en.lproj/Localizable.strings b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/en.lproj/Localizable.strings similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/en.lproj/Localizable.strings rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/en.lproj/Localizable.strings diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/ja.lproj/Foundation.strings b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/ja.lproj/Foundation.strings similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/ja.lproj/Foundation.strings rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/ja.lproj/Foundation.strings diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/ja.lproj/Localizable.strings b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/ja.lproj/Localizable.strings similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/ja.lproj/Localizable.strings rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/ja.lproj/Localizable.strings diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/ko.lproj/Foundation.strings b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/ko.lproj/Foundation.strings similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/ko.lproj/Foundation.strings rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/ko.lproj/Foundation.strings diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/ko.lproj/Foundation.stringsdict b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/ko.lproj/Foundation.stringsdict similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/ko.lproj/Foundation.stringsdict rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/ko.lproj/Foundation.stringsdict diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/ko.lproj/Localizable.strings b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/ko.lproj/Localizable.strings similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/ko.lproj/Localizable.strings rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/ko.lproj/Localizable.strings diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/zh-Hans.lproj/Foundation.strings b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/zh-Hans.lproj/Foundation.strings similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/zh-Hans.lproj/Foundation.strings rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/zh-Hans.lproj/Foundation.strings diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/zh-Hans.lproj/Localizable.strings b/Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/zh-Hans.lproj/Localizable.strings similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/zh-Hans.lproj/Localizable.strings rename to Frameworks/NMapsMap.xcframework/ios-arm64/NMapsMap.framework/zh-Hans.lproj/Localizable.strings diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Assets.car b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Assets.car similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Assets.car rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Assets.car diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Base.lproj/Foundation.strings b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Base.lproj/Foundation.strings similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Base.lproj/Foundation.strings rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Base.lproj/Foundation.strings diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCBuilder.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCBuilder.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCBuilder.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCBuilder.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCCluster.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCCluster.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCCluster.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCCluster.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCClusterMarkerInfo.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCClusterMarkerInfo.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCClusterMarkerInfo.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCClusterMarkerInfo.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCClusterMarkerUpdater.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCClusterMarkerUpdater.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCClusterMarkerUpdater.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCClusterMarkerUpdater.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCClusterer.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCClusterer.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCClusterer.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCClusterer.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCClustererUpdateCallback.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCClustererUpdateCallback.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCClustererUpdateCallback.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCClustererUpdateCallback.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCClusteringKey.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCClusteringKey.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCClusteringKey.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCClusteringKey.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCComplexBuilder.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCComplexBuilder.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCComplexBuilder.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCComplexBuilder.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCDefaultClusterMarkerUpdater.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCDefaultClusterMarkerUpdater.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCDefaultClusterMarkerUpdater.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCDefaultClusterMarkerUpdater.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCDefaultDistanceStrategy.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCDefaultDistanceStrategy.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCDefaultDistanceStrategy.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCDefaultDistanceStrategy.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCDefaultLeafMarkerUpdater.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCDefaultLeafMarkerUpdater.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCDefaultLeafMarkerUpdater.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCDefaultLeafMarkerUpdater.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCDefaultMarkerManager.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCDefaultMarkerManager.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCDefaultMarkerManager.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCDefaultMarkerManager.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCDefaultPositioningStrategy.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCDefaultPositioningStrategy.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCDefaultPositioningStrategy.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCDefaultPositioningStrategy.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCDefaultTagMergeStrategy.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCDefaultTagMergeStrategy.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCDefaultTagMergeStrategy.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCDefaultTagMergeStrategy.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCDefaultThresholdStrategy.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCDefaultThresholdStrategy.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCDefaultThresholdStrategy.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCDefaultThresholdStrategy.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCDistanceStrategy.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCDistanceStrategy.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCDistanceStrategy.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCDistanceStrategy.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCLeaf.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCLeaf.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCLeaf.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCLeaf.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCLeafMarkerInfo.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCLeafMarkerInfo.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCLeafMarkerInfo.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCLeafMarkerInfo.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCLeafMarkerUpdater.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCLeafMarkerUpdater.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCLeafMarkerUpdater.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCLeafMarkerUpdater.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCMarkerInfo.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCMarkerInfo.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCMarkerInfo.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCMarkerInfo.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCMarkerManager.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCMarkerManager.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCMarkerManager.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCMarkerManager.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCNode.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCNode.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCNode.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCNode.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCPositioningStrategy.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCPositioningStrategy.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCPositioningStrategy.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCPositioningStrategy.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCTagMergeStrategy.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCTagMergeStrategy.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCTagMergeStrategy.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCTagMergeStrategy.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCThresholdStrategy.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCThresholdStrategy.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCThresholdStrategy.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMCThresholdStrategy.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFArrowheadPath.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFArrowheadPath.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFArrowheadPath.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFArrowheadPath.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFAuthManager.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFAuthManager.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFAuthManager.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFAuthManager.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFCameraCommon.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFCameraCommon.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFCameraCommon.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFCameraCommon.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFCameraPosition.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFCameraPosition.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFCameraPosition.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFCameraPosition.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFCameraUpdate.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFCameraUpdate.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFCameraUpdate.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFCameraUpdate.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFCameraUpdateParams.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFCameraUpdateParams.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFCameraUpdateParams.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFCameraUpdateParams.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFCircleOverlay.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFCircleOverlay.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFCircleOverlay.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFCircleOverlay.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFCompassView.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFCompassView.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFCompassView.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFCompassView.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFFoundation.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFFoundation.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFFoundation.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFFoundation.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFGeometry.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFGeometry.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFGeometry.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFGeometry.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFGroundOverlay.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFGroundOverlay.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFGroundOverlay.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFGroundOverlay.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFIndoorLevel.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFIndoorLevel.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFIndoorLevel.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFIndoorLevel.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFIndoorLevelPickerView.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFIndoorLevelPickerView.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFIndoorLevelPickerView.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFIndoorLevelPickerView.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFIndoorRegion.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFIndoorRegion.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFIndoorRegion.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFIndoorRegion.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFIndoorSelection.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFIndoorSelection.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFIndoorSelection.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFIndoorSelection.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFIndoorSelectionDelegate.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFIndoorSelectionDelegate.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFIndoorSelectionDelegate.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFIndoorSelectionDelegate.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFIndoorView.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFIndoorView.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFIndoorView.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFIndoorView.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFIndoorZone.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFIndoorZone.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFIndoorZone.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFIndoorZone.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFInfoWindow.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFInfoWindow.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFInfoWindow.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFInfoWindow.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFInfoWindowDefaultTextSource.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFInfoWindowDefaultTextSource.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFInfoWindowDefaultTextSource.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFInfoWindowDefaultTextSource.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFLocationButton.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFLocationButton.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFLocationButton.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFLocationButton.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFLocationManager.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFLocationManager.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFLocationManager.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFLocationManager.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFLocationOverlay.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFLocationOverlay.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFLocationOverlay.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFLocationOverlay.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMapView+IBAdditions.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMapView+IBAdditions.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMapView+IBAdditions.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMapView+IBAdditions.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMapView.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMapView.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMapView.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMapView.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMapViewCameraDelegate.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMapViewCameraDelegate.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMapViewCameraDelegate.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMapViewCameraDelegate.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMapViewDelegate.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMapViewDelegate.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMapViewDelegate.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMapViewDelegate.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMapViewOptionDelegate.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMapViewOptionDelegate.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMapViewOptionDelegate.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMapViewOptionDelegate.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMapViewTouchDelegate.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMapViewTouchDelegate.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMapViewTouchDelegate.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMapViewTouchDelegate.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMarker.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMarker.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMarker.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMarker.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMarkerConstants.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMarkerConstants.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMarkerConstants.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMarkerConstants.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMultipartPath.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMultipartPath.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMultipartPath.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMultipartPath.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMyPositionMode.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMyPositionMode.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMyPositionMode.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFMyPositionMode.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFNaverMapView.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFNaverMapView.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFNaverMapView.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFNaverMapView.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFOfflinePack.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFOfflinePack.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFOfflinePack.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFOfflinePack.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFOfflineRegion.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFOfflineRegion.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFOfflineRegion.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFOfflineRegion.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFOfflineStorage.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFOfflineStorage.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFOfflineStorage.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFOfflineStorage.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFOverlay.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFOverlay.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFOverlay.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFOverlay.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFOverlayImage.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFOverlayImage.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFOverlayImage.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFOverlayImage.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFPath.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFPath.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFPath.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFPath.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFPathColor.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFPathColor.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFPathColor.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFPathColor.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFPickable.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFPickable.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFPickable.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFPickable.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFPolygonOverlay.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFPolygonOverlay.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFPolygonOverlay.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFPolygonOverlay.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFPolylineOverlay.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFPolylineOverlay.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFPolylineOverlay.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFPolylineOverlay.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFProjection.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFProjection.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFProjection.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFProjection.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFRendererOptions.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFRendererOptions.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFRendererOptions.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFRendererOptions.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFScaleView.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFScaleView.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFScaleView.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFScaleView.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFSymbol.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFSymbol.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFSymbol.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFSymbol.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFTileCoverHelper.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFTileCoverHelper.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFTileCoverHelper.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFTileCoverHelper.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFTileId.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFTileId.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFTileId.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFTileId.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFTypes.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFTypes.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFTypes.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFTypes.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFUtils.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFUtils.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFUtils.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFUtils.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFZoomControlView.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFZoomControlView.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFZoomControlView.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMFZoomControlView.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMapsMap.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMapsMap.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMapsMap.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NMapsMap.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NSBundle+NMFAdditions.h b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NSBundle+NMFAdditions.h similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NSBundle+NMFAdditions.h rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Headers/NSBundle+NMFAdditions.h diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Info.plist b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Info.plist similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Info.plist rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Info.plist diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/LICENSE b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/LICENSE similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/LICENSE rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/LICENSE diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Modules/module.modulemap b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Modules/module.modulemap similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Modules/module.modulemap rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/Modules/module.modulemap diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMFIndoorLevelPickerCell.nib/objects-11.0+.nib b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMFIndoorLevelPickerCell.nib/objects-11.0+.nib similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMFIndoorLevelPickerCell.nib/objects-11.0+.nib rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMFIndoorLevelPickerCell.nib/objects-11.0+.nib diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMFIndoorLevelPickerCell.nib/runtime.nib b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMFIndoorLevelPickerCell.nib/runtime.nib similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMFIndoorLevelPickerCell.nib/runtime.nib rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMFIndoorLevelPickerCell.nib/runtime.nib diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMFIndoorLevelPickerView.nib/objects-11.0+.nib b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMFIndoorLevelPickerView.nib/objects-11.0+.nib similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMFIndoorLevelPickerView.nib/objects-11.0+.nib rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMFIndoorLevelPickerView.nib/objects-11.0+.nib diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMFIndoorLevelPickerView.nib/runtime.nib b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMFIndoorLevelPickerView.nib/runtime.nib similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMFIndoorLevelPickerView.nib/runtime.nib rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMFIndoorLevelPickerView.nib/runtime.nib diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMFInfoWindowDefaultTextSource.nib b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMFInfoWindowDefaultTextSource.nib similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMFInfoWindowDefaultTextSource.nib rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMFInfoWindowDefaultTextSource.nib diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMFNaverMapView.nib/objects-11.0+.nib b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMFNaverMapView.nib/objects-11.0+.nib similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMFNaverMapView.nib/objects-11.0+.nib rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMFNaverMapView.nib/objects-11.0+.nib diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMFNaverMapView.nib/runtime.nib b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMFNaverMapView.nib/runtime.nib similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMFNaverMapView.nib/runtime.nib rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMFNaverMapView.nib/runtime.nib diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMFScaleView.nib b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMFScaleView.nib similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMFScaleView.nib rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMFScaleView.nib diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMFZoomControlView.nib b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMFZoomControlView.nib similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMFZoomControlView.nib rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMFZoomControlView.nib diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMapsMap b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMapsMap similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMapsMap rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NMapsMap diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NOTICE b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NOTICE similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NOTICE rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/NOTICE diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/_CodeSignature/CodeResources b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/_CodeSignature/CodeResources similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/_CodeSignature/CodeResources rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/_CodeSignature/CodeResources diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/default.metallib b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/default.metallib similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/default.metallib rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/default.metallib diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/en.lproj/Foundation.strings b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/en.lproj/Foundation.strings similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/en.lproj/Foundation.strings rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/en.lproj/Foundation.strings diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/en.lproj/Localizable.strings b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/en.lproj/Localizable.strings similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/en.lproj/Localizable.strings rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/en.lproj/Localizable.strings diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/ja.lproj/Foundation.strings b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/ja.lproj/Foundation.strings similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/ja.lproj/Foundation.strings rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/ja.lproj/Foundation.strings diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/ja.lproj/Localizable.strings b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/ja.lproj/Localizable.strings similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/ja.lproj/Localizable.strings rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/ja.lproj/Localizable.strings diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/ko.lproj/Foundation.strings b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/ko.lproj/Foundation.strings similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/ko.lproj/Foundation.strings rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/ko.lproj/Foundation.strings diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/ko.lproj/Foundation.stringsdict b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/ko.lproj/Foundation.stringsdict similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/ko.lproj/Foundation.stringsdict rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/ko.lproj/Foundation.stringsdict diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/ko.lproj/Localizable.strings b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/ko.lproj/Localizable.strings similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/ko.lproj/Localizable.strings rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/ko.lproj/Localizable.strings diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/zh-Hans.lproj/Foundation.strings b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/zh-Hans.lproj/Foundation.strings similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/zh-Hans.lproj/Foundation.strings rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/zh-Hans.lproj/Foundation.strings diff --git a/Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/zh-Hans.lproj/Localizable.strings b/Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/zh-Hans.lproj/Localizable.strings similarity index 100% rename from Frameworks/NMapsMap/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/zh-Hans.lproj/Localizable.strings rename to Frameworks/NMapsMap.xcframework/ios-arm64_x86_64-simulator/NMapsMap.framework/zh-Hans.lproj/Localizable.strings diff --git a/Makefile b/Makefile index d4a8ba4a..8821d635 100644 --- a/Makefile +++ b/Makefile @@ -1,12 +1,20 @@ -open_plist: - open -a Xcode Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/InfoPlist.swift +init: fetch gen + +fetch: + tuist clean + tuist install +gen: + tuist generate --no-open -open_config: - open -a Xcode Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/XCConfig.swift +sign: + @GIT_TOKEN=$$(git config user.password || git config --global user.password); \ + if [ -z "$$GIT_TOKEN" ]; then \ + echo "❌ Git token not found."; \ + exit 1; \ + fi; \ + $(MAKE) download-privates token=$$GIT_TOKEN && \ + fastlane sync -clean_xcode: - rm -rf ~/Library/Developer/Xcode/DerivedData/* - clean: rm -rf **/**/**/*.xcodeproj rm -rf **/**/*.xcodeproj @@ -17,16 +25,24 @@ clean: rm -rf **/Derived/ rm -rf Derived/ -clean_all: - make clean - make clean_xcode +update_tuist: + sh ./Scripts/update_tuist.sh +open_plist: + open -a Xcode Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/InfoPlist.swift + +open_config: + open -a Xcode Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/XCConfig.swift + +clean_xcode_cache: + rm -rf ~/Library/Developer/Xcode/DerivedData/* + BASE_URL = https://raw.githubusercontent.com/Pepsi-Club/WhereMyBus-ignored/main define download_file - @echo "Downloading $(3) to $(1) using token: $(2)" + @echo "📥 Downloading $(3) to $(1)" mkdir -p $(1) - curl -H "Authorization: token $(2)" -o $(1)/$(3) $(BASE_URL)/$(3) + curl -sS -H "Authorization: token $(2)" -o $(1)/$(3) $(BASE_URL)/$(3) endef .PHONY: download-privates @@ -48,5 +64,3 @@ download-env: download-googleinfo: $(call download_file, Projects/App/Resources, $(token),GoogleService-Info.plist) $(call download_file, Projects/App/Resources, $(token),GoogleService-Info-debugging.plist) - - diff --git a/Plugins/DependencyPlugin/Plugin.swift b/Plugins/DependencyPlugin/Plugin.swift deleted file mode 100644 index 554b1650..00000000 --- a/Plugins/DependencyPlugin/Plugin.swift +++ /dev/null @@ -1,11 +0,0 @@ -// -// Plugin.swift -// Environment -// -// Created by gnksbm on 2023/11/19. -// - -import ProjectDescription - -let DependencyPlugin = Plugin(name: "DependencyPlugin") - diff --git a/Plugins/DependencyPlugin/ProjectDescriptionHelpers/Dependency+Feature.swift b/Plugins/DependencyPlugin/ProjectDescriptionHelpers/Dependency+Feature.swift deleted file mode 100644 index 5dd38605..00000000 --- a/Plugins/DependencyPlugin/ProjectDescriptionHelpers/Dependency+Feature.swift +++ /dev/null @@ -1,28 +0,0 @@ -// -// Dependency+Feature.swift -// DependencyPlugin -// -// Created by gnksbm on 2023/11/23. -// - -import ProjectDescription - -public extension Array { - enum Presentation: String, CaseIterable { - case home, alarm, settings, busStop, search, nearMap - - public var dependency: TargetDependency { - var name = rawValue.map { $0 } - name.removeFirst() - name.insert(Character(rawValue.first!.uppercased()), at: 0) - return presentationModule(name: "\(String(name))Feature") - } - - private func presentationModule(name: String) -> TargetDependency { - .project( - target: "\(name)", - path: .relativeToRoot("Projects/Feature/\(name)") - ) - } - } -} diff --git a/Plugins/DependencyPlugin/ProjectDescriptionHelpers/Dependency+Module.swift b/Plugins/DependencyPlugin/ProjectDescriptionHelpers/Dependency+Module.swift deleted file mode 100644 index a97141f1..00000000 --- a/Plugins/DependencyPlugin/ProjectDescriptionHelpers/Dependency+Module.swift +++ /dev/null @@ -1,28 +0,0 @@ -// -// Dependency+Module.swift -// Environment -// -// Created by gnksbm on 2023/11/19. -// - -import ProjectDescription - -public extension TargetDependency { - static let app: Self = .module(name: "App") - static let mainFeature: Self = .module(name: "MainFeature") - static let featureDependency: Self = .module(name: "FeatureDependency") - static let core: Self = .module(name: "Core") - static let data: Self = .module(name: "Data") - static let domain: Self = .module(name: "Domain") - static let networkService: Self = .module(name: "NetworkService") - static let coreDataService: Self = .module(name: "CoreDataService") - static let designSystem: Self = .module(name: "DesignSystem") - static let thirdPartyLibs: Self = .module(name: "ThirdPartyLibs") - - private static func module(name: String) -> Self { - .project(target: name, path: .relativeToRoot("Projects/\(name)")) - } - private static func moduleWithAdditionalPath(name: String, path: String) -> Self { - .project(target: name, path: .relativeToRoot("Projects/\(path)/\(name)")) - } -} diff --git a/Plugins/DependencyPlugin/ProjectDescriptionHelpers/Dependency+ThirdPartyExternal.swift b/Plugins/DependencyPlugin/ProjectDescriptionHelpers/Dependency+ThirdPartyExternal.swift deleted file mode 100644 index ef044fa6..00000000 --- a/Plugins/DependencyPlugin/ProjectDescriptionHelpers/Dependency+ThirdPartyExternal.swift +++ /dev/null @@ -1,26 +0,0 @@ -// -// Dependency+ThirdPartyExternal.swift -// DependencyPlugin -// -// Created by gnksbm on 2023/12/27. -// - -import ProjectDescription - -public extension Array { - static let thirdPartyExternal = ThirdPartyExternal.allCases - .map { - Element.external(name: $0.name) - } - - enum ThirdPartyExternal: String, CaseIterable { - case rxCocoa - - public var name: String { - var name = rawValue.map { $0 } - name.removeFirst() - name.insert(Character(rawValue.first!.uppercased()), at: 0) - return "\(String(name))" - } - } -} diff --git a/Plugins/DependencyPlugin/ProjectDescriptionHelpers/Dependency+ThirdPartyRemote.swift b/Plugins/DependencyPlugin/ProjectDescriptionHelpers/Dependency+ThirdPartyRemote.swift deleted file mode 100644 index e3707fe9..00000000 --- a/Plugins/DependencyPlugin/ProjectDescriptionHelpers/Dependency+ThirdPartyRemote.swift +++ /dev/null @@ -1,33 +0,0 @@ -// -// ThirdPartyLibs.swift -// Environment -// -// Created by gnksbm on 2023/11/19. -// - -import ProjectDescription - -public extension Array { - struct ThirdPartyRemote { - } -} - -public extension Array.ThirdPartyRemote { - enum SPM: CaseIterable { - case rxSwift - - public var url: String { - switch self { - case .rxSwift: - return "https://github.com/ReactiveX/RxSwift" - } - } - - public var upToNextMajor: Version { - switch self { - case .rxSwift: - return "6.0.0" - } - } - } -} diff --git a/Plugins/DependencyPlugin/ProjectDescriptionHelpers/Depondency+ThirdPartyXCFramework.swift b/Plugins/DependencyPlugin/ProjectDescriptionHelpers/Depondency+ThirdPartyXCFramework.swift deleted file mode 100644 index 171987e3..00000000 --- a/Plugins/DependencyPlugin/ProjectDescriptionHelpers/Depondency+ThirdPartyXCFramework.swift +++ /dev/null @@ -1,36 +0,0 @@ -// -// Depondency+ThirdPartyXCFramework.swift -// DependencyPlugin -// -// Created by gnksbm on 3/30/24. -// - -import Foundation -import ProjectDescription - -public extension Array { - static let thirdPartyXCFramework = ThirdPartyXCFramework.allCases - .map { - $0.toXcFramework() - } - - enum ThirdPartyXCFramework: String, CaseIterable { - case nMapsGeometry = "NMapsGeometry" - case nMapsMap = "NMapsMap" - - var additionalPath: String { - switch self { - case .nMapsMap, .nMapsGeometry: - return "NMapsMap/" - } - } - - public func toXcFramework() -> Element { - .xcframework( - path: .relativeToRoot( - "Frameworks/\(additionalPath)\(rawValue).xcframework" - ) - ) - } - } -} diff --git a/Plugins/EnvironmentPlugin/Plugin.swift b/Plugins/EnvironmentPlugin/Plugin.swift index 282bc7b5..2c81f721 100644 --- a/Plugins/EnvironmentPlugin/Plugin.swift +++ b/Plugins/EnvironmentPlugin/Plugin.swift @@ -6,6 +6,6 @@ // Copyright © 2023 https://github.com/gnksbm/Clone_AppStore. All rights reserved. // -import ProjectDescription +@preconcurrency import ProjectDescription let EnvironmentPlugin = Plugin(name: "EnvironmentPlugin") diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/InfoPlistBuildable/InfoPlist/UIKitInfoPlist.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/InfoPlistBuildable/InfoPlist/UIKitInfoPlist.swift new file mode 100644 index 00000000..565c2955 --- /dev/null +++ b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/InfoPlistBuildable/InfoPlist/UIKitInfoPlist.swift @@ -0,0 +1,30 @@ +// +// UIKitInfoPlist.swift +// EnvironmentPlugin +// +// Created by gnksbm on 4/11/25. +// + +import Foundation + +public struct UIKitInfoPlist: InfoPlistBuildable { + public var dictionary: [String : ProjectDescription.Plist.Value] { + [ + "UILaunchStoryboardName": "LaunchScreen.storyboard", + "UIApplicationSceneManifest": [ + "UIApplicationSupportsMultipleScenes": false, + "UISceneConfigurations": [ + "UIWindowSceneSessionRoleApplication": [ + [ + "UISceneConfigurationName": "Default Configuration", + "UISceneDelegateClassName": "$(PRODUCT_MODULE_NAME).SceneDelegate" + ], + ] + ] + ], + "UISupportedInterfaceOrientations": ["UIInterfaceOrientationPortrait"] + ] + } + + public init() { } +} diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/InfoPlistBuildable/InfoPlist/WhereMyBusInfoPlist.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/InfoPlistBuildable/InfoPlist/WhereMyBusInfoPlist.swift new file mode 100644 index 00000000..26b60f3c --- /dev/null +++ b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/InfoPlistBuildable/InfoPlist/WhereMyBusInfoPlist.swift @@ -0,0 +1,16 @@ +// +// WhereMyBusInfoPlist.swift +// EnvironmentPlugin +// +// Created by gnksbm on 4/11/25. +// + +import Foundation + + + + + + + + diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/InfoPlistBuildable/InfoPlistBuildable.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/InfoPlistBuildable/InfoPlistBuildable.swift new file mode 100644 index 00000000..cf27f273 --- /dev/null +++ b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/InfoPlistBuildable/InfoPlistBuildable.swift @@ -0,0 +1,26 @@ +// +// InfoPlistBuildable.swift +// EnvironmentPlugin +// +// Created by gnksbm on 4/11/25. +// + +import ProjectDescription + +public protocol InfoPlistBuildable { + var dictionary: [String: Plist.Value] { get } +} + +public extension InfoPlistBuildable { + func buildInfoPlist() -> InfoPlist { + .dictionary(dictionary) + } +} + +extension Array: InfoPlistBuildable where Element == any InfoPlistBuildable { + public var dictionary: [String : Plist.Value] { + reduce([String : Plist.Value]()) { partialResult, next in + partialResult.merging(next.dictionary) { _, new in new } + } + } +} diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/ProjectComponentBuilder.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/ProjectComponentBuilder.swift new file mode 100644 index 00000000..fb956e50 --- /dev/null +++ b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/ProjectComponentBuilder.swift @@ -0,0 +1,89 @@ +// +// ProjectComponentBuilder.swift +// EnvironmentPlugin +// +// Created by gnksbm on 4/6/25. +// + +@resultBuilder +public struct ProjectComponentBuilder { + let targets: [Target] + let schemes: [Scheme] + + init(targets: [Target] = [], schemes: [Scheme] = []) { + self.targets = targets + self.schemes = schemes + } + + public static func buildBlock() -> ProjectComponentBuilder { + .init() + } + + public static func buildExpression(_ expression: ProjectComponentBuilder) -> ProjectComponentBuilder { + .init(targets: expression.targets, schemes: expression.schemes) + } + + public static func buildPartialBlock(first: ProjectComponentBuilder) -> ProjectComponentBuilder { + .init(targets: first.targets, schemes: first.schemes) + } + + public static func buildPartialBlock(accumulated: ProjectComponentBuilder, next: ProjectComponentBuilder) -> ProjectComponentBuilder { + .init( + targets: accumulated.targets + next.targets, + schemes: accumulated.schemes + next.schemes + ) + } +} + +extension ProjectComponentBuilder { + public static func buildExpression(_ expression: TargetBuilder) -> ProjectComponentBuilder { + .init(targets: expression.targetBuildable.map { $0.buildTarget() }) + } +} + +extension ProjectComponentBuilder { + public static func buildExpression(_ expression: TargetBuildable) -> ProjectComponentBuilder { + .init(targets: [expression.buildTarget()]) + } + + public static func buildExpression(_ expression: TargetBuildable...) -> ProjectComponentBuilder { + .init(targets: expression.map { $0.buildTarget() }) + } + + public static func buildExpression(_ expression: [TargetBuildable]) -> ProjectComponentBuilder { + .init(targets: expression.map { $0.buildTarget() }) + } +} + +extension ProjectComponentBuilder { + public static func buildExpression(_ expression: SchemeBuildable) -> ProjectComponentBuilder { + .init(schemes: [expression.buildScheme()]) + } + + public static func buildExpression(_ expression: SchemeBuildable...) -> ProjectComponentBuilder { + .init(schemes: expression.map { $0.buildScheme() }) + } + + public static func buildExpression(_ expression: [SchemeBuildable]) -> ProjectComponentBuilder { + .init(schemes: expression.map { $0.buildScheme() }) + } +} + +public extension Project { + init( + name: String, + packages: [Package] = [], + options: Options = .options(), + @ProjectComponentBuilder components builder: () -> ProjectComponentBuilder + ) { + let builder = builder() + self.init( + name: name, + organizationName: .organizationName, + options: options, + packages: packages, + targets: builder.targets, + schemes: builder.schemes + ) + } +} diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/SchemeBuildable/Scheme/AppScheme.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/SchemeBuildable/Scheme/AppScheme.swift new file mode 100644 index 00000000..91c0aab7 --- /dev/null +++ b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/SchemeBuildable/Scheme/AppScheme.swift @@ -0,0 +1,40 @@ +// +// AppScheme.swift +// EnvironmentPlugin +// +// Created by gnksbm on 4/6/25. +// + +public struct AppScheme: SchemeBuildable { + public let name: String + + public let shared: Bool = true + public var buildAction: BuildAction? { + .buildAction(targets: ["\(name)"]) + } + public var testAction: TestAction? { + .targets( + ["\(name)Tests"], + configuration: .debug, + options: .options( + coverage: true, + codeCoverageTargets: ["\(name)"] + ) + ) + } + public var runAction: RunAction? { + .runAction( + configuration: .debug, + arguments: .arguments( + launchArguments: [ + .launchArgument(name: "-FIRDebugDisabled", isEnabled: true), + .launchArgument(name: "-noFIRAnalyticsDebugEnabled", isEnabled: true) + ] + ) + ) + } + + public init(name: String) { + self.name = name + } +} diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/SchemeBuildable/Scheme/SampleAppScheme.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/SchemeBuildable/Scheme/SampleAppScheme.swift new file mode 100644 index 00000000..69b38d47 --- /dev/null +++ b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/SchemeBuildable/Scheme/SampleAppScheme.swift @@ -0,0 +1,21 @@ +// +// SampleAppScheme.swift +// EnvironmentPlugin +// +// Created by gnksbm on 4/6/25. +// + +public struct SampleAppScheme: SchemeBuildable { + public let name: String + + public let shared: Bool = true + public var buildAction: BuildAction? { + .buildAction( + targets: ["\(name)"] + ) + } + + public init(name: String) { + self.name = name + "SampleApp" + } +} diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/SchemeBuildable/Scheme/UITestsScheme.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/SchemeBuildable/Scheme/UITestsScheme.swift new file mode 100644 index 00000000..ae9c1c80 --- /dev/null +++ b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/SchemeBuildable/Scheme/UITestsScheme.swift @@ -0,0 +1,30 @@ +// +// UITestsScheme.swift +// EnvironmentPlugin +// +// Created by gnksbm on 4/6/25. +// + +public struct UITestsScheme: SchemeBuildable { + public let targetName: String + + public var name: String { "\(targetName)UITests" } + public var shared: Bool = true + public var buildAction: BuildAction? { + .buildAction(targets: ["\(targetName)"]) + } + public var testAction: TestAction? { + .targets( + ["\(name)"], + configuration: .debug, + options: .options( + coverage: true, + codeCoverageTargets: ["\(targetName)"] + ) + ) + } + + public init(targetName: String) { + self.targetName = targetName + } +} diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/SchemeBuildable/Scheme/UnitTestsScheme.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/SchemeBuildable/Scheme/UnitTestsScheme.swift new file mode 100644 index 00000000..5fd86297 --- /dev/null +++ b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/SchemeBuildable/Scheme/UnitTestsScheme.swift @@ -0,0 +1,30 @@ +// +// UnitTestsScheme.swift +// EnvironmentPlugin +// +// Created by gnksbm on 4/6/25. +// + +public struct UnitTestsScheme: SchemeBuildable { + public let targetName: String + + public var name: String { "\(targetName)Tests" } + public let shared: Bool = true + public var buildAction: BuildAction? { + .buildAction(targets: ["\(targetName)"]) + } + public var testAction: TestAction? { + .targets( + ["\(name)"], + configuration: .debug, + options: .options( + coverage: true, + codeCoverageTargets: ["\(targetName)"] + ) + ) + } + + public init(targetName: String) { + self.targetName = targetName + } +} diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/SchemeBuildable/SchemeBuildable.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/SchemeBuildable/SchemeBuildable.swift new file mode 100644 index 00000000..ab657f35 --- /dev/null +++ b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/SchemeBuildable/SchemeBuildable.swift @@ -0,0 +1,43 @@ +// +// SchemeBuildable.swift +// EnvironmentPlugin +// +// Created by gnksbm on 4/6/25. +// + +public protocol SchemeBuildable { + var name: String { get } + var shared: Bool { get } + var hidden: Bool { get } + var buildAction: BuildAction? { get } + var testAction: TestAction? { get } + var runAction: RunAction? { get } + var archiveAction: ArchiveAction? { get } + var profileAction: ProfileAction? { get } + var analyzeAction: AnalyzeAction? { get } +} + +public extension SchemeBuildable { + var shared: Bool { true } + var hidden: Bool { false } + var buildAction: BuildAction? { nil } + var testAction: TestAction? { nil } + var runAction: RunAction? { .runAction(configuration: .debug) } + var archiveAction: ArchiveAction? { .archiveAction(configuration: .release) } + var profileAction: ProfileAction? { nil } + var analyzeAction: AnalyzeAction? { nil } + + func buildScheme() -> Scheme { + .scheme( + name: name, + shared: shared, + hidden: hidden, + buildAction: buildAction, + testAction: testAction, + runAction: runAction, + archiveAction: archiveAction, + profileAction: profileAction, + analyzeAction: analyzeAction + ) + } +} diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetBuildable/Target/App.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetBuildable/Target/App.swift new file mode 100644 index 00000000..f87561b8 --- /dev/null +++ b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetBuildable/Target/App.swift @@ -0,0 +1,34 @@ +// +// App.swift +// EnvironmentPlugin +// +// Created by gnksbm on 3/31/25. +// + +public struct App: TargetBuildable { + public let name: String + public let dependencies: [TargetDependency] + + public let product: Product = .app + public let bundleId: String = .bundleID + public let infoPlist: InfoPlist? + public let sources: SourceFilesList? = ["Sources/**"] + public let resources: ResourceFileElements? = ["Resources/**"] + public let scripts: [TargetScript] + public let settings: Settings? = .appDebug + + public var entitlements: Entitlements? { + .file(path: .relativeToManifest("\(name).entitlements")) + } + + public init( + name: String, + @TargetComponentBuilder dependencies builder: () -> TargetComponentBuilder + ) { + let builder = builder() + self.name = name + self.dependencies = builder.buildTargetDependency() + self.scripts = builder.buildTargetScript() + self.infoPlist = builder.buildInfoPlist() + } +} diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetBuildable/Target/Feature.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetBuildable/Target/Feature.swift new file mode 100644 index 00000000..a5056157 --- /dev/null +++ b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetBuildable/Target/Feature.swift @@ -0,0 +1,35 @@ +// +// Feature.swift +// EnvironmentPlugin +// +// Created by gnksbm on 4/6/25. +// + +public struct Feature: ImplementTarget { + public let name: String + public let hasResource: Bool + public let dependencies: [TargetDependency] + + public let product: Product = .staticFramework + public let infoPlist: InfoPlist? + public let settings: Settings = .frameworkDebug + public let scripts: [TargetScript] + + public var resources: ResourceFileElements? { hasResource ? ["Resources/**"] : nil } + public var targetDependencyPath: Path { + .relativeToRoot("Projects/Feature/\(name)") + } + + public init( + name: String, + hasResource: Bool = false, + @TargetComponentBuilder dependencies builder: () -> TargetComponentBuilder = { .init() } + ) { + let builder = builder() + self.name = name + self.hasResource = hasResource + self.dependencies = builder.buildTargetDependency() + self.scripts = builder.buildTargetScript() + self.infoPlist = builder.buildInfoPlist() + } +} diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetBuildable/Target/SampleApp.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetBuildable/Target/SampleApp.swift new file mode 100644 index 00000000..cdb2650e --- /dev/null +++ b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetBuildable/Target/SampleApp.swift @@ -0,0 +1,28 @@ +// +// SampleApp.swift +// EnvironmentPlugin +// +// Created by gnksbm on 4/6/25. +// + +public struct SampleApp: BundleIDSuffixTarget { + public let name: String + public let dependencies: [TargetDependency] + + public let product: Product = .app + public let bundleId: String = .bundleID + ".Demo" + public let sources: SourceFilesList? = ["Demo/**"] + public let settings: Settings? = .appDebug + + public var infoPlist: InfoPlist? + + public init( + name: String, + @TargetComponentBuilder dependencies builder: () -> TargetComponentBuilder + ) { + let builder = builder() + self.name = name + "SampleApp" + self.dependencies = builder.buildTargetDependency() + self.infoPlist = builder.buildInfoPlist() + } +} diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetBuildable/Target/UnitTests.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetBuildable/Target/UnitTests.swift new file mode 100644 index 00000000..11664afc --- /dev/null +++ b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetBuildable/Target/UnitTests.swift @@ -0,0 +1,27 @@ +// +// UnitTests.swift +// EnvironmentPlugin +// +// Created by gnksbm on 4/6/25. +// + +public struct UnitTests: TestsTarget { + public let name: String + public let infoPlist: InfoPlist? + public let dependencies: [TargetDependency] + public let product: Product = .unitTests + + public var bundleId: String { + "\(name).Tests" + } + + public init( + name: String, + @TargetComponentBuilder dependencies builder: () -> TargetComponentBuilder + ) { + let builder = builder() + self.name = name + self.dependencies = builder.buildTargetDependency() + self.infoPlist = builder.buildInfoPlist() + } +} diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetBuildable/Target/WidgetExtension.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetBuildable/Target/WidgetExtension.swift new file mode 100644 index 00000000..7141be03 --- /dev/null +++ b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetBuildable/Target/WidgetExtension.swift @@ -0,0 +1,55 @@ +// +// WidgetExtension.swift +// EnvironmentPlugin +// +// Created by gnksbm on 4/6/25. +// + +public struct WidgetExtension: AppExtensionTarget { + public let name: String + public let dependencies: [TargetDependency] + + public let infoPlist: InfoPlist? + public let scripts: [TargetScript] + + public var sources: SourceFilesList? { ["\(name)/**"] } + public var resources: ResourceFileElements? { + [ + "Resources/Model.xcdatamodeld", + "Resources/total_stationList.json", + "Widget/Resources/**", + ] + } + public var entitlements: Entitlements? { + .file(path: .relativeToRoot("Projects/App/Widget.entitlements")) + } + public var settings: Settings? { + Settings.settings( + base: .init() + .setCodeSignManual() + .setProvisioning(), + configurations: [ + .debug( + name: .debug, + xcconfig: .relativeToRoot("XCConfig/\(name)_Debug.xcconfig") + ), + .release( + name: .release, + xcconfig: .relativeToRoot("XCConfig/\(name)_Release.xcconfig") + ), + ] + ) + } + public var bundleIDSuffix: String { name } + + public init( + name: String, + @TargetComponentBuilder dependencies builder: () -> TargetComponentBuilder + ) { + let builder = builder() + self.name = name + self.dependencies = builder.buildTargetDependency() + self.scripts = builder.buildTargetScript() + self.infoPlist = builder.buildInfoPlist() + } +} diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetBuildable/TargetBuildable.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetBuildable/TargetBuildable.swift new file mode 100644 index 00000000..1108877e --- /dev/null +++ b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetBuildable/TargetBuildable.swift @@ -0,0 +1,81 @@ +// +// TargetBuildable.swift +// EnvironmentPlugin +// +// Created by gnksbm on 3/31/25. +// + +public protocol TargetBuildable { + var name: String { get } + var product: Product { get } + var productName: String? { get } + var bundleId: String { get } + var infoPlist: InfoPlist? { get } + var sources: SourceFilesList? { get } + var resources: ResourceFileElements? { get } + var copyFiles: [CopyFilesAction]? { get } + var headers: Headers? { get } + var entitlements: Entitlements? { get } + var scripts: [TargetScript] { get } + var dependencies: [TargetDependency] { get } + var settings: Settings? { get } + var coreDataModels: [CoreDataModel] { get } + var environmentVariables: [String : EnvironmentVariable] { get } + var launchArguments: [LaunchArgument] { get } + var additionalFiles: [FileElement] { get } + var buildRules: [BuildRule] { get } + var mergedBinaryType: MergedBinaryType { get } + var mergeable: Bool { get } + var onDemandResourcesTags: OnDemandResourcesTags? { get } +} + +public extension TargetBuildable { + var destinations: Destinations { .iOS } + var productName: String? { nil } + var deploymentTargets: DeploymentTargets? { .iOS(.targetVersion) } + var infoPlist: InfoPlist? { .default } + var sources: SourceFilesList? { nil } + var resources: ResourceFileElements? { nil } + var copyFiles: [CopyFilesAction]? { nil } + var headers: Headers? { nil } + var entitlements: Entitlements? { nil } + var scripts: [TargetScript] { [] } + var dependencies: [TargetDependency] { [] } + var settings: Settings? { nil } + var coreDataModels: [CoreDataModel] { [] } + var environmentVariables: [String : EnvironmentVariable] { [:] } + var launchArguments: [LaunchArgument] { [] } + var additionalFiles: [FileElement] { [] } + var buildRules: [BuildRule] { [] } + var mergedBinaryType: MergedBinaryType { .disabled } + var mergeable: Bool { false } + var onDemandResourcesTags: OnDemandResourcesTags? { nil } + + func buildTarget() -> Target { + .target( + name: name, + destinations: destinations, + product: product, + productName: productName, + bundleId: bundleId, + deploymentTargets: deploymentTargets, + infoPlist: infoPlist, + sources: sources, + resources: resources, + copyFiles: copyFiles, + headers: headers, + entitlements: entitlements, + scripts: scripts, + dependencies: dependencies, + settings: settings, + coreDataModels: coreDataModels, + environmentVariables: environmentVariables, + launchArguments: launchArguments, + additionalFiles: additionalFiles, + buildRules: buildRules, + mergedBinaryType: mergedBinaryType, + mergeable: mergeable, + onDemandResourcesTags: onDemandResourcesTags + ) + } +} diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetBuildable/TargetInterface/AppExtensionTarget.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetBuildable/TargetInterface/AppExtensionTarget.swift new file mode 100644 index 00000000..779373db --- /dev/null +++ b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetBuildable/TargetInterface/AppExtensionTarget.swift @@ -0,0 +1,12 @@ +// +// AppExtensionTarget.swift +// EnvironmentPlugin +// +// Created by gnksbm on 3/31/25. +// + +public protocol AppExtensionTarget: BundleIDSuffixTarget { } + +public extension AppExtensionTarget { + var product: Product { .appExtension } +} diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetBuildable/TargetInterface/BundleIDSuffixTarget.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetBuildable/TargetInterface/BundleIDSuffixTarget.swift new file mode 100644 index 00000000..3faf2468 --- /dev/null +++ b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetBuildable/TargetInterface/BundleIDSuffixTarget.swift @@ -0,0 +1,12 @@ +// +// BundleIDSuffixTarget.swift +// EnvironmentPlugin +// +// Created by gnksbm on 4/6/25. +// + +public protocol BundleIDSuffixTarget: TargetBuildable { } + +public extension BundleIDSuffixTarget { + var bundleId: String { [.bundleID, name].joined(separator: ".") } +} diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetBuildable/TargetInterface/FrameworkTarget.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetBuildable/TargetInterface/FrameworkTarget.swift new file mode 100644 index 00000000..70bc3487 --- /dev/null +++ b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetBuildable/TargetInterface/FrameworkTarget.swift @@ -0,0 +1,21 @@ +// +// FrameworkTarget.swift +// ProjectDescriptionHelpers +// +// Created by gnksbm on 4/6/25. +// + +public protocol FrameworkTarget: ImplementTarget, TypeNameContains { } + +public extension FrameworkTarget { + var scripts: [TargetScript] { + [ + TargetScript.pre( + path: .relativeToRoot("Scripts/SwiftLintRunScript.sh"), + name: "SwiftLintShell", + basedOnDependencyAnalysis: false + ) + ] + } + var targetDependencyPath: Path { .relativeToRoot("Projects/\(name)") } +} diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetBuildable/TargetInterface/ImplementTarget.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetBuildable/TargetInterface/ImplementTarget.swift new file mode 100644 index 00000000..f06415a6 --- /dev/null +++ b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetBuildable/TargetInterface/ImplementTarget.swift @@ -0,0 +1,13 @@ +// +// ImplementTarget.swift +// EnvironmentPlugin +// +// Created by gnksbm on 3/31/25. +// + +public protocol ImplementTarget: BundleIDSuffixTarget, LocalDependency { } + +public extension ImplementTarget { + var sources: SourceFilesList? { ["Sources/**"] } + var settings: Settings { .frameworkDebug } +} diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetBuildable/TargetInterface/InterfaceTarget.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetBuildable/TargetInterface/InterfaceTarget.swift new file mode 100644 index 00000000..3d3b5a7b --- /dev/null +++ b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetBuildable/TargetInterface/InterfaceTarget.swift @@ -0,0 +1,13 @@ +// +// InterfaceTarget.swift +// EnvironmentPlugin +// +// Created by gnksbm on 4/6/25. +// + +public protocol InterfaceTarget: BundleIDSuffixTarget, LocalDependency { } + +public extension InterfaceTarget { + var product: Product { .framework } + var settings: Settings { .frameworkDebug } +} diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetBuildable/TargetInterface/TestingTarget.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetBuildable/TargetInterface/TestingTarget.swift new file mode 100644 index 00000000..6c09a6d7 --- /dev/null +++ b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetBuildable/TargetInterface/TestingTarget.swift @@ -0,0 +1,12 @@ +// +// TestingTarget.swift +// EnvironmentPlugin +// +// Created by gnksbm on 4/6/25. +// + +public protocol TestingTarget: TargetBuildable { } + +public extension TestingTarget { + var sources: SourceFilesList? { ["Testing/**"] } +} diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetBuildable/TargetInterface/TestsTarget.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetBuildable/TargetInterface/TestsTarget.swift new file mode 100644 index 00000000..fec24ff9 --- /dev/null +++ b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetBuildable/TargetInterface/TestsTarget.swift @@ -0,0 +1,32 @@ +// +// TestsTarget.swift +// EnvironmentPlugin +// +// Created by gnksbm on 4/6/25. +// + +public protocol TestsTarget: TargetBuildable { } + +public extension TestsTarget { + var sources: SourceFilesList? { ["Tests/**"] } + var settings: Settings? { + .settings( + base: .baseSetting + .setVersion() + .setCodeSignManual() + .setProvisioning() + .enableTestabilty(), + configurations: [ + .debug( + name: .debug, + xcconfig: .relativeToRoot("XCConfig/App_Debug.xcconfig") + ), + .release( + name: .release, + xcconfig: .relativeToRoot("XCConfig/App_Release.xcconfig") + ), + ], + defaultSettings: .recommended + ) + } +} diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetDependencyBuildable/TargetDependency/LocalDependency.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetDependencyBuildable/TargetDependency/LocalDependency.swift new file mode 100644 index 00000000..6b10532a --- /dev/null +++ b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetDependencyBuildable/TargetDependency/LocalDependency.swift @@ -0,0 +1,16 @@ +// +// LocalDependency.swift +// EnvironmentPlugin +// +// Created by gnksbm on 4/6/25. +// + +public protocol LocalDependency: TargetDependencyBuildable { + var targetDependencyPath: Path { get } +} + +public extension LocalDependency where Self: TargetBuildable { + func buildTargetDependency() -> [TargetDependency] { + [.project(target: name, path: targetDependencyPath)] + } +} diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetDependencyBuildable/TargetDependency/SPMDependency.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetDependencyBuildable/TargetDependency/SPMDependency.swift new file mode 100644 index 00000000..05f586d4 --- /dev/null +++ b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetDependencyBuildable/TargetDependency/SPMDependency.swift @@ -0,0 +1,16 @@ +// +// SPMDependency.swift +// EnvironmentPlugin +// +// Created by gnksbm on 3/31/25. +// + +public protocol SPMDependency: TargetDependencyBuildable, TypeNameContains { + var targetName: String { get } +} + +public extension SPMDependency { + func buildTargetDependency() -> [TargetDependency] { + [.external(name: targetName)] + } +} diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetDependencyBuildable/TargetDependency/XCFrameworkDependency.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetDependencyBuildable/TargetDependency/XCFrameworkDependency.swift new file mode 100644 index 00000000..b32573d0 --- /dev/null +++ b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetDependencyBuildable/TargetDependency/XCFrameworkDependency.swift @@ -0,0 +1,17 @@ +// +// XCFrameworkDependency.swift +// EnvironmentPlugin +// +// Created by gnksbm on 3/31/25. +// + +/// .xcframework는 Frameworks/ 경로에 위치해야 합니다. +public protocol XCFrameworkDependency: TargetDependencyBuildable, TypeNameContains { + var frameworkName: String { get } +} + +public extension XCFrameworkDependency { + func buildTargetDependency() -> [TargetDependency] { + [.xcframework(path: .relativeToRoot("Frameworks/\(frameworkName).xcframework"))] + } +} diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetDependencyBuildable/TargetDependencyBuildable.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetDependencyBuildable/TargetDependencyBuildable.swift new file mode 100644 index 00000000..77434d48 --- /dev/null +++ b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetDependencyBuildable/TargetDependencyBuildable.swift @@ -0,0 +1,16 @@ +// +// TargetDependencyBuildable.swift +// EnvironmentPlugin +// +// Created by gnksbm on 3/31/25. +// + +public protocol TargetDependencyBuildable { + func buildTargetDependency() -> [TargetDependency] +} + +extension TargetDependency: TargetDependencyBuildable { + public func buildTargetDependency() -> [TargetDependency] { + [self] + } +} diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetScriptBuildable/PreTargetScriptBuildable.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetScriptBuildable/PreTargetScriptBuildable.swift new file mode 100644 index 00000000..9a0bd07d --- /dev/null +++ b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetScriptBuildable/PreTargetScriptBuildable.swift @@ -0,0 +1,51 @@ +// +// PreTargetScriptBuildable.swift +// EnvironmentPlugin +// +// Created by gnksbm on 4/11/25. +// + +public protocol PreTargetScriptBuildable: TargetScriptBuildable { + var path: Path { get } + var arguments: [String] { get } + var name: String { get } + var inputPaths: [FileListGlob] { get } + var inputFileListPaths: [Path] { get } + var outputPaths: [Path] { get } + var outputFileListPaths: [Path] { get } + var basedOnDependencyAnalysis: Bool? { get } + var runForInstallBuildsOnly: Bool { get } + var shellPath: String { get } + var dependencyFile: Path? { get } +} + +public extension PreTargetScriptBuildable { + var arguments: [String] { [] } + var inputPaths: [FileListGlob] { [] } + var inputFileListPaths: [Path] { [] } + var outputPaths: [Path] { [] } + var outputFileListPaths: [Path] { [] } + var basedOnDependencyAnalysis: Bool? { false } + var runForInstallBuildsOnly: Bool { false } + var shellPath: String { "/bin/sh" } + var dependencyFile: Path? { nil } +} + +public extension PreTargetScriptBuildable { + func buildTargetScript() -> [TargetScript] { + [ + .pre( + path: path, + name: name, + inputPaths: inputPaths, + inputFileListPaths: inputFileListPaths, + outputPaths: outputPaths, + outputFileListPaths: outputFileListPaths, + basedOnDependencyAnalysis: basedOnDependencyAnalysis, + runForInstallBuildsOnly: runForInstallBuildsOnly, + shellPath: shellPath, + dependencyFile: dependencyFile + ) + ] + } +} diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetScriptBuildable/TargetScriptBuildable.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetScriptBuildable/TargetScriptBuildable.swift new file mode 100644 index 00000000..41973aa8 --- /dev/null +++ b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Buildable/TargetScriptBuildable/TargetScriptBuildable.swift @@ -0,0 +1,10 @@ +// +// TargetScriptBuildable.swift +// EnvironmentPlugin +// +// Created by gnksbm on 4/11/25. +// + +public protocol TargetScriptBuildable { + func buildTargetScript() -> [TargetScript] +} diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Builder/TargetBuilder.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Builder/TargetBuilder.swift new file mode 100644 index 00000000..8b9bd992 --- /dev/null +++ b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Builder/TargetBuilder.swift @@ -0,0 +1,61 @@ +// +// TargetBuilder.swift +// EnvironmentPlugin +// +// Created by gnksbm on 3/31/25. +// + +@resultBuilder +public struct TargetBuilder { + let dependencyBuildable: [TargetDependencyBuildable] + let targetBuildable: [TargetBuildable] + + init( + dependencyBuildable: [TargetDependencyBuildable] = [], + targetBuildable: [TargetBuildable] = [] + ) { + self.dependencyBuildable = dependencyBuildable + self.targetBuildable = targetBuildable + } +} + +// MARK: TargetBuilder +extension TargetBuilder { + public static func buildBlock() -> TargetBuilder { + .init() + } + + public static func buildExpression(_ expression: TargetBuilder...) -> TargetBuilder { + .init( + dependencyBuildable: expression.flatMap { $0.dependencyBuildable }, + targetBuildable: expression.flatMap { $0.targetBuildable } + ) + } + + public static func buildPartialBlock(first: TargetBuilder) -> TargetBuilder { + first + } + + public static func buildPartialBlock(accumulated: TargetBuilder, next: TargetBuilder) -> TargetBuilder { + .init( + dependencyBuildable: accumulated.dependencyBuildable + next.dependencyBuildable, + targetBuildable: accumulated.targetBuildable + next.targetBuildable + ) + } +} + +// MARK: TargetBuildable +public extension TargetBuilder { + static func buildExpression(_ expression: TargetBuildable) -> TargetBuilder { + .init(targetBuildable: [expression]) + } + + static func buildEither(first component: [any TargetBuildable]) -> TargetBuilder { + .init(targetBuildable: component) + } + + static func buildEither(second component: [any TargetBuildable]) -> TargetBuilder { + .init(targetBuildable: component) + } +} + diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Builder/TargetComponentBuilder.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Builder/TargetComponentBuilder.swift new file mode 100644 index 00000000..83be39fa --- /dev/null +++ b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Builder/TargetComponentBuilder.swift @@ -0,0 +1,93 @@ +// +// TargetComponentBuilder.swift +// EnvironmentPlugin +// +// Created by gnksbm on 3/31/25. +// + +@resultBuilder +public struct TargetComponentBuilder { + let dependencyBuildables: [TargetDependencyBuildable] + let targetScriptBuildables: [TargetScriptBuildable] + let infoPlistBuildables: [InfoPlistBuildable] + + public init( + dependencyBuildables: [TargetDependencyBuildable] = [], + targetScriptBuildables: [TargetScriptBuildable] = [], + infoPlistBuildables: [InfoPlistBuildable] = [] + ) { + self.dependencyBuildables = dependencyBuildables + self.targetScriptBuildables = targetScriptBuildables + self.infoPlistBuildables = infoPlistBuildables + } +} + +// MARK: TargetComponentBuilder +public extension TargetComponentBuilder { + static func buildBlock() -> TargetComponentBuilder { + .init() + } + + static func buildExpression(_ expression: TargetComponentBuilder...) -> TargetComponentBuilder { + .init( + dependencyBuildables: expression.flatMap { $0.dependencyBuildables }, + targetScriptBuildables: expression.flatMap { $0.targetScriptBuildables }, + infoPlistBuildables: expression.flatMap { $0.infoPlistBuildables } + ) + } + + static func buildPartialBlock(first: TargetComponentBuilder) -> TargetComponentBuilder { + first + } + + static func buildPartialBlock(accumulated: TargetComponentBuilder, next: TargetComponentBuilder) -> TargetComponentBuilder { + .init( + dependencyBuildables: accumulated.dependencyBuildables + next.dependencyBuildables, + targetScriptBuildables: accumulated.targetScriptBuildables + next.targetScriptBuildables, + infoPlistBuildables: accumulated.infoPlistBuildables + next.infoPlistBuildables + ) + } +} + +// MARK: TargetDependencyBuildable +public extension TargetComponentBuilder { + static func buildExpression(_ expression: TargetDependencyBuildable) -> TargetComponentBuilder { + .init(dependencyBuildables: [expression]) + } +} + +extension TargetComponentBuilder: TargetDependencyBuildable { + public func buildTargetDependency() -> [TargetDependency] { + dependencyBuildables.flatMap { $0.buildTargetDependency() } + } +} + +// MARK: TargetScriptBuildable +public extension TargetComponentBuilder { + static func buildExpression(_ expression: TargetScriptBuildable) -> TargetComponentBuilder { + .init(targetScriptBuildables: [expression]) + } +} + +extension TargetComponentBuilder: TargetScriptBuildable { + public func buildTargetScript() -> [TargetScript] { + targetScriptBuildables.flatMap { $0.buildTargetScript() } + } +} + +// MARK: InfoPlistBuildable +public extension TargetComponentBuilder { + static func buildExpression(_ expression: InfoPlistBuildable) -> TargetComponentBuilder { + .init(infoPlistBuildables: [expression]) + } +} + +extension TargetComponentBuilder: InfoPlistBuildable { + public var dictionary: [String : ProjectDescription.Plist.Value] { + [:] + } + + public func buildInfoPlist() -> InfoPlist { + infoPlistBuildables.buildInfoPlist() + } +} diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Common.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Common.swift new file mode 100644 index 00000000..279e5a54 --- /dev/null +++ b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Common.swift @@ -0,0 +1,8 @@ +// +// Common.swift +// EnvironmentPlugin +// +// Created by gnksbm on 3/31/25. +// + +@_exported import ProjectDescription diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Environment.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Environment.swift index 005e2541..72327099 100644 --- a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Environment.swift +++ b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Environment.swift @@ -13,6 +13,8 @@ public extension String { static let displayName: Self = "버스어디" static let organizationName = "Pepsi-Club" static let teamId = "T4W7695R5C" + static let targetVersion: Self = "16.0" + static let bundleID: Self = "com.\(organizationName).\(appName)" /// 앱스토어에 게시할 때마다 증가해줘야 하는 버전 static let marketingVersion: Self = "1.3.0" /// 개발자가 내부적으로 확인하기 위한 용도 (날짜를 사용하기도 함 - 2023.12.8.1 ) @@ -25,30 +27,3 @@ public extension String { return formatter.string(from: date) } } - -public extension String { - static let bundleID: Self = "com.\(organizationName).\(appName)" - static let targetVersion: Self = "16.0" -} - -extension Plist.Value { - static let bundleDisplayName: Self = .string(.displayName) - static let bundleShortVersionString: Self = .string(.marketingVersion) - static let bundleVersion: Self = .string(.buildVersion) -} - -extension SettingValue { - static let marketingVersion: Self = .string(.marketingVersion) - static let currentProjectVersion: Self = .string(.buildVersion) -} - -public extension DeploymentTarget { - static let deploymentTarget: Self = .iOS( - targetVersion: .targetVersion, - devices: .iphone - ) -} - -public extension Platform { - static let platform: Self = .iOS -} diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Foundation/TypeBuilder.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Foundation/TypeBuilder.swift new file mode 100644 index 00000000..51f4ea5e --- /dev/null +++ b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Foundation/TypeBuilder.swift @@ -0,0 +1,15 @@ +// +// TypeBuilder.swift +// EnvironmentPlugin +// +// Created by gnksbm on 4/11/25. +// + +import Foundation + +@resultBuilder +struct TypeBuilder { + static func buildBlock(_ components: T...) -> [T] { + components + } +} diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Foundation/TypeNameContains.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Foundation/TypeNameContains.swift new file mode 100644 index 00000000..2b826221 --- /dev/null +++ b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Foundation/TypeNameContains.swift @@ -0,0 +1,26 @@ +// +// TypeNameContains.swift +// EnvironmentPlugin +// +// Created by gnksbm on 3/31/25. +// + +import Foundation + +public protocol TypeNameContains { } + +public extension TypeNameContains { + var typeName: String { String(describing: type(of: self)) } +} + +public extension TypeNameContains where Self: SPMDependency { + var targetName: String { typeName } +} + +public extension TypeNameContains where Self: XCFrameworkDependency { + var frameworkName: String { typeName } +} + +public extension TypeNameContains where Self: TargetBuildable { + var name: String { typeName } +} diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/InfoPlist.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/InfoPlist.swift deleted file mode 100644 index 49a62959..00000000 --- a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/InfoPlist.swift +++ /dev/null @@ -1,146 +0,0 @@ -// -// InfoPlist.swift -// AppStore -// -// Created by gnksbm on 2023/11/19. -// Copyright © 2023 https://github.com/gnksbm/Clone_AppStore. All rights reserved. -// - -import ProjectDescription - -public extension InfoPlist { - static let appInfoPlist: Self = .extendingDefault( - with: .baseInfoPlist - .merging(.additionalInfoPlist) { oldValue, newValue in - newValue - } - .merging(.secrets) { oldValue, newValue in - newValue - } - ) - - static func demoAppInfoPlist(name: String) -> Self { - .extendingDefault( - with: .baseInfoPlist - .merging(.additionalInfoPlist) { oldValue, newValue in - newValue - } - .merging(.secrets) { oldValue, newValue in - newValue - } - .merging([ - "CFBundleDisplayName": "\(name)" - ]) { oldValue, newValue in - newValue - } - ) - } - - static let frameworkInfoPlist: Self = .extendingDefault( - with: .framework - .merging(.secrets) { oldValue, newValue in - newValue - } - ) -} - -public extension [String: Plist.Value] { - static let secrets: Self = [ - "DATA_GO_KR_API_KEY": "$(DATA_GO_KR_API_KEY)", - "NMFClientId": "$(NAVERMAP_CLIENT_ID)", - "TERMS_OF_PRIVACY_URL": "$(TERMS_OF_PRIVACY_URL)", - "LOCATION_PRIVACY_URL": "$(LOCATION_PRIVACY_URL)", - "INQUIRY_URL": "$(INQUIRY_URL)", - "APPSTORE_ID": "$(APPSTORE_ID)", - "DOMAIN_URL": "$(DOMAIN_URL)", - ] - - static let additionalInfoPlist: Self = [ - "FirebaseAppDelegateProxyEnabled": false, - "ITSAppUsesNonExemptEncryption": "NO", - "NSAppTransportSecurity": [ - "NSExceptionDomains": [ - "ws.bus.go.kr": [ - "NSIncludesSubdomains": true, - "NSExceptionAllowsInsecureHTTPLoads": true, - ] - ] - ], - "UIBackgroundModes": [ - "fetch", - "processing", - "remote-notification" - ], - "BGTaskSchedulerPermittedIdentifiers" : [.string(.bundleID)], - "NSLocationWhenInUseUsageDescription" : "주변 정류장을 찾기 위해 권한이 필요합니다.", - "NSLocationAlwaysAndWhenInUseUsageDescription" : "주변 정류장을 찾기 위해 권한이 필요합니다." - ] - - static let baseInfoPlist: Self = [ - "CFBundleDisplayName": .bundleDisplayName, - "CFBundleShortVersionString": .bundleShortVersionString, - "CFBundleVersion": .bundleVersion, - "UILaunchStoryboardName": "LaunchScreen.storyboard", - "UIApplicationSceneManifest": [ - "UIApplicationSupportsMultipleScenes": false, - "UISceneConfigurations": [ - "UIWindowSceneSessionRoleApplication": [ - [ - "UISceneConfigurationName": "Default Configuration", - "UISceneDelegateClassName": "$(PRODUCT_MODULE_NAME).SceneDelegate" - ], - ] - ] - ], - "UISupportedInterfaceOrientations": ["UIInterfaceOrientationPortrait"], - ] - - static let notificationInfoPlist: Self = [ - "DATA_GO_KR_API_KEY": "$(DATA_GO_KR_API_KEY)", - "CFBundleShortVersionString": .bundleShortVersionString, - "CFBundleVersion": .bundleVersion, - "CFBundleDisplayName": .bundleDisplayName, - "NSExtension": [ - "NSExtensionPointIdentifier": "com.apple.usernotifications.service", - "NSExtensionPrincipalClass": "$(PRODUCT_MODULE_NAME).NotificationService" - ], - "NSAppTransportSecurity": [ - "NSExceptionDomains": [ - "ws.bus.go.kr": [ - "NSIncludesSubdomains": true, - "NSExceptionAllowsInsecureHTTPLoads": true, - ] - ] - ], - ] - - static let widgetInfoPlist: Self = [ - "DATA_GO_KR_API_KEY": "$(DATA_GO_KR_API_KEY)", - "CFBundleShortVersionString": .bundleShortVersionString, - "CFBundleVersion": .bundleVersion, - "CFBundleDisplayName": .bundleDisplayName, - "CFBundlePackageType": "$(PRODUCT_BUNDLE_PACKAGE_TYPE)", - "NSExtension": [ - "NSExtensionPointIdentifier": "com.apple.widgetkit-extension", - ], - "NSAppTransportSecurity": [ - "NSExceptionDomains": [ - "ws.bus.go.kr": [ - "NSIncludesSubdomains": true, - "NSExceptionAllowsInsecureHTTPLoads": true, - ] - ] - ], - ] - - static let framework: Self = [ - "CFBundleDevelopmentRegion": "$(DEVELOPMENT_LANGUAGE)", - "CFBundleExecutable": "$(EXECUTABLE_NAME)", - "CFBundleIdentifier": "$(PRODUCT_BUNDLE_IDENTIFIER)", - "CFBundleInfoDictionaryVersion": "6.0", - "CFBundleName": "$(PRODUCT_NAME)", - "CFBundlePackageType": "FMWK", - "CFBundleShortVersionString": .bundleShortVersionString, - "CFBundleVersion": .bundleVersion, - ] -} diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Scheme.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Scheme.swift deleted file mode 100644 index 9a9b68ec..00000000 --- a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Scheme.swift +++ /dev/null @@ -1,54 +0,0 @@ -// -// Scheme.swift -// EnvironmentPlugin -// -// Created by gnksbm on 2024/01/13. -// - -import ProjectDescription - -public extension Scheme { - static func moduleScheme(name: String) -> Self { - Scheme( - name: name, - shared: true, - buildAction: .buildAction(targets: ["\(name)"]), - testAction: .targets( - ["\(name)Tests"], - configuration: .debug, - options: .options( - coverage: true, - codeCoverageTargets: ["\(name)"] - ) - ), - runAction: .runAction( - configuration: .debug, - arguments: .init(launchArguments: [ - .init( - name: "-FIRDebugEnabled", - isEnabled: true - ) - ]) - ), - archiveAction: .archiveAction(configuration: .release) - ) - } - - static func uiTestsScheme(name: String) -> Self { - Scheme( - name: "\(name)UITests", - shared: true, - buildAction: .buildAction(targets: ["\(name)"]), - testAction: .targets( - ["\(name)UITests"], - configuration: .debug, - options: .options( - coverage: true, - codeCoverageTargets: ["\(name)UITests"] - ) - ), - runAction: .runAction(configuration: .debug), - archiveAction: .archiveAction(configuration: .release) - ) - } -} diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Scripts.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Scripts.swift deleted file mode 100644 index 65263d80..00000000 --- a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Scripts.swift +++ /dev/null @@ -1,21 +0,0 @@ -// -// Scripts.swift -// ProjectDescriptionHelpers -// -// Created by gnksbm on 2023/11/19. -// - -import ProjectDescription - -public extension TargetScript { - static let swiftLint = TargetScript.pre( - path: .relativeToRoot("Scripts/SwiftLintRunScript.sh"), - name: "SwiftLintShell", - basedOnDependencyAnalysis: false - ) - static let featureSwiftLint = TargetScript.pre( - path: .relativeToRoot("Scripts/FeatureSwiftLintRunScript.sh"), - name: "SwiftLintShell", - basedOnDependencyAnalysis: false - ) -} diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/XCConfig.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/XCConfig.swift index d3614258..47a38f5d 100644 --- a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/XCConfig.swift +++ b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/XCConfig.swift @@ -84,8 +84,8 @@ public extension SettingsDictionary { merging( [ "VERSIONING_SYSTEM": .string("apple-generic"), - "CURRENT_PROJECT_VERSION": .currentProjectVersion, - "MARKETING_VERSION": .marketingVersion + "CURRENT_PROJECT_VERSION": .string(.buildVersion), + "MARKETING_VERSION": .string(.marketingVersion) ] ) } diff --git a/Projects/App/Project.swift b/Projects/App/Project.swift index 3e925065..5a68de13 100644 --- a/Projects/App/Project.swift +++ b/Projects/App/Project.swift @@ -1,37 +1,22 @@ import ProjectDescription -import DependencyPlugin import ProjectDescriptionHelpers -let project = Project.makeProject( - name: "App", - moduleType: .app, - entitlementsPath: .relativeToManifest("App.entitlements"), - hasResource: true, - appExtensionTarget: [ -// Project.appExtensionTarget( -// name: "Widget", -// plist: .extendingDefault( -// with: .widgetInfoPlist -// ), -// resources: [ -// "Resources/Model.xcdatamodeld", -// "Resources/total_stationList.json", -// "Widget/Resources/**", -// ], -// entitlements: .file( -// path: .relativeToRoot( -// "Projects/App/Widget.entitlements" -// ) -// ), -// dependencies: [ -// .mainFeature, -// .data, -// ] -// ) - ], - dependencies: [ - .mainFeature, - .data, - .package(product: "FirebaseMessaging") - ] -) +let project = Project(name: "App") { + App(name: "App") { + MainFeature() + Data() + FirebaseModule() + SwiftLintScript() + UIKitInfoPlist() + AppInfoPlist(displayName: .displayName, marketingVersion: .marketingVersion, buildVersion: .buildVersion) + SecretInfoPlist() + } +// WidgetExtension(name: "Widget") { +// MainFeature() +// Data() +// SwiftLintScript() +// } + AppScheme(name: "App") + UnitTestsScheme(targetName: "App") + UITestsScheme(targetName: "App") +} diff --git a/Projects/App/Sources/AppDelegate+Firebase.swift b/Projects/App/Sources/AppDelegate+Firebase.swift index 7709b2c4..7922bc34 100644 --- a/Projects/App/Sources/AppDelegate+Firebase.swift +++ b/Projects/App/Sources/AppDelegate+Firebase.swift @@ -8,8 +8,7 @@ import UIKit -import Firebase -import FirebaseMessaging +import FirebaseModule extension AppDelegate { func configureFirebase(application: UIApplication) { @@ -19,14 +18,12 @@ extension AppDelegate { #else googleInfoName = "GoogleService-Info" #endif - guard let filePath = Bundle.main.path( - forResource: googleInfoName, - ofType: "plist" - ), - let options = FirebaseOptions(contentsOfFile: filePath) - else { return } - FirebaseApp.configure(options: options) - application.registerForRemoteNotifications() + let filePath = Bundle.main.path(forResource: "\(googleInfoName).plist", ofType: nil) ?? "" + do { + try FirebaseSDK.configureFirebase(plistFilePath: filePath, application: application) + } catch { + dump(error) + } } } @@ -35,20 +32,13 @@ extension AppDelegate { _ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data ) { - Messaging.messaging().delegate = self - Messaging.messaging().apnsToken = deviceToken - } -} - -extension AppDelegate: MessagingDelegate { - func messaging( - _ messaging: Messaging, - didReceiveRegistrationToken fcmToken: String? - ) { - guard let fcmToken else { return } - UserDefaults.standard.setValue( - fcmToken, - forKey: "fcmToken" - ) + Task { + let fcmToken = await FirebaseSDK.didRegisterForRemoteNotificationsWithDeviceToken(deviceToken: deviceToken) + guard let fcmToken else { return } + UserDefaults.standard.setValue( + fcmToken, + forKey: "fcmToken" + ) + } } } diff --git a/Projects/App/Sources/AppDelegate+Register.swift b/Projects/App/Sources/AppDelegate+Register.swift index cd3990f8..0c274662 100644 --- a/Projects/App/Sources/AppDelegate+Register.swift +++ b/Projects/App/Sources/AppDelegate+Register.swift @@ -13,6 +13,7 @@ import CoreDataService import Data import Domain import NetworkService +import FirebaseModule extension AppDelegate { func registerDependencies() { @@ -102,5 +103,6 @@ extension AppDelegate { // versionCheckRepository: versionCheckRepository // ) // ) + DIContainer.register(type: FirebaseLogger.self, FirebaseLoggerImpl()) } } diff --git a/Projects/Core/Project.swift b/Projects/Core/Project.swift index 034fb42c..310acd42 100644 --- a/Projects/Core/Project.swift +++ b/Projects/Core/Project.swift @@ -1,11 +1,9 @@ import ProjectDescription -import DependencyPlugin import ProjectDescriptionHelpers -let project = Project.makeProject( - name: "Core", - moduleType: .dynamicFramework, - dependencies: [ - .thirdPartyLibs - ] -) +let project = Project(name: "Core") { + Core { + ThirdPartyLibs() + FrameworkInfoPlist(marketingVersion: .marketingVersion) + } +} diff --git a/Projects/CoreDataService/Project.swift b/Projects/CoreDataService/Project.swift index 7d48c590..fff4082c 100644 --- a/Projects/CoreDataService/Project.swift +++ b/Projects/CoreDataService/Project.swift @@ -1,10 +1,9 @@ import ProjectDescription import ProjectDescriptionHelpers -let project = Project.makeProject( - name: "CoreDataService", - moduleType: .dynamicFramework, - dependencies: [ - .domain - ] -) +let project = Project(name: "CoreDataService") { + CoreDataService { + Domain() + FrameworkInfoPlist(marketingVersion: .marketingVersion) + } +} diff --git a/Projects/Data/Project.swift b/Projects/Data/Project.swift index 263efa82..ef6f50a4 100644 --- a/Projects/Data/Project.swift +++ b/Projects/Data/Project.swift @@ -1,29 +1,12 @@ import ProjectDescription -import DependencyPlugin import ProjectDescriptionHelpers -let project = Project.makeProject( - name: "Data", - moduleType: .dynamicFramework, - packages: [ - .remote( - url: "https://github.com/google/GoogleUtilities.git", - requirement: .exact("7.13.1") - ), - .remote( - url: "https://github.com/firebase/firebase-ios-sdk", - requirement: .exact("10.23.1") - ), - ], - dependencies: [ - .networkService, - .coreDataService, - .package(product: "FirebaseAnalytics"), - ], - coreDataModel: [ - .init( - "../App/Resources/Model.xcdatamodeld", - currentVersion: "Model_v2" - ) - ] -) +let project = Project(name: "Data") { + Data { + Domain() + NetworkService() + CoreDataService() + FirebaseInterface() + FrameworkInfoPlist(marketingVersion: .marketingVersion) + } +} diff --git a/Projects/Data/Sources/Repository/DefaultBusStopArrivalInfoRepository.swift b/Projects/Data/Sources/Repository/DefaultBusStopArrivalInfoRepository.swift index 6da0b77b..1730d601 100644 --- a/Projects/Data/Sources/Repository/DefaultBusStopArrivalInfoRepository.swift +++ b/Projects/Data/Sources/Repository/DefaultBusStopArrivalInfoRepository.swift @@ -9,15 +9,16 @@ import Foundation import Domain +import Core import NetworkService import RxSwift -import FirebaseAnalytics +import FirebaseInterface public final class DefaultBusStopArrivalInfoRepository: NSObject, BusStopArrivalInfoRepository { private let networkService: NetworkService - + @Injected(FirebaseLogger.self) private var logger: FirebaseLogger private let disposeBag = DisposeBag() public init(networkService: NetworkService) { @@ -26,7 +27,7 @@ public final class DefaultBusStopArrivalInfoRepository: public func fetchArrivalList(busStopId: String) -> Observable { - Analytics.logEvent("fetchArrivalEvent", parameters: nil) + logger.log(name: "fetchArrivalEvent") return networkService.request( endPoint: BusStopArrivalInfoEndPoint(arsId: busStopId) ) diff --git a/Projects/DesignSystem/Project.swift b/Projects/DesignSystem/Project.swift index 531a541b..768f03ff 100644 --- a/Projects/DesignSystem/Project.swift +++ b/Projects/DesignSystem/Project.swift @@ -1,24 +1,9 @@ import ProjectDescription import ProjectDescriptionHelpers -let project = Project.makeProject( - name: "DesignSystem", - moduleType: .dynamicFramework, - hasResource: true, - packages: [ - .remote( - url: "https://github.com/airbnb/lottie-ios", - requirement: .exact("4.4.3") - ), - ], - dependencies: [ - .package(product: "Lottie"), - ], - resourceSynthesizers: [ - .custom( - name: "Lottie", - parser: .json, - extensions: ["lottie"] - ), - ] -) +let project = Project(name: "DesignSystem") { + DesignSystem() { + Lottie() + FrameworkInfoPlist(marketingVersion: .marketingVersion) + } +} diff --git a/Projects/Domain/Project.swift b/Projects/Domain/Project.swift index 5df89498..38c9ca34 100644 --- a/Projects/Domain/Project.swift +++ b/Projects/Domain/Project.swift @@ -1,11 +1,9 @@ import ProjectDescription -import DependencyPlugin import ProjectDescriptionHelpers -let project = Project.makeProject( - name: "Domain", - moduleType: .dynamicFramework, - dependencies: [ - .core - ] -) +let project = Project(name: "Domain") { + Domain { + Core() + FrameworkInfoPlist(marketingVersion: .marketingVersion) + } +} diff --git a/Projects/Feature/AlarmFeature/Project.swift b/Projects/Feature/AlarmFeature/Project.swift index a11352af..f022bc2b 100644 --- a/Projects/Feature/AlarmFeature/Project.swift +++ b/Projects/Feature/AlarmFeature/Project.swift @@ -1,10 +1,21 @@ import ProjectDescription import ProjectDescriptionHelpers -let project = Project.makeProject( +let project = Project( name: "AlarmFeature", - moduleType: .feature, - dependencies: [ - .featureDependency - ] -) + options: .options(automaticSchemesOptions: .disabled) +) { + Feature(name: "AlarmFeature") { + FeatureDependency() + FeatureSwiftLintScript() + FrameworkInfoPlist(marketingVersion: .marketingVersion) + SecretInfoPlist() + } + SampleApp(name: "AlarmFeature") { + Feature(name: "AlarmFeature") + UIKitInfoPlist() + AppInfoPlist(displayName: "AlarmFeatureSampleApp", marketingVersion: .marketingVersion, buildVersion: .buildVersion) + SecretInfoPlist() + } + SampleAppScheme(name: "AlarmFeature") +} diff --git a/Projects/Feature/BusStopFeature/Project.swift b/Projects/Feature/BusStopFeature/Project.swift index f725b5bf..d74e0340 100644 --- a/Projects/Feature/BusStopFeature/Project.swift +++ b/Projects/Feature/BusStopFeature/Project.swift @@ -1,10 +1,21 @@ import ProjectDescription import ProjectDescriptionHelpers -let project = Project.makeProject( +let project = Project( name: "BusStopFeature", - moduleType: .feature, - dependencies: [ - .featureDependency - ] -) + options: .options(automaticSchemesOptions: .disabled) +) { + Feature(name: "BusStopFeature") { + FeatureDependency() + FeatureSwiftLintScript() + FrameworkInfoPlist(marketingVersion: .marketingVersion) + SecretInfoPlist() + } + SampleApp(name: "BusStopFeature") { + Feature(name: "BusStopFeature") + UIKitInfoPlist() + AppInfoPlist(displayName: "BusStopFeatureSampleApp", marketingVersion: .marketingVersion, buildVersion: .buildVersion) + SecretInfoPlist() + } + SampleAppScheme(name: "BusStopFeature") +} diff --git a/Projects/Feature/HomeFeature/Project.swift b/Projects/Feature/HomeFeature/Project.swift index fec4822c..12a07337 100644 --- a/Projects/Feature/HomeFeature/Project.swift +++ b/Projects/Feature/HomeFeature/Project.swift @@ -1,10 +1,21 @@ import ProjectDescription import ProjectDescriptionHelpers -let project = Project.makeProject( +let project = Project( name: "HomeFeature", - moduleType: .feature, - dependencies: [ - .featureDependency - ] -) + options: .options(automaticSchemesOptions: .disabled) +) { + Feature(name: "HomeFeature") { + FeatureDependency() + FeatureSwiftLintScript() + FrameworkInfoPlist(marketingVersion: .marketingVersion) + SecretInfoPlist() + } + SampleApp(name: "HomeFeature") { + Feature(name: "HomeFeature") + UIKitInfoPlist() + AppInfoPlist(displayName: "HomeFeatureSampleApp", marketingVersion: .marketingVersion, buildVersion: .buildVersion) + SecretInfoPlist() + } + SampleAppScheme(name: "HomeFeature") +} diff --git a/Projects/Feature/NearMapFeature/Project.swift b/Projects/Feature/NearMapFeature/Project.swift index 3a08e019..f665aac7 100644 --- a/Projects/Feature/NearMapFeature/Project.swift +++ b/Projects/Feature/NearMapFeature/Project.swift @@ -1,10 +1,21 @@ import ProjectDescription import ProjectDescriptionHelpers -let project = Project.makeProject( +let project = Project( name: "NearMapFeature", - moduleType: .feature, - dependencies: [ - .featureDependency - ] -) + options: .options(automaticSchemesOptions: .disabled) +) { + Feature(name: "NearMapFeature") { + FeatureDependency() + FeatureSwiftLintScript() + FrameworkInfoPlist(marketingVersion: .marketingVersion) + SecretInfoPlist() + } + SampleApp(name: "NearMapFeature") { + Feature(name: "NearMapFeature") + UIKitInfoPlist() + AppInfoPlist(displayName: "NearMapFeatureSampleApp", marketingVersion: .marketingVersion, buildVersion: .buildVersion) + SecretInfoPlist() + } + SampleAppScheme(name: "NearMapFeature") +} diff --git a/Projects/Feature/SearchFeature/Project.swift b/Projects/Feature/SearchFeature/Project.swift index d4b496a4..afa50e6f 100644 --- a/Projects/Feature/SearchFeature/Project.swift +++ b/Projects/Feature/SearchFeature/Project.swift @@ -1,10 +1,21 @@ import ProjectDescription import ProjectDescriptionHelpers -let project = Project.makeProject( +let project = Project( name: "SearchFeature", - moduleType: .feature, - dependencies: [ - .featureDependency - ] -) + options: .options(automaticSchemesOptions: .disabled) +) { + Feature(name: "SearchFeature") { + FeatureDependency() + FeatureSwiftLintScript() + FrameworkInfoPlist(marketingVersion: .marketingVersion) + SecretInfoPlist() + } + SampleApp(name: "SearchFeature") { + Feature(name: "SearchFeature") + UIKitInfoPlist() + AppInfoPlist(displayName: "SearchFeatureSampleApp", marketingVersion: .marketingVersion, buildVersion: .buildVersion) + SecretInfoPlist() + } + SampleAppScheme(name: "SearchFeature") +} diff --git a/Projects/Feature/SettingsFeature/Project.swift b/Projects/Feature/SettingsFeature/Project.swift index 1c69b942..63413b5b 100644 --- a/Projects/Feature/SettingsFeature/Project.swift +++ b/Projects/Feature/SettingsFeature/Project.swift @@ -1,10 +1,21 @@ import ProjectDescription import ProjectDescriptionHelpers -let project = Project.makeProject( +let project = Project( name: "SettingsFeature", - moduleType: .feature, - dependencies: [ - .featureDependency - ] -) + options: .options(automaticSchemesOptions: .disabled) +) { + Feature(name: "SettingsFeature") { + FeatureDependency() + FeatureSwiftLintScript() + FrameworkInfoPlist(marketingVersion: .marketingVersion) + SecretInfoPlist() + } + SampleApp(name: "SettingsFeature") { + Feature(name: "SettingsFeature") + UIKitInfoPlist() + AppInfoPlist(displayName: "SettingsFeatureSampleApp", marketingVersion: .marketingVersion, buildVersion: .buildVersion) + SecretInfoPlist() + } + SampleAppScheme(name: "SettingsFeature") +} diff --git a/Projects/FeatureDependency/Project.swift b/Projects/FeatureDependency/Project.swift index 86b98bd1..fd2eb611 100644 --- a/Projects/FeatureDependency/Project.swift +++ b/Projects/FeatureDependency/Project.swift @@ -1,11 +1,10 @@ import ProjectDescription import ProjectDescriptionHelpers -let project = Project.makeProject( - name: "FeatureDependency", - moduleType: .dynamicFramework, - dependencies: [ - .designSystem, - .domain - ] -) +let project = Project(name: "FeatureDependency") { + FeatureDependency() { + DesignSystem() + Domain() + FrameworkInfoPlist(marketingVersion: .marketingVersion) + } +} diff --git a/Projects/FirebaseInterface/Project.swift b/Projects/FirebaseInterface/Project.swift new file mode 100644 index 00000000..8b70bdbc --- /dev/null +++ b/Projects/FirebaseInterface/Project.swift @@ -0,0 +1,15 @@ +// +// Project.swift +// AlarmFeatureManifests +// +// Created by Logan on 3/30/25. +// + +import ProjectDescription +import ProjectDescriptionHelpers + +let project = Project(name: "FirebaseInterface") { + FirebaseInterface { + FrameworkInfoPlist(marketingVersion: .marketingVersion) + } +} diff --git a/Projects/FirebaseInterface/Sources/FirebaseLogger.swift b/Projects/FirebaseInterface/Sources/FirebaseLogger.swift new file mode 100644 index 00000000..b6cabcde --- /dev/null +++ b/Projects/FirebaseInterface/Sources/FirebaseLogger.swift @@ -0,0 +1,14 @@ +// +// FirebaseLogger.swift +// FirebaseInterface +// +// Created by gnksbm on 3/30/25. +// Copyright © 2025 Pepsi-Club. All rights reserved. +// + +import Foundation + +public protocol FirebaseLogger { + func log(name: String) + func log(name: String, parameter: [String: String]) +} diff --git a/Projects/FirebaseModule/Project.swift b/Projects/FirebaseModule/Project.swift new file mode 100644 index 00000000..661edc0c --- /dev/null +++ b/Projects/FirebaseModule/Project.swift @@ -0,0 +1,18 @@ +// +// Project.swift +// AlarmFeatureManifests +// +// Created by Logan on 3/30/25. +// + +import ProjectDescription +import ProjectDescriptionHelpers + +let project = Project(name: "FirebaseModule") { + FirebaseModule { + FirebaseInterface() + FirebaseAnalytics() + FirebaseMessaging() + FrameworkInfoPlist(marketingVersion: .marketingVersion) + } +} diff --git a/Projects/FirebaseModule/Sources/FirebaseLoggerImpl.swift b/Projects/FirebaseModule/Sources/FirebaseLoggerImpl.swift new file mode 100644 index 00000000..cf924c13 --- /dev/null +++ b/Projects/FirebaseModule/Sources/FirebaseLoggerImpl.swift @@ -0,0 +1,21 @@ +// +// FirebaseLoggerImpl.swift +// ThirdPartyLibs +// +// Created by gnksbm on 3/30/25. +// Copyright © 2025 Pepsi-Club. All rights reserved. +// + +import FirebaseAnalytics + +public final class FirebaseLoggerImpl: FirebaseLogger { + public init() { } + + public func log(name: String) { + Analytics.logEvent(name, parameters: nil) + } + + public func log(name: String, parameter: [String : String]) { + Analytics.logEvent(name, parameters: parameter) + } +} diff --git a/Projects/FirebaseModule/Sources/FirebaseSDK.swift b/Projects/FirebaseModule/Sources/FirebaseSDK.swift new file mode 100644 index 00000000..cd0d4d3b --- /dev/null +++ b/Projects/FirebaseModule/Sources/FirebaseSDK.swift @@ -0,0 +1,34 @@ +// +// FirebaseSDK.swift +// FirebaseModule +// +// Created by Logan on 3/30/25. +// Copyright © 2025 Pepsi-Club. All rights reserved. +// + +import Firebase +@_exported import FirebaseInterface + +public final class FirebaseSDK { + private static let proxy: MessagingDelegateProxy = .init() + + public static func configureFirebase( + plistFilePath: String, + application: UIApplication + ) throws { + guard let options = FirebaseOptions(contentsOfFile: plistFilePath) else { + throw FirebaseSDKError.invalidFilePath + } + FirebaseConfiguration.shared.setLoggerLevel(.min) + FirebaseApp.configure(options: options) + application.registerForRemoteNotifications() + } + + public static func didRegisterForRemoteNotificationsWithDeviceToken(deviceToken: Data) async -> String? { + await proxy.requestFCMToken(deviceToken: deviceToken) + } + + enum FirebaseSDKError: Error { + case invalidFilePath, invalidFirebaseOption + } +} diff --git a/Projects/FirebaseModule/Sources/MessagingDelegateProxy.swift b/Projects/FirebaseModule/Sources/MessagingDelegateProxy.swift new file mode 100644 index 00000000..4ad8c289 --- /dev/null +++ b/Projects/FirebaseModule/Sources/MessagingDelegateProxy.swift @@ -0,0 +1,30 @@ +// +// MessagingDelegateProxy.swift +// FirebaseModule +// +// Created by gnksbm on 3/30/25. +// Copyright © 2025 Pepsi-Club. All rights reserved. +// + +import Firebase +import FirebaseMessaging + +final class MessagingDelegateProxy: NSObject, MessagingDelegate { + private var continuation: CheckedContinuation? + + func requestFCMToken(deviceToken: Data) async -> String? { + await withCheckedContinuation { continuation in + Messaging.messaging().delegate = self + Messaging.messaging().apnsToken = deviceToken + self.continuation = continuation + } + } + + func messaging( + _ messaging: Messaging, + didReceiveRegistrationToken fcmToken: String? + ) { + continuation?.resume(returning: fcmToken) + continuation = nil + } +} diff --git a/Projects/MainFeature/Project.swift b/Projects/MainFeature/Project.swift index 79bb5013..6a259eae 100644 --- a/Projects/MainFeature/Project.swift +++ b/Projects/MainFeature/Project.swift @@ -1,8 +1,14 @@ import ProjectDescription import ProjectDescriptionHelpers -let project = Project.makeProject( - name: "MainFeature", - moduleType: .dynamicFramework, - dependencies: .Presentation.allCases.map { $0.dependency } -) +let project = Project(name: "MainFeature") { + MainFeature { + Feature(name: "HomeFeature") + Feature(name: "AlarmFeature") + Feature(name: "SettingsFeature") + Feature(name: "BusStopFeature") + Feature(name: "SearchFeature") + Feature(name: "NearMapFeature") + FrameworkInfoPlist(marketingVersion: .marketingVersion) + } +} diff --git a/Projects/NetworkService/Project.swift b/Projects/NetworkService/Project.swift index 7e029496..270e8420 100644 --- a/Projects/NetworkService/Project.swift +++ b/Projects/NetworkService/Project.swift @@ -1,10 +1,10 @@ import ProjectDescription import ProjectDescriptionHelpers -let project = Project.makeProject( - name: "NetworkService", - moduleType: .dynamicFramework, - dependencies: [ - .domain, - ] -) +let project = Project(name: "NetworkService") { + NetworkService { + // TODO: Domain 의존성 제거, RxSwift를 의존하도록, Core / Data 의존성 필요 여부 체크 + Domain() + FrameworkInfoPlist(marketingVersion: .marketingVersion) + } +} diff --git a/Projects/ThirdPartyLibs/Project.swift b/Projects/ThirdPartyLibs/Project.swift index 82590662..8a5bc6b4 100644 --- a/Projects/ThirdPartyLibs/Project.swift +++ b/Projects/ThirdPartyLibs/Project.swift @@ -1,9 +1,13 @@ import ProjectDescription -import DependencyPlugin import ProjectDescriptionHelpers -let project = Project.makeProject( - name: "ThirdPartyLibs", - moduleType: .dynamicFramework, - dependencies: .thirdPartyExternal + .thirdPartyXCFramework -) +let project = Project(name: "ThirdPartyLibs") { + ThirdPartyLibs() { + // TODO: NaverMap을 사용하지 않는 모듈에서 의존성하지 않도록 + NMapsGeometry() + NMapsMap() + RxSwift() + RxCocoa() + FrameworkInfoPlist(marketingVersion: .marketingVersion) + } +} diff --git a/Scripts/update_tuist.sh b/Scripts/update_tuist.sh new file mode 100644 index 00000000..6fbb18de --- /dev/null +++ b/Scripts/update_tuist.sh @@ -0,0 +1,38 @@ +#!/usr/bin/env bash +set -e + +TUIST_VERSION="4.33.0" + +echo "[1] Tuist 버전 확인 중..." +if command -v tuist &> /dev/null; then + CURRENT_TUIST_VERSION=$(tuist version | cut -d. -f1) + if [ "$CURRENT_TUIST_VERSION" -lt 4 ]; then + echo "[1-1] 구버전(4 미만) Tuist 감지: 제거를 진행합니다." + curl -Ls https://uninstall.tuist.io | bash + else + echo "[1-1] Tuist 버전이 $CURRENT_TUIST_VERSION.x 이므로 제거를 건너뜁니다." + fi +else + echo "[1-1] Tuist가 설치되어 있지 않아 제거할 필요가 없습니다." +fi + +echo "[2] mise 설치 확인 중..." +if [ ! -f "$HOME/.local/bin/mise" ]; then + echo "[2-1] mise가 설치되어 있지 않습니다. 설치를 진행합니다." + curl https://mise.run | sh + export PATH="$HOME/.local/bin:$PATH" +else + echo "[2-1] mise가 이미 설치되어 있습니다." +fi + +echo "[3] mise 활성화 여부 확인 중..." +if ! grep -q 'eval "$(~/.local/bin/mise activate zsh)"' ~/.zshrc; then + echo 'eval "$(~/.local/bin/mise activate zsh)"' >> ~/.zshrc + echo "[3-1] ~/.zshrc에 mise 활성화 스크립트를 추가했습니다." +else + echo "[3-1] 이미 ~/.zshrc에 mise 활성화 스크립트가 있습니다." +fi + +echo "[4] Tuist 버전 설정..." +"$HOME/.local/bin/mise" install tuist@"$TUIST_VERSION" +"$HOME/.local/bin/mise" use -g tuist@"$TUIST_VERSION" diff --git a/Tuist/Config.swift b/Tuist/Config.swift index a1013b3a..e5050040 100644 --- a/Tuist/Config.swift +++ b/Tuist/Config.swift @@ -8,9 +8,12 @@ import ProjectDescription let config = Config( + compatibleXcodeVersions: .list([ + .upToNextMajor(.init(15, 0, 0)), + .upToNextMajor(.init(16, 0, 0)) + ]), + swiftVersion: .init(5, 0, 0), plugins: [ - .local(path: .relativeToRoot("Plugins/EnvironmentPlugin")), - .local(path: .relativeToRoot("Plugins/DependencyPlugin")), - ], - generationOptions: .options() + .local(path: .relativeToRoot("Plugins/EnvironmentPlugin")) + ] ) diff --git a/Tuist/Package.resolved b/Tuist/Package.resolved new file mode 100644 index 00000000..fe258c70 --- /dev/null +++ b/Tuist/Package.resolved @@ -0,0 +1,142 @@ +{ + "object": { + "pins": [ + { + "package": "abseil", + "repositoryURL": "https://github.com/google/abseil-cpp-binary.git", + "state": { + "branch": null, + "revision": "194a6706acbd25e4ef639bcaddea16e8758a3e27", + "version": "1.2024011602.0" + } + }, + { + "package": "AppCheck", + "repositoryURL": "https://github.com/google/app-check.git", + "state": { + "branch": null, + "revision": "61b85103a1aeed8218f17c794687781505fbbef5", + "version": "11.2.0" + } + }, + { + "package": "Firebase", + "repositoryURL": "https://github.com/firebase/firebase-ios-sdk.git", + "state": { + "branch": null, + "revision": "8328630971a8fdd8072b36bb22bef732eb15e1f0", + "version": "11.4.0" + } + }, + { + "package": "GoogleAppMeasurement", + "repositoryURL": "https://github.com/google/GoogleAppMeasurement.git", + "state": { + "branch": null, + "revision": "4f234bcbdae841d7015258fbbf8e7743a39b8200", + "version": "11.4.0" + } + }, + { + "package": "GoogleDataTransport", + "repositoryURL": "https://github.com/google/GoogleDataTransport.git", + "state": { + "branch": null, + "revision": "617af071af9aa1d6a091d59a202910ac482128f9", + "version": "10.1.0" + } + }, + { + "package": "GoogleUtilities", + "repositoryURL": "https://github.com/google/GoogleUtilities.git", + "state": { + "branch": null, + "revision": "53156c7ec267db846e6b64c9f4c4e31ba4cf75eb", + "version": "8.0.2" + } + }, + { + "package": "gRPC", + "repositoryURL": "https://github.com/google/grpc-binary.git", + "state": { + "branch": null, + "revision": "f56d8fc3162de9a498377c7b6cea43431f4f5083", + "version": "1.65.1" + } + }, + { + "package": "GTMSessionFetcher", + "repositoryURL": "https://github.com/google/gtm-session-fetcher.git", + "state": { + "branch": null, + "revision": "4d70340d55d7d07cc2fdf8e8125c4c126c1d5f35", + "version": "4.4.0" + } + }, + { + "package": "InteropForGoogle", + "repositoryURL": "https://github.com/google/interop-ios-for-google-sdks.git", + "state": { + "branch": null, + "revision": "2d12673670417654f08f5f90fdd62926dc3a2648", + "version": "100.0.0" + } + }, + { + "package": "leveldb", + "repositoryURL": "https://github.com/firebase/leveldb.git", + "state": { + "branch": null, + "revision": "a0bc79961d7be727d258d33d5a6b2f1023270ba1", + "version": "1.22.5" + } + }, + { + "package": "Lottie", + "repositoryURL": "https://github.com/airbnb/lottie-ios", + "state": { + "branch": null, + "revision": "769b88d83a42ca8d5572b020c96f47e3690b3796", + "version": "4.4.3" + } + }, + { + "package": "nanopb", + "repositoryURL": "https://github.com/firebase/nanopb.git", + "state": { + "branch": null, + "revision": "b7e1104502eca3a213b46303391ca4d3bc8ddec1", + "version": "2.30910.0" + } + }, + { + "package": "Promises", + "repositoryURL": "https://github.com/google/promises.git", + "state": { + "branch": null, + "revision": "540318ecedd63d883069ae7f1ed811a2df00b6ac", + "version": "2.4.0" + } + }, + { + "package": "RxSwift", + "repositoryURL": "https://github.com/ReactiveX/RxSwift.git", + "state": { + "branch": null, + "revision": "c7c7d2cf50a3211fe2843f76869c698e4e417930", + "version": "6.8.0" + } + }, + { + "package": "SwiftProtobuf", + "repositoryURL": "https://github.com/apple/swift-protobuf.git", + "state": { + "branch": null, + "revision": "d72aed98f8253ec1aa9ea1141e28150f408cf17f", + "version": "1.29.0" + } + } + ] + }, + "version": 1 +} diff --git a/Tuist/Package.swift b/Tuist/Package.swift new file mode 100644 index 00000000..f2b29182 --- /dev/null +++ b/Tuist/Package.swift @@ -0,0 +1,35 @@ +// swift-tools-version:5.0 +// +// Package.swift +// WhereMyBus-iOSManifests +// +// Created by Logan on 3/30/25. +// + + +@preconcurrency import PackageDescription + +#if TUIST +import EnvironmentPlugin +import struct ProjectDescription.PackageSettings + +let packageSettings = PackageSettings( + productTypes: [ + "RxSwift": .framework, + "RxCocoa": .framework, + "RxCocoaRuntime": .framework, + "Lottie": .framework, + ], + targetSettings: [:] +) + +#endif + +let package = Package( + name: "Packages", + dependencies: [ + .package(url: "https://github.com/ReactiveX/RxSwift.git", .exactItem("6.8.0")), + .package(url: "https://github.com/firebase/firebase-ios-sdk.git", .exactItem("11.4.0")), + .package(url: "https://github.com/airbnb/lottie-ios", .exactItem("4.4.3")), + ] +) diff --git a/Tuist/ProjectDescriptionHelpers/Common.swift b/Tuist/ProjectDescriptionHelpers/Common.swift new file mode 100644 index 00000000..f661597d --- /dev/null +++ b/Tuist/ProjectDescriptionHelpers/Common.swift @@ -0,0 +1,9 @@ +// +// Common.swift +// ProjectDescriptionHelpers +// +// Created by gnksbm on 4/6/25. +// + +import Foundation +@_exported import EnvironmentPlugin diff --git a/Tuist/ProjectDescriptionHelpers/InfoPlist/AppInfoPlist.swift b/Tuist/ProjectDescriptionHelpers/InfoPlist/AppInfoPlist.swift new file mode 100644 index 00000000..4d4c8987 --- /dev/null +++ b/Tuist/ProjectDescriptionHelpers/InfoPlist/AppInfoPlist.swift @@ -0,0 +1,59 @@ +// +// AppInfoPlist.swift +// ProjectDescriptionHelpers +// +// Created by gnksbm on 4/11/25. +// + +public struct AppInfoPlist: InfoPlistBuildable { + let displayName: String + let marketingVersion: String + let buildVersion: String + + public var dictionary: [String : Plist.Value] { + [ + "CFBundleDisplayName": .string(displayName), + "CFBundleShortVersionString": .string(marketingVersion), + "CFBundleVersion": .string(.buildVersion), + "CFBundleExecutable": "$(EXECUTABLE_NAME)", + "CFBundleIdentifier": "$(PRODUCT_BUNDLE_IDENTIFIER)", + "UILaunchStoryboardName": "LaunchScreen.storyboard", + "UIApplicationSceneManifest": [ + "UIApplicationSupportsMultipleScenes": false, + "UISceneConfigurations": [ + "UIWindowSceneSessionRoleApplication": [ + [ + "UISceneConfigurationName": "Default Configuration", + "UISceneDelegateClassName": "$(PRODUCT_MODULE_NAME).SceneDelegate" + ], + ] + ] + ], + "UISupportedInterfaceOrientations": ["UIInterfaceOrientationPortrait"], + "FirebaseAppDelegateProxyEnabled": false, + "ITSAppUsesNonExemptEncryption": "NO", + "NSAppTransportSecurity": [ + "NSExceptionDomains": [ + "ws.bus.go.kr": [ + "NSIncludesSubdomains": true, + "NSExceptionAllowsInsecureHTTPLoads": true, + ] + ] + ], + "UIBackgroundModes": [ + "fetch", + "processing", + "remote-notification" + ], + "BGTaskSchedulerPermittedIdentifiers" : [.string(.bundleID)], + "NSLocationWhenInUseUsageDescription" : "주변 정류장을 찾기 위해 권한이 필요합니다.", + "NSLocationAlwaysAndWhenInUseUsageDescription" : "주변 정류장을 찾기 위해 권한이 필요합니다." + ] + } + + public init(displayName: String, marketingVersion: String, buildVersion: String) { + self.displayName = displayName + self.marketingVersion = marketingVersion + self.buildVersion = buildVersion + } +} diff --git a/Tuist/ProjectDescriptionHelpers/InfoPlist/FrameworkInfoPlist.swift b/Tuist/ProjectDescriptionHelpers/InfoPlist/FrameworkInfoPlist.swift new file mode 100644 index 00000000..b566fe13 --- /dev/null +++ b/Tuist/ProjectDescriptionHelpers/InfoPlist/FrameworkInfoPlist.swift @@ -0,0 +1,27 @@ +// +// FrameworkInfoPlist.swift +// ProjectDescriptionHelpers +// +// Created by gnksbm on 4/11/25. +// + +public struct FrameworkInfoPlist: InfoPlistBuildable { + let marketingVersion: String + + public var dictionary: [String : Plist.Value] { + [ + "CFBundleShortVersionString": .string(marketingVersion), + "CFBundleVersion": .string("1"), + "CFBundleDevelopmentRegion": "$(DEVELOPMENT_LANGUAGE)", + "CFBundleExecutable": "$(EXECUTABLE_NAME)", + "CFBundleIdentifier": "$(PRODUCT_BUNDLE_IDENTIFIER)", + "CFBundleInfoDictionaryVersion": "6.0", + "CFBundleName": "$(PRODUCT_NAME)", + "CFBundlePackageType": "FMWK", + ] + } + + public init(marketingVersion: String) { + self.marketingVersion = marketingVersion + } +} diff --git a/Tuist/ProjectDescriptionHelpers/InfoPlist/NotificationServiceInfoPlist.swift b/Tuist/ProjectDescriptionHelpers/InfoPlist/NotificationServiceInfoPlist.swift new file mode 100644 index 00000000..fcbe53c1 --- /dev/null +++ b/Tuist/ProjectDescriptionHelpers/InfoPlist/NotificationServiceInfoPlist.swift @@ -0,0 +1,37 @@ +// +// NotificationServiceInfoPlist.swift +// ProjectDescriptionHelpers +// +// Created by gnksbm on 4/11/25. +// + +public struct NotificationServiceInfoPlist: InfoPlistBuildable { + let displayName: String + let marketingVersion: String + + public var dictionary: [String : Plist.Value] { + [ + "CFBundleDisplayName": .string(displayName), + "CFBundleShortVersionString": .string(marketingVersion), + "CFBundleVersion": .string("1"), + "DATA_GO_KR_API_KEY": "$(DATA_GO_KR_API_KEY)", + "NSExtension": [ + "NSExtensionPointIdentifier": "com.apple.usernotifications.service", + "NSExtensionPrincipalClass": "$(PRODUCT_MODULE_NAME).NotificationService" + ], + "NSAppTransportSecurity": [ + "NSExceptionDomains": [ + "ws.bus.go.kr": [ + "NSIncludesSubdomains": true, + "NSExceptionAllowsInsecureHTTPLoads": true, + ] + ] + ], + ] + } + + public init(displayName: String, marketingVersion: String) { + self.displayName = displayName + self.marketingVersion = marketingVersion + } +} diff --git a/Tuist/ProjectDescriptionHelpers/InfoPlist/SecretInfoPlist.swift b/Tuist/ProjectDescriptionHelpers/InfoPlist/SecretInfoPlist.swift new file mode 100644 index 00000000..f5eb39c3 --- /dev/null +++ b/Tuist/ProjectDescriptionHelpers/InfoPlist/SecretInfoPlist.swift @@ -0,0 +1,22 @@ +// +// SecretInfoPlist.swift +// ProjectDescriptionHelpers +// +// Created by gnksbm on 4/11/25. +// + +public struct SecretInfoPlist: InfoPlistBuildable { + public var dictionary: [String : Plist.Value] { + [ + "DATA_GO_KR_API_KEY": "$(DATA_GO_KR_API_KEY)", + "NMFClientId": "$(NAVERMAP_CLIENT_ID)", + "TERMS_OF_PRIVACY_URL": "$(TERMS_OF_PRIVACY_URL)", + "LOCATION_PRIVACY_URL": "$(LOCATION_PRIVACY_URL)", + "INQUIRY_URL": "$(INQUIRY_URL)", + "APPSTORE_ID": "$(APPSTORE_ID)", + "DOMAIN_URL": "$(DOMAIN_URL)", + ] + } + + public init() { } +} diff --git a/Tuist/ProjectDescriptionHelpers/InfoPlist/WidgetInfoPlist.swift b/Tuist/ProjectDescriptionHelpers/InfoPlist/WidgetInfoPlist.swift new file mode 100644 index 00000000..0c4c024b --- /dev/null +++ b/Tuist/ProjectDescriptionHelpers/InfoPlist/WidgetInfoPlist.swift @@ -0,0 +1,37 @@ +// +// WidgetInfoPlist.swift +// ProjectDescriptionHelpers +// +// Created by gnksbm on 4/11/25. +// + +public struct WidgetInfoPlist: InfoPlistBuildable { + let displayName: String + let marketingVersion: String + + public var dictionary: [String : Plist.Value] { + [ + "CFBundleDisplayName": .string(displayName), + "CFBundleShortVersionString": .string(marketingVersion), + "CFBundleVersion": .string("1"), + "DATA_GO_KR_API_KEY": "$(DATA_GO_KR_API_KEY)", + "CFBundlePackageType": "$(PRODUCT_BUNDLE_PACKAGE_TYPE)", + "NSExtension": [ + "NSExtensionPointIdentifier": "com.apple.widgetkit-extension", + ], + "NSAppTransportSecurity": [ + "NSExceptionDomains": [ + "ws.bus.go.kr": [ + "NSIncludesSubdomains": true, + "NSExceptionAllowsInsecureHTTPLoads": true, + ] + ] + ], + ] + } + + public init(displayName: String, marketingVersion: String) { + self.displayName = displayName + self.marketingVersion = marketingVersion + } +} diff --git a/Tuist/ProjectDescriptionHelpers/Module/Local/Core.swift b/Tuist/ProjectDescriptionHelpers/Module/Local/Core.swift new file mode 100644 index 00000000..769f0447 --- /dev/null +++ b/Tuist/ProjectDescriptionHelpers/Module/Local/Core.swift @@ -0,0 +1,18 @@ +// +// Core.swift +// ProjectDescriptionHelpers +// +// Created by gnksbm on 4/6/25. +// + +public struct Core: FrameworkTarget { + public let product: Product = .framework + public let infoPlist: InfoPlist? + public let dependencies: [TargetDependency] + + public init(@TargetComponentBuilder dependencies builder: () -> TargetComponentBuilder = { .init() }) { + let builder = builder() + self.dependencies = builder.buildTargetDependency() + self.infoPlist = builder.buildInfoPlist() + } +} diff --git a/Tuist/ProjectDescriptionHelpers/Module/Local/CoreDataService.swift b/Tuist/ProjectDescriptionHelpers/Module/Local/CoreDataService.swift new file mode 100644 index 00000000..faff1b07 --- /dev/null +++ b/Tuist/ProjectDescriptionHelpers/Module/Local/CoreDataService.swift @@ -0,0 +1,18 @@ +// +// CoreDataService.swift +// ProjectDescriptionHelpers +// +// Created by gnksbm on 4/6/25. +// + +public struct CoreDataService: FrameworkTarget { + public let product: Product = .framework + public let infoPlist: InfoPlist? + public let dependencies: [TargetDependency] + + public init(@TargetComponentBuilder dependencies builder: () -> TargetComponentBuilder = { .init() }) { + let builder = builder() + self.dependencies = builder.buildTargetDependency() + self.infoPlist = builder.buildInfoPlist() + } +} diff --git a/Tuist/ProjectDescriptionHelpers/Module/Local/Data.swift b/Tuist/ProjectDescriptionHelpers/Module/Local/Data.swift new file mode 100644 index 00000000..ccc32a5a --- /dev/null +++ b/Tuist/ProjectDescriptionHelpers/Module/Local/Data.swift @@ -0,0 +1,25 @@ +// +// Data.swift +// ProjectDescriptionHelpers +// +// Created by gnksbm on 4/6/25. +// + +public struct Data: FrameworkTarget { + public let product: Product = .framework + public let infoPlist: InfoPlist? + public let dependencies: [TargetDependency] + + public let coreDataModels: [CoreDataModel] = [ + .coreDataModel( + "../App/Resources/Model.xcdatamodeld", + currentVersion: "Model_v2" + ) + ] + + public init(@TargetComponentBuilder dependencies builder: () -> TargetComponentBuilder = { .init() }) { + let builder = builder() + self.dependencies = builder.buildTargetDependency() + self.infoPlist = builder.buildInfoPlist() + } +} diff --git a/Tuist/ProjectDescriptionHelpers/Module/Local/DesignSystem.swift b/Tuist/ProjectDescriptionHelpers/Module/Local/DesignSystem.swift new file mode 100644 index 00000000..d491fcdc --- /dev/null +++ b/Tuist/ProjectDescriptionHelpers/Module/Local/DesignSystem.swift @@ -0,0 +1,19 @@ +// +// DesignSystem.swift +// ProjectDescriptionHelpers +// +// Created by gnksbm on 4/6/25. +// + +public struct DesignSystem: FrameworkTarget { + public let product: Product = .framework + public let infoPlist: InfoPlist? + public let dependencies: [TargetDependency] + public let resources: ResourceFileElements? = ["Resources/**"] + + public init(@TargetComponentBuilder dependencies builder: () -> TargetComponentBuilder = { .init() }) { + let builder = builder() + self.dependencies = builder.buildTargetDependency() + self.infoPlist = builder.buildInfoPlist() + } +} diff --git a/Tuist/ProjectDescriptionHelpers/Module/Local/Domain.swift b/Tuist/ProjectDescriptionHelpers/Module/Local/Domain.swift new file mode 100644 index 00000000..b4af00c3 --- /dev/null +++ b/Tuist/ProjectDescriptionHelpers/Module/Local/Domain.swift @@ -0,0 +1,18 @@ +// +// Domain.swift +// ProjectDescriptionHelpers +// +// Created by gnksbm on 4/6/25. +// + +public struct Domain: FrameworkTarget { + public let product: Product = .framework + public let infoPlist: InfoPlist? + public let dependencies: [TargetDependency] + + public init(@TargetComponentBuilder dependencies builder: () -> TargetComponentBuilder = { .init() }) { + let builder = builder() + self.dependencies = builder.buildTargetDependency() + self.infoPlist = builder.buildInfoPlist() + } +} diff --git a/Tuist/ProjectDescriptionHelpers/Module/Local/FeatureDependency.swift b/Tuist/ProjectDescriptionHelpers/Module/Local/FeatureDependency.swift new file mode 100644 index 00000000..b928b9cd --- /dev/null +++ b/Tuist/ProjectDescriptionHelpers/Module/Local/FeatureDependency.swift @@ -0,0 +1,18 @@ +// +// FeatureDependency.swift +// ProjectDescriptionHelpers +// +// Created by gnksbm on 4/6/25. +// + +public struct FeatureDependency: FrameworkTarget { + public let product: Product = .framework + public let infoPlist: InfoPlist? + public let dependencies: [TargetDependency] + + public init(@TargetComponentBuilder dependencies builder: () -> TargetComponentBuilder = { .init() }) { + let builder = builder() + self.dependencies = builder.buildTargetDependency() + self.infoPlist = builder.buildInfoPlist() + } +} diff --git a/Tuist/ProjectDescriptionHelpers/Module/Local/FirebaseInterface.swift b/Tuist/ProjectDescriptionHelpers/Module/Local/FirebaseInterface.swift new file mode 100644 index 00000000..9bff9a79 --- /dev/null +++ b/Tuist/ProjectDescriptionHelpers/Module/Local/FirebaseInterface.swift @@ -0,0 +1,32 @@ +// +// FirebaseInterface.swift +// ProjectDescriptionHelpers +// +// Created by gnksbm on 4/6/25. +// + +public struct FirebaseInterface: FrameworkTarget { + public let product: Product = .framework + + public let infoPlist: InfoPlist? + public let dependencies: [TargetDependency] + + public init(@TargetComponentBuilder dependencies builder: () -> TargetComponentBuilder = { .init() }) { + let builder = builder() + self.dependencies = builder.buildTargetDependency() + self.infoPlist = builder.buildInfoPlist() + } +} + +public struct FirebaseModule: FrameworkTarget { + public let product: Product = .staticFramework + + public let infoPlist: InfoPlist? + public let dependencies: [TargetDependency] + + public init(@TargetComponentBuilder dependencies builder: () -> TargetComponentBuilder = { .init() }) { + let builder = builder() + self.dependencies = builder.buildTargetDependency() + self.infoPlist = builder.buildInfoPlist() + } +} diff --git a/Tuist/ProjectDescriptionHelpers/Module/Local/MainFeature.swift b/Tuist/ProjectDescriptionHelpers/Module/Local/MainFeature.swift new file mode 100644 index 00000000..b3deb03b --- /dev/null +++ b/Tuist/ProjectDescriptionHelpers/Module/Local/MainFeature.swift @@ -0,0 +1,18 @@ +// +// MainFeature.swift +// ProjectDescriptionHelpers +// +// Created by gnksbm on 4/6/25. +// + +public struct MainFeature: FrameworkTarget { + public let product: Product = .framework + public let infoPlist: InfoPlist? + public let dependencies: [TargetDependency] + + public init(@TargetComponentBuilder dependencies builder: () -> TargetComponentBuilder = { .init() }) { + let builder = builder() + self.dependencies = builder.buildTargetDependency() + self.infoPlist = builder.buildInfoPlist() + } +} diff --git a/Tuist/ProjectDescriptionHelpers/Module/Local/NetworkService.swift b/Tuist/ProjectDescriptionHelpers/Module/Local/NetworkService.swift new file mode 100644 index 00000000..b7e1c55e --- /dev/null +++ b/Tuist/ProjectDescriptionHelpers/Module/Local/NetworkService.swift @@ -0,0 +1,18 @@ +// +// NetworkService.swift +// ProjectDescriptionHelpers +// +// Created by gnksbm on 4/6/25. +// + +public struct NetworkService: FrameworkTarget { + public let product: Product = .framework + public let infoPlist: InfoPlist? + public let dependencies: [TargetDependency] + + public init(@TargetComponentBuilder dependencies builder: () -> TargetComponentBuilder = { .init() }) { + let builder = builder() + self.dependencies = builder.buildTargetDependency() + self.infoPlist = builder.buildInfoPlist() + } +} diff --git a/Tuist/ProjectDescriptionHelpers/Module/Local/ThirdPartyLibs.swift b/Tuist/ProjectDescriptionHelpers/Module/Local/ThirdPartyLibs.swift new file mode 100644 index 00000000..717629b7 --- /dev/null +++ b/Tuist/ProjectDescriptionHelpers/Module/Local/ThirdPartyLibs.swift @@ -0,0 +1,18 @@ +// +// ThirdPartyLibs.swift +// AlarmFeatureManifests +// +// Created by gnksbm on 4/6/25. +// + +public struct ThirdPartyLibs: FrameworkTarget { + public let product: Product = .framework + public let infoPlist: InfoPlist? + public let dependencies: [TargetDependency] + + public init(@TargetComponentBuilder dependencies builder: () -> TargetComponentBuilder = { .init() }) { + let builder = builder() + self.dependencies = builder.buildTargetDependency() + self.infoPlist = builder.buildInfoPlist() + } +} diff --git a/Tuist/ProjectDescriptionHelpers/Module/SPM/FirebaseAnalytics.swift b/Tuist/ProjectDescriptionHelpers/Module/SPM/FirebaseAnalytics.swift new file mode 100644 index 00000000..05bc6f9b --- /dev/null +++ b/Tuist/ProjectDescriptionHelpers/Module/SPM/FirebaseAnalytics.swift @@ -0,0 +1,12 @@ +// +// FirebaseAnalytics.swift +// AlarmFeatureManifests +// +// Created by gnksbm on 3/31/25. +// + +import EnvironmentPlugin + +public struct FirebaseAnalytics: SPMDependency { + public init() { } +} diff --git a/Tuist/ProjectDescriptionHelpers/Module/SPM/FirebaseMessaging.swift b/Tuist/ProjectDescriptionHelpers/Module/SPM/FirebaseMessaging.swift new file mode 100644 index 00000000..df529d54 --- /dev/null +++ b/Tuist/ProjectDescriptionHelpers/Module/SPM/FirebaseMessaging.swift @@ -0,0 +1,12 @@ +// +// FirebaseMessaging.swift +// AlarmFeatureManifests +// +// Created by gnksbm on 3/31/25. +// + +import EnvironmentPlugin + +public struct FirebaseMessaging: SPMDependency { + public init() { } +} diff --git a/Tuist/ProjectDescriptionHelpers/Module/SPM/Lottie.swift b/Tuist/ProjectDescriptionHelpers/Module/SPM/Lottie.swift new file mode 100644 index 00000000..4fc8e937 --- /dev/null +++ b/Tuist/ProjectDescriptionHelpers/Module/SPM/Lottie.swift @@ -0,0 +1,12 @@ +// +// Lottie.swift +// AlarmFeatureManifests +// +// Created by gnksbm on 3/31/25. +// + +import EnvironmentPlugin + +public struct Lottie: SPMDependency { + public init() { } +} diff --git a/Tuist/ProjectDescriptionHelpers/Module/SPM/RxCocoa.swift b/Tuist/ProjectDescriptionHelpers/Module/SPM/RxCocoa.swift new file mode 100644 index 00000000..13d7ea70 --- /dev/null +++ b/Tuist/ProjectDescriptionHelpers/Module/SPM/RxCocoa.swift @@ -0,0 +1,12 @@ +// +// RxCocoa.swift +// AlarmFeatureManifests +// +// Created by gnksbm on 3/31/25. +// + +import EnvironmentPlugin + +public struct RxCocoa: SPMDependency { + public init() { } +} diff --git a/Tuist/ProjectDescriptionHelpers/Module/SPM/RxSwift.swift b/Tuist/ProjectDescriptionHelpers/Module/SPM/RxSwift.swift new file mode 100644 index 00000000..613eccb1 --- /dev/null +++ b/Tuist/ProjectDescriptionHelpers/Module/SPM/RxSwift.swift @@ -0,0 +1,12 @@ +// +// RxSwift.swift +// AlarmFeatureManifests +// +// Created by gnksbm on 3/31/25. +// + +import EnvironmentPlugin + +public struct RxSwift: SPMDependency { + public init() { } +} diff --git a/Tuist/ProjectDescriptionHelpers/Module/XCFramework/NMapsGeometry.swift b/Tuist/ProjectDescriptionHelpers/Module/XCFramework/NMapsGeometry.swift new file mode 100644 index 00000000..999d4db4 --- /dev/null +++ b/Tuist/ProjectDescriptionHelpers/Module/XCFramework/NMapsGeometry.swift @@ -0,0 +1,12 @@ +// +// NMapsGeometry.swift +// AlarmFeatureManifests +// +// Created by gnksbm on 3/31/25. +// + +import EnvironmentPlugin + +public struct NMapsGeometry: XCFrameworkDependency { + public init() { } +} diff --git a/Tuist/ProjectDescriptionHelpers/Module/XCFramework/NMapsMap.swift b/Tuist/ProjectDescriptionHelpers/Module/XCFramework/NMapsMap.swift new file mode 100644 index 00000000..24e413f0 --- /dev/null +++ b/Tuist/ProjectDescriptionHelpers/Module/XCFramework/NMapsMap.swift @@ -0,0 +1,12 @@ +// +// NMapsMap.swift +// AlarmFeatureManifests +// +// Created by gnksbm on 3/31/25. +// + +import EnvironmentPlugin + +public struct NMapsMap: XCFrameworkDependency { + public init() { } +} diff --git a/Tuist/ProjectDescriptionHelpers/Project+Target.swift b/Tuist/ProjectDescriptionHelpers/Project+Target.swift deleted file mode 100644 index cf01e485..00000000 --- a/Tuist/ProjectDescriptionHelpers/Project+Target.swift +++ /dev/null @@ -1,23 +0,0 @@ -// -// Scripts.swift -// ProjectDescriptionHelpers -// -// Created by gnksbm on 2023/11/19. -// - -import ProjectDescription - -public enum ModuleType { - case app, dynamicFramework, staticFramework, feature - - var product: Product { - switch self { - case .app: - return .app - case .dynamicFramework: - return .framework - case .staticFramework, .feature: - return .staticFramework - } - } -} diff --git a/Tuist/ProjectDescriptionHelpers/Project+Templates.swift b/Tuist/ProjectDescriptionHelpers/Project+Templates.swift deleted file mode 100644 index 641d556a..00000000 --- a/Tuist/ProjectDescriptionHelpers/Project+Templates.swift +++ /dev/null @@ -1,240 +0,0 @@ -// -// Project+Templates.swift -// Config -// -// Created by gnksbm on 2023/11/19. -// - -import ProjectDescription -import EnvironmentPlugin -import DependencyPlugin - -extension Project { - // MARK: Refact - public static func makeProject( - name: String, - moduleType: ModuleType, - entitlementsPath: Path? = nil, - isTestable: Bool = false, - hasResource: Bool = false, - appExtensionTarget: [Target] = [], - packages: [Package] = [], - dependencies: [TargetDependency], - coreDataModel: [CoreDataModel] = [], - resourceSynthesizers: [ResourceSynthesizer] = [] - ) -> Self { - var schemes = [Scheme]() - var targets = [Target]() - var targetModule: Target - var entitlements: Entitlements? - if let entitlementsPath { - entitlements = .file(path: entitlementsPath) - } - switch moduleType { - case .app: - targetModule = appTarget( - name: name, - entitlements: entitlements, - dependencies: dependencies + appExtensionTarget.map { - TargetDependency.target(name: $0.name) - } - ) - let uiTestsTarget = uiTestTarget( - name: name, - dependencies: [.target(targetModule)] - ) - targets.append(uiTestsTarget) - appExtensionTarget.forEach { - targets.append($0) - } - schemes.append(.moduleScheme(name: name)) - schemes.append(.uiTestsScheme(name: name)) - case .dynamicFramework, .staticFramework: - targetModule = frameworkTarget( - name: name, - entitlements: entitlements, - hasResource: hasResource, - productType: moduleType.product, - dependencies: dependencies, - coreDataModel: coreDataModel - ) - case .feature: - targetModule = frameworkTarget( - name: name, - entitlements: entitlements, - hasResource: hasResource, - productType: moduleType.product, - isPresentation: true, - dependencies: dependencies, - coreDataModel: coreDataModel - ) -// let demoTarget = demoAppTarget( -// name: name, -// dependencies: [.target(targetModule)] -// ) -// targets.append(demoTarget) -// schemes.append(.moduleScheme(name: demoTarget.name)) - } - targets.append(targetModule) -// if isTestable { -// let test = unitTestTarget( -// name: name, -// dependencies: [.target(targetModule)] -// ) -// targets.append(test) -// } - return Project( - name: name, - organizationName: .organizationName, - packages: packages, - targets: targets, - schemes: schemes - ) - } - - private static func appTarget( - name: String, - entitlements: Entitlements?, - dependencies: [TargetDependency] - ) -> Target { - Target( - name: name, - platform: .iOS, - product: .app, - bundleId: .bundleID, - deploymentTarget: .deploymentTarget, - infoPlist: .appInfoPlist, - sources: ["Sources/**"], - resources: ["Resources/**"], - entitlements: entitlements, - scripts: [.swiftLint], - dependencies: dependencies, - settings: .appDebug - ) - } - - private static func demoAppTarget( - name: String, - entitlements: Entitlements? = nil, - dependencies: [TargetDependency] - ) -> Target { - Target( - name: "\(name)Demo", - platform: .iOS, - product: .app, - bundleId: "\(String.bundleID).\(name)Demo", - deploymentTarget: .deploymentTarget, - infoPlist: .demoAppInfoPlist(name: name), - sources: [ - "Demo/**", - ], - entitlements: entitlements, - scripts: [.featureSwiftLint], - dependencies: dependencies, - settings: .appDebug - ) - } - - private static func frameworkTarget( - name: String, - entitlements: Entitlements?, - hasResource: Bool, - productType: Product, - isPresentation: Bool = false, - dependencies: [TargetDependency], - coreDataModel: [CoreDataModel] - ) -> Target { - let scripts: [TargetScript] = isPresentation ? - [.featureSwiftLint] : [.swiftLint] - return Target( - name: name, - platform: .iOS, - product: .framework, - bundleId: .bundleID + ".\(name)", - deploymentTarget: .deploymentTarget, - infoPlist: .frameworkInfoPlist, - sources: ["Sources/**"], - resources: hasResource ? ["Resources/**"] : nil, - entitlements: entitlements, - scripts: scripts, - dependencies: dependencies, - settings: .frameworkDebug, - coreDataModels: coreDataModel - ) - } - - public static func appExtensionTarget( - name: String, - plist: InfoPlist?, - resources: ResourceFileElements? = nil, - entitlements: Entitlements? = nil, - dependencies: [TargetDependency] - ) -> Target { - return Target( - name: name, - platform: .iOS, - product: .appExtension, - bundleId: .bundleID + ".\(name)", - deploymentTarget: .deploymentTarget, - infoPlist: plist, - sources: ["\(name)/**"], - resources: resources, - entitlements: entitlements, - scripts: [.swiftLint], - dependencies: dependencies, - settings: .settings( - base: .init() - .setCodeSignManual() - .setProvisioning(), - configurations: [ - .debug( - name: .debug, - xcconfig: .relativeToRoot("XCConfig/\(name)_Debug.xcconfig") - ), - .release( - name: .release, - xcconfig: .relativeToRoot("XCConfig/\(name)_Release.xcconfig") - ), - ] - ) - ) - } - - private static func unitTestTarget( - name: String, - isFeature: Bool = false, - dependencies: [TargetDependency] - ) -> Target { - Target( - name: "\(name)Tests", - platform: .iOS, - product: .unitTests, - bundleId: .bundleID + ".\(name)Test", - deploymentTarget: .deploymentTarget, - infoPlist: .frameworkInfoPlist, - sources: ["Tests/**"], - scripts: isFeature ? [.featureSwiftLint] : [.swiftLint], - dependencies: dependencies, - settings: .test - ) - } - - private static func uiTestTarget( - name: String, - isFeature: Bool = false, - dependencies: [TargetDependency] - ) -> Target { - Target( - name: "\(name)UITests", - platform: .iOS, - product: .uiTests, - bundleId: .bundleID + ".\(name)UITest", - deploymentTarget: .deploymentTarget, - infoPlist: .frameworkInfoPlist, - sources: ["Tests/**"], - scripts: isFeature ? [.featureSwiftLint] : [.swiftLint], - dependencies: dependencies, - settings: .test - ) - } -} diff --git a/Tuist/ProjectDescriptionHelpers/TargetScript/FeatureSwiftLintScript.swift b/Tuist/ProjectDescriptionHelpers/TargetScript/FeatureSwiftLintScript.swift new file mode 100644 index 00000000..3579f847 --- /dev/null +++ b/Tuist/ProjectDescriptionHelpers/TargetScript/FeatureSwiftLintScript.swift @@ -0,0 +1,13 @@ +// +// FeatureSwiftLintScript.swift +// EnvironmentPlugin +// +// Created by gnksbm on 4/11/25. +// + +public struct FeatureSwiftLintScript: PreTargetScriptBuildable { + public let path: Path = .relativeToRoot("Scripts/FeatureSwiftLintRunScript.sh") + public let name: String = "SwiftLintShell" + + public init() { } +} diff --git a/Tuist/ProjectDescriptionHelpers/TargetScript/SwiftLintScript.swift b/Tuist/ProjectDescriptionHelpers/TargetScript/SwiftLintScript.swift new file mode 100644 index 00000000..50debf59 --- /dev/null +++ b/Tuist/ProjectDescriptionHelpers/TargetScript/SwiftLintScript.swift @@ -0,0 +1,13 @@ +// +// SwiftLintScript.swift +// EnvironmentPlugin +// +// Created by gnksbm on 4/11/25. +// + +public struct SwiftLintScript: PreTargetScriptBuildable { + public let path: Path = .relativeToRoot("Scripts/SwiftLintRunScript.sh") + public let name: String = "SwiftLintShell" + + public init() { } +} diff --git a/Tuist/Templates/feature/project.stencil b/Tuist/Templates/feature/project.stencil index ab8478f8..ea0dbfb5 100644 --- a/Tuist/Templates/feature/project.stencil +++ b/Tuist/Templates/feature/project.stencil @@ -8,3 +8,16 @@ let project = Project.makeProject( .featureDependency ] ) + +let project = Project( + name: "{{ name }}", + options: .options(automaticSchemesOptions: .disabled) +) { + Feature(name: "{{ name }}Feature") { + FeatureDependency() + } + SampleApp(name: "{{ name }}Feature") { + Feature(name: "{{ name }}Feature") + } + SampleAppScheme(name: "{{ name }}Feature") +} diff --git a/Tuist/Templates/framework/project.stencil b/Tuist/Templates/framework/project.stencil index 8287b7fd..ab2444b8 100644 --- a/Tuist/Templates/framework/project.stencil +++ b/Tuist/Templates/framework/project.stencil @@ -1,11 +1,15 @@ -import ProjectDescription -import ProjectDescriptionHelpers -import DependencyPlugin +let project = Project(name: "{{ name }}") { + {{ name }}() { + } +} -let project = Project.makeProject( - name: "{{ name }}", - moduleType: .dynamicFramework, - isTestable: true, - dependencies: [ - ] -) +// Tuist/ProjectDescriptionHelpers/Local로 이동 +// 추후 자동화 예정 +public struct {{ name }}: FrameworkTarget { + public let product: Product = .framework + public let dependencies: [TargetDependency] + + public init(@TargetDependencyBuilder dependencies builder: () -> TargetDependencyBuilder = { .init() }) { + self.dependencies = builder().buildTargetDependency() + } +} diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 45f7e4a8..4cb7d99b 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -4,50 +4,28 @@ SCHEME = "App" default_platform(:ios) platform :ios do - desc "Regenerate" - lane :regenerate do |options| - Dir.chdir("../") do - sh("make clean_all") - sh("fastlane getig") - sh("fastlane setpj") - end - end - - desc "Download Ignored" - lane :getig do |options| - Dir.chdir("../") do - github_access_token = sh("git config --global user.password") - sh("make download-privates token=#{github_access_token}") - end - end - - desc "Set Project" - lane :setpj do |options| - Dir.chdir("../") do - sh("tuist clean") - sh("tuist fetch") - sh("tuist generate") - match( - type: "development", - git_url: ENV["MATCH_URL"], - keychain_password: ENV["MATCH_PASSWORD"], - app_identifier: [ - "com.Pepsi-Club.WhereMyBus", - "com.Pepsi-Club.WhereMyBus.Widget" - ], - readonly: true - ) - match( - type: "appstore", - git_url: ENV["MATCH_URL"], - keychain_password: ENV["MATCH_PASSWORD"], - app_identifier: [ - "com.Pepsi-Club.WhereMyBus", - "com.Pepsi-Club.WhereMyBus.Widget" - ], - readonly: true - ) - end + desc "인증서 가져오기" + lane :sync do |options| + match( + type: "development", + git_url: ENV["MATCH_URL"], + keychain_password: ENV["MATCH_PASSWORD"], + app_identifier: [ + "com.Pepsi-Club.WhereMyBus", + "com.Pepsi-Club.WhereMyBus.Widget" + ], + readonly: true + ) + match( + type: "appstore", + git_url: ENV["MATCH_URL"], + keychain_password: ENV["MATCH_PASSWORD"], + app_identifier: [ + "com.Pepsi-Club.WhereMyBus", + "com.Pepsi-Club.WhereMyBus.Widget" + ], + readonly: true + ) end desc "local Push to TestFlight" diff --git a/fastlane/README.md b/fastlane/README.md index 86c9c296..48a5a01f 100644 --- a/fastlane/README.md +++ b/fastlane/README.md @@ -15,29 +15,13 @@ For _fastlane_ installation instructions, see [Installing _fastlane_](https://do ## iOS -### ios regenerate +### ios sync ```sh -[bundle exec] fastlane ios regenerate +[bundle exec] fastlane ios sync ``` -Regenerate - -### ios getig - -```sh -[bundle exec] fastlane ios getig -``` - -Download Ignored - -### ios setpj - -```sh -[bundle exec] fastlane ios setpj -``` - -Set Project +인증서 가져오기 ### ios tf_local