Skip to content

Commit 9c7aaa0

Browse files
authored
Merge pull request #100 from protect-earth/al/99
Build updates for new signing config
2 parents 7e81346 + 7a9c976 commit 9c7aaa0

File tree

4 files changed

+63
-57
lines changed

4 files changed

+63
-57
lines changed

.github/workflows/build-release.yaml

+49-49
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,12 @@ jobs:
1414
name: Test
1515
steps:
1616
- name: Checkout
17-
uses: actions/checkout@v2
17+
uses: actions/checkout@v3
1818
- name: Install tools
1919
run: |
2020
brew install sunshinejr/formulae/pouch
2121
- name: Generate Secrets.swift
2222
env:
23-
AIRTABLE_API_KEY: ${{ secrets.AIRTABLE_API_KEY }}
24-
AIRTABLE_BASE_ID: ${{ secrets.AIRTABLE_BASE_ID }}
25-
AIRTABLE_TREES_TABLE_NAME: ${{ secrets.AIRTABLE_TREES_TABLE_NAME }}
26-
AIRTABLE_SPECIES_TABLE_NAME: ${{ secrets.AIRTABLE_SPECIES_TABLE_NAME }}
27-
AIRTABLE_SUPERVISORS_TABLE_NAME: ${{ secrets.AIRTABLE_SUPERVISORS_TABLE_NAME }}
28-
AIRTABLE_SITES_TABLE_NAME: ${{ secrets.AIRTABLE_SITES_TABLE_NAME }}
2923
CLOUDINARY_CLOUD_NAME: ${{ secrets.CLOUDINARY_CLOUD_NAME }}
3024
CLOUDINARY_UPLOAD_PRESET_NAME: ${{ secrets.CLOUDINARY_UPLOAD_PRESET_NAME }}
3125
TEST_AIRTABLE_API_KEY: ${{ secrets.TEST_AIRTABLE_API_KEY }}
@@ -54,18 +48,12 @@ jobs:
5448
name: Stage
5549
steps:
5650
- name: Checkout
57-
uses: actions/checkout@v2
51+
uses: actions/checkout@v3
5852
- name: Install tools
5953
run: |
6054
brew install sunshinejr/formulae/pouch
6155
- name: Generate Secrets.swift
6256
env:
63-
AIRTABLE_API_KEY: ${{ secrets.AIRTABLE_API_KEY }}
64-
AIRTABLE_BASE_ID: ${{ secrets.AIRTABLE_BASE_ID }}
65-
AIRTABLE_TREES_TABLE_NAME: ${{ secrets.AIRTABLE_TREES_TABLE_NAME }}
66-
AIRTABLE_SPECIES_TABLE_NAME: ${{ secrets.AIRTABLE_SPECIES_TABLE_NAME }}
67-
AIRTABLE_SUPERVISORS_TABLE_NAME: ${{ secrets.AIRTABLE_SUPERVISORS_TABLE_NAME }}
68-
AIRTABLE_SITES_TABLE_NAME: ${{ secrets.AIRTABLE_SITES_TABLE_NAME }}
6957
CLOUDINARY_CLOUD_NAME: ${{ secrets.CLOUDINARY_CLOUD_NAME }}
7058
CLOUDINARY_UPLOAD_PRESET_NAME: ${{ secrets.CLOUDINARY_UPLOAD_PRESET_NAME }}
7159
TEST_AIRTABLE_API_KEY: ${{ secrets.TEST_AIRTABLE_API_KEY }}
@@ -80,23 +68,32 @@ jobs:
8068
run: agvtool new-version $GITHUB_RUN_NUMBER.1
8169
- name: Configure Keychain
8270
env:
83-
PROVISIONING_PROFILE_BASE64: ${{ secrets.PROVISIONING_PROFILE_BASE64 }}
84-
DISTRIBUTION_CERT_BASE64: ${{ secrets.DISTRIBUTION_CERT_BASE64 }}
85-
APP_SPECIFIC_PWD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
71+
BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.PROVISIONING_PROFILE_BASE64 }}
72+
BUILD_CERTIFICATE_BASE64: ${{ secrets.DISTRIBUTION_CERT_BASE64 }}
73+
P12_PASSWORD: ${{ secrets.DISTRIBUTION_CERT_PASSWORD }}
74+
KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }}
8675
run: |
87-
mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles
88-
echo -n $PROVISIONING_PROFILE_BASE64 | base64 -D > ~/Library/MobileDevice/Provisioning\ Profiles/iOS_App_Store_Distribution_Profile_20220213.mobileprovision.mobileprovision
89-
echo -n $DISTRIBUTION_CERT_BASE64 | base64 -D > ~/Certificates.p12
76+
# create variables
77+
CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12
78+
PP_PATH=$RUNNER_TEMP/build_pp.mobileprovision
79+
KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db
80+
81+
# import certificate and provisioning profile from secrets
82+
echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode -o $CERTIFICATE_PATH
83+
echo -n "$BUILD_PROVISION_PROFILE_BASE64" | base64 --decode -o $PP_PATH
84+
85+
# create temporary keychain
86+
security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
87+
security set-keychain-settings -lut 21600 $KEYCHAIN_PATH
88+
security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
9089
91-
ls -lrt ~/Library/MobileDevice/Provisioning\ Profiles
92-
ls -lrt ~/Certificates.p12
90+
# import certificate to keychain
91+
security import $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH
92+
security list-keychain -d user -s $KEYCHAIN_PATH
9393
94-
security create-keychain -p "" build.keychain
95-
security import ~/Certificates.p12 -t agg -k ~/Library/Keychains/build.keychain -P "" -A
96-
security list-keychains -s ~/Library/Keychains/build.keychain
97-
security default-keychain -s ~/Library/Keychains/build.keychain
98-
security unlock-keychain -p "" ~/Library/Keychains/build.keychain
99-
security set-key-partition-list -S apple-tool:,apple: -s -k "" ~/Library/Keychains/build.keychain
94+
# apply provisioning profile
95+
mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles
96+
cp $PP_PATH ~/Library/MobileDevice/Provisioning\ Profiles
10097
- name: Build archive
10198
run: |
10299
set -o pipefail
@@ -123,18 +120,12 @@ jobs:
123120
name: Production
124121
steps:
125122
- name: Checkout
126-
uses: actions/checkout@v2
123+
uses: actions/checkout@v3
127124
- name: Install tools
128125
run: |
129126
brew install sunshinejr/formulae/pouch
130127
- name: Generate Secrets.swift
131128
env:
132-
AIRTABLE_API_KEY: ${{ secrets.AIRTABLE_API_KEY }}
133-
AIRTABLE_BASE_ID: ${{ secrets.AIRTABLE_BASE_ID }}
134-
AIRTABLE_TREES_TABLE_NAME: ${{ secrets.AIRTABLE_TREES_TABLE_NAME }}
135-
AIRTABLE_SPECIES_TABLE_NAME: ${{ secrets.AIRTABLE_SPECIES_TABLE_NAME }}
136-
AIRTABLE_SUPERVISORS_TABLE_NAME: ${{ secrets.AIRTABLE_SUPERVISORS_TABLE_NAME }}
137-
AIRTABLE_SITES_TABLE_NAME: ${{ secrets.AIRTABLE_SITES_TABLE_NAME }}
138129
CLOUDINARY_CLOUD_NAME: ${{ secrets.CLOUDINARY_CLOUD_NAME }}
139130
CLOUDINARY_UPLOAD_PRESET_NAME: ${{ secrets.CLOUDINARY_UPLOAD_PRESET_NAME }}
140131
TEST_AIRTABLE_API_KEY: ${{ secrets.TEST_AIRTABLE_API_KEY }}
@@ -149,23 +140,32 @@ jobs:
149140
run: agvtool new-version $GITHUB_RUN_NUMBER
150141
- name: Configure Keychain
151142
env:
152-
PROVISIONING_PROFILE_BASE64: ${{ secrets.PROVISIONING_PROFILE_BASE64 }}
153-
DISTRIBUTION_CERT_BASE64: ${{ secrets.DISTRIBUTION_CERT_BASE64 }}
154-
APP_SPECIFIC_PWD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
143+
BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.PROVISIONING_PROFILE_BASE64 }}
144+
BUILD_CERTIFICATE_BASE64: ${{ secrets.DISTRIBUTION_CERT_BASE64 }}
145+
P12_PASSWORD: ${{ secrets.DISTRIBUTION_CERT_PASSWORD }}
146+
KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }}
155147
run: |
156-
mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles
157-
echo -n $PROVISIONING_PROFILE_BASE64 | base64 -D > ~/Library/MobileDevice/Provisioning\ Profiles/iOS_App_Store_Distribution_Profile_20220213.mobileprovision.mobileprovision
158-
echo -n $DISTRIBUTION_CERT_BASE64 | base64 -D > ~/Certificates.p12
148+
# create variables
149+
CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12
150+
PP_PATH=$RUNNER_TEMP/build_pp.mobileprovision
151+
KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db
152+
153+
# import certificate and provisioning profile from secrets
154+
echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode -o $CERTIFICATE_PATH
155+
echo -n "$BUILD_PROVISION_PROFILE_BASE64" | base64 --decode -o $PP_PATH
156+
157+
# create temporary keychain
158+
security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
159+
security set-keychain-settings -lut 21600 $KEYCHAIN_PATH
160+
security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
159161
160-
ls -lrt ~/Library/MobileDevice/Provisioning\ Profiles
161-
ls -lrt ~/Certificates.p12
162+
# import certificate to keychain
163+
security import $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH
164+
security list-keychain -d user -s $KEYCHAIN_PATH
162165
163-
security create-keychain -p "" build.keychain
164-
security import ~/Certificates.p12 -t agg -k ~/Library/Keychains/build.keychain -P "" -A
165-
security list-keychains -s ~/Library/Keychains/build.keychain
166-
security default-keychain -s ~/Library/Keychains/build.keychain
167-
security unlock-keychain -p "" ~/Library/Keychains/build.keychain
168-
security set-key-partition-list -S apple-tool:,apple: -s -k "" ~/Library/Keychains/build.keychain
166+
# apply provisioning profile
167+
mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles
168+
cp $PP_PATH ~/Library/MobileDevice/Provisioning\ Profiles
169169
- name: Build archive
170170
run: |
171171
set -o pipefail

Tree Tracker.xcodeproj/project.pbxproj

+12-6
Original file line numberDiff line numberDiff line change
@@ -1058,10 +1058,12 @@
10581058
buildSettings = {
10591059
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
10601060
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
1061-
CODE_SIGN_IDENTITY = "iPhone Distribution: Protect Earth CIO (K5RUKV288P)";
1061+
CODE_SIGN_IDENTITY = "Apple Development";
1062+
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
10621063
CODE_SIGN_STYLE = Manual;
10631064
CURRENT_PROJECT_VERSION = 1;
1064-
DEVELOPMENT_TEAM = K5RUKV288P;
1065+
DEVELOPMENT_TEAM = "";
1066+
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = K5RUKV288P;
10651067
INFOPLIST_FILE = "Tree Tracker/Info.plist";
10661068
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
10671069
LD_RUNPATH_SEARCH_PATHS = (
@@ -1071,7 +1073,8 @@
10711073
MARKETING_VERSION = 0.7.2;
10721074
PRODUCT_BUNDLE_IDENTIFIER = "com.protect.earth.Tree-Tracker";
10731075
PRODUCT_NAME = "$(TARGET_NAME)";
1074-
PROVISIONING_PROFILE_SPECIFIER = "iOS App Store Distribution Profile 2022-02-13";
1076+
PROVISIONING_PROFILE_SPECIFIER = "";
1077+
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "iOS AppStore Profile 07-Mar-2023";
10751078
SWIFT_VERSION = 5.0;
10761079
TARGETED_DEVICE_FAMILY = "1,2";
10771080
VERSIONING_SYSTEM = "apple-generic";
@@ -1083,10 +1086,12 @@
10831086
buildSettings = {
10841087
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
10851088
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
1086-
CODE_SIGN_IDENTITY = "iPhone Distribution: Protect Earth CIO (K5RUKV288P)";
1089+
CODE_SIGN_IDENTITY = "Apple Development";
1090+
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
10871091
CODE_SIGN_STYLE = Manual;
10881092
CURRENT_PROJECT_VERSION = 1;
1089-
DEVELOPMENT_TEAM = K5RUKV288P;
1093+
DEVELOPMENT_TEAM = "";
1094+
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = K5RUKV288P;
10901095
INFOPLIST_FILE = "Tree Tracker/Info.plist";
10911096
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
10921097
LD_RUNPATH_SEARCH_PATHS = (
@@ -1096,7 +1101,8 @@
10961101
MARKETING_VERSION = 0.7.2;
10971102
PRODUCT_BUNDLE_IDENTIFIER = "com.protect.earth.Tree-Tracker";
10981103
PRODUCT_NAME = "$(TARGET_NAME)";
1099-
PROVISIONING_PROFILE_SPECIFIER = "iOS App Store Distribution Profile 2022-02-13";
1104+
PROVISIONING_PROFILE_SPECIFIER = "";
1105+
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "iOS AppStore Profile 07-Mar-2023";
11001106
SWIFT_VERSION = 5.0;
11011107
TARGETED_DEVICE_FAMILY = "1,2";
11021108
VERSIONING_SYSTEM = "apple-generic";

Tree Tracker/Info.plist

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<key>CFBundlePackageType</key>
1818
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
1919
<key>CFBundleShortVersionString</key>
20-
<string>0.10.9</string>
20+
<string>0.10.10</string>
2121
<key>CFBundleVersion</key>
2222
<string>$(CURRENT_PROJECT_VERSION)</string>
2323
<key>ITSAppUsesNonExemptEncryption</key>

Unit Tests/Info.plist

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<key>CFBundlePackageType</key>
1616
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
1717
<key>CFBundleShortVersionString</key>
18-
<string>0.10.9</string>
18+
<string>0.10.10</string>
1919
<key>CFBundleVersion</key>
2020
<string>1</string>
2121
</dict>

0 commit comments

Comments
 (0)