cocoapods-ykutility 0.0.12

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.
Files changed (43) hide show
  1. checksums.yaml +7 -0
  2. data/lib/cocoapods-ykutility/command/Ykutility.rb +33 -0
  3. data/lib/cocoapods-ykutility/command/ykutility/create.rb +74 -0
  4. data/lib/cocoapods-ykutility/command.rb +1 -0
  5. data/lib/cocoapods-ykutility/function/yk_create_pod_action.rb +117 -0
  6. data/lib/cocoapods-ykutility/function/yk_create_pod_config.rb +22 -0
  7. data/lib/cocoapods-ykutility/function/yk_exchange_tool.rb +45 -0
  8. data/lib/cocoapods-ykutility/function/yk_log_tool.rb +21 -0
  9. data/lib/cocoapods-ykutility/gem_version.rb +4 -0
  10. data/lib/cocoapods-ykutility.rb +1 -0
  11. data/lib/cocoapods_plugin.rb +1 -0
  12. data/podTemplate/example/Podfile +44 -0
  13. data/podTemplate/example/Podfile.lock +16 -0
  14. data/podTemplate/example/YKRPC_POD_NAME_Example/AppDelegate.swift +36 -0
  15. data/podTemplate/example/YKRPC_POD_NAME_Example/Assets.xcassets/AccentColor.colorset/Contents.json +11 -0
  16. data/podTemplate/example/YKRPC_POD_NAME_Example/Assets.xcassets/AppIcon.appiconset/Contents.json +13 -0
  17. data/podTemplate/example/YKRPC_POD_NAME_Example/Assets.xcassets/Contents.json +6 -0
  18. data/podTemplate/example/YKRPC_POD_NAME_Example/Assets.xcassets/icon.imageset/Contents.json +21 -0
  19. data/podTemplate/example/YKRPC_POD_NAME_Example/Assets.xcassets/icon.imageset/icon.png +0 -0
  20. data/podTemplate/example/YKRPC_POD_NAME_Example/Base.lproj/LaunchScreen.storyboard +55 -0
  21. data/podTemplate/example/YKRPC_POD_NAME_Example/Base.lproj/Main.storyboard +65 -0
  22. data/podTemplate/example/YKRPC_POD_NAME_Example/Info.plist +25 -0
  23. data/podTemplate/example/YKRPC_POD_NAME_Example/SceneDelegate.swift +52 -0
  24. data/podTemplate/example/YKRPC_POD_NAME_Example/ViewController.swift +20 -0
  25. data/podTemplate/example/YKRPC_POD_NAME_Example.xcodeproj/project.pbxproj +362 -0
  26. data/podTemplate/example/YKRPC_POD_NAME_Example.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  27. data/podTemplate/example/YKRPC_POD_NAME_Example.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  28. data/podTemplate/example/YKRPC_POD_NAME_Example.xcodeproj/project.xcworkspace/xcuserdata/imac24inch.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  29. data/podTemplate/example/YKRPC_POD_NAME_Example.xcodeproj/xcuserdata/imac24inch.xcuserdatad/xcschemes/xcschememanagement.plist +14 -0
  30. data/podTemplate/objc/LICENSE +19 -0
  31. data/podTemplate/objc/README.md +60 -0
  32. data/podTemplate/objc/YKRPC_POD_NAME/Assets/Images.xcassets/.gitkeep +0 -0
  33. data/podTemplate/objc/YKRPC_POD_NAME/Private/.gitkeep +0 -0
  34. data/podTemplate/objc/YKRPC_POD_NAME/Public/YKRPC_POD_NAME.h +16 -0
  35. data/podTemplate/objc/YKRPC_POD_NAME/Public/YKRPC_POD_NAME.m +12 -0
  36. data/podTemplate/objc/YKRPC_POD_NAME.podspec +61 -0
  37. data/podTemplate/swift/LICENSE +19 -0
  38. data/podTemplate/swift/README.md +60 -0
  39. data/podTemplate/swift/YKRPC_POD_NAME/Assets/Images.xcassets/.gitkeep +0 -0
  40. data/podTemplate/swift/YKRPC_POD_NAME/Private/.gitkeep +0 -0
  41. data/podTemplate/swift/YKRPC_POD_NAME/Public/YKRPC_POD_NAME.swift +6 -0
  42. data/podTemplate/swift/YKRPC_POD_NAME.podspec +61 -0
  43. metadata +84 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: dc117e8086c2837b3d7b49a2dc44c641ffd10dcb57dae7ae11178cf59f80cf45
4
+ data.tar.gz: d44bf31e0a0f060750144297636ee2aca87195bab1176a4452a175f0956efa80
5
+ SHA512:
6
+ metadata.gz: f878d8679e9c066e088736982a40098b0eabb9db1f0888dab221907d40379bad1fd9809a9924279d0e9551c3825da737f7b1e859e9501e38f7d8d6a302f16720
7
+ data.tar.gz: c29dda8b533c1fa47273262a5bb9a7769bf5383b3f11ed6820de677426c3cdbbf1d693fd5d9003fd0b993340a610354fdd00545877f38178745e87cf6d55ce59
@@ -0,0 +1,33 @@
1
+ require 'cocoapods'
2
+ require 'cocoapods-ykutility/command/ykutility/create'
3
+
4
+ module Pod
5
+ class Command
6
+ # This is an example of a cocoapods plugin adding a top-level subcommand
7
+ # to the 'pod' command.
8
+ #
9
+ # You can also create subcommands of existing or new commands. Say you
10
+ # wanted to add a subcommand to `list` to show newly deprecated pods,
11
+ # (e.g. `pod list deprecated`), there are a few things that would need
12
+ # to change.
13
+ #
14
+ # - move this file to `lib/pod/command/list/deprecated.rb` and update
15
+ # the class to exist in the the Pod::Command::List namespace
16
+ # - change this class to extend from `List` instead of `Command`. This
17
+ # tells the plugin system that it is a subcommand of `list`.
18
+ # - edit `lib/cocoapods_plugins.rb` to require this file
19
+ #
20
+ # @todo Create a PR to add your plugin to CocoaPods/cocoapods.org
21
+ # in the `plugins.json` file, once your plugin is released.
22
+ #
23
+ class Ykutility < Command
24
+ self.abstract_command = true
25
+
26
+ self.summary = '组件创建工具.'
27
+ self.description = <<-DESC
28
+ 组件创建工具,用于创建定制化组件
29
+ DESC
30
+
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,74 @@
1
+ # frozen_string_literal: true
2
+ require 'cocoapods-ykutility/function/yk_create_pod_action'
3
+ require 'cocoapods-ykutility/gem_version'
4
+
5
+ module Pod
6
+ class Command
7
+ class Ykutility < Command
8
+
9
+ require 'cocoapods-ykutility/function/yk_create_pod_config'
10
+ class Create < Ykutility
11
+
12
+ self.summary = 'Creates a new Pod'
13
+
14
+ self.description = <<-DESC
15
+ 依据标准化模版,创建组件
16
+ DESC
17
+
18
+ self.arguments = [
19
+ CLAide::Argument.new('NAME', true)
20
+ ]
21
+
22
+ def self.options
23
+ [
24
+ ['--language=LANGUAGE', 'Language [ ObjC / Swift ]'],
25
+ ['--no-demo', 'Without a demo application for your library'],
26
+ ['--author=AUTHOR', 'Author'],
27
+ ['--email=EMAIL', 'Email'],
28
+ ['--prefix=PREFIX', 'Prefix header'],
29
+ ['--pod-path=PATH', 'Pod created at path'],
30
+ ].concat(super)
31
+ end
32
+
33
+ def initialize(argv)
34
+ @config = YKPod::YKCreatePodConfig.new()
35
+
36
+ @config.name = argv.shift_argument
37
+ @config.language = (["objc", "oc"].include? argv.option('language', "swift").downcase) ? "objc" : "swift"
38
+ @config.with_demo = !argv.flag?('no-demo', false)
39
+ @config.author = argv.option('author', open("|git config --global user.name").gets).strip.gsub('.', '')
40
+ @config.author_email = argv.option('email', open("|git config --global user.email").gets).strip
41
+ @config.prefix = argv.option('prefix', "YK")
42
+ @config.path = File.expand_path(argv.option('pod-path', Dir.getwd.to_s))
43
+ super
44
+ @additional_args = argv.remainder!
45
+ end
46
+
47
+ def validate!
48
+ super
49
+ help! 'A name for the Pod is required.' unless @config.name
50
+ help! 'The Pod name cannot contain spaces.' if @config.name =~ /\s/
51
+ help! 'The Pod name cannot contain plusses.' if @config.name =~ /\+/
52
+ help! "The Pod name cannot begin with a '.'" if @config.name[0, 1] == '.'
53
+ end
54
+
55
+ def run
56
+ puts("create pod run")
57
+
58
+ YKPod::YKCreate.new(@config).createAction()
59
+
60
+ end
61
+
62
+ # Runs the template configuration utilities.
63
+ #
64
+ # @return [void]
65
+ #
66
+ def print_info
67
+ UI.puts "\nTo learn more about the template see `#{CocoapodsYkPodUtility::YK_POD_TEMPLATE_PATH}`."
68
+ end
69
+
70
+ end
71
+
72
+ end
73
+ end
74
+ end
@@ -0,0 +1 @@
1
+ require 'cocoapods-ykutility/command/Ykutility'
@@ -0,0 +1,117 @@
1
+ # frozen_string_literal: true
2
+ module YKPod
3
+ require 'fileutils'
4
+ require 'cocoapods'
5
+
6
+ class YKCreate
7
+ require 'cocoapods-ykutility/function/yk_create_pod_config'
8
+ require 'cocoapods-ykutility/function/yk_log_tool'
9
+ require 'find'
10
+ include YKPod::YKLogTool
11
+
12
+ require 'cocoapods-ykutility/gem_version'
13
+ require 'cocoapods-ykutility/function/yk_exchange_tool'
14
+ include YKPod::YKExchangeTool
15
+
16
+ def initialize(conf)
17
+
18
+ @config = YKPod::YKCreatePodConfig
19
+ @config = conf
20
+
21
+ # name = conf.start_with?(conf.prefix) ? name : conf.prefix + name
22
+ # @config.name = name
23
+
24
+ @project_dir_dest = File.join(@config.path, @config.prefix_name)
25
+ @example_dir_dest = File.join(@project_dir_dest, "Example")
26
+
27
+ @template_pod_path = File.join(CocoapodsYkPodUtility::YK_POD_TEMPLATE_PATH, @config.language)
28
+ @template_example_path = File.join(CocoapodsYkPodUtility::YK_POD_TEMPLATE_PATH, "example")
29
+
30
+ time_str = Time.now.strftime("%Y/%m/%d")
31
+ year_str = Time.now.strftime("%Y")
32
+ # 关键字替换
33
+ @keyMap = {
34
+ "YKRPC_POD_NAME" => @config.prefix_name,
35
+ "YKPRC_AUTHOR_NAME" => @config.author,
36
+ "YKPRC_AUTHOR_EMAIL" => @config.author_email,
37
+ "YKPRC_CLASS_PREFIX" => @config.prefix,
38
+ "YKPRC_CREATE_DATE" => time_str,
39
+ "YKPRC_CREATE_YEAR" => year_str,
40
+ }
41
+
42
+ end
43
+
44
+ def createAction()
45
+ ykNotice "create pod execute: \n name: #{@config.name} \n language: #{@config.language} \n with_demo: #{@config.with_demo} \n path: #{@config.path} \n author: #{@config.author}\n author_email: #{@config.author_email}"
46
+ code = create_path
47
+ exit!(code) unless code == 0
48
+
49
+ code = create_pod
50
+ exit!(code) unless code == 0
51
+
52
+ if @config.with_demo
53
+ code = create_example
54
+ exit!(code) unless code == 0
55
+
56
+ pod_install
57
+ end
58
+
59
+ end
60
+
61
+ private
62
+
63
+ def create_path()
64
+ ykNotice "模板路径:#{@template_pod_path}"
65
+ return ykError("文件已存在: #{@project_dir_dest}") if File.exist?(@project_dir_dest)
66
+
67
+ FileUtils.mkdir(@project_dir_dest)
68
+ return 0
69
+ end
70
+
71
+ def create_pod()
72
+ ykNotice "create pod"
73
+ pod_dir_cache = File.join(@project_dir_dest, "#{@config.prefix_name}_cache")
74
+ pod_dir_dest = File.join(@project_dir_dest)
75
+ FileUtils.copy_entry(@template_pod_path, pod_dir_cache)
76
+
77
+ # 改文件夹
78
+ file_arr = updateFileDirs(pod_dir_cache, 'YKRPC_POD_NAME',@config.prefix_name)
79
+
80
+ # 替换 YKRPC_POD_NAME YKPRC_AUTHOR_NAME YKPRC_AUTHOR_EMAIL YKPRC_CREATE_DATE YKPRC_CREATE_YEAR
81
+ updateFiles(file_arr, @keyMap)
82
+
83
+ FileUtils.copy_entry(pod_dir_cache, pod_dir_dest)
84
+ FileUtils.rm_r(pod_dir_cache)
85
+ return 0
86
+ end
87
+
88
+ def create_example()
89
+ ykNotice "create example"
90
+ example_dir_cache = File.join(@project_dir_dest, "Example_cache")
91
+
92
+ FileUtils.copy_entry(@template_example_path, example_dir_cache)
93
+
94
+ # 改文件夹
95
+ file_arr = updateFileDirs(example_dir_cache, 'YKRPC_POD_NAME', @config.prefix_name)
96
+
97
+ # 替换 YKRPC_POD_NAME YKPRC_AUTHOR_NAME YKPRC_AUTHOR_EMAIL YKPRC_CREATE_DATE YKPRC_CREATE_YEAR
98
+ updateFiles(file_arr, @keyMap)
99
+
100
+ FileUtils.copy_entry(example_dir_cache, @example_dir_dest)
101
+ FileUtils.rm_r(example_dir_cache)
102
+
103
+ return 0
104
+ end
105
+
106
+ def pod_install
107
+ ykNotice "open project"
108
+ Dir.chdir(@example_dir_dest) do
109
+ system('pod install')
110
+ system('pod install')
111
+ system('open -a /Applications/Xcode.app ./*.xcworkspace')
112
+ end
113
+ end
114
+
115
+
116
+ end
117
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module YKPod
4
+
5
+ class YKCreatePodConfig
6
+ attr_accessor :name, :language, :with_demo, :author, :author_email, :prefix, :path
7
+
8
+ def initialize()
9
+ @name = ""
10
+ @language = ""
11
+ @with_demo = true
12
+ @author = open("|git config --global user.name").gets.strip.gsub('.', '')
13
+ @author_email = open("|git config --global user.email").gets.strip
14
+ @prefix = "YK"
15
+ @path = File.expand_path(Dir.getwd.to_s)
16
+ end
17
+
18
+ def prefix_name
19
+ return name.start_with?(prefix) ? name : prefix + name
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ module YKPod
4
+ module YKExchangeTool
5
+ require 'cocoapods-ykutility/function/yk_log_tool'
6
+ include YKPod::YKLogTool
7
+ def updateFileDirs(rootDir, keyWord, destWord)
8
+ Dir.glob("#{rootDir}/**/**/**/**").each do |name|
9
+ next if File.directory?(name) == false
10
+ name_new = name.gsub(keyWord, destWord)
11
+ FileUtils.mv(name, name_new) unless name_new == name
12
+ end
13
+
14
+ # 改文件名
15
+
16
+ fileArr = []
17
+ Dir.glob("#{rootDir}/**/**/**/**").each do |name|
18
+ next if Dir.exists? name
19
+
20
+ name_new = name.gsub(keyWord, destWord)
21
+ FileUtils.mv(name, name_new) unless name_new == name
22
+ fileArr.append(name_new)
23
+ end
24
+
25
+ return fileArr
26
+ end
27
+
28
+ def updateFiles(file_arr, key_map)
29
+ file_arr.each do |one|
30
+ onefile = File.read one
31
+ key_map.each do |key, dest|
32
+ if key.blank? or dest.blank?
33
+ next
34
+ end
35
+ onefile.gsub!(key, dest)
36
+ end
37
+
38
+ File.open(one, "w") { |file| file.puts onefile }
39
+ end
40
+ end
41
+
42
+ end
43
+
44
+ end
45
+
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module YKPod
4
+ module YKLogTool
5
+ def ykWarning(message)
6
+ puts "\n[⚠️] #{message}".yellow
7
+ return 0
8
+ end
9
+
10
+ def ykNotice(message)
11
+ puts "\033[0;34m\n[❕] #{message}\e[0m"
12
+ return 0
13
+ end
14
+
15
+ def ykError(message)
16
+ puts "\n[❌] #{message}".red
17
+ return 1
18
+ end
19
+ end
20
+
21
+ end
@@ -0,0 +1,4 @@
1
+ module CocoapodsYkPodUtility
2
+ VERSION = "0.0.12"
3
+ YK_POD_TEMPLATE_PATH = File.expand_path(File.join(__FILE__, '../../../podTemplate'))
4
+ end
@@ -0,0 +1 @@
1
+ require 'cocoapods-ykutility/gem_version'
@@ -0,0 +1 @@
1
+ require 'cocoapods-ykutility/command'
@@ -0,0 +1,44 @@
1
+ #私有源
2
+ # source 'xxxxx'
3
+
4
+ #cocoapods源 最后声明, 可以解决私有源pod 与 公共源pod 重名的问题
5
+ source 'https://github.com/CocoaPods/Specs.git'
6
+
7
+ # Uncomment the next line to define a global platform for your project
8
+ platform :ios, '9.0'
9
+
10
+ inhibit_all_warnings!
11
+
12
+ use_frameworks! :linkage => :static # 使用 framework形势的静态库, 注释可变为.a 静态库
13
+ use_modular_headers! #此字段用于pod自动生成 swift module 伞文件
14
+
15
+ project 'YKRPC_POD_NAME_Example.xcodeproj'
16
+ target 'YKRPC_POD_NAME_Example' do
17
+ # Pods for YKRPC_POD_NAME_Example
18
+ pod 'YKRPC_POD_NAME', :path => '../'
19
+
20
+ end
21
+
22
+
23
+ # cocoapods pod install hook
24
+ post_install do |installer|
25
+ # 添加创建时候类前缀
26
+ installer.pods_project.root_object.attributes["CLASSPREFIX"] = "YKPRC_CLASS_PREFIX" # 添加 class prefix
27
+ # project编辑配置
28
+ installer.pods_project.build_configurations.each do |config|
29
+ config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '10.0'
30
+ config.build_settings['CLANG_WARN_DOCUMENTATION_COMMENTS'] = 'NO'
31
+ end
32
+
33
+ # 单个target编辑配置
34
+ installer.pods_project.targets.each do |target|
35
+ target.build_configurations.each do |config|
36
+ config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '10.0' #修改pod的最低版本
37
+
38
+ # 以下是xcode14 忽略 bundle 类型pod签名
39
+ config.build_settings['EXPANDED_CODE_SIGN_IDENTITY'] = ""
40
+ config.build_settings['CODE_SIGNING_REQUIRED'] = "NO"
41
+ config.build_settings['CODE_SIGNING_ALLOWED'] = "NO"
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,16 @@
1
+ PODS:
2
+ - YKRPC_POD_NAME (0.0.1)
3
+
4
+ DEPENDENCIES:
5
+ - YKRPC_POD_NAME (from `../objc`)
6
+
7
+ EXTERNAL SOURCES:
8
+ YKRPC_POD_NAME:
9
+ :path: "../objc"
10
+
11
+ SPEC CHECKSUMS:
12
+ YKRPC_POD_NAME: 26947dec6db12d4a44df700fb5bfb0f90c02f21b
13
+
14
+ PODFILE CHECKSUM: 5e7746ccd0d2eeea476f35e764737f8b9a447b6e
15
+
16
+ COCOAPODS: 1.11.3
@@ -0,0 +1,36 @@
1
+ //
2
+ // AppDelegate.swift
3
+ // YKRPC_POD_NAME_Example
4
+ //
5
+ // Created by YKPRC_AUTHOR_NAME on YKPRC_CREATE_DATE.
6
+ //
7
+
8
+ import UIKit
9
+
10
+ @main
11
+ class AppDelegate: UIResponder, UIApplicationDelegate {
12
+
13
+
14
+
15
+ func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
16
+ // Override point for customization after application launch.
17
+ return true
18
+ }
19
+
20
+ // MARK: UISceneSession Lifecycle
21
+
22
+ func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
23
+ // Called when a new scene session is being created.
24
+ // Use this method to select a configuration to create the new scene with.
25
+ return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
26
+ }
27
+
28
+ func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {
29
+ // Called when the user discards a scene session.
30
+ // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions.
31
+ // Use this method to release any resources that were specific to the discarded scenes, as they will not return.
32
+ }
33
+
34
+
35
+ }
36
+
@@ -0,0 +1,11 @@
1
+ {
2
+ "colors" : [
3
+ {
4
+ "idiom" : "universal"
5
+ }
6
+ ],
7
+ "info" : {
8
+ "author" : "xcode",
9
+ "version" : 1
10
+ }
11
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "images" : [
3
+ {
4
+ "idiom" : "universal",
5
+ "platform" : "ios",
6
+ "size" : "1024x1024"
7
+ }
8
+ ],
9
+ "info" : {
10
+ "author" : "xcode",
11
+ "version" : 1
12
+ }
13
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "info" : {
3
+ "author" : "xcode",
4
+ "version" : 1
5
+ }
6
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "images" : [
3
+ {
4
+ "filename" : "icon.png",
5
+ "idiom" : "universal",
6
+ "scale" : "1x"
7
+ },
8
+ {
9
+ "idiom" : "universal",
10
+ "scale" : "2x"
11
+ },
12
+ {
13
+ "idiom" : "universal",
14
+ "scale" : "3x"
15
+ }
16
+ ],
17
+ "info" : {
18
+ "author" : "xcode",
19
+ "version" : 1
20
+ }
21
+ }
@@ -0,0 +1,55 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="21507" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
3
+ <device id="retina6_12" orientation="portrait" appearance="light"/>
4
+ <dependencies>
5
+ <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21505"/>
6
+ <capability name="Safe area layout guides" minToolsVersion="9.0"/>
7
+ <capability name="System colors in document resources" minToolsVersion="11.0"/>
8
+ <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
9
+ </dependencies>
10
+ <scenes>
11
+ <!--View Controller-->
12
+ <scene sceneID="EHf-IW-A2E">
13
+ <objects>
14
+ <viewController id="01J-lp-oVM" sceneMemberID="viewController">
15
+ <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
16
+ <rect key="frame" x="0.0" y="0.0" width="393" height="852"/>
17
+ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
18
+ <subviews>
19
+ <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="YKRPC_POD_NAME Example" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontForContentSizeCategory="YES" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cs0-rF-rGH">
20
+ <rect key="frame" x="20" y="415.66666666666669" width="353" height="21"/>
21
+ <fontDescription key="fontDescription" type="system" pointSize="17"/>
22
+ <nil key="textColor"/>
23
+ <nil key="highlightedColor"/>
24
+ </label>
25
+ <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Created by YKPRC_AUTHOR_NAME on YKPRC_CREATE_DATE" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontForContentSizeCategory="YES" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="vWs-zc-qKa">
26
+ <rect key="frame" x="20" y="766" width="353" height="12"/>
27
+ <fontDescription key="fontDescription" type="system" pointSize="10"/>
28
+ <nil key="textColor"/>
29
+ <nil key="highlightedColor"/>
30
+ </label>
31
+ </subviews>
32
+ <viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/>
33
+ <color key="backgroundColor" systemColor="systemBackgroundColor"/>
34
+ <constraints>
35
+ <constraint firstItem="vWs-zc-qKa" firstAttribute="leading" secondItem="6Tk-OE-BBY" secondAttribute="leading" constant="20" id="6Ad-6u-PgH"/>
36
+ <constraint firstItem="cs0-rF-rGH" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="centerY" id="BhZ-Xm-UBX"/>
37
+ <constraint firstItem="6Tk-OE-BBY" firstAttribute="bottom" secondItem="vWs-zc-qKa" secondAttribute="bottom" constant="40" id="XO8-XE-VMu"/>
38
+ <constraint firstItem="cs0-rF-rGH" firstAttribute="centerX" secondItem="Ze5-6b-2t3" secondAttribute="centerX" id="Znh-pV-TBT"/>
39
+ <constraint firstItem="6Tk-OE-BBY" firstAttribute="trailing" secondItem="cs0-rF-rGH" secondAttribute="trailing" constant="20" id="iNz-wl-7t8"/>
40
+ <constraint firstItem="6Tk-OE-BBY" firstAttribute="trailing" secondItem="vWs-zc-qKa" secondAttribute="trailing" constant="20" id="kMD-LU-B8m"/>
41
+ <constraint firstItem="cs0-rF-rGH" firstAttribute="leading" secondItem="6Tk-OE-BBY" secondAttribute="leading" constant="20" id="pKs-7l-z21"/>
42
+ </constraints>
43
+ </view>
44
+ </viewController>
45
+ <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
46
+ </objects>
47
+ <point key="canvasLocation" x="53" y="375"/>
48
+ </scene>
49
+ </scenes>
50
+ <resources>
51
+ <systemColor name="systemBackgroundColor">
52
+ <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
53
+ </systemColor>
54
+ </resources>
55
+ </document>
@@ -0,0 +1,65 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="21507" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="BYZ-38-t0r">
3
+ <device id="retina6_12" orientation="portrait" appearance="light"/>
4
+ <dependencies>
5
+ <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21505"/>
6
+ <capability name="Safe area layout guides" minToolsVersion="9.0"/>
7
+ <capability name="System colors in document resources" minToolsVersion="11.0"/>
8
+ <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
9
+ </dependencies>
10
+ <scenes>
11
+ <!--View Controller-->
12
+ <scene sceneID="tne-QT-ifu">
13
+ <objects>
14
+ <viewController id="BYZ-38-t0r" customClass="ViewController" customModule="YKRPC_POD_NAME_Example" customModuleProvider="target" sceneMemberID="viewController">
15
+ <view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
16
+ <rect key="frame" x="0.0" y="0.0" width="393" height="852"/>
17
+ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
18
+ <subviews>
19
+ <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="YKRPC_POD_NAME Example" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontForContentSizeCategory="YES" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gzb-4I-vvV">
20
+ <rect key="frame" x="20" y="415.66666666666669" width="353" height="21"/>
21
+ <fontDescription key="fontDescription" type="system" pointSize="17"/>
22
+ <nil key="textColor"/>
23
+ <nil key="highlightedColor"/>
24
+ </label>
25
+ <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Created by YKPRC_AUTHOR_NAME on YKPRC_CREATE_DATE" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontForContentSizeCategory="YES" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="iEE-t8-eTf">
26
+ <rect key="frame" x="20" y="766" width="353" height="12"/>
27
+ <fontDescription key="fontDescription" type="system" pointSize="10"/>
28
+ <nil key="textColor"/>
29
+ <nil key="highlightedColor"/>
30
+ </label>
31
+ <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="7M7-U5-alR">
32
+ <rect key="frame" x="161.66666666666666" y="295.66666666666669" width="70" height="70"/>
33
+ <constraints>
34
+ <constraint firstAttribute="width" constant="70" id="ESk-Ur-Xwo"/>
35
+ <constraint firstAttribute="height" constant="70" id="Zdj-VH-fyH"/>
36
+ </constraints>
37
+ </imageView>
38
+ </subviews>
39
+ <viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/>
40
+ <color key="backgroundColor" systemColor="systemBackgroundColor"/>
41
+ <constraints>
42
+ <constraint firstItem="6Tk-OE-BBY" firstAttribute="bottom" secondItem="iEE-t8-eTf" secondAttribute="bottom" constant="40" id="1U0-nr-kAe"/>
43
+ <constraint firstItem="6Tk-OE-BBY" firstAttribute="trailing" secondItem="iEE-t8-eTf" secondAttribute="trailing" constant="20" id="1oe-LB-wVD"/>
44
+ <constraint firstItem="iEE-t8-eTf" firstAttribute="leading" secondItem="6Tk-OE-BBY" secondAttribute="leading" constant="20" id="59u-mG-iOX"/>
45
+ <constraint firstItem="gzb-4I-vvV" firstAttribute="centerX" secondItem="8bC-Xf-vdC" secondAttribute="centerX" id="IQk-Ld-wmq"/>
46
+ <constraint firstItem="gzb-4I-vvV" firstAttribute="top" secondItem="7M7-U5-alR" secondAttribute="bottom" constant="50" id="OrE-Xe-Wma"/>
47
+ <constraint firstItem="7M7-U5-alR" firstAttribute="centerX" secondItem="8bC-Xf-vdC" secondAttribute="centerX" id="Ud3-8t-LHa"/>
48
+ <constraint firstItem="gzb-4I-vvV" firstAttribute="centerY" secondItem="8bC-Xf-vdC" secondAttribute="centerY" id="YrD-6v-7pA"/>
49
+ <constraint firstItem="gzb-4I-vvV" firstAttribute="leading" secondItem="6Tk-OE-BBY" secondAttribute="leading" constant="20" id="b2L-xt-tH1"/>
50
+ <constraint firstItem="6Tk-OE-BBY" firstAttribute="trailing" secondItem="gzb-4I-vvV" secondAttribute="trailing" constant="20" id="yz5-fo-RHk"/>
51
+ </constraints>
52
+ </view>
53
+ </viewController>
54
+ <placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
55
+ </objects>
56
+ <point key="canvasLocation" x="-37" y="4"/>
57
+ </scene>
58
+ </scenes>
59
+ <resources>
60
+ <image name="icon" width="256" height="256"/>
61
+ <systemColor name="systemBackgroundColor">
62
+ <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
63
+ </systemColor>
64
+ </resources>
65
+ </document>
@@ -0,0 +1,25 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>UIApplicationSceneManifest</key>
6
+ <dict>
7
+ <key>UIApplicationSupportsMultipleScenes</key>
8
+ <false/>
9
+ <key>UISceneConfigurations</key>
10
+ <dict>
11
+ <key>UIWindowSceneSessionRoleApplication</key>
12
+ <array>
13
+ <dict>
14
+ <key>UISceneConfigurationName</key>
15
+ <string>Default Configuration</string>
16
+ <key>UISceneDelegateClassName</key>
17
+ <string>$(PRODUCT_MODULE_NAME).SceneDelegate</string>
18
+ <key>UISceneStoryboardFile</key>
19
+ <string>Main</string>
20
+ </dict>
21
+ </array>
22
+ </dict>
23
+ </dict>
24
+ </dict>
25
+ </plist>