Skip to content

Commit 0cc8a02

Browse files
chore(fastlane): prepare ios app for App Store submission with assets, metadata and screenshots (#2972)
1 parent c8f4e09 commit 0cc8a02

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+321
-17
lines changed

Gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
source "https://rubygems.org"
22

33
gem "fastlane"
4+
gem "cocoapods"
45
plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
56
eval_gemfile(plugins_path) if File.exist?(plugins_path)

Gemfile.lock

Lines changed: 80 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,23 @@ GEM
55
base64
66
nkf
77
rexml
8+
activesupport (7.2.2.1)
9+
base64
10+
benchmark (>= 0.3)
11+
bigdecimal
12+
concurrent-ruby (~> 1.0, >= 1.3.1)
13+
connection_pool (>= 2.2.5)
14+
drb
15+
i18n (>= 1.6, < 2)
16+
logger (>= 1.4.2)
17+
minitest (>= 5.1)
18+
securerandom (>= 0.3)
19+
tzinfo (~> 2.0, >= 2.0.5)
820
addressable (2.8.7)
921
public_suffix (>= 2.0.2, < 7.0)
22+
algoliasearch (1.27.5)
23+
httpclient (~> 2.8, >= 2.8.3)
24+
json (>= 1.5.1)
1025
artifactory (3.0.17)
1126
atomos (0.1.3)
1227
aws-eventstream (1.3.0)
@@ -28,17 +43,63 @@ GEM
2843
aws-eventstream (~> 1, >= 1.0.2)
2944
babosa (1.0.4)
3045
base64 (0.2.0)
46+
benchmark (0.3.0)
47+
bigdecimal (3.2.2)
3148
claide (1.1.0)
49+
cocoapods (1.16.2)
50+
addressable (~> 2.8)
51+
claide (>= 1.0.2, < 2.0)
52+
cocoapods-core (= 1.16.2)
53+
cocoapods-deintegrate (>= 1.0.3, < 2.0)
54+
cocoapods-downloader (>= 2.1, < 3.0)
55+
cocoapods-plugins (>= 1.0.0, < 2.0)
56+
cocoapods-search (>= 1.0.0, < 2.0)
57+
cocoapods-trunk (>= 1.6.0, < 2.0)
58+
cocoapods-try (>= 1.1.0, < 2.0)
59+
colored2 (~> 3.1)
60+
escape (~> 0.0.4)
61+
fourflusher (>= 2.3.0, < 3.0)
62+
gh_inspector (~> 1.0)
63+
molinillo (~> 0.8.0)
64+
nap (~> 1.0)
65+
ruby-macho (>= 2.3.0, < 3.0)
66+
xcodeproj (>= 1.27.0, < 2.0)
67+
cocoapods-core (1.16.2)
68+
activesupport (>= 5.0, < 8)
69+
addressable (~> 2.8)
70+
algoliasearch (~> 1.0)
71+
concurrent-ruby (~> 1.1)
72+
fuzzy_match (~> 2.0.4)
73+
nap (~> 1.0)
74+
netrc (~> 0.11)
75+
public_suffix (~> 4.0)
76+
typhoeus (~> 1.0)
77+
cocoapods-deintegrate (1.0.5)
78+
cocoapods-downloader (2.1)
79+
cocoapods-plugins (1.0.0)
80+
nap
81+
cocoapods-search (1.0.1)
82+
cocoapods-trunk (1.6.0)
83+
nap (>= 0.8, < 2.0)
84+
netrc (~> 0.11)
85+
cocoapods-try (1.2.0)
3286
colored (1.2)
3387
colored2 (3.1.2)
3488
commander (4.6.0)
3589
highline (~> 2.0.0)
90+
concurrent-ruby (1.3.5)
91+
connection_pool (2.5.0)
3692
declarative (0.0.20)
3793
digest-crc (0.7.0)
3894
rake (>= 12.0.0, < 14.0.0)
3995
domain_name (0.6.20240107)
4096
dotenv (2.8.1)
97+
drb (2.2.0)
98+
ruby2_keywords
4199
emoji_regex (3.2.3)
100+
escape (0.0.4)
101+
ethon (0.16.0)
102+
ffi (>= 1.15.0)
42103
excon (0.112.0)
43104
faraday (1.10.4)
44105
faraday-em_http (~> 1.0)
@@ -117,6 +178,9 @@ GEM
117178
fastlane-plugin-increment_build_number (0.0.4)
118179
fastlane-sirp (1.0.0)
119180
sysrandom (~> 1.0)
181+
ffi (1.17.1-arm64-darwin)
182+
fourflusher (2.3.1)
183+
fuzzy_match (2.0.4)
120184
gh_inspector (1.1.3)
121185
google-apis-androidpublisher_v3 (0.54.0)
122186
google-apis-core (>= 0.11.0, < 2.a)
@@ -162,21 +226,28 @@ GEM
162226
http-cookie (1.0.8)
163227
domain_name (~> 0.5)
164228
httpclient (2.8.3)
229+
i18n (1.14.7)
230+
concurrent-ruby (~> 1.0)
165231
jmespath (1.6.2)
166232
json (2.9.1)
167233
jwt (2.10.1)
168234
base64
235+
logger (1.7.0)
169236
mini_magick (4.13.2)
170237
mini_mime (1.1.5)
238+
minitest (5.20.0)
239+
molinillo (0.8.0)
171240
multi_json (1.15.0)
172241
multipart-post (2.4.1)
173242
nanaimo (0.4.0)
243+
nap (1.1.0)
174244
naturally (2.2.1)
245+
netrc (0.11.0)
175246
nkf (0.2.0)
176247
optparse (0.6.0)
177248
os (1.1.4)
178249
plist (3.7.2)
179-
public_suffix (6.0.1)
250+
public_suffix (4.0.7)
180251
rake (13.2.1)
181252
representable (3.2.0)
182253
declarative (< 0.1.0)
@@ -185,8 +256,10 @@ GEM
185256
retriable (3.1.2)
186257
rexml (3.4.0)
187258
rouge (3.28.0)
259+
ruby-macho (2.5.1)
188260
ruby2_keywords (0.0.5)
189261
rubyzip (2.4.1)
262+
securerandom (0.3.1)
190263
security (0.1.5)
191264
signet (0.19.0)
192265
addressable (~> 2.8)
@@ -205,6 +278,10 @@ GEM
205278
tty-screen (0.8.2)
206279
tty-spinner (0.9.3)
207280
tty-cursor (~> 0.7)
281+
typhoeus (1.4.1)
282+
ethon (>= 0.9.0)
283+
tzinfo (2.0.6)
284+
concurrent-ruby (~> 1.0)
208285
uber (0.1.0)
209286
unicode-display_width (2.6.0)
210287
word_wrap (1.0.0)
@@ -221,10 +298,11 @@ GEM
221298
xcpretty (~> 0.2, >= 0.0.7)
222299

223300
PLATFORMS
301+
arm64-darwin-24
224302
ruby
225-
x64-mingw-ucrt
226303

227304
DEPENDENCIES
305+
cocoapods
228306
fastlane
229307
fastlane-plugin-firebase_app_distribution
230308
fastlane-plugin-increment_build_number
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<Scheme
3+
version = "1.7">
4+
<BuildAction
5+
parallelizeBuildables = "YES"
6+
buildImplicitDependencies = "YES">
7+
<BuildActionEntries>
8+
<BuildActionEntry
9+
buildForTesting = "YES"
10+
buildForRunning = "YES"
11+
buildForProfiling = "YES"
12+
buildForArchiving = "YES"
13+
buildForAnalyzing = "YES">
14+
<BuildableReference
15+
BuildableIdentifier = "primary"
16+
BlueprintIdentifier = "7555FF7A242A565900829871"
17+
BuildableName = "Mifos Mobile.app"
18+
BlueprintName = "iosApp"
19+
ReferencedContainer = "container:iosApp.xcodeproj">
20+
</BuildableReference>
21+
</BuildActionEntry>
22+
</BuildActionEntries>
23+
</BuildAction>
24+
<TestAction
25+
buildConfiguration = "Debug"
26+
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
27+
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
28+
shouldUseLaunchSchemeArgsEnv = "YES"
29+
shouldAutocreateTestPlan = "YES">
30+
</TestAction>
31+
<LaunchAction
32+
buildConfiguration = "Debug"
33+
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
34+
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
35+
launchStyle = "0"
36+
useCustomWorkingDirectory = "NO"
37+
ignoresPersistentStateOnLaunch = "NO"
38+
debugDocumentVersioning = "YES"
39+
debugServiceExtension = "internal"
40+
allowLocationSimulation = "YES">
41+
<BuildableProductRunnable
42+
runnableDebuggingMode = "0">
43+
<BuildableReference
44+
BuildableIdentifier = "primary"
45+
BlueprintIdentifier = "7555FF7A242A565900829871"
46+
BuildableName = "Mifos Mobile.app"
47+
BlueprintName = "iosApp"
48+
ReferencedContainer = "container:iosApp.xcodeproj">
49+
</BuildableReference>
50+
</BuildableProductRunnable>
51+
</LaunchAction>
52+
<ProfileAction
53+
buildConfiguration = "Release"
54+
shouldUseLaunchSchemeArgsEnv = "YES"
55+
savedToolIdentifier = ""
56+
useCustomWorkingDirectory = "NO"
57+
debugDocumentVersioning = "YES">
58+
</ProfileAction>
59+
<AnalyzeAction
60+
buildConfiguration = "Debug">
61+
</AnalyzeAction>
62+
<ArchiveAction
63+
buildConfiguration = "Release"
64+
revealArchiveInOrganizer = "YES">
65+
</ArchiveAction>
66+
</Scheme>

cmp-ios/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"images" : [
33
{
4-
"filename" : "mifospay_logo_1024.png",
4+
"filename" : "mifosmobile_logo_1024.png",
55
"idiom" : "universal",
66
"platform" : "ios",
77
"size" : "1024x1024"
61.2 KB
Loading
Binary file not shown.

cmp-ios/iosApp/Info.plist

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
33
<plist version="1.0">
44
<dict>
5+
<key>CADisableMinimumFrameDurationOnPhone</key>
6+
<true/>
57
<key>CFBundleDevelopmentRegion</key>
68
<string>$(DEVELOPMENT_LANGUAGE)</string>
79
<key>CFBundleExecutable</key>
@@ -15,20 +17,19 @@
1517
<key>CFBundlePackageType</key>
1618
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
1719
<key>CFBundleShortVersionString</key>
18-
<string>1.0</string>
20+
<string>1.0.0</string>
1921
<key>CFBundleVersion</key>
20-
<string>1</string>
22+
<string>4</string>
23+
<key>ITSAppUsesNonExemptEncryption</key>
24+
<false/>
2125
<key>LSRequiresIPhoneOS</key>
2226
<true/>
23-
<key>CADisableMinimumFrameDurationOnPhone</key>
24-
<true/>
27+
<key>NSCameraUsageDescription</key>
28+
<string>We use the camera to scan QR codes for payments and to add beneficiaries. No images or video are stored.</string>
2529
<key>NSPhotoLibraryAddUsageDescription</key>
26-
<string>Allow access to add photos to your library so you can save artworks directly to your device and view them offline.</string>
27-
<key>UIApplicationSceneManifest</key>
28-
<dict>
29-
<key>UIApplicationSupportsMultipleScenes</key>
30-
<false/>
31-
</dict>
30+
<string>Allow access to choose a photo or document you decide to upload (e.g., profile photo or ID).</string>
31+
<key>NSPhotoLibraryUsageDescription</key>
32+
<string>Allow access to choose a photo or document you decide to upload (e.g., profile photo or ID).</string>
3233
<key>UIApplicationSceneManifest</key>
3334
<dict>
3435
<key>UIApplicationSupportsMultipleScenes</key>

fastlane/FastFile

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -393,7 +393,9 @@ platform :ios do
393393
update_plist(
394394
plist_path: ios_config[:plist_path],
395395
block: proc do |plist|
396-
plist["NSCameraUsageDescription"] = "We use the camera to scan QR codes to send and receive payments."
396+
plist["ITSAppUsesNonExemptEncryption"] = false
397+
plist["NSCameraUsageDescription"] = "We use the camera to scan QR codes for payments and to add beneficiaries. No images or video are stored."
398+
plist["NSPhotoLibraryUsageDescription"] = "Allow access to choose a photo or document you decide to upload (e.g., profile photo or ID)."
397399
end
398400
)
399401
end
@@ -468,7 +470,7 @@ platform :ios do
468470
build_signed_ios(
469471
options.merge(
470472
match_type: "adhoc",
471-
provisioning_profile_name: "match AdHoc org.mifospay"
473+
provisioning_profile_name: "match AdHoc org.mifos.mobile"
472474
)
473475
)
474476

@@ -513,7 +515,7 @@ platform :ios do
513515

514516
build_ios_project(
515517
options.merge(
516-
provisioning_profile_name: "match AppStore org.mifospay"
518+
provisioning_profile_name: "match AppStore org.mifos.mobile"
517519
)
518520
)
519521

@@ -554,11 +556,12 @@ platform :ios do
554556

555557
build_ios_project(
556558
options.merge(
557-
provisioning_profile_name: "match AppStore org.mifospay"
559+
provisioning_profile_name: "match AppStore org.mifos.mobile"
558560
)
559561
)
560562

561563
deliver(
564+
screenshots_path: ios_config[:screenshots_ios_path],
562565
metadata_path: options[:metadata_path] || ios_config[:metadata_path],
563566
submit_for_review: false, # Set to true if you want to auto-submit for review
564567
automatic_release: true, # Set to true if you want to auto-release once it approved

fastlane/age_rating.json

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"violenceCartoonOrFantasy": "NONE",
3+
"violenceRealistic": "NONE",
4+
"violenceRealisticProlongedGraphicOrSadistic": "NONE",
5+
"profanityOrCrudeHumor": "NONE",
6+
"matureOrSuggestiveThemes": "NONE",
7+
"horrorOrFearThemes": "NONE",
8+
"sexualContentGraphicAndNudity": "NONE",
9+
"alcoholTobaccoOrDrugUseOrReferences": "NONE",
10+
"gamblingSimulated": "NONE",
11+
"sexualContentOrNudity": "NONE",
12+
"contests": "NONE",
13+
"medicalOrTreatmentInformation": "NONE",
14+
"unrestrictedWebAccess": false,
15+
"gambling": false
16+
}

0 commit comments

Comments
 (0)