Compare commits

..

1 Commits

Author SHA1 Message Date
Ivan Smolin 5f7e4cfd40 update podfile & gitignore 2021-02-19 21:57:03 +03:00
14 changed files with 286 additions and 145 deletions

View File

@ -108,7 +108,7 @@ gem install bundle
- ПАРАМЕТР_3 (Опициональный) = Название репозитория с общими строками, без указания расширения `.git` и названия компании. Пример: `Bank-Common`, `Bank2-Common`. Если не указывать параметр, то будет использоваться имя проекта с постфиксом `-common`. Пример скрипта - ПАРАМЕТР_3 (Опициональный) = Название репозитория с общими строками, без указания расширения `.git` и названия компании. Пример: `Bank-Common`, `Bank2-Common`. Если не указывать параметр, то будет использоваться имя проекта с постфиксом `-common`. Пример скрипта
```sh ```sh
igorkislyuk$ ./bootstrap.sh ~/Documents/projects/ Bank Bank-common igorkislyuk$ ./bootstrap.sh ~/Documents/projects/ Bank BankSpbJur-common
``` ```
### Шаг 4. После установки: ### Шаг 4. После установки:

View File

@ -92,11 +92,6 @@ generate "{project_name: $PROJECT_NAME, deployment_target: $DEPLOYMENT_TARGET, p
echo "Generate xcodeproj file..." echo "Generate xcodeproj file..."
xcodegen --spec project.yml xcodegen --spec project.yml
# conifgure build_phases folder
cp -r $CURRENT_DIR/sources/build_phases ./build_phases
generate "{project_name: $PROJECT_NAME}" $TEMPLATES/build_phases/code_lint_folders.mustache build_phases/code_lint_folders.xcfilelist
# creating .gitkeep in each folder to enforce git stash this folder # creating .gitkeep in each folder to enforce git stash this folder
for folder in `cat $CURRENT_DIR/foldernames.txt`; do for folder in `cat $CURRENT_DIR/foldernames.txt`; do
touch $PROJECT_NAME/$folder/.gitkeep touch $PROJECT_NAME/$folder/.gitkeep
@ -110,17 +105,6 @@ bundle exec pod install --repo-update
cp $TEMPLATES/gitignore .gitignore cp $TEMPLATES/gitignore .gitignore
cp $TEMPLATES/gitattributes .gitattributes cp $TEMPLATES/gitattributes .gitattributes
# configure git hooks
cp -r $CURRENT_DIR/sources/.githooks .githooks
generate "{project_name: $PROJECT_NAME}" $TEMPLATES/githooks/post-merge.mustache .githooks/post-merge
generate "{project_name: $PROJECT_NAME}" $TEMPLATES/githooks/pre-commit.mustache .githooks/pre-commit
chmod +x .githooks/post-merge
chmod +x .githooks/pre-commit
git config --local core.hooksPath .githooks
# configure fastlane # configure fastlane
generate "{git_url: \"$GIT_URL\", match_password: $MATCH_PASSWORD}" $TEMPLATES/fastlane/Matchfile.mustache fastlane/Matchfile generate "{git_url: \"$GIT_URL\", match_password: $MATCH_PASSWORD}" $TEMPLATES/fastlane/Matchfile.mustache fastlane/Matchfile

View File

@ -1,16 +0,0 @@
# Project path
readonly PROJECT_PATH=${1}
xcodebuild \
-quiet \
-scheme CodeGen \
-project ${PROJECT_PATH} \
-destination 'generic/platform=macOS' \
archive
if test $? -eq 0
then echo "Code generation was finished successfully!"
else
echo "There is the error with code generation!"
exit 1
fi

View File

@ -1,16 +0,0 @@
# Project path
readonly PROJECT_PATH=${1}
xcodebuild \
-quiet \
-scheme CodeLint \
-project ${PROJECT_PATH} \
-destination 'generic/platform=macOS' \
analyze
if test $? -eq 0
then echo "Code linting was finished successfully!"
else
echo "There is the error with code linting!"
exit 1
fi

View File

@ -1,3 +1,2 @@
tap "yonaskolb/XcodeGen", "https://github.com/yonaskolb/XcodeGen.git" tap "yonaskolb/XcodeGen", "https://github.com/yonaskolb/XcodeGen.git"
brew "XcodeGen" brew "XcodeGen"

268
sources/Gemfile.lock Normal file
View File

@ -0,0 +1,268 @@
GIT
remote: https://github.com/strongself/Generamba.git
revision: d0930d3bd2589a34e06bf6f9c5016dc3ffe7678a
specs:
generamba (1.5.0)
cocoapods-core (>= 1.4.0, < 2.0.0)
git (= 1.2.9.1)
liquid (= 4.0.0)
terminal-table (= 1.4.5)
thor (= 0.19.1)
xcodeproj (>= 1.5.0, < 2.0.0)
GEM
remote: https://rubygems.org/
specs:
CFPropertyList (3.0.2)
activesupport (4.2.11.3)
i18n (~> 0.7)
minitest (~> 5.1)
thread_safe (~> 0.3, >= 0.3.4)
tzinfo (~> 1.1)
addressable (2.7.0)
public_suffix (>= 2.0.2, < 5.0)
algoliasearch (1.27.3)
httpclient (~> 2.8, >= 2.8.3)
json (>= 1.5.1)
atomos (0.1.3)
aws-eventstream (1.1.0)
aws-partitions (1.356.0)
aws-sdk-core (3.104.3)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.239.0)
aws-sigv4 (~> 1.1)
jmespath (~> 1.0)
aws-sdk-kms (1.36.0)
aws-sdk-core (~> 3, >= 3.99.0)
aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.78.0)
aws-sdk-core (~> 3, >= 3.104.3)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.1)
aws-sigv4 (1.2.2)
aws-eventstream (~> 1, >= 1.0.2)
babosa (1.0.3)
badge (0.12.0)
curb (~> 0.9)
fastimage (>= 1.6)
fastlane (>= 2.0)
mini_magick (>= 4.9.4, < 5.0.0)
claide (1.0.3)
cocoapods (1.9.3)
activesupport (>= 4.0.2, < 5)
claide (>= 1.0.2, < 2.0)
cocoapods-core (= 1.9.3)
cocoapods-deintegrate (>= 1.0.3, < 2.0)
cocoapods-downloader (>= 1.2.2, < 2.0)
cocoapods-plugins (>= 1.0.0, < 2.0)
cocoapods-search (>= 1.0.0, < 2.0)
cocoapods-stats (>= 1.0.0, < 2.0)
cocoapods-trunk (>= 1.4.0, < 2.0)
cocoapods-try (>= 1.1.0, < 2.0)
colored2 (~> 3.1)
escape (~> 0.0.4)
fourflusher (>= 2.3.0, < 3.0)
gh_inspector (~> 1.0)
molinillo (~> 0.6.6)
nap (~> 1.0)
ruby-macho (~> 1.4)
xcodeproj (>= 1.14.0, < 2.0)
cocoapods-core (1.9.3)
activesupport (>= 4.0.2, < 6)
algoliasearch (~> 1.0)
concurrent-ruby (~> 1.1)
fuzzy_match (~> 2.0.4)
nap (~> 1.0)
netrc (~> 0.11)
typhoeus (~> 1.0)
cocoapods-deintegrate (1.0.4)
cocoapods-downloader (1.4.0)
cocoapods-plugins (1.0.0)
nap
cocoapods-search (1.0.0)
cocoapods-stats (1.1.0)
cocoapods-trunk (1.5.0)
nap (>= 0.8, < 2.0)
netrc (~> 0.11)
cocoapods-try (1.2.0)
colored (1.2)
colored2 (3.1.2)
commander-fastlane (4.4.6)
highline (~> 1.7.2)
concurrent-ruby (1.1.7)
curb (0.9.10)
declarative (0.0.20)
declarative-option (0.1.0)
digest-crc (0.6.1)
rake (~> 13.0)
domain_name (0.5.20190701)
unf (>= 0.0.5, < 1.0.0)
dotenv (2.7.6)
emoji_regex (3.0.0)
escape (0.0.4)
ethon (0.12.0)
ffi (>= 1.3.0)
excon (0.76.0)
faraday (1.0.1)
multipart-post (>= 1.2, < 3)
faraday-cookie_jar (0.0.6)
faraday (>= 0.7.4)
http-cookie (~> 1.0.0)
faraday_middleware (1.0.0)
faraday (~> 1.0)
fastimage (2.2.0)
fastlane (2.156.1)
CFPropertyList (>= 2.3, < 4.0.0)
addressable (>= 2.3, < 3.0.0)
aws-sdk-s3 (~> 1.0)
babosa (>= 1.0.3, < 2.0.0)
bundler (>= 1.12.0, < 3.0.0)
colored
commander-fastlane (>= 4.4.6, < 5.0.0)
dotenv (>= 2.1.1, < 3.0.0)
emoji_regex (>= 0.1, < 4.0)
excon (>= 0.71.0, < 1.0.0)
faraday (~> 1.0)
faraday-cookie_jar (~> 0.0.6)
faraday_middleware (~> 1.0)
fastimage (>= 2.1.0, < 3.0.0)
gh_inspector (>= 1.1.2, < 2.0.0)
google-api-client (>= 0.37.0, < 0.39.0)
google-cloud-storage (>= 1.15.0, < 2.0.0)
highline (>= 1.7.2, < 2.0.0)
json (< 3.0.0)
jwt (>= 2.1.0, < 3)
mini_magick (>= 4.9.4, < 5.0.0)
multipart-post (~> 2.0.0)
plist (>= 3.1.0, < 4.0.0)
rubyzip (>= 2.0.0, < 3.0.0)
security (= 0.1.3)
simctl (~> 1.6.3)
slack-notifier (>= 2.0.0, < 3.0.0)
terminal-notifier (>= 2.0.0, < 3.0.0)
terminal-table (>= 1.4.5, < 2.0.0)
tty-screen (>= 0.6.3, < 1.0.0)
tty-spinner (>= 0.8.0, < 1.0.0)
word_wrap (~> 1.0.0)
xcodeproj (>= 1.13.0, < 2.0.0)
xcpretty (~> 0.3.0)
xcpretty-travis-formatter (>= 0.0.3)
fastlane-plugin-badge (1.4.0)
badge (~> 0.12.0)
fastlane-plugin-firebase_app_distribution (0.1.4)
ffi (1.13.1)
fourflusher (2.3.1)
fuzzy_match (2.0.4)
gh_inspector (1.1.3)
git (1.2.9.1)
google-api-client (0.38.0)
addressable (~> 2.5, >= 2.5.1)
googleauth (~> 0.9)
httpclient (>= 2.8.1, < 3.0)
mini_mime (~> 1.0)
representable (~> 3.0)
retriable (>= 2.0, < 4.0)
signet (~> 0.12)
google-cloud-core (1.5.0)
google-cloud-env (~> 1.0)
google-cloud-errors (~> 1.0)
google-cloud-env (1.3.3)
faraday (>= 0.17.3, < 2.0)
google-cloud-errors (1.0.1)
google-cloud-storage (1.27.0)
addressable (~> 2.5)
digest-crc (~> 0.4)
google-api-client (~> 0.33)
google-cloud-core (~> 1.2)
googleauth (~> 0.9)
mini_mime (~> 1.0)
googleauth (0.13.1)
faraday (>= 0.17.3, < 2.0)
jwt (>= 1.4, < 3.0)
memoist (~> 0.16)
multi_json (~> 1.11)
os (>= 0.9, < 2.0)
signet (~> 0.14)
highline (1.7.10)
http-cookie (1.0.3)
domain_name (~> 0.5)
httpclient (2.8.3)
i18n (0.9.5)
concurrent-ruby (~> 1.0)
jmespath (1.4.0)
json (2.3.1)
jwt (2.2.2)
liquid (4.0.0)
memoist (0.16.2)
mini_magick (4.10.1)
mini_mime (1.0.2)
minitest (5.14.1)
molinillo (0.6.6)
multi_json (1.15.0)
multipart-post (2.0.0)
nanaimo (0.3.0)
nap (1.1.0)
naturally (2.2.0)
netrc (0.11.0)
os (1.1.1)
plist (3.5.0)
public_suffix (4.0.5)
rake (13.0.1)
representable (3.0.4)
declarative (< 0.1.0)
declarative-option (< 0.2.0)
uber (< 0.2.0)
retriable (3.1.2)
rouge (2.0.7)
ruby-macho (1.4.0)
rubyzip (2.3.0)
security (0.1.3)
signet (0.14.0)
addressable (~> 2.3)
faraday (>= 0.17.3, < 2.0)
jwt (>= 1.5, < 3.0)
multi_json (~> 1.10)
simctl (1.6.8)
CFPropertyList
naturally
slack-notifier (2.3.2)
terminal-notifier (2.0.0)
terminal-table (1.4.5)
thor (0.19.1)
thread_safe (0.3.6)
tty-cursor (0.7.1)
tty-screen (0.8.1)
tty-spinner (0.9.3)
tty-cursor (~> 0.7)
typhoeus (1.4.0)
ethon (>= 0.9.0)
tzinfo (1.2.7)
thread_safe (~> 0.1)
uber (0.1.0)
unf (0.1.4)
unf_ext
unf_ext (0.0.7.7)
word_wrap (1.0.0)
xcodeproj (1.18.0)
CFPropertyList (>= 2.3.3, < 4.0)
atomos (~> 0.1.3)
claide (>= 1.0.2, < 2.0)
colored2 (~> 3.1)
nanaimo (~> 0.3.0)
xcpretty (0.3.0)
rouge (~> 2.0.7)
xcpretty-travis-formatter (1.0.0)
xcpretty (~> 0.2, >= 0.0.7)
PLATFORMS
ruby
DEPENDENCIES
cocoapods
fastlane
fastlane-plugin-badge
fastlane-plugin-firebase_app_distribution
generamba!
BUNDLED WITH
2.1.4

View File

@ -1,8 +0,0 @@
diff "${SRCROOT}/Podfile.lock" "${PODS_ROOT}/Manifest.lock" > /dev/null
if [ $? != 0 ] ; then
# print error to STDERR
echo "error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation." >&2
exit 1
fi
# This output is used by Xcode 'outputs' to avoid re-running this script phase.
echo "SUCCESS" > "${SCRIPT_OUTPUT_FILE_0}"

View File

@ -7,6 +7,7 @@ cd "$DIR"
brew bundle brew bundle
# Устанавливаем bundler # Устанавливаем bundler
gem install bundler gem install bundler
# Устанавливаем ruby зависимости. # Устанавливаем ruby зависимости.
@ -14,7 +15,4 @@ gem install bundler
bundle install bundle install
# Обновляем репозиторий подов и запускаем их установку. # Обновляем репозиторий подов и запускаем их установку.
bundle exec pod install --repo-update bundle exec pod install --repo-update
# Configure githooks folder path
git config --local core.hooksPath .githooks

View File

@ -1,5 +1,5 @@
source 'https://cdn.cocoapods.org/' source 'https://cdn.cocoapods.org/'
source 'git@github.com:TouchInstinct/Podspecs' source 'https://github.com/TouchInstinct/Podspecs.git'
platform :ios, '{{deployment_target}}' platform :ios, '{{deployment_target}}'
@ -15,14 +15,14 @@ project '{{project_name}}', {
target '{{project_name}}' do target '{{project_name}}' do
# System # System
pod 'SwiftLint', '0.42.0' pod 'SwiftLint', '0.39.1'
pod 'LicensePlist' pod 'LicensePlist'
pod 'Firebase/Crashlytics' pod 'Firebase/Crashlytics'
pod 'Firebase/Performance' pod 'Firebase/Performance'
pod 'Firebase/Analytics' # for Firebase/Performance pod 'Firebase/Analytics' # for Firebase/Performance
# Rx # Rx
pod 'RxKeyboard', '1.0.0' pod 'RxKeyboard', '0.9.0'
# Security # Security
pod 'KeychainAccess' pod 'KeychainAccess'
@ -36,6 +36,7 @@ target '{{project_name}}' do
# UI # UI
pod 'TableKit' pod 'TableKit'
pod 'StatefulViewController'
end end

View File

@ -1 +0,0 @@
${SRCROOT}/{{project_name}}

View File

@ -1,3 +0,0 @@
echo "Running post-merge hook"
sh .githooks/scripts/CodeGen.sh './{{project_name}}.xcodeproj'

View File

@ -1,3 +0,0 @@
echo "Running post-merge hook"
sh .githooks/scripts/CodeLint.sh './{{project_name}}.xcodeproj'

View File

@ -92,9 +92,9 @@ iOSInjectionProject/
# homebrew-bundle # homebrew-bundle
Brewfile.lock.json Brewfile.lock.json
# Node.js # Ruby gems
# Dependency directories # Dependency directories
node_modules/ *.gem
# Touch Instinct custom # Touch Instinct custom
Downloads/ Downloads/

View File

@ -1,5 +1,4 @@
name: {{project_name}} name: {{project_name}}
options: options:
createIntermediateGroups: true createIntermediateGroups: true
xcodeVersion: 11.0 xcodeVersion: 11.0
@ -7,12 +6,10 @@ options:
indentWidth: 4 indentWidth: 4
deploymentTarget: deploymentTarget:
iOS: "{{deployment_target}}" iOS: "{{deployment_target}}"
configs: configs:
AppStore: release AppStore: release
Release: release Release: release
Debug: debug Debug: debug
targets: targets:
{{project_name}}: {{project_name}}:
settings: settings:
@ -32,7 +29,16 @@ targets:
GOOGLE_SERVICE_INFO_PLIST_PATH: $(SRCROOT)/$(TARGET_NAME)/Resources/AppStore-GoogleService-Info.plist GOOGLE_SERVICE_INFO_PLIST_PATH: $(SRCROOT)/$(TARGET_NAME)/Resources/AppStore-GoogleService-Info.plist
type: application type: application
platform: iOS platform: iOS
prebuildScripts:
- script: ". build-scripts/xcode/build_phases/localization.sh"
name: Localization
- script: ". build-scripts/xcode/build_phases/api_generator.sh 1.4.0-beta4"
name: API Generator
postbuildScripts: postbuildScripts:
- script: ". build-scripts/xcode/build_phases/swiftlint.sh"
name: Swiftlint
- script: ". build-scripts/xcode/build_phases/copy_paste_detection.sh"
name: CopyPaste Detection
- script: "\"${PODS_ROOT}/FirebaseCrashlytics/run\" --google-service-plist ${GOOGLE_SERVICE_INFO_PLIST_PATH}" - script: "\"${PODS_ROOT}/FirebaseCrashlytics/run\" --google-service-plist ${GOOGLE_SERVICE_INFO_PLIST_PATH}"
name: Firebase name: Firebase
runOnlyWhenInstalling: true runOnlyWhenInstalling: true
@ -64,71 +70,3 @@ targets:
buildPhase: sources buildPhase: sources
- path: {{project_name}}/Views - path: {{project_name}}/Views
buildPhase: sources buildPhase: sources
aggregateTargets:
CodeGen:
buildScripts:
- name: Localization
script: |
readonly PRODUCT_NAME={{project_name}}
. build-scripts/xcode/build_phases/localization.sh
inputFiles:
- $(SRCROOT)/common/strings/default_common_strings_ru.json
- name: API Generator
script: . build-scripts/xcode/build_phases/api_generator.sh 1.4.0-alpha3 {{project_name}}/Generated
- name: License List
script: |
readonly PODS_ROOT="${SRCROOT}/Pods"
${PODS_ROOT}/LicensePlist/license-plist --output-path Resources/LicenseList --prefix Licenses --suppress-opening-directory
CodeLint:
buildScripts:
- name: Check Pods Manifest.lock
script: |
readonly PODS_ROOT="${SRCROOT}/Pods"
. ${SRCROOT}/build_phases/check_pods_manifest.sh
inputFiles:
- ${SRCROOT}/Podfile.lock
- ${PODS_ROOT}/Manifest.lock
outputFiles:
- $(DERIVED_FILE_DIR)/Pods-Ubrd-checkManifestLockResult.txt
- name: Swiftlint
script: |
readonly PODS_ROOT="${SRCROOT}/Pods"
readonly SCRIPT_DIR="${SRCROOT}/build-scripts/xcode/build_phases"
. ${SCRIPT_DIR}/swiftlint.sh
inputFileLists:
- $(SRCROOT)/build_phases/code_lint_folders.xcfilelist
basedOnDependencyAnalysis: false
- name: CopyPaste Detection
script: |
readonly SCRIPT_DIR="${SRCROOT}/build-scripts/xcode/build_phases"
. build-scripts/xcode/build_phases/copy_paste_detection.sh Localization Generated Pods
inputFileLists:
- $(SRCROOT)/build_phases/code_lint_folders.xcfilelist
basedOnDependencyAnalysis: false
UnusedDetection:
buildScripts:
- name: UnusedCode Detection
script: . build-scripts/xcode/build_phases/unused.sh
schemes:
CodeGen:
build:
targets:
CodeGen: [run, archive]
CodeLint:
build:
targets:
CodeLint: [analyze]
UnusedDetection:
build:
targets:
UnusedDetection: [analyze]