/
reskin ios.py
executable file
·181 lines (151 loc) · 6.31 KB
/
reskin ios.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
#!/usr/local/bin/python3
import argparse, sys, reskinutils
print("iOS slots reskinner v1.7")
defaultCoins = 5000
defaultVer = "1.0"
# Required arguments
parser = argparse.ArgumentParser(description='Reskin an iOS slot machine')
# game name
parser.add_argument('-name', required=True, help='Name of the game to be present on device (should be rathe short and comply with title in ASO)')
# source dir
parser.add_argument('-source', required=True, help='Source dir with assets')
# target dir (duplicated dir)
parser.add_argument('-target', required=True, help='Target dir of duplicated version')
# bundle id
parser.add_argument('-bundle', required=True, help='Bundle ID')
# leaderboard id
parser.add_argument('-leaderboard', required=True, help='Leaderboard ID')
# IAP id
parser.add_argument('-iap', required=True, help='IAP ID convention')
# server ID
parser.add_argument('-id', required=True, help='UNIVERSE server ID')
# Flurry ID
parser.add_argument('-flurry', required=True, help='Flurry app ID')
#Parse app ID
parser.add_argument('-parseid', default="", required=False, help='Parse app ID')
#Parse client key
parser.add_argument('-parseck', default="", required=False, help='Parse client key')
#Batch ID
parser.add_argument('-batch', default="", required=False, help='Batch ID')
# Coins
parser.add_argument('-coins', default = defaultCoins, help='Initial coins amount, default is ' + str(defaultCoins))
# Version
parser.add_argument('-ver', default = defaultVer, help='Version & build number, default is ' + defaultVer)
# run or not?
parser.add_argument('-run', help='Wet run. Otherwise, just dry run')
args = parser.parse_args()
name = args.name
srcDir = args.source
trgDir = args.target
bundle = args.bundle
leaderboard = args.leaderboard
iap = args.iap
serverID = args.id
parseid = args.parseid
parseck = args.parseck
batch = args.batch
flurry = args.flurry
coins = args.coins
ver = args.ver
reskinutils.run = args.run
if (parseid=="" or parseck=="") and batch=="":
print("Please enter one of Parse or Batch IDs.")
sys.exit()
configFile = trgDir + "/SimpleSlots/configure.h"
serverFile = trgDir + "/SimpleSlots/ServerManager.m"
appdelegateFile = trgDir + "/SimpleSlots/AppDelegate.m"
infoPlistFile = trgDir + "/SimpleSlots/PartySlots-Info.plist"
# FILES REPLACEMENT
# -----------------
# replace all icons in main dir
print("Replacing icons on main dir...")
reskinutils.copyFilesByGlob(srcDir + "/AppIcon*.png", trgDir)
reskinutils.copyFilesByGlob(srcDir + "/iTunesArtwork*.png", trgDir)
reskinutils.copyFilesByName(srcDir + "/icon-ipad.png", trgDir)
reskinutils.copyFilesByName(trgDir + "/iTunesArtwork@2x.png", trgDir + "/icon1024.png")
reskinutils.checkCopy(18)
print("Done.")
# replace partyslots/images.xcasset/appicons
print("Replacing icons in Images.xcassets...")
dirToCopy = "/PartySlots/Images.xcassets/AppIcon.appiconset"
reskinutils.copyFilesByGlob(srcDir + "/AppIcon*.png", trgDir + dirToCopy)
reskinutils.copyFilesByGlob(srcDir + "/iTunesArtwork*.png", trgDir + dirToCopy)
reskinutils.copyFilesByName(srcDir + "/icon-ipad.png", trgDir + dirToCopy)
reskinutils.copyFilesByName(trgDir + dirToCopy + "/AppIcon29x29.png", trgDir + dirToCopy + "/AppIcon29x29-1.png")
reskinutils.copyFilesByName(trgDir + dirToCopy + "/AppIcon29x29@2x.png", trgDir + dirToCopy + "/AppIcon29x29@2x-1.png")
reskinutils.copyFilesByName(trgDir + dirToCopy + "/AppIcon40x40@2x.png", trgDir + dirToCopy + "/AppIcon40x40@2x-1.png")
reskinutils.copyFilesByName(trgDir + dirToCopy + "/iTunesArtwork@2x.png", trgDir + dirToCopy + "/icon1024.png")
reskinutils.checkCopy(21)
print("Done.")
# replace simpleslots/artwork/reskin
print("Replacing reskin assets in artwork...")
dirToCopy = "/SimpleSlots/artwork/reskin"
reskinutils.copyTree(srcDir + dirToCopy, trgDir + dirToCopy)
reskinutils.checkCopy(1)
print("Done.")
# replace simpleslots/artwork/feature_overlay*
print("Replacing feature overlay in artwork...")
dirToCopy = "/SimpleSlots/artwork"
reskinutils.copyFilesByGlob(srcDir + dirToCopy + "/feature_overlay*.png", trgDir + dirToCopy)
reskinutils.checkCopy(2)
print("Done.")
# replace simpleslots/artwork/icon*
print("Replacing icons on assets dir...")
srcIconFiles = ["/AppIcon57x57.png", "/AppIcon57x57@2x.png", "/AppIcon72x72.png", "/AppIcon72x72@2x.png"]
trgIconFiles = ["/SimpleSlots/artwork/icon.png", "/SimpleSlots/artwork/icon@2x.png", "/SimpleSlots/artwork/icon-ipad.png", "/SimpleSlots/artwork/icon-ipad@2x.png"]
for i in range(0, len(srcIconFiles)):
reskinutils.copyFilesByName(srcDir + srcIconFiles[i], trgDir + trgIconFiles[i])
reskinutils.checkCopy(4)
print("Done.")
# END OF FILES REPLACEMENT
# CODE REPLACEMENT
# ----------------
# replace leaderboard
print("Replacing leaderboard ID...")
reskinutils.replaceInFile(configFile, "<enter_leaderboard_id_here>", leaderboard)
print("Done.")
# replace IAP
print("Replacing IAP ID...")
reskinutils.replaceInFile(configFile, "<enter_iap_id_here>", iap)
print("Done.")
# replace coins in name
print("Replacing coins in game to " + str(coins))
reskinutils.replaceInFile(configFile, "<enter_coins_here>", str(coins))
print("Done.")
# replace server ID
print("Replacing server ID...")
reskinutils.replaceInFile(configFile, "<enter_server_id_here>", serverID)
print("Done.")
# replace bundleID
print("Replacing bundle ID...")
reskinutils.replaceInFile(infoPlistFile, "enter_bundle_id_here", bundle)
print("Done.")
# replace game name
print("Replacing game name...")
reskinutils.replaceInFile(infoPlistFile, "enter_game_name_here", name.replace("&","&"))
print("Done.")
# replace version & build
print("Replacing version & build...")
reskinutils.replaceInFile(infoPlistFile, "enter_version_here", ver)
print("Done.")
#replace Batch ID
if batch!="":
print("Replacing Batch ID...")
reskinutils.replaceInFile(configFile, "<enter_batch_key_here>", batch)
print("Done.")
# replace Parse ID
if parseid!="":
print("Replacing parse ID...")
reskinutils.replaceInFile(configFile, "<enter_parse_app_id_here>", parseid)
print("Done.")
# replace Parse client key
if parseck!="":
print("Replacing parse client key...")
reskinutils.replaceInFile(configFile, "<enter_parse_client_key_here>", parseck)
print("Done.")
# replace Flurry ID
print("Replacing flurry default ID...")
reskinutils.replaceInFile(configFile, "<enter_flurry_app_id_here>", flurry)
print("Done.")
# END OF CODE REPLACEMENT
print("Done all! Don't forget to replace 'Team' in xcode :)")