sticker-convert 2.13.3.0__py3-none-any.whl → 2.17.0.0__py3-none-any.whl

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 (93) hide show
  1. sticker_convert/__main__.py +24 -27
  2. sticker_convert/auth/__init__.py +0 -0
  3. sticker_convert/auth/auth_base.py +19 -0
  4. sticker_convert/{utils/auth/get_discord_auth.py → auth/auth_discord.py} +149 -118
  5. sticker_convert/{utils/auth/get_kakao_auth.py → auth/auth_kakao_android_login.py} +331 -330
  6. sticker_convert/auth/auth_kakao_desktop_login.py +327 -0
  7. sticker_convert/{utils/auth/get_kakao_desktop_auth.py → auth/auth_kakao_desktop_memdump.py} +281 -263
  8. sticker_convert/{utils/auth/get_line_auth.py → auth/auth_line.py} +98 -80
  9. sticker_convert/{utils/auth/get_signal_auth.py → auth/auth_signal.py} +139 -135
  10. sticker_convert/auth/auth_telethon.py +161 -0
  11. sticker_convert/{utils/auth/get_viber_auth.py → auth/auth_viber.py} +250 -235
  12. sticker_convert/{utils/auth → auth}/telegram_api.py +736 -675
  13. sticker_convert/cli.py +623 -608
  14. sticker_convert/converter.py +1093 -1084
  15. sticker_convert/definitions.py +4 -0
  16. sticker_convert/downloaders/download_band.py +111 -110
  17. sticker_convert/downloaders/download_base.py +171 -166
  18. sticker_convert/downloaders/download_discord.py +92 -91
  19. sticker_convert/downloaders/download_kakao.py +417 -404
  20. sticker_convert/downloaders/download_line.py +484 -475
  21. sticker_convert/downloaders/download_ogq.py +80 -79
  22. sticker_convert/downloaders/download_signal.py +108 -105
  23. sticker_convert/downloaders/download_telegram.py +56 -55
  24. sticker_convert/downloaders/download_viber.py +121 -120
  25. sticker_convert/gui.py +788 -873
  26. sticker_convert/gui_components/frames/comp_frame.py +180 -166
  27. sticker_convert/gui_components/frames/config_frame.py +156 -113
  28. sticker_convert/gui_components/frames/control_frame.py +32 -30
  29. sticker_convert/gui_components/frames/cred_frame.py +232 -233
  30. sticker_convert/gui_components/frames/input_frame.py +139 -137
  31. sticker_convert/gui_components/frames/output_frame.py +112 -110
  32. sticker_convert/gui_components/frames/right_clicker.py +25 -23
  33. sticker_convert/gui_components/windows/advanced_compression_window.py +757 -757
  34. sticker_convert/gui_components/windows/base_window.py +7 -2
  35. sticker_convert/gui_components/windows/discord_get_auth_window.py +79 -82
  36. sticker_convert/gui_components/windows/kakao_get_auth_window.py +511 -321
  37. sticker_convert/gui_components/windows/line_get_auth_window.py +94 -102
  38. sticker_convert/gui_components/windows/signal_get_auth_window.py +84 -89
  39. sticker_convert/gui_components/windows/viber_get_auth_window.py +168 -168
  40. sticker_convert/ios-message-stickers-template/.github/FUNDING.yml +3 -3
  41. sticker_convert/ios-message-stickers-template/README.md +10 -10
  42. sticker_convert/ios-message-stickers-template/stickers/Info.plist +43 -43
  43. sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Info.plist +31 -31
  44. sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Contents.json +6 -6
  45. sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Contents.json +20 -20
  46. sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 1.sticker/Contents.json +9 -9
  47. sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 2.sticker/Contents.json +9 -9
  48. sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 3.sticker/Contents.json +9 -9
  49. sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Contents.json +91 -91
  50. sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.pbxproj +364 -364
  51. sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -7
  52. sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -8
  53. sticker_convert/ios-message-stickers-template/stickers.xcodeproj/xcuserdata/niklaspeterson.xcuserdatad/xcschemes/xcschememanagement.plist +14 -14
  54. sticker_convert/job.py +166 -130
  55. sticker_convert/job_option.py +1 -0
  56. sticker_convert/locales/en_US/LC_MESSAGES/base.mo +0 -0
  57. sticker_convert/locales/ja_JP/LC_MESSAGES/base.mo +0 -0
  58. sticker_convert/locales/zh_CN/LC_MESSAGES/base.mo +0 -0
  59. sticker_convert/locales/zh_TW/LC_MESSAGES/base.mo +0 -0
  60. sticker_convert/py.typed +0 -0
  61. sticker_convert/resources/NotoColorEmoji.ttf +0 -0
  62. sticker_convert/resources/help.ja_JP.json +88 -0
  63. sticker_convert/resources/help.json +10 -7
  64. sticker_convert/resources/help.zh_CN.json +88 -0
  65. sticker_convert/resources/help.zh_TW.json +88 -0
  66. sticker_convert/resources/input.ja_JP.json +74 -0
  67. sticker_convert/resources/input.json +121 -121
  68. sticker_convert/resources/input.zh_CN.json +74 -0
  69. sticker_convert/resources/input.zh_TW.json +74 -0
  70. sticker_convert/resources/output.ja_JP.json +38 -0
  71. sticker_convert/resources/output.zh_CN.json +38 -0
  72. sticker_convert/resources/output.zh_TW.json +38 -0
  73. sticker_convert/uploaders/compress_wastickers.py +186 -177
  74. sticker_convert/uploaders/upload_base.py +44 -35
  75. sticker_convert/uploaders/upload_signal.py +218 -203
  76. sticker_convert/uploaders/upload_telegram.py +353 -338
  77. sticker_convert/uploaders/upload_viber.py +178 -169
  78. sticker_convert/uploaders/xcode_imessage.py +295 -286
  79. sticker_convert/utils/callback.py +238 -6
  80. sticker_convert/utils/emoji.py +16 -4
  81. sticker_convert/utils/files/json_resources_loader.py +24 -19
  82. sticker_convert/utils/files/metadata_handler.py +3 -3
  83. sticker_convert/utils/translate.py +108 -0
  84. sticker_convert/utils/url_detect.py +40 -37
  85. sticker_convert/version.py +1 -1
  86. {sticker_convert-2.13.3.0.dist-info → sticker_convert-2.17.0.0.dist-info}/METADATA +89 -74
  87. {sticker_convert-2.13.3.0.dist-info → sticker_convert-2.17.0.0.dist-info}/RECORD +91 -74
  88. sticker_convert/utils/auth/telethon_setup.py +0 -97
  89. sticker_convert/utils/singletons.py +0 -18
  90. {sticker_convert-2.13.3.0.dist-info → sticker_convert-2.17.0.0.dist-info}/WHEEL +0 -0
  91. {sticker_convert-2.13.3.0.dist-info → sticker_convert-2.17.0.0.dist-info}/entry_points.txt +0 -0
  92. {sticker_convert-2.13.3.0.dist-info → sticker_convert-2.17.0.0.dist-info}/licenses/LICENSE +0 -0
  93. {sticker_convert-2.13.3.0.dist-info → sticker_convert-2.17.0.0.dist-info}/top_level.txt +0 -0
@@ -1,168 +1,168 @@
1
- #!/usr/bin/env python3
2
- import platform
3
- from functools import partial
4
- from pathlib import Path
5
- from subprocess import Popen
6
- from threading import Thread
7
- from tkinter import filedialog
8
- from typing import Any
9
-
10
- from ttkbootstrap import Button, Entry, Frame, Label # type: ignore
11
-
12
- from sticker_convert.gui_components.gui_utils import GUIUtils
13
- from sticker_convert.gui_components.windows.base_window import BaseWindow
14
- from sticker_convert.utils.auth.get_viber_auth import GetViberAuth
15
-
16
-
17
- class ViberGetAuthWindow(BaseWindow):
18
- def __init__(self, *args: Any, **kwargs: Any) -> None:
19
- super().__init__(*args, **kwargs)
20
-
21
- self.title("Get Viber auth data")
22
-
23
- self.cb_msg_block_viber = partial(self.gui.cb_msg_block, parent=self)
24
- self.cb_ask_str_viber = partial(self.gui.cb_ask_str, parent=self)
25
-
26
- self.frame_info = Frame(self.scrollable_frame)
27
- self.frame_btns = Frame(self.scrollable_frame)
28
- self.frame_config = Frame(self.scrollable_frame)
29
-
30
- self.frame_info.grid(column=0, row=0, sticky="news", padx=3, pady=3)
31
- self.frame_btns.grid(column=0, row=1, sticky="news", padx=3, pady=3)
32
- self.frame_config.grid(column=0, row=2, sticky="news", padx=3, pady=3)
33
-
34
- # Info frame
35
- self.explanation_lbl0 = Label(
36
- self.frame_info,
37
- text="Please install Viber Desktop and login first.",
38
- justify="left",
39
- anchor="w",
40
- )
41
- self.explanation_lbl1 = Label(
42
- self.frame_info,
43
- text="It may take a minute to get auth data.",
44
- justify="left",
45
- anchor="w",
46
- )
47
- self.explanation_lbl2 = None
48
- if platform.system() == "Darwin":
49
- self.explanation_lbl2 = Label(
50
- self.frame_info,
51
- text="You need to disable SIP and may be asked for user password.",
52
- justify="left",
53
- anchor="w",
54
- )
55
- else:
56
- self.explanation_lbl2 = Label(
57
- self.frame_info,
58
- text="You may be asked for admin password.",
59
- justify="left",
60
- anchor="w",
61
- )
62
- if platform.system() != "Darwin":
63
- self.explanation_lbl3 = Label(
64
- self.frame_info,
65
- text="Note: This will download ProcDump and read memory of Viber Desktop",
66
- justify="left",
67
- anchor="w",
68
- )
69
- else:
70
- self.explanation_lbl3 = Label(
71
- self.frame_info,
72
- text="Note: This will read memory of Viber Desktop",
73
- justify="left",
74
- anchor="w",
75
- )
76
-
77
- self.explanation_lbl0.grid(column=0, row=0, sticky="w", padx=3, pady=3)
78
- self.explanation_lbl1.grid(column=0, row=1, sticky="w", padx=3, pady=3)
79
- self.explanation_lbl2.grid(column=0, row=2, sticky="w", padx=3, pady=3)
80
- self.explanation_lbl3.grid(column=0, row=3, sticky="w", padx=3, pady=3)
81
-
82
- # Start button frame
83
- self.launch_btn = Button(
84
- self.frame_btns,
85
- text="Launch Viber Desktop",
86
- command=self.cb_launch_viber,
87
- bootstyle="secondary", # type: ignore
88
- )
89
-
90
- self.get_cred_btn = Button(
91
- self.frame_btns,
92
- text="Get auth data",
93
- command=self.cb_get_cred,
94
- bootstyle="default", # type: ignore
95
- )
96
-
97
- self.launch_btn.pack()
98
- self.get_cred_btn.pack()
99
-
100
- # Config frame
101
- self.setdir_lbl = Label(
102
- self.frame_config,
103
- text=self.gui.help["cred"]["viber_bin_path"],
104
- justify="left",
105
- anchor="w",
106
- )
107
-
108
- self.setdir_entry = Entry(
109
- self.frame_config,
110
- textvariable=self.gui.viber_bin_path_var,
111
- width=32,
112
- )
113
- self.setdir_btn = Button(
114
- self.frame_config,
115
- text="Choose",
116
- command=self.cb_setdir,
117
- width=8,
118
- bootstyle="secondary", # type: ignore
119
- )
120
-
121
- self.setdir_lbl.grid(column=0, row=0, columnspan=2, sticky="w", padx=3, pady=3)
122
- self.setdir_entry.grid(column=0, row=1, sticky="w", padx=3, pady=3)
123
- self.setdir_btn.grid(column=1, row=1, sticky="e", padx=3, pady=3)
124
-
125
- GUIUtils.finalize_window(self)
126
-
127
- def cb_get_cred(self) -> None:
128
- Thread(target=self.cb_get_cred_thread, daemon=True).start()
129
-
130
- def cb_get_cred_thread(self) -> None:
131
- m = GetViberAuth(self.cb_ask_str_viber)
132
-
133
- viber_bin_path = None
134
- if self.gui.viber_bin_path_var.get():
135
- viber_bin_path = self.gui.viber_bin_path_var.get()
136
-
137
- viber_auth, msg = m.get_cred(viber_bin_path)
138
-
139
- if viber_auth:
140
- if not self.gui.creds.get("viber"):
141
- self.gui.creds["viber"] = {}
142
- self.gui.creds["viber"]["auth"] = viber_auth
143
- self.gui.viber_auth_var.set(viber_auth)
144
-
145
- self.gui.save_creds()
146
- self.gui.highlight_fields()
147
-
148
- self.cb_msg_block_viber(msg)
149
-
150
- def cb_launch_viber(self) -> None:
151
- m = GetViberAuth(self.cb_ask_str_viber)
152
- viber_bin_path = m.get_viber_desktop()
153
-
154
- if self.gui.viber_auth_var.get():
155
- viber_bin_path = self.gui.viber_auth_var.get()
156
-
157
- if viber_bin_path:
158
- Popen([viber_bin_path])
159
- else:
160
- self.cb_msg_block_viber("Error: Viber Desktop not installed.")
161
-
162
- def cb_setdir(self) -> None:
163
- orig_input_dir = self.gui.viber_bin_path_var.get()
164
- if not Path(orig_input_dir).is_dir():
165
- orig_input_dir = ""
166
- input_dir = filedialog.askdirectory(initialdir=orig_input_dir)
167
- if input_dir:
168
- self.gui.viber_bin_path_var.set(input_dir)
1
+ #!/usr/bin/env python3
2
+ import platform
3
+ from pathlib import Path
4
+ from subprocess import Popen
5
+ from threading import Thread
6
+ from tkinter import filedialog
7
+ from typing import Any
8
+
9
+ from ttkbootstrap import Button, Entry, Frame, Label # type: ignore
10
+
11
+ from sticker_convert.auth.auth_viber import AuthViber
12
+ from sticker_convert.gui_components.gui_utils import GUIUtils
13
+ from sticker_convert.gui_components.windows.base_window import BaseWindow
14
+ from sticker_convert.utils.translate import I
15
+
16
+
17
+ class ViberGetAuthWindow(BaseWindow):
18
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
19
+ super().__init__(*args, **kwargs)
20
+
21
+ self.title(I("Get Viber auth data"))
22
+
23
+ self.frame_info = Frame(self.scrollable_frame)
24
+ self.frame_btns = Frame(self.scrollable_frame)
25
+ self.frame_config = Frame(self.scrollable_frame)
26
+
27
+ self.frame_info.grid(column=0, row=0, sticky="news", padx=3, pady=3)
28
+ self.frame_btns.grid(column=0, row=1, sticky="news", padx=3, pady=3)
29
+ self.frame_config.grid(column=0, row=2, sticky="news", padx=3, pady=3)
30
+
31
+ # Info frame
32
+ self.explanation_lbl0 = Label(
33
+ self.frame_info,
34
+ text=I("Please install Viber Desktop and login first."),
35
+ justify="left",
36
+ anchor="w",
37
+ )
38
+ self.explanation_lbl1 = Label(
39
+ self.frame_info,
40
+ text=I("It may take a minute to get auth data."),
41
+ justify="left",
42
+ anchor="w",
43
+ )
44
+ self.explanation_lbl2 = None
45
+ if platform.system() == "Darwin":
46
+ self.explanation_lbl2 = Label(
47
+ self.frame_info,
48
+ text=I("You need to disable SIP and may be asked for user password."),
49
+ justify="left",
50
+ anchor="w",
51
+ )
52
+ else:
53
+ self.explanation_lbl2 = Label(
54
+ self.frame_info,
55
+ text=I("You may be asked for admin password."),
56
+ justify="left",
57
+ anchor="w",
58
+ )
59
+ if platform.system() != "Darwin":
60
+ self.explanation_lbl3 = Label(
61
+ self.frame_info,
62
+ text=I(
63
+ "Note: This will download ProcDump and read memory of Viber Desktop"
64
+ ),
65
+ justify="left",
66
+ anchor="w",
67
+ )
68
+ else:
69
+ self.explanation_lbl3 = Label(
70
+ self.frame_info,
71
+ text=I("Note: This will read memory of Viber Desktop"),
72
+ justify="left",
73
+ anchor="w",
74
+ )
75
+
76
+ self.explanation_lbl0.grid(column=0, row=0, sticky="w", padx=3, pady=3)
77
+ self.explanation_lbl1.grid(column=0, row=1, sticky="w", padx=3, pady=3)
78
+ self.explanation_lbl2.grid(column=0, row=2, sticky="w", padx=3, pady=3)
79
+ self.explanation_lbl3.grid(column=0, row=3, sticky="w", padx=3, pady=3)
80
+
81
+ # Start button frame
82
+ self.launch_btn = Button(
83
+ self.frame_btns,
84
+ text=I("Launch Viber Desktop"),
85
+ command=self.cb_launch_viber,
86
+ bootstyle="secondary", # type: ignore
87
+ )
88
+
89
+ self.get_cred_btn = Button(
90
+ self.frame_btns,
91
+ text=I("Get auth data"),
92
+ command=self.cb_get_cred,
93
+ bootstyle="default", # type: ignore
94
+ )
95
+
96
+ self.launch_btn.pack()
97
+ self.get_cred_btn.pack()
98
+
99
+ # Config frame
100
+ self.setdir_lbl = Label(
101
+ self.frame_config,
102
+ text=self.gui.help["cred"]["viber_bin_path"],
103
+ justify="left",
104
+ anchor="w",
105
+ )
106
+
107
+ self.setdir_entry = Entry(
108
+ self.frame_config,
109
+ textvariable=self.gui.viber_bin_path_var,
110
+ width=32,
111
+ )
112
+ self.setdir_btn = Button(
113
+ self.frame_config,
114
+ text=I("Choose"),
115
+ command=self.cb_setdir,
116
+ width=8,
117
+ bootstyle="secondary", # type: ignore
118
+ )
119
+
120
+ self.setdir_lbl.grid(column=0, row=0, columnspan=2, sticky="w", padx=3, pady=3)
121
+ self.setdir_entry.grid(column=0, row=1, sticky="w", padx=3, pady=3)
122
+ self.setdir_btn.grid(column=1, row=1, sticky="e", padx=3, pady=3)
123
+
124
+ GUIUtils.finalize_window(self)
125
+
126
+ def cb_get_cred(self) -> None:
127
+ Thread(target=self.cb_get_cred_thread, daemon=True).start()
128
+
129
+ def cb_get_cred_thread(self) -> None:
130
+ m = AuthViber(self.gui.get_opt_cred(), self.gui.cb)
131
+
132
+ viber_bin_path = None
133
+ if self.gui.viber_bin_path_var.get():
134
+ viber_bin_path = self.gui.viber_bin_path_var.get()
135
+
136
+ viber_auth, msg = m.get_cred(viber_bin_path)
137
+
138
+ if viber_auth:
139
+ if not self.gui.creds.get("viber"):
140
+ self.gui.creds["viber"] = {}
141
+ self.gui.creds["viber"]["auth"] = viber_auth
142
+ self.gui.viber_auth_var.set(viber_auth)
143
+
144
+ self.gui.save_creds()
145
+ self.gui.highlight_fields()
146
+
147
+ self.gui.cb.put(("msg_block", None, {"message": msg, "parent": self}))
148
+
149
+ def cb_launch_viber(self) -> None:
150
+ m = AuthViber(self.gui.get_opt_cred(), self.gui.cb)
151
+ viber_bin_path = m.get_viber_desktop()
152
+
153
+ if self.gui.viber_bin_path_var.get():
154
+ viber_bin_path = self.gui.viber_bin_path_var.get()
155
+
156
+ if viber_bin_path:
157
+ Popen([viber_bin_path])
158
+ else:
159
+ msg = "Error: Viber Desktop not installed."
160
+ self.gui.cb.put(("msg_block", None, {"message": msg, "parent": self}))
161
+
162
+ def cb_setdir(self) -> None:
163
+ orig_input_dir = self.gui.viber_bin_path_var.get()
164
+ if not Path(orig_input_dir).is_dir():
165
+ orig_input_dir = ""
166
+ input_dir = filedialog.askdirectory(initialdir=orig_input_dir)
167
+ if input_dir:
168
+ self.gui.viber_bin_path_var.set(input_dir)
@@ -1,3 +1,3 @@
1
- # These are supported funding model platforms
2
-
3
- github: NiklasPeterson
1
+ # These are supported funding model platforms
2
+
3
+ github: NiklasPeterson
@@ -1,10 +1,10 @@
1
- # ios-message-stickers-template
2
-
3
- I have also created an Figma file with the templates for creating the stickers & iMessage App Icon.
4
- You can find it here: https://www.figma.com/community/file/894284318358585629/iOS-iMessage-Stickers-Template
5
-
6
-
7
- ## Links
8
- Video tutorial: https://developer.apple.com/videos/play/tutorials/building-sticker-packs/
9
- Documentation: https://developer.apple.com/documentation/messages
10
- General info: https://developer.apple.com/imessage/
1
+ # ios-message-stickers-template
2
+
3
+ I have also created an Figma file with the templates for creating the stickers & iMessage App Icon.
4
+ You can find it here: https://www.figma.com/community/file/894284318358585629/iOS-iMessage-Stickers-Template
5
+
6
+
7
+ ## Links
8
+ Video tutorial: https://developer.apple.com/videos/play/tutorials/building-sticker-packs/
9
+ Documentation: https://developer.apple.com/documentation/messages
10
+ General info: https://developer.apple.com/imessage/
@@ -1,43 +1,43 @@
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>CFBundleDevelopmentRegion</key>
6
- <string>$(DEVELOPMENT_LANGUAGE)</string>
7
- <key>CFBundleDisplayName</key>
8
- <string>Stickers</string>
9
- <key>CFBundleExecutable</key>
10
- <string>$(EXECUTABLE_NAME)</string>
11
- <key>CFBundleIdentifier</key>
12
- <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
13
- <key>CFBundleInfoDictionaryVersion</key>
14
- <string>6.0</string>
15
- <key>CFBundleName</key>
16
- <string>$(PRODUCT_NAME)</string>
17
- <key>CFBundlePackageType</key>
18
- <string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
19
- <key>CFBundleShortVersionString</key>
20
- <string>1.0</string>
21
- <key>CFBundleVersion</key>
22
- <string>1</string>
23
- <key>LSRequiresIPhoneOS</key>
24
- <true/>
25
- <key>UILaunchStoryboardName</key>
26
- <string>LaunchScreen</string>
27
- <key>UIRequiredDeviceCapabilities</key>
28
- <array/>
29
- <key>UISupportedInterfaceOrientations</key>
30
- <array>
31
- <string>UIInterfaceOrientationPortrait</string>
32
- <string>UIInterfaceOrientationLandscapeLeft</string>
33
- <string>UIInterfaceOrientationLandscapeRight</string>
34
- </array>
35
- <key>UISupportedInterfaceOrientations~ipad</key>
36
- <array>
37
- <string>UIInterfaceOrientationPortrait</string>
38
- <string>UIInterfaceOrientationPortraitUpsideDown</string>
39
- <string>UIInterfaceOrientationLandscapeLeft</string>
40
- <string>UIInterfaceOrientationLandscapeRight</string>
41
- </array>
42
- </dict>
43
- </plist>
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>CFBundleDevelopmentRegion</key>
6
+ <string>$(DEVELOPMENT_LANGUAGE)</string>
7
+ <key>CFBundleDisplayName</key>
8
+ <string>Stickers</string>
9
+ <key>CFBundleExecutable</key>
10
+ <string>$(EXECUTABLE_NAME)</string>
11
+ <key>CFBundleIdentifier</key>
12
+ <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
13
+ <key>CFBundleInfoDictionaryVersion</key>
14
+ <string>6.0</string>
15
+ <key>CFBundleName</key>
16
+ <string>$(PRODUCT_NAME)</string>
17
+ <key>CFBundlePackageType</key>
18
+ <string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
19
+ <key>CFBundleShortVersionString</key>
20
+ <string>1.0</string>
21
+ <key>CFBundleVersion</key>
22
+ <string>1</string>
23
+ <key>LSRequiresIPhoneOS</key>
24
+ <true/>
25
+ <key>UILaunchStoryboardName</key>
26
+ <string>LaunchScreen</string>
27
+ <key>UIRequiredDeviceCapabilities</key>
28
+ <array/>
29
+ <key>UISupportedInterfaceOrientations</key>
30
+ <array>
31
+ <string>UIInterfaceOrientationPortrait</string>
32
+ <string>UIInterfaceOrientationLandscapeLeft</string>
33
+ <string>UIInterfaceOrientationLandscapeRight</string>
34
+ </array>
35
+ <key>UISupportedInterfaceOrientations~ipad</key>
36
+ <array>
37
+ <string>UIInterfaceOrientationPortrait</string>
38
+ <string>UIInterfaceOrientationPortraitUpsideDown</string>
39
+ <string>UIInterfaceOrientationLandscapeLeft</string>
40
+ <string>UIInterfaceOrientationLandscapeRight</string>
41
+ </array>
42
+ </dict>
43
+ </plist>
@@ -1,31 +1,31 @@
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>CFBundleDevelopmentRegion</key>
6
- <string>$(DEVELOPMENT_LANGUAGE)</string>
7
- <key>CFBundleDisplayName</key>
8
- <string>Stickers</string>
9
- <key>CFBundleExecutable</key>
10
- <string>$(EXECUTABLE_NAME)</string>
11
- <key>CFBundleIdentifier</key>
12
- <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
13
- <key>CFBundleInfoDictionaryVersion</key>
14
- <string>6.0</string>
15
- <key>CFBundleName</key>
16
- <string>$(PRODUCT_NAME)</string>
17
- <key>CFBundlePackageType</key>
18
- <string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
19
- <key>CFBundleShortVersionString</key>
20
- <string>1.0</string>
21
- <key>CFBundleVersion</key>
22
- <string>1</string>
23
- <key>NSExtension</key>
24
- <dict>
25
- <key>NSExtensionPointIdentifier</key>
26
- <string>com.apple.message-payload-provider</string>
27
- <key>NSExtensionPrincipalClass</key>
28
- <string>StickerBrowserViewController</string>
29
- </dict>
30
- </dict>
31
- </plist>
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>CFBundleDevelopmentRegion</key>
6
+ <string>$(DEVELOPMENT_LANGUAGE)</string>
7
+ <key>CFBundleDisplayName</key>
8
+ <string>Stickers</string>
9
+ <key>CFBundleExecutable</key>
10
+ <string>$(EXECUTABLE_NAME)</string>
11
+ <key>CFBundleIdentifier</key>
12
+ <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
13
+ <key>CFBundleInfoDictionaryVersion</key>
14
+ <string>6.0</string>
15
+ <key>CFBundleName</key>
16
+ <string>$(PRODUCT_NAME)</string>
17
+ <key>CFBundlePackageType</key>
18
+ <string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
19
+ <key>CFBundleShortVersionString</key>
20
+ <string>1.0</string>
21
+ <key>CFBundleVersion</key>
22
+ <string>1</string>
23
+ <key>NSExtension</key>
24
+ <dict>
25
+ <key>NSExtensionPointIdentifier</key>
26
+ <string>com.apple.message-payload-provider</string>
27
+ <key>NSExtensionPrincipalClass</key>
28
+ <string>StickerBrowserViewController</string>
29
+ </dict>
30
+ </dict>
31
+ </plist>
@@ -1,6 +1,6 @@
1
- {
2
- "info" : {
3
- "author" : "xcode",
4
- "version" : 1
5
- }
6
- }
1
+ {
2
+ "info" : {
3
+ "author" : "xcode",
4
+ "version" : 1
5
+ }
6
+ }
@@ -1,20 +1,20 @@
1
- {
2
- "info" : {
3
- "author" : "xcode",
4
- "version" : 1
5
- },
6
- "properties" : {
7
- "grid-size" : "regular"
8
- },
9
- "stickers" : [
10
- {
11
- "filename" : "Sticker 1.sticker"
12
- },
13
- {
14
- "filename" : "Sticker 2.sticker"
15
- },
16
- {
17
- "filename" : "Sticker 3.sticker"
18
- }
19
- ]
20
- }
1
+ {
2
+ "info" : {
3
+ "author" : "xcode",
4
+ "version" : 1
5
+ },
6
+ "properties" : {
7
+ "grid-size" : "regular"
8
+ },
9
+ "stickers" : [
10
+ {
11
+ "filename" : "Sticker 1.sticker"
12
+ },
13
+ {
14
+ "filename" : "Sticker 2.sticker"
15
+ },
16
+ {
17
+ "filename" : "Sticker 3.sticker"
18
+ }
19
+ ]
20
+ }
@@ -1,9 +1,9 @@
1
- {
2
- "info" : {
3
- "author" : "xcode",
4
- "version" : 1
5
- },
6
- "properties" : {
7
- "filename" : "Sticker 1.png"
8
- }
9
- }
1
+ {
2
+ "info" : {
3
+ "author" : "xcode",
4
+ "version" : 1
5
+ },
6
+ "properties" : {
7
+ "filename" : "Sticker 1.png"
8
+ }
9
+ }
@@ -1,9 +1,9 @@
1
- {
2
- "info" : {
3
- "author" : "xcode",
4
- "version" : 1
5
- },
6
- "properties" : {
7
- "filename" : "Sticker 2.png"
8
- }
9
- }
1
+ {
2
+ "info" : {
3
+ "author" : "xcode",
4
+ "version" : 1
5
+ },
6
+ "properties" : {
7
+ "filename" : "Sticker 2.png"
8
+ }
9
+ }
@@ -1,9 +1,9 @@
1
- {
2
- "info" : {
3
- "author" : "xcode",
4
- "version" : 1
5
- },
6
- "properties" : {
7
- "filename" : "Sticker 3.png"
8
- }
9
- }
1
+ {
2
+ "info" : {
3
+ "author" : "xcode",
4
+ "version" : 1
5
+ },
6
+ "properties" : {
7
+ "filename" : "Sticker 3.png"
8
+ }
9
+ }