fastlane-plugin-appbox 1.5.0 → 3.5.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3425510a4b6b516998065f017c5575eae37183729a9a330b0664466bb5fd6f25
4
- data.tar.gz: e50c4ea9c031b207e2c5087407036889b37ed17bd057cb947efc2ad803fd239c
3
+ metadata.gz: 8a3d1c761409556356ec39f0991325907fcb51f6d3cdc003500f22818a0d31ab
4
+ data.tar.gz: 907b7f796e46350974092ea21e578c2fae8af565d3075b5ebc11f6f7038c6516
5
5
  SHA512:
6
- metadata.gz: 47a5bdf29d6d713a1340da7a8ed1683f5e2ac1588ad5529cb35b05e9937e9014a799a896f443f6408b01cca809db1633d9feaeed5678f78d76ca9e0ecce41c54
7
- data.tar.gz: b94c2db92add15ab26cf3d93249d54d2a3d149c270bf12261b763fdb23c6ee99794c3928c23c5c9131472ee3b5901eff50eed33205292f6b496080de32218115
6
+ metadata.gz: 547103bab6e974465c46c235af121279b801d400680c2f1b034dc6a0c8ea9e38a5ef64c0431f4840d1cf60b2d87018167c22d445d4233d2acf00ed40336532ea
7
+ data.tar.gz: 0d08e26a75304f1c8563c850f0dd5e6ecd500daa536bf7527b637f2c5e651bdf22630343a17521f3ce3a49cbc2087033e5dd39e59283ef5a97d23a77a231f3f1
data/README.md CHANGED
@@ -117,20 +117,20 @@ platform :ios do
117
117
  gym
118
118
  appbox(
119
119
  emails: 'you@example.com,'someoneelse@example.com',
120
- appbox_path:'/Users/vineetchoudhary/Desktop/AppBox2.8.0/AppBox.app',
120
+ appbox_path:'/Users/vineetchoudhary/Desktop/AppBox3.4.0/AppBox.app',
121
121
  )
122
122
  end
123
123
  end
124
124
  ```
125
125
 
126
+ #### Note
127
+ When you run this for the first time, a pop-up will appear stating that "Terminal.app" wants to access data from other apps. You must allow this to copy the IPA file to the Appbox temporary directory, enabling Appbox to access and upload it.
128
+ ![](/AppBox-Fastlane-Demo-Project/images/terminal-permission.webp)
129
+
126
130
  ## 3. Supported AppBox link access via Fastlane SharedValues
127
131
  - `APPBOX_SHARE_URL` - AppBox short shareable URL to install uploaded application.
128
132
  - `APPBOX_IPA_URL`- Upload IPA file URL to download IPA file.
129
133
  - `APPBOX_MANIFEST_URL` - Manifest file URL for upload application.
130
- - `APPBOX_LONG_SHARE_UR` - AppBox long shareable URL to install uploaded application.
131
-
132
- ![](/AppBox-Fastlane-Demo-Project/AppBoxFastlane.gif)
133
-
134
134
 
135
135
  ## 4. About AppBox
136
136
  [AppBox](https://getappbox.com) is a tool for iOS developers to build and deploy Development, Ad-Hoc and In-house (Enterprise) applications directly to the devices from your Dropbox account. Also, available on [Github](https://github.com/vineetchoudhary/AppBox-iOSAppsWirelessInstallation).
@@ -8,87 +8,102 @@ module Fastlane
8
8
  APPBOX_IPA_URL = :APPBOX_IPA_URL
9
9
  APPBOX_SHARE_URL = :APPBOX_SHARE_URL
10
10
  APPBOX_MANIFEST_URL = :APPBOX_MANIFEST_URL
11
- APPBOX_LONG_SHARE_URL = :APPBOX_LONG_SHARE_URL
12
11
  end
13
12
 
14
13
  class AppboxAction < Action
15
14
  def self.run(params)
16
- UI.message(params)
15
+
16
+ #custom dropbox folder name
17
+ if params[:dropbox_folder_name]
18
+ dropbox_folder_name = params[:dropbox_folder_name]
19
+ UI.message("Dropbox folder name - #{dropbox_folder_name}")
20
+ end
21
+
22
+ #AppBox CLI
23
+ appboxcli = "appboxcli"
24
+ appboxcli_path = `which #{appboxcli}`.strip
25
+ if appboxcli_path.empty?
26
+ UI.error("AppBox CLI not found. Please install AppBox CLI first. Read more here - https://docs.getappbox.com/Installation/MacOS/#command-line-interface-cli")
27
+ exit
28
+ end
17
29
 
18
30
  ipa_path = Actions.lane_context[ Actions::SharedValues::IPA_OUTPUT_PATH ]
31
+ ipa_file_name = File.basename(ipa_path)
19
32
  UI.message("IPA PATH - #{ipa_path}")
20
33
 
21
- #emails param
34
+ # Start AppBox
35
+ UI.message("")
36
+ UI.message("Starting AppBox...")
37
+ UI.message("Upload process will start soon. Upload process might take a few minutes. Please don't interrupt the script.")
38
+
39
+ command = "#{appboxcli} --ipa '#{ipa_path}'"
40
+
41
+ #Add emails param in command
22
42
  if params[:emails]
23
- emails = params[:emails]
24
- UI.message("Emails - #{emails}")
43
+ command << " --emails '#{params[:emails]}'"
44
+ UI.message("Emails - #{params[:emails]}")
25
45
  end
26
46
 
27
- #developer personal message param
47
+ #Add message param in command
28
48
  if params[:message]
29
- message = params[:message]
30
- UI.message("Message - #{message}")
49
+ command << " --message '#{params[:message]}'"
50
+ UI.message("Message - #{params[:message]}")
31
51
  end
32
52
 
33
- #keep same linkparam
34
- if params[:keep_same_link]
35
- keep_same_link = params[:keep_same_link]
36
- UI.message("Keep Same Link - #{keep_same_link}")
53
+ #Add Keep Same Link param in command
54
+ if params[:keep_same_link] == true
55
+ command << " --keepsamelink"
56
+ UI.message("Keep Same Link - #{params[:keep_same_link]}")
37
57
  end
38
58
 
39
- #custom dropbox folder name
40
- if params[:dropbox_folder_name]
41
- dropbox_folder_name = params[:dropbox_folder_name]
42
- UI.message("Dropbox folder name - #{dropbox_folder_name}")
59
+ #Add dropbox folder name param in command
60
+ if dropbox_folder_name
61
+ command << " --dbfolder '#{dropbox_folder_name}'"
62
+ UI.message("Dropbox Folder Name - #{dropbox_folder_name}")
43
63
  end
44
64
 
45
- #AppBox Path
46
- if params[:appbox_path]
47
- appbox_path = "#{params[:appbox_path]}/Contents/MacOS/AppBox"
48
- else
49
- appbox_path = "/Applications/AppBox.app/Contents/MacOS/AppBox"
65
+ #Add Slack Webhook URL param in command
66
+ if params[:slack_webhook_url]
67
+ command << " --slackwebhook '#{params[:slack_webhook_url]}'"
68
+ UI.message("Slack Webhook URL - #{params[:slack_webhook_url]}")
50
69
  end
51
70
 
52
- #Check if AppBox exist at given path
53
- if File.file?(appbox_path)
54
- UI.message("AppBox Path - #{appbox_path}")
55
-
56
- # Start AppBox
57
- UI.message("Starting AppBox...")
58
- if dropbox_folder_name
59
- exit_status = system("exec #{appbox_path} ipa='#{ipa_path}' email='#{emails}' message='#{message}' keepsamelink=#{keep_same_link} dbfolder='#{dropbox_folder_name}'")
60
- else
61
- exit_status = system("exec #{appbox_path} ipa='#{ipa_path}' email='#{emails}' message='#{message}' keepsamelink='#{keep_same_link}'")
62
- end
63
-
64
- # Print upload status
65
- if exit_status
66
-
67
- # Check if share url file exist and print value
68
- share_url_file_path = "#{Dir.home}/.appbox_share_value.json"
69
- if File.file?(share_url_file_path)
70
- file = File.read(share_url_file_path)
71
- share_urls_values = JSON.parse(file)
72
-
73
- Actions.lane_context[SharedValues::APPBOX_IPA_URL] = share_urls_values['APPBOX_IPA_URL']
74
- Actions.lane_context[SharedValues::APPBOX_SHARE_URL] = share_urls_values['APPBOX_SHARE_URL']
75
- Actions.lane_context[SharedValues::APPBOX_MANIFEST_URL] = share_urls_values['APPBOX_MANIFEST_URL']
76
- Actions.lane_context[SharedValues::APPBOX_LONG_SHARE_URL] = share_urls_values['APPBOX_LONG_SHARE_URL']
71
+ #Add MS Teams Webhook URL param in command
72
+ if params[:ms_teams_webhook_url]
73
+ command << " --msteamswebhook '#{params[:ms_teams_webhook_url]}'"
74
+ UI.message("MS Teams Webhook URL - #{params[:ms_teams_webhook_url]}")
75
+ end
77
76
 
78
- FastlaneCore::PrintTable.print_values(config: share_urls_values, hide_keys: [], title: "Summary for AppBox")
79
- end
77
+ #Add Webhook Message param in command
78
+ if params[:webhook_message]
79
+ command << " --webhookmessage '#{params[:webhook_message]}'"
80
+ UI.message("Webhook Message - #{params[:webhook_message]}")
81
+ end
80
82
 
81
- UI.success('AppBox finished successfully')
82
- else
83
- UI.error('AppBox finished with errors')
84
- UI.message('Please feel free to open an issue on the project GitHub page. Please include a description of what is not working right with your issue. https://github.com/getappbox/fastlane-plugin-appbox/issues/new')
85
- exit
83
+ UI.message("AppBox Command - #{command}")
84
+
85
+ # Execute command
86
+ exit_status = system("exec #{command}")
87
+
88
+ # Print upload status
89
+ if exit_status
90
+ UI.success("Successfully uploaded the IPA file to DropBox. Check below summary for more details.")
91
+ # Check if share url file exist and print value
92
+ share_url_file_path = File.join(File.expand_path('~'), ".appbox_share_value.json")
93
+ if File.file?(share_url_file_path)
94
+ file = File.read(share_url_file_path)
95
+ share_urls_values = JSON.parse(file)
96
+ Actions.lane_context[SharedValues::APPBOX_IPA_URL] = share_urls_values['APPBOX_IPA_URL']
97
+ Actions.lane_context[SharedValues::APPBOX_SHARE_URL] = share_urls_values['APPBOX_SHARE_URL']
98
+ Actions.lane_context[SharedValues::APPBOX_MANIFEST_URL] = share_urls_values['APPBOX_MANIFEST_URL']
99
+ FastlaneCore::PrintTable.print_values(config: share_urls_values, hide_keys: [], title: "Summary for AppBox")
86
100
  end
87
- else
88
- UI.error("AppBox not found at path #{appbox_path}. Please download (https://getappbox.com/download) and install appbox first. ")
101
+ UI.success('AppBox finished successfully')
102
+ else
103
+ UI.error('AppBox finished with errors')
104
+ UI.message('Please feel free to open an issue on the project GitHub page. Please include a description of what is not working right with your issue. https://github.com/getappbox/fastlane-plugin-appbox/issues/new')
89
105
  exit
90
106
  end
91
-
92
107
  end
93
108
 
94
109
  def self.output
@@ -96,7 +111,6 @@ module Fastlane
96
111
  ['APPBOX_IPA_URL', 'Upload IPA file URL to download IPA file.'],
97
112
  ['APPBOX_MANIFEST_URL', 'Manifest file URL for upload application.'],
98
113
  ['APPBOX_SHARE_URL', 'AppBox short shareable URL to install uploaded application.'],
99
- ['APPBOX_LONG_SHARE_URL', 'AppBox long shareable URL to install uploaded application.']
100
114
  ]
101
115
  end
102
116
 
@@ -117,16 +131,11 @@ module Fastlane
117
131
  FastlaneCore::ConfigItem.new(key: :emails,
118
132
  env_name: "FL_APPBOX_EMAILS",
119
133
  description: "Comma-separated list of email address that should receive application installation link",
120
- optional: false),
121
-
122
- FastlaneCore::ConfigItem.new(key: :appbox_path,
123
- env_name: "FL_APPBOX_PATH",
124
- description: "If you've setup AppBox in the different directory then you need to mention that here. Default is '/Applications/AppBox.app'",
125
134
  optional: true),
126
135
 
127
136
  FastlaneCore::ConfigItem.new(key: :message,
128
137
  env_name: "FL_APPBOX_MESSAGE",
129
- description: "Attach personal message in the email. Supported Keywords: The {PROJECT_NAME} - For Project Name, {BUILD_VERSION} - For Build Version, and {BUILD_NUMBER} - For Build Number",
138
+ description: "Attach personal message in the email. Supported Keywords: The {BUILD_NAME} - For Build Name, {BUILD_VERSION} - For Build Version, and {BUILD_NUMBER} - For Build Number",
130
139
  optional: true),
131
140
 
132
141
  FastlaneCore::ConfigItem.new(key: :keep_same_link,
@@ -140,6 +149,21 @@ module Fastlane
140
149
  env_name: "FL_APPBOX_DB_FOLDER_NAME",
141
150
  description: "You can change the link by providing a Custom Dropbox Folder Name. By default folder name will be the application bundle identifier. So, AppBox will keep the same link for the IPA file available in the same folder. Read more here - https://docs.getappbox.com/Features/keepsamelink/",
142
151
  optional: true),
152
+
153
+ FastlaneCore::ConfigItem.new(key: :slack_webhook_url,
154
+ env_name: "FL_APPBOX_SLACK_WEBHOOK_URL",
155
+ description: "Slack Incoming Webhook URL to send notification to a Slack channel",
156
+ optional: true),
157
+
158
+ FastlaneCore::ConfigItem.new(key: :ms_teams_webhook_url,
159
+ env_name: "FL_APPBOX_MS_TEAMS_WEBHOOK_URL",
160
+ description: "Microsoft Teams Incoming Webhook URL to send notification to a Teams channel",
161
+ optional: true),
162
+
163
+ FastlaneCore::ConfigItem.new(key: :webhook_message,
164
+ env_name: "FL_APPBOX_WEBHOOK_MESSAGE",
165
+ description: "Custom message to send along with Slack or Microsoft Teams notification. Supported Keywords: {BUILD_NAME}, {BUILD_VERSION}, {BUILD_NUMBER}, {SHARE_URL}",
166
+ optional: true),
143
167
  ]
144
168
  end
145
169
 
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
2
  module Appbox
3
- VERSION = "1.5.0"
3
+ VERSION = "3.5.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane-plugin-appbox
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 3.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vineet Choudhary
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-07-31 00:00:00.000000000 Z
11
+ date: 2025-09-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry
@@ -167,7 +167,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
167
167
  - !ruby/object:Gem::Version
168
168
  version: '0'
169
169
  requirements: []
170
- rubygems_version: 3.3.19
170
+ rubygems_version: 3.0.3.1
171
171
  signing_key:
172
172
  specification_version: 4
173
173
  summary: Deploy Development, Ad-Hoc and In-house (Enterprise) iOS applications directly