pindo 4.6.9 → 4.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/pindo/base/aeshelper.rb +48 -2
- data/lib/pindo/base/funlog.rb +89 -0
- data/lib/pindo/base/githelper.rb +30 -12
- data/lib/pindo/base/plaininformative.rb +3 -0
- data/lib/pindo/base/standarderror.rb +1 -0
- data/lib/pindo/base/xcodeconst.rb +251 -0
- data/lib/pindo/client/applovinclient.rb +6 -3
- data/lib/pindo/client/aws3sclient.rb +33 -46
- data/lib/pindo/client/bossclient.rb +1 -1
- data/lib/pindo/client/pgyerclient.rb +78 -14
- data/lib/pindo/command/appstore/iap.rb +43 -0
- data/lib/pindo/command/appstore/itcapp.rb +41 -0
- data/lib/pindo/command/appstore/metadata.rb +43 -0
- data/lib/pindo/command/appstore/screenshots.rb +43 -0
- data/lib/pindo/command/appstore/upload.rb +40 -0
- data/lib/pindo/command/appstore.rb +17 -0
- data/lib/pindo/command/deploy/build.rb +109 -0
- data/lib/pindo/{deploy → command/deploy}/bundleid.rb +1 -1
- data/lib/pindo/command/deploy/cert.rb +179 -0
- data/lib/pindo/command/deploy/configproj.rb +105 -0
- data/lib/pindo/{deploy → command/deploy}/getitcinfo.rb +1 -1
- data/lib/pindo/{deploy → command/deploy}/iap.rb +30 -9
- data/lib/pindo/{deploy → command/deploy}/itcapp.rb +0 -1
- data/lib/pindo/{deploy → command/deploy}/itcinfo.rb +2 -3
- data/lib/pindo/{deploy → command/deploy}/pem.rb +3 -2
- data/lib/pindo/{deploy → command/deploy}/resign.rb +14 -63
- data/lib/pindo/command/deploy.rb +44 -0
- data/lib/pindo/{dev → command/dev}/autobuild.rb +17 -80
- data/lib/pindo/{dev → command/dev}/autoresign.rb +17 -64
- data/lib/pindo/{dev → command/dev}/createbuild.rb +0 -2
- data/lib/pindo/{dev → command/dev}/debug.rb +6 -2
- data/lib/pindo/command/dev/pgyercert.rb +75 -0
- data/lib/pindo/command/dev.rb +25 -0
- data/lib/pindo/command/env.rb +17 -0
- data/lib/pindo/{ipa → command/ipa}/autoresign.rb +18 -70
- data/lib/pindo/{ipa → command/ipa}/import.rb +47 -102
- data/lib/pindo/{ipa → command/ipa}/output.rb +38 -135
- data/lib/pindo/command/ipa.rb +16 -0
- data/lib/pindo/{lib → command/lib}/update.rb +19 -10
- data/lib/pindo/command/lib.rb +16 -0
- data/lib/pindo/{pgyer → command/pgyer}/apptest.rb +7 -29
- data/lib/pindo/{pgyer → command/pgyer}/comment.rb +7 -30
- data/lib/pindo/{pgyer → command/pgyer}/download.rb +35 -30
- data/lib/pindo/{pgyer → command/pgyer}/login.rb +3 -4
- data/lib/pindo/command/pgyer/resign.rb +111 -0
- data/lib/pindo/command/pgyer/upload.rb +123 -0
- data/lib/pindo/command/pgyer.rb +18 -0
- data/lib/pindo/{repo.rb → command/repo.rb} +4 -4
- data/lib/pindo/{utils → command/utils}/applovin.rb +43 -33
- data/lib/pindo/{utils → command/utils}/boss.rb +3 -3
- data/lib/pindo/command/utils/icon.rb +81 -0
- data/lib/pindo/{utils → command/utils}/renewproj.rb +1 -0
- data/lib/pindo/command/utils.rb +26 -0
- data/lib/pindo/command.rb +23 -26
- data/lib/pindo/module/build/swarkhelper.rb +95 -0
- data/lib/pindo/module/cert/certhelper.rb +176 -0
- data/lib/pindo/module/cert/keychainhelper.rb +138 -0
- data/lib/pindo/module/{pemcreate.rb → cert/pemhelper.rb} +3 -1
- data/lib/pindo/module/cert/provisioninghelper.rb +137 -0
- data/lib/pindo/module/cert/xcodecerthelper.rb +301 -0
- data/lib/pindo/module/{pgyerhelper.rb → pgyer/pgyerhelper.rb} +246 -35
- data/lib/pindo/module/xcode/xcodeappconfig.rb +188 -0
- data/lib/pindo/module/xcode/xcodebuildconfig.rb +12 -0
- data/lib/pindo/module/xcode/xcodebuildhelper.rb +312 -0
- data/lib/pindo/module/xcode/xcoderesconstant.rb +248 -0
- data/lib/pindo/module/xcode/xcodereshandler.rb +198 -0
- data/lib/pindo/module/xcode/xcodereshelper.rb +120 -0
- data/lib/pindo/options/appconfigoptions.rb +1 -0
- data/lib/pindo/options/deployoptions.rb +38 -41
- data/lib/pindo/version.rb +1 -1
- metadata +109 -97
- data/lib/pindo/deploy/Fastfile +0 -233
- data/lib/pindo/deploy/build.rb +0 -167
- data/lib/pindo/deploy/cert.rb +0 -508
- data/lib/pindo/deploy/configproj.rb +0 -89
- data/lib/pindo/deploy.rb +0 -44
- data/lib/pindo/dev.rb +0 -23
- data/lib/pindo/env/flutter.rb +0 -59
- data/lib/pindo/env/flutter.sh +0 -116
- data/lib/pindo/env.rb +0 -17
- data/lib/pindo/ipa.rb +0 -22
- data/lib/pindo/lib.rb +0 -18
- data/lib/pindo/module/buildconfighelper.rb +0 -13
- data/lib/pindo/module/buildhelper.rb +0 -76
- data/lib/pindo/module/config_project.sh +0 -143
- data/lib/pindo/module/configprojhelper.rb +0 -631
- data/lib/pindo/module/icon_contents.json +0 -116
- data/lib/pindo/module/imessage_icon.json +0 -91
- data/lib/pindo/module/imgset_contents.json +0 -21
- data/lib/pindo/module/launchimg_contents.json +0 -21
- data/lib/pindo/module/xcodebuildpre.rb +0 -258
- data/lib/pindo/pgyer/upload.rb +0 -234
- data/lib/pindo/pgyer.rb +0 -17
- data/lib/pindo/utils/icon.rb +0 -91
- data/lib/pindo/utils/icon.sh +0 -133
- data/lib/pindo/utils/podindex.rb +0 -56
- data/lib/pindo/utils/podindex.sh +0 -30
- data/lib/pindo/utils.rb +0 -29
- /data/lib/pindo/{deploy → command/deploy}/check.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/confusecode.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/confuseproj.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/fabric.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/initconfig.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/pullconfig.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/pushconfig.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/quswark.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/quswauth.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/reportbug.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/tag.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/updateconfig.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/uploadipa.rb +0 -0
- /data/lib/pindo/{dev → command/dev}/confusecode.rb +0 -0
- /data/lib/pindo/{dev → command/dev}/confuseproj.rb +0 -0
- /data/lib/pindo/{dev → command/dev}/pub.rb +0 -0
- /data/lib/pindo/{dev → command/dev}/renewcert.rb +0 -0
- /data/lib/pindo/{env → command/env}/dreamstudio.rb +0 -0
- /data/lib/pindo/{env → command/env}/quarkenv.rb +0 -0
- /data/lib/pindo/{env → command/env}/swarkenv.rb +0 -0
- /data/lib/pindo/{env → command/env}/workhard.rb +0 -0
- /data/lib/pindo/{lib → command/lib}/forcepush.rb +0 -0
- /data/lib/pindo/{lib → command/lib}/lint.rb +0 -0
- /data/lib/pindo/{lib → command/lib}/push.rb +0 -0
- /data/lib/pindo/{repo → command/repo}/clone.rb +0 -0
- /data/lib/pindo/{repo → command/repo}/create.rb +0 -0
- /data/lib/pindo/{repo → command/repo}/login.rb +0 -0
- /data/lib/pindo/{repo → command/repo}/search.rb +0 -0
- /data/lib/pindo/{setup.rb → command/setup.rb} +0 -0
- /data/lib/pindo/{upgrade.rb → command/upgrade.rb} +0 -0
- /data/lib/pindo/{utils → command/utils}/clearcert.rb +0 -0
- /data/lib/pindo/{utils → command/utils}/device.rb +0 -0
- /data/lib/pindo/{utils → command/utils}/tgate.rb +0 -0
- /data/lib/pindo/{utils → command/utils}/xcassets.rb +0 -0
- /data/lib/pindo/{utils → command/utils}/xcassets.sh +0 -0
- /data/lib/pindo/module/{appstore_in_app_purchase.rb → appstore/appstore_in_app_purchase.rb} +0 -0
- /data/lib/pindo/module/{appstore_metadata_connect_api_helper.rb → appstore/appstore_metadata_connect_api_helper.rb} +0 -0
- /data/lib/pindo/module/{appstore_metadata_fastlane_helper.rb → appstore/appstore_metadata_fastlane_helper.rb} +0 -0
- /data/lib/pindo/module/{iap_tier.json → appstore/iap_tier.json} +0 -0
- /data/lib/pindo/module/{commonconfuseproj.rb → build/commonconfuseproj.rb} +0 -0
- /data/lib/pindo/module/{xcodehelper.rb → xcode/xcodehelper.rb} +0 -0
@@ -1,116 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"images" : [
|
3
|
-
{
|
4
|
-
"size" : "20x20",
|
5
|
-
"idiom" : "iphone",
|
6
|
-
"filename" : "icon20@2x.png",
|
7
|
-
"scale" : "2x"
|
8
|
-
},
|
9
|
-
{
|
10
|
-
"size" : "20x20",
|
11
|
-
"idiom" : "iphone",
|
12
|
-
"filename" : "icon20@3x.png",
|
13
|
-
"scale" : "3x"
|
14
|
-
},
|
15
|
-
{
|
16
|
-
"size" : "29x29",
|
17
|
-
"idiom" : "iphone",
|
18
|
-
"filename" : "icon29@2x.png",
|
19
|
-
"scale" : "2x"
|
20
|
-
},
|
21
|
-
{
|
22
|
-
"size" : "29x29",
|
23
|
-
"idiom" : "iphone",
|
24
|
-
"filename" : "icon29@3x.png",
|
25
|
-
"scale" : "3x"
|
26
|
-
},
|
27
|
-
{
|
28
|
-
"size" : "40x40",
|
29
|
-
"idiom" : "iphone",
|
30
|
-
"filename" : "icon40@2x.png",
|
31
|
-
"scale" : "2x"
|
32
|
-
},
|
33
|
-
{
|
34
|
-
"size" : "40x40",
|
35
|
-
"idiom" : "iphone",
|
36
|
-
"filename" : "icon40@3x.png",
|
37
|
-
"scale" : "3x"
|
38
|
-
},
|
39
|
-
{
|
40
|
-
"size" : "60x60",
|
41
|
-
"idiom" : "iphone",
|
42
|
-
"filename" : "icon60@2x.png",
|
43
|
-
"scale" : "2x"
|
44
|
-
},
|
45
|
-
{
|
46
|
-
"size" : "60x60",
|
47
|
-
"idiom" : "iphone",
|
48
|
-
"filename" : "icon60@3x.png",
|
49
|
-
"scale" : "3x"
|
50
|
-
},
|
51
|
-
{
|
52
|
-
"size" : "20x20",
|
53
|
-
"idiom" : "ipad",
|
54
|
-
"filename" : "icon20@1x.png",
|
55
|
-
"scale" : "1x"
|
56
|
-
},
|
57
|
-
{
|
58
|
-
"size" : "20x20",
|
59
|
-
"idiom" : "ipad",
|
60
|
-
"filename" : "icon20@2x.png",
|
61
|
-
"scale" : "2x"
|
62
|
-
},
|
63
|
-
{
|
64
|
-
"size" : "29x29",
|
65
|
-
"idiom" : "ipad",
|
66
|
-
"filename" : "icon29@1x.png",
|
67
|
-
"scale" : "1x"
|
68
|
-
},
|
69
|
-
{
|
70
|
-
"size" : "29x29",
|
71
|
-
"idiom" : "ipad",
|
72
|
-
"filename" : "icon29@2x.png",
|
73
|
-
"scale" : "2x"
|
74
|
-
},
|
75
|
-
{
|
76
|
-
"size" : "40x40",
|
77
|
-
"idiom" : "ipad",
|
78
|
-
"filename" : "icon40@1x.png",
|
79
|
-
"scale" : "1x"
|
80
|
-
},
|
81
|
-
{
|
82
|
-
"size" : "40x40",
|
83
|
-
"idiom" : "ipad",
|
84
|
-
"filename" : "icon40@2x.png",
|
85
|
-
"scale" : "2x"
|
86
|
-
},
|
87
|
-
{
|
88
|
-
"size" : "76x76",
|
89
|
-
"idiom" : "ipad",
|
90
|
-
"filename" : "icon76@1x.png",
|
91
|
-
"scale" : "1x"
|
92
|
-
},
|
93
|
-
{
|
94
|
-
"size" : "76x76",
|
95
|
-
"idiom" : "ipad",
|
96
|
-
"filename" : "icon76@2x.png",
|
97
|
-
"scale" : "2x"
|
98
|
-
},
|
99
|
-
{
|
100
|
-
"size" : "83.5x83.5",
|
101
|
-
"idiom" : "ipad",
|
102
|
-
"filename" : "icon83_5@2x.png",
|
103
|
-
"scale" : "2x"
|
104
|
-
},
|
105
|
-
{
|
106
|
-
"size" : "1024x1024",
|
107
|
-
"idiom" : "ios-marketing",
|
108
|
-
"filename" : "icon1024@1x.png",
|
109
|
-
"scale" : "1x"
|
110
|
-
}
|
111
|
-
],
|
112
|
-
"info" : {
|
113
|
-
"version" : 1,
|
114
|
-
"author" : "xcode"
|
115
|
-
}
|
116
|
-
}
|
@@ -1,91 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"images" : [
|
3
|
-
{
|
4
|
-
"size" : "29x29",
|
5
|
-
"idiom" : "iphone",
|
6
|
-
"filename" : "icon29@2x.png",
|
7
|
-
"scale" : "2x"
|
8
|
-
},
|
9
|
-
{
|
10
|
-
"size" : "29x29",
|
11
|
-
"idiom" : "iphone",
|
12
|
-
"filename" : "icon29@3x.png",
|
13
|
-
"scale" : "3x"
|
14
|
-
},
|
15
|
-
{
|
16
|
-
"size" : "60x45",
|
17
|
-
"idiom" : "iphone",
|
18
|
-
"filename" : "icon60_45@2x.png",
|
19
|
-
"scale" : "2x"
|
20
|
-
},
|
21
|
-
{
|
22
|
-
"size" : "60x45",
|
23
|
-
"idiom" : "iphone",
|
24
|
-
"filename" : "icon60_45@3x.png",
|
25
|
-
"scale" : "3x"
|
26
|
-
},
|
27
|
-
{
|
28
|
-
"size" : "29x29",
|
29
|
-
"idiom" : "ipad",
|
30
|
-
"filename" : "icon29@2x.png",
|
31
|
-
"scale" : "2x"
|
32
|
-
},
|
33
|
-
{
|
34
|
-
"size" : "67x50",
|
35
|
-
"idiom" : "ipad",
|
36
|
-
"filename" : "icon67_50@2x.png",
|
37
|
-
"scale" : "2x"
|
38
|
-
},
|
39
|
-
{
|
40
|
-
"size" : "74x55",
|
41
|
-
"idiom" : "ipad",
|
42
|
-
"filename" : "icon74_55@2x.png",
|
43
|
-
"scale" : "2x"
|
44
|
-
},
|
45
|
-
{
|
46
|
-
"size" : "1024x1024",
|
47
|
-
"idiom" : "ios-marketing",
|
48
|
-
"filename" : "icon1024@1x.png",
|
49
|
-
"scale" : "1x"
|
50
|
-
},
|
51
|
-
{
|
52
|
-
"size" : "27x20",
|
53
|
-
"idiom" : "universal",
|
54
|
-
"filename" : "icon27_20@2x.png",
|
55
|
-
"scale" : "2x",
|
56
|
-
"platform" : "ios"
|
57
|
-
},
|
58
|
-
{
|
59
|
-
"size" : "27x20",
|
60
|
-
"idiom" : "universal",
|
61
|
-
"filename" : "icon27_20@3x.png",
|
62
|
-
"scale" : "3x",
|
63
|
-
"platform" : "ios"
|
64
|
-
},
|
65
|
-
{
|
66
|
-
"size" : "32x24",
|
67
|
-
"idiom" : "universal",
|
68
|
-
"filename" : "icon32_24@2x.png",
|
69
|
-
"scale" : "2x",
|
70
|
-
"platform" : "ios"
|
71
|
-
},
|
72
|
-
{
|
73
|
-
"size" : "32x24",
|
74
|
-
"idiom" : "universal",
|
75
|
-
"filename" : "icon32_24@3x.png",
|
76
|
-
"scale" : "3x",
|
77
|
-
"platform" : "ios"
|
78
|
-
},
|
79
|
-
{
|
80
|
-
"size" : "1024x768",
|
81
|
-
"idiom" : "ios-marketing",
|
82
|
-
"filename" : "icon1024_768@1x.png",
|
83
|
-
"scale" : "1x",
|
84
|
-
"platform" : "ios"
|
85
|
-
}
|
86
|
-
],
|
87
|
-
"info" : {
|
88
|
-
"version" : 1,
|
89
|
-
"author" : "xcode"
|
90
|
-
}
|
91
|
-
}
|
@@ -1,21 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"images": [
|
3
|
-
{
|
4
|
-
"idiom": "universal",
|
5
|
-
"scale": "1x"
|
6
|
-
},
|
7
|
-
{
|
8
|
-
"idiom": "universal",
|
9
|
-
"filename": "w768_h1024@2x.png",
|
10
|
-
"scale": "2x"
|
11
|
-
},
|
12
|
-
{
|
13
|
-
"idiom": "universal",
|
14
|
-
"scale": "3x"
|
15
|
-
}
|
16
|
-
],
|
17
|
-
"info": {
|
18
|
-
"version": 1,
|
19
|
-
"author": "xcode"
|
20
|
-
}
|
21
|
-
}
|
@@ -1,21 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"images": [
|
3
|
-
{
|
4
|
-
"idiom": "universal",
|
5
|
-
"scale": "1x"
|
6
|
-
},
|
7
|
-
{
|
8
|
-
"idiom": "universal",
|
9
|
-
"filename": "w768_h1024@2x.png",
|
10
|
-
"scale": "2x"
|
11
|
-
},
|
12
|
-
{
|
13
|
-
"idiom": "universal",
|
14
|
-
"scale": "3x"
|
15
|
-
}
|
16
|
-
],
|
17
|
-
"info": {
|
18
|
-
"version": 1,
|
19
|
-
"author": "xcode"
|
20
|
-
}
|
21
|
-
}
|
@@ -1,258 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'fileutils'
|
3
|
-
|
4
|
-
module Pindo
|
5
|
-
|
6
|
-
module Xcodebuildpre
|
7
|
-
|
8
|
-
def prepare_env(project_dir:nil, apple_id:nil, bundle_id:nil, config_json:nil)
|
9
|
-
|
10
|
-
apple_id_temp=apple_id
|
11
|
-
bundle_id_temp = bundle_id
|
12
|
-
|
13
|
-
|
14
|
-
if !File.exist?(File.join(project_dir, "fastlane"))
|
15
|
-
FileUtils.mkdir(File.join(project_dir, "fastlane"))
|
16
|
-
end
|
17
|
-
|
18
|
-
if File.exist?(File.join(project_dir, "fastlane/metadata"))
|
19
|
-
FileUtils.rm_rf(File.join(project_dir, "fastlane/metadata"))
|
20
|
-
end
|
21
|
-
FileUtils.mkdir(File.join(project_dir, "fastlane/metadata"))
|
22
|
-
|
23
|
-
if File.exist?(File.join(project_dir, "fastlane/screenshots"))
|
24
|
-
FileUtils.rm_rf(File.join(project_dir, "fastlane/screenshots"))
|
25
|
-
end
|
26
|
-
FileUtils.mkdir(File.join(project_dir, "fastlane/screenshots"))
|
27
|
-
|
28
|
-
if File.exist?(File.join(project_dir, "fastlane/Appfile"))
|
29
|
-
FileUtils.rm_rf(File.join(project_dir, "fastlane/Appfile"))
|
30
|
-
end
|
31
|
-
|
32
|
-
if File.exist?(File.join(project_dir, "fastlane/Deliverfile"))
|
33
|
-
FileUtils.rm_rf(File.join(project_dir, "fastlane/Deliverfile"))
|
34
|
-
end
|
35
|
-
|
36
|
-
# aFile = File.new(File.join(project_dir, "fastlane/Deliverfile"), "w+")
|
37
|
-
# if aFile
|
38
|
-
# aFile.syswrite(%Q{username "#{apple_id_temp}"\r\n})
|
39
|
-
# aFile.syswrite(%Q{app_identifier "#{bundle_id_temp}"\r\n})
|
40
|
-
# end
|
41
|
-
|
42
|
-
if File.exist?(File.join(project_dir, "fastlane/Matchfile"))
|
43
|
-
FileUtils.rm_rf(File.join(project_dir, "fastlane/Matchfile"))
|
44
|
-
end
|
45
|
-
|
46
|
-
project_fullname = ""
|
47
|
-
Dir.foreach(project_dir) do |file|
|
48
|
-
if file =~ /(.*).xcodeproj/
|
49
|
-
project_fullname = file
|
50
|
-
break;
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
project_base_name=File.basename(project_fullname, ".xcodeproj")
|
55
|
-
|
56
|
-
fast_file = File.join(File.expand_path('../', __dir__), 'deploy/Fastfile')
|
57
|
-
FileUtils.cp_r(fast_file, File.join(project_dir, "fastlane/Fastfile"))
|
58
|
-
|
59
|
-
app_version_temp = "1.0.0"
|
60
|
-
if config_json && config_json['app_info'] && config_json['app_info']['app_version']
|
61
|
-
app_version_temp = config_json['app_info']['app_version']
|
62
|
-
end
|
63
|
-
app_ipaname_temp = config_json['app_info']['app_display_name']
|
64
|
-
app_ipaname_temp = app_ipaname_temp.gsub(/ /, '');
|
65
|
-
app_ipaname_temp = app_ipaname_temp.gsub(/\'/, '');
|
66
|
-
|
67
|
-
if File.exist?(File.join(project_dir, "fastlane/Fastfile"))
|
68
|
-
text = File.read(File.join(project_dir, "fastlane/Fastfile"))
|
69
|
-
new_contents = text.gsub!(/demo_apple_id/, "#{apple_id_temp}")
|
70
|
-
new_contents = text.gsub!(/demo_bundle_id/, "#{bundle_id_temp}")
|
71
|
-
new_contents = text.gsub!(/DemoProj/, "#{project_base_name}")
|
72
|
-
new_contents = text.gsub!(/1.0.0/, "#{app_version_temp}")
|
73
|
-
new_contents = text.gsub!(/demo_ipa_name/, "#{app_ipaname_temp}")
|
74
|
-
File.open(File.join(project_dir, "fastlane/Fastfile"), "w") {|file| file.puts new_contents }
|
75
|
-
end
|
76
|
-
|
77
|
-
end
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
def config_project_cert(new_proj_name:nil, new_project_dir:nil, cert_type:nil, team_id_vaule:nil, bundle_id_dict:nil)
|
82
|
-
|
83
|
-
new_proj_fullname = File.join(new_project_dir, new_proj_name) + ".xcodeproj"
|
84
|
-
new_project_obj = Xcodeproj::Project.open(new_proj_fullname)
|
85
|
-
|
86
|
-
bundle_id_value = bundle_id_dict['bundle_id']['bundle_id_value']
|
87
|
-
|
88
|
-
bundle_id_pushcontent_value = nil
|
89
|
-
if bundle_id_dict['bundle_id_pushcontent']
|
90
|
-
bundle_id_pushcontent_value = bundle_id_dict['bundle_id_pushcontent']['bundle_id_pushcontent_value']
|
91
|
-
end
|
92
|
-
|
93
|
-
bundle_id_pushservice_value = nil
|
94
|
-
if bundle_id_dict['bundle_id_pushservice']
|
95
|
-
bundle_id_pushservice_value = bundle_id_dict['bundle_id_pushservice']['bundle_id_pushservice_value']
|
96
|
-
end
|
97
|
-
bundle_id_keyboard_value = nil
|
98
|
-
if bundle_id_dict['bundle_id_keyboard']
|
99
|
-
bundle_id_keyboard_value = bundle_id_dict['bundle_id_keyboard']['bundle_id_keyboard_value']
|
100
|
-
end
|
101
|
-
|
102
|
-
bundle_id_imessage_value = nil
|
103
|
-
if bundle_id_dict['bundle_id_imessage']
|
104
|
-
bundle_id_imessage_value = bundle_id_dict['bundle_id_imessage']['bundle_id_imessage_value']
|
105
|
-
end
|
106
|
-
|
107
|
-
bundle_id_siri_value = nil
|
108
|
-
if bundle_id_dict['bundle_id_siri']
|
109
|
-
bundle_id_siri_value = bundle_id_dict['bundle_id_siri']['bundle_id_siri_value']
|
110
|
-
end
|
111
|
-
|
112
|
-
bundle_id_siriui_value = nil
|
113
|
-
if bundle_id_dict['bundle_id_siriui']
|
114
|
-
bundle_id_siriui_value = bundle_id_dict['bundle_id_siriui']['bundle_id_siriui_value']
|
115
|
-
end
|
116
|
-
|
117
|
-
bundle_id_widget_value = nil
|
118
|
-
if bundle_id_dict['bundle_id_widget']
|
119
|
-
bundle_id_widget_value = bundle_id_dict['bundle_id_widget']['bundle_id_widget_value']
|
120
|
-
end
|
121
|
-
|
122
|
-
bundle_id_extension_value = nil
|
123
|
-
if bundle_id_dict['bundle_id_extension']
|
124
|
-
bundle_id_extension_value = bundle_id_dict['bundle_id_extension']['bundle_id_extension_value']
|
125
|
-
end
|
126
|
-
|
127
|
-
bundle_id_extensionad_value = nil
|
128
|
-
if bundle_id_dict['bundle_id_extensionad']
|
129
|
-
bundle_id_extensionad_value = bundle_id_dict['bundle_id_extensionad']['bundle_id_extensionad_value']
|
130
|
-
end
|
131
|
-
|
132
|
-
bundle_id_extensionporn_value = nil
|
133
|
-
if bundle_id_dict['bundle_id_extensionporn']
|
134
|
-
bundle_id_extensionporn_value = bundle_id_dict['bundle_id_extensionporn']['bundle_id_extensionporn_value']
|
135
|
-
end
|
136
|
-
|
137
|
-
|
138
|
-
bundle_id_watchapp_value = nil
|
139
|
-
if bundle_id_dict['bundle_id_watchapp']
|
140
|
-
bundle_id_watchapp_value = bundle_id_dict['bundle_id_watchapp']['bundle_id_watchapp_value']
|
141
|
-
end
|
142
|
-
|
143
|
-
bundle_id_watchapp_extension_value = nil
|
144
|
-
if bundle_id_dict['bundle_id_watchapp_extension']
|
145
|
-
bundle_id_watchapp_extension_value = bundle_id_dict['bundle_id_watchapp_extension']['bundle_id_watchapp_extension_value']
|
146
|
-
end
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
new_project_obj.root_object.build_configuration_list.set_setting('CODE_SIGN_IDENTITY[sdk=iphoneos*]', "Apple Distribution")
|
151
|
-
new_project_obj.root_object.build_configuration_list.set_setting('CODE_SIGN_IDENTITY*', "Apple Distribution")
|
152
|
-
|
153
|
-
if cert_type == "development"
|
154
|
-
new_project_obj.root_object.build_configuration_list.set_setting('CODE_SIGN_IDENTITY[sdk=iphoneos*]', "Apple Development")
|
155
|
-
new_project_obj.root_object.build_configuration_list.set_setting('CODE_SIGN_IDENTITY*', "Apple Development")
|
156
|
-
end
|
157
|
-
|
158
|
-
new_project_obj.root_object.attributes['TargetAttributes'] = new_project_obj.root_object.attributes['TargetAttributes'] || {}
|
159
|
-
target_atts_obj = new_project_obj.root_object.attributes['TargetAttributes']
|
160
|
-
|
161
|
-
new_project_obj.targets.each do |target|
|
162
|
-
|
163
|
-
target.build_configurations.each do |config|
|
164
|
-
|
165
|
-
target_atts_obj[target.uuid] = target_atts_obj[target.uuid] || {}
|
166
|
-
target_atts_obj[target.uuid]['DevelopmentTeam'] = team_id_vaule
|
167
|
-
target_atts_obj[target.uuid]['ProvisioningStyle'] = "Manual"
|
168
|
-
config.build_settings['DEVELOPMENT_TEAM'] = team_id_vaule
|
169
|
-
config.build_settings['DEVELOPMENT_TEAM[sdk=iphoneos*]'] = team_id_vaule
|
170
|
-
config.build_settings['CODE_SIGN_STYLE'] = "Manual"
|
171
|
-
|
172
|
-
config.build_settings['CODE_SIGN_IDENTITY'] = "Apple Distribution"
|
173
|
-
config.build_settings['CODE_SIGN_IDENTITY[sdk=iphoneos*]'] = "Apple Distribution"
|
174
|
-
|
175
|
-
if cert_type == "development"
|
176
|
-
config.build_settings['CODE_SIGN_IDENTITY'] = "Apple Development"
|
177
|
-
config.build_settings['CODE_SIGN_IDENTITY[sdk=iphoneos*]'] = "Apple Development"
|
178
|
-
end
|
179
|
-
|
180
|
-
if target.name.to_s.end_with?("Content") then
|
181
|
-
config.build_settings['PRODUCT_BUNDLE_IDENTIFIER'] = bundle_id_dict['bundle_id_pushcontent']['bundle_id']
|
182
|
-
config.build_settings['PROVISIONING_PROFILE_SPECIFIER'] = bundle_id_pushcontent_value
|
183
|
-
config.build_settings['PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]'] = bundle_id_pushcontent_value
|
184
|
-
elsif target.name.to_s.end_with?("Service") then
|
185
|
-
config.build_settings['PRODUCT_BUNDLE_IDENTIFIER'] = bundle_id_dict['bundle_id_pushservice']['bundle_id']
|
186
|
-
config.build_settings['PROVISIONING_PROFILE_SPECIFIER'] = bundle_id_pushservice_value
|
187
|
-
config.build_settings['PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]'] = bundle_id_pushservice_value
|
188
|
-
elsif target.name.to_s.end_with?("Keyboard") then
|
189
|
-
config.build_settings['PRODUCT_BUNDLE_IDENTIFIER'] = bundle_id_dict['bundle_id_keyboard']['bundle_id']
|
190
|
-
config.build_settings['PROVISIONING_PROFILE_SPECIFIER'] = bundle_id_keyboard_value
|
191
|
-
config.build_settings['PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]'] = bundle_id_keyboard_value
|
192
|
-
elsif target.name.to_s.end_with?("iMessage") then
|
193
|
-
config.build_settings['PRODUCT_BUNDLE_IDENTIFIER'] = bundle_id_dict['bundle_id_imessage']['bundle_id']
|
194
|
-
config.build_settings['PROVISIONING_PROFILE_SPECIFIER'] = bundle_id_imessage_value
|
195
|
-
config.build_settings['PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]'] = bundle_id_imessage_value
|
196
|
-
elsif target.name.to_s.end_with?("Siri") then
|
197
|
-
config.build_settings['PRODUCT_BUNDLE_IDENTIFIER'] = bundle_id_dict['bundle_id_siri']['bundle_id']
|
198
|
-
config.build_settings['PROVISIONING_PROFILE_SPECIFIER'] = bundle_id_siri_value
|
199
|
-
config.build_settings['PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]'] = bundle_id_siri_value
|
200
|
-
elsif target.name.to_s.end_with?("SiriUI") then
|
201
|
-
config.build_settings['PRODUCT_BUNDLE_IDENTIFIER'] = bundle_id_dict['bundle_id_siriui']['bundle_id']
|
202
|
-
config.build_settings['PROVISIONING_PROFILE_SPECIFIER'] = bundle_id_siriui_value
|
203
|
-
config.build_settings['PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]'] = bundle_id_siriui_value
|
204
|
-
elsif target.name.to_s.end_with?("Widget") then
|
205
|
-
config.build_settings['PRODUCT_BUNDLE_IDENTIFIER'] = bundle_id_dict['bundle_id_widget']['bundle_id']
|
206
|
-
config.build_settings['PROVISIONING_PROFILE_SPECIFIER'] = bundle_id_widget_value
|
207
|
-
config.build_settings['PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]'] = bundle_id_widget_value
|
208
|
-
elsif target.name.to_s.end_with?("Extension") then
|
209
|
-
config.build_settings['PRODUCT_BUNDLE_IDENTIFIER'] = bundle_id_dict['bundle_id_extension']['bundle_id']
|
210
|
-
config.build_settings['PROVISIONING_PROFILE_SPECIFIER'] = bundle_id_extension_value
|
211
|
-
config.build_settings['PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]'] = bundle_id_extension_value
|
212
|
-
elsif target.name.to_s.end_with?("ExtensionAd") then
|
213
|
-
config.build_settings['PRODUCT_BUNDLE_IDENTIFIER'] = bundle_id_dict['bundle_id_extensionad']['bundle_id']
|
214
|
-
config.build_settings['PROVISIONING_PROFILE_SPECIFIER'] = bundle_id_extensionad_value
|
215
|
-
config.build_settings['PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]'] = bundle_id_extensionad_value
|
216
|
-
elsif target.name.to_s.end_with?("ExtensionPorn") then
|
217
|
-
config.build_settings['PRODUCT_BUNDLE_IDENTIFIER'] = bundle_id_dict['bundle_id_extensionporn']['bundle_id']
|
218
|
-
config.build_settings['PROVISIONING_PROFILE_SPECIFIER'] = bundle_id_extensionporn_value
|
219
|
-
config.build_settings['PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]'] = bundle_id_extensionporn_value
|
220
|
-
elsif target.name.to_s.end_with?("WatchApp") then
|
221
|
-
config.build_settings['PRODUCT_BUNDLE_IDENTIFIER'] = bundle_id_dict['bundle_id_watchapp']['bundle_id']
|
222
|
-
config.build_settings['PROVISIONING_PROFILE_SPECIFIER'] = bundle_id_watchapp_value
|
223
|
-
config.build_settings['PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]'] = bundle_id_watchapp_value
|
224
|
-
elsif target.name.to_s.end_with?("WatchAppComplication") then
|
225
|
-
config.build_settings['PRODUCT_BUNDLE_IDENTIFIER'] = bundle_id_dict['bundle_id_watchapp_extension']['bundle_id']
|
226
|
-
config.build_settings['PROVISIONING_PROFILE_SPECIFIER'] = bundle_id_watchapp_extension_value
|
227
|
-
config.build_settings['PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]'] = bundle_id_watchapp_extension_value
|
228
|
-
else
|
229
|
-
config.build_settings['PRODUCT_BUNDLE_IDENTIFIER'] = bundle_id_dict['bundle_id']['bundle_id']
|
230
|
-
config.build_settings['PROVISIONING_PROFILE_SPECIFIER'] = bundle_id_value
|
231
|
-
config.build_settings['PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]'] = bundle_id_value
|
232
|
-
end
|
233
|
-
end
|
234
|
-
end
|
235
|
-
new_project_obj.save
|
236
|
-
|
237
|
-
end
|
238
|
-
|
239
|
-
def modify_entitlements_plist(entitlements_plist_path:nil, group_id:nil, icloud_id:nil)
|
240
|
-
if File.exist?(entitlements_plist_path)
|
241
|
-
|
242
|
-
entitlements_plist_dict = Xcodeproj::Plist.read_from_path(entitlements_plist_path)
|
243
|
-
|
244
|
-
if !group_id.nil? && !entitlements_plist_dict['com.apple.security.application-groups'].nil?
|
245
|
-
entitlements_plist_dict['com.apple.security.application-groups'] = [group_id]
|
246
|
-
end
|
247
|
-
|
248
|
-
if !icloud_id.nil?
|
249
|
-
entitlements_plist_dict['com.apple.developer.icloud-container-identifiers'] = [icloud_id]
|
250
|
-
entitlements_plist_dict['com.apple.developer.ubiquity-container-identifiers'] = [icloud_id]
|
251
|
-
end
|
252
|
-
|
253
|
-
Xcodeproj::Plist.write_to_path(entitlements_plist_dict, entitlements_plist_path)
|
254
|
-
end
|
255
|
-
end
|
256
|
-
|
257
|
-
end
|
258
|
-
end
|