xcadaptor 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/bin/xcadaptor +3 -0
- data/lib/xcadaptor/IOS/9.0/bitcode.rb +31 -0
- data/lib/xcadaptor/IOS/9.0/ssl.rb +20 -0
- data/lib/xcadaptor/adapt.rb +80 -0
- data/lib/xcadaptor/project_method.rb +114 -0
- data/lib/xcadaptor/version.rb +3 -0
- data/lib/xcadaptor.rb +16 -0
- metadata +81 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: bbcd9ceb74e14b247d1fd724d1bcee7ea8f25c0a
|
4
|
+
data.tar.gz: e36674071e0f33be164aeb7e9e9339ca5f31c5ea
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: c22d95d6c361b7d7f3d9d084694474a71e036e40bb43487886b855e46094d19022c9cb0017c615df2cec4fd2bb7b5ad12a4de1d1dddd6a457ee9a7f7eef09ec6
|
7
|
+
data.tar.gz: ac1436a90e4f3c6b14ccd98ab8352918b4a3faea4e90f1fd9ddd73903eb073af35fd7a39a259b261987d61db9a6b4e96799663c6f09f2d183a8f3838eef6943b
|
data/bin/xcadaptor
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
module Xcadaptor
|
2
|
+
|
3
|
+
require_relative '../../project_method'
|
4
|
+
|
5
|
+
class Bitcode
|
6
|
+
|
7
|
+
#main task
|
8
|
+
def self.run
|
9
|
+
project =Xcadaptor::Project.new
|
10
|
+
project.set_all_target_setting("ENABLE_BITCODE",false) do |target,key,value|
|
11
|
+
deploy_version = project.get_target_setting(target,"IPHONEOS_DEPLOYMENT_TARGET")
|
12
|
+
debug_version = deploy_version['Debug'].to_f
|
13
|
+
release_version = deploy_version['Release'].to_f
|
14
|
+
if(debug_version < 6 || release_version < 6)
|
15
|
+
|
16
|
+
if project.get_target_setting(target,"ENABLE_BITCODE")["Debug"] == "YES"
|
17
|
+
puts "-fembed-bitcode is not supported on versions of iOS prior to 6.0. Change bitcode NO\n"
|
18
|
+
next true
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
next false
|
23
|
+
end
|
24
|
+
|
25
|
+
puts 'save'
|
26
|
+
project.save
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Xcadaptor
|
2
|
+
|
3
|
+
require_relative '../../project_method'
|
4
|
+
|
5
|
+
class Ssl
|
6
|
+
|
7
|
+
def self.run
|
8
|
+
project =Xcadaptor::Project.new
|
9
|
+
info_plist = project.info_plist
|
10
|
+
ssl_key = info_plist['NSAppTransportSecurity']
|
11
|
+
if !ssl_key
|
12
|
+
info_plist['NSAppTransportSecurity'] = {NSAllowsArbitraryLoads: true}
|
13
|
+
puts "add [NSAppTransportSecurity] in plist\n"
|
14
|
+
project.save
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
require 'thor'
|
2
|
+
|
3
|
+
module Xcadaptor
|
4
|
+
|
5
|
+
|
6
|
+
class Adapt < Thor
|
7
|
+
include Thor::Actions
|
8
|
+
|
9
|
+
desc "ios [version] [--category]" , "adapt xcode project to the verison ios"
|
10
|
+
long_desc <<-LONGDESC
|
11
|
+
adapt xcode project to the verison ios
|
12
|
+
ios [version] [--category]
|
13
|
+
version : ios version. eg: 9.0
|
14
|
+
options:
|
15
|
+
--category : category task, eg: 'bitcode' , 'ssl'
|
16
|
+
|
17
|
+
LONGDESC
|
18
|
+
option :category ,:type => :array , :banner => "adapt category , in ios 9 eg: 'bitcode' 'ssl'"
|
19
|
+
def ios(version)
|
20
|
+
sub_command_file_path = File.expand_path "#{File.dirname(__FILE__)}/IOS/#{version}"
|
21
|
+
begin
|
22
|
+
if require_all(sub_command_file_path)
|
23
|
+
function_types = options[:category]
|
24
|
+
if function_types
|
25
|
+
#excute specified cateoty update
|
26
|
+
function_types.each do |function_type|
|
27
|
+
if File.exist? "#{sub_command_file_path}/#{function_type}.rb"
|
28
|
+
run_category function_type
|
29
|
+
else
|
30
|
+
puts "#{function_type} not found\n"
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
else
|
35
|
+
|
36
|
+
#excute all category update
|
37
|
+
Dir.glob("#{sub_command_file_path}/*.rb").each do |f_path|
|
38
|
+
pn = Pathname.new f_path
|
39
|
+
file_name = pn.basename(".*").to_s
|
40
|
+
run_category file_name
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
else
|
46
|
+
puts "ios version not found."
|
47
|
+
end
|
48
|
+
rescue => e
|
49
|
+
puts e.backtrace
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
|
54
|
+
private
|
55
|
+
|
56
|
+
# require all file at path directory
|
57
|
+
def require_all(path)
|
58
|
+
begin
|
59
|
+
Dir.glob("#{path}/*.rb").each do |f_path|
|
60
|
+
require f_path
|
61
|
+
end
|
62
|
+
rescue => e
|
63
|
+
return false
|
64
|
+
end
|
65
|
+
return true;
|
66
|
+
end
|
67
|
+
|
68
|
+
|
69
|
+
# run category task
|
70
|
+
def run_category(category_name)
|
71
|
+
class_name = "Xcadaptor::#{category_name.capitalize}"
|
72
|
+
clazz = class_name.split('::').inject(Object) {|o,c| o.const_get c}
|
73
|
+
clazz.run
|
74
|
+
end
|
75
|
+
|
76
|
+
end
|
77
|
+
|
78
|
+
|
79
|
+
|
80
|
+
end
|
@@ -0,0 +1,114 @@
|
|
1
|
+
module Xcadaptor
|
2
|
+
|
3
|
+
|
4
|
+
require 'pathname'
|
5
|
+
require 'xcodeproj'
|
6
|
+
|
7
|
+
class Project
|
8
|
+
|
9
|
+
attr_reader :project
|
10
|
+
attr_reader :targets
|
11
|
+
attr_reader :info_plist_path
|
12
|
+
attr_reader :info_plist
|
13
|
+
|
14
|
+
def initialize(*args)
|
15
|
+
get_project
|
16
|
+
end
|
17
|
+
|
18
|
+
def targets
|
19
|
+
@project.targets
|
20
|
+
end
|
21
|
+
|
22
|
+
def info_plist_path
|
23
|
+
path = get_target_setting(project.targets[0],"INFOPLIST_FILE")["Debug"]
|
24
|
+
path.gsub '$(SRCROOT)', Pathname.pwd.to_s
|
25
|
+
end
|
26
|
+
|
27
|
+
def info_plist
|
28
|
+
@info_plist = Xcodeproj::PlistHelper.read self.info_plist_path
|
29
|
+
end
|
30
|
+
|
31
|
+
# set project setting , block praram key , return bool value
|
32
|
+
def set_project_setting(key,value)
|
33
|
+
is_ok = true
|
34
|
+
if block_given?
|
35
|
+
is_ok = yield key
|
36
|
+
end
|
37
|
+
|
38
|
+
if is_ok
|
39
|
+
config_list = @project.build_configuration_list
|
40
|
+
config_list.set_setting key ,value
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
# get project setting
|
45
|
+
def get_project_setting(key)
|
46
|
+
config_list = @project.build_configuration_list
|
47
|
+
config_list.get_setting key
|
48
|
+
end
|
49
|
+
|
50
|
+
|
51
|
+
# set project setting , block praram target key , return bool value
|
52
|
+
def set_target_setting(target,key,value)
|
53
|
+
is_ok = true
|
54
|
+
if block_given?
|
55
|
+
is_ok = yield target, key
|
56
|
+
end
|
57
|
+
|
58
|
+
if is_ok
|
59
|
+
target_config_list = target.build_configuration_list
|
60
|
+
target_config_list.set_setting(key, value)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
# get target setting
|
65
|
+
def get_target_setting(target, key)
|
66
|
+
target_config_list = target.build_configuration_list
|
67
|
+
target_config_list.get_setting key
|
68
|
+
end
|
69
|
+
|
70
|
+
|
71
|
+
# set project setting , block praram target key , return bool value
|
72
|
+
def set_all_target_setting(key,value)
|
73
|
+
is_ok = true
|
74
|
+
|
75
|
+
config_list = @project.build_configuration_list
|
76
|
+
project.targets.each do |target|
|
77
|
+
if block_given?
|
78
|
+
is_ok = yield target , key
|
79
|
+
end
|
80
|
+
|
81
|
+
if is_ok
|
82
|
+
set_project_setting key ,value
|
83
|
+
set_target_setting target, key , value
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
# save your change
|
89
|
+
def save
|
90
|
+
@project.save
|
91
|
+
if @info_plist
|
92
|
+
Xcodeproj::PlistHelper.write @info_plist, self.info_plist_path
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
private
|
97
|
+
|
98
|
+
# get xcodeproj instance
|
99
|
+
def get_project
|
100
|
+
current_dir = Pathname.pwd
|
101
|
+
Dir.foreach(current_dir) do |filename|
|
102
|
+
if filename.include? 'xcodeproj'
|
103
|
+
@project_path = "#{current_dir}/#{filename}"
|
104
|
+
@project_name = File.basename(filename)
|
105
|
+
@project = Xcodeproj::Project.open @project_path
|
106
|
+
return project
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
|
112
|
+
end
|
113
|
+
|
114
|
+
end
|
data/lib/xcadaptor.rb
ADDED
metadata
ADDED
@@ -0,0 +1,81 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: xcadaptor
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- kaich
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-10-20 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.7'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.7'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
description: adapt xcode project because of system update.
|
42
|
+
email:
|
43
|
+
- chengkai1853@163.com
|
44
|
+
executables:
|
45
|
+
- xcadaptor
|
46
|
+
extensions: []
|
47
|
+
extra_rdoc_files: []
|
48
|
+
files:
|
49
|
+
- bin/xcadaptor
|
50
|
+
- lib/xcadaptor.rb
|
51
|
+
- lib/xcadaptor/IOS/9.0/bitcode.rb
|
52
|
+
- lib/xcadaptor/IOS/9.0/ssl.rb
|
53
|
+
- lib/xcadaptor/adapt.rb
|
54
|
+
- lib/xcadaptor/project_method.rb
|
55
|
+
- lib/xcadaptor/version.rb
|
56
|
+
homepage: ''
|
57
|
+
licenses:
|
58
|
+
- MIT
|
59
|
+
metadata: {}
|
60
|
+
post_install_message:
|
61
|
+
rdoc_options: []
|
62
|
+
require_paths:
|
63
|
+
- lib
|
64
|
+
- bin
|
65
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - '>='
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '0'
|
75
|
+
requirements: []
|
76
|
+
rubyforge_project:
|
77
|
+
rubygems_version: 2.4.8
|
78
|
+
signing_key:
|
79
|
+
specification_version: 4
|
80
|
+
summary: adapt xcode project because of system update.
|
81
|
+
test_files: []
|