OpenMTP - 用于macOS的高级Android文件传输应用程序

网友投稿 2167 2022-10-23

OpenMTP - 用于macOS的高级Android文件传输应用程序

OpenMTP  - 用于macOS的高级Android文件传输应用程序

OpenMTP | Android File Transfer for macOS

Author: Ganesh RathinavelLicense: MITSystem Requirements: macOS 10.10 or higherWebsite URL: https://ganeshrvel.github.io/openmtpRepo URL: https://github.com/ganeshrvel/openmtpContacts: ganeshrvel@outlook.com

Introduction

Advanced Android File Transfer Application for macOS.

Transferring files between macOS and Android or any other MTP devices has always been a nightmare. There are a few File Transfer MTP apps which are available online but most of them are either too expensive or come with bad UI/UX. The official "Android File Transfer" app for macOS from Google comes with bugs, innumerable limitations, some of which include - not being able to transfer files larger than 4GB, frequent disconnections, unable to rename the folders or files on the android/MTP devices. Most of the other apps available online uses either WiFi or ADB protocol to transfer the files, which is an extremely time-consuming process.

Countless searches to find an app to solve these problems and failing to find one made me restless. So, I took the leap and decided to create an app for us that could help us have a smooth and hassle-free file transfer process from macOS to Android/MTP devices. Created with the objective of giving back to the community, we can all use this app for free in this lifetime.

Features

Safe, Transparent and Open-SourcePlug and Play via USB. No hassles, easy and instant connection.Select between Internal Memory and SD CardTransfer multiple files which are larger than 4GBDrag-and-drop supportSplit pane views for both Local Computer and Android deviceChoose between Grid and List view.Use Keyboard Shortcuts to navigate through your files.No collection of personally identifiable information.

Installation

Download the Latest Version Using Homebrew Caskbrew cask install openmtp Find the latest dmg file from GitHub Releases

Screengrabs

Keyboard Shortcuts

CommandKeyboard Shortcut
Deletebackspace
New Foldercommand (⌘)+n
Copycommand (⌘)+c
Copy to Queuecommand (⌘)+shift+c
Pastecommand (⌘)+v
Refreshcommand (⌘) +r
Folder Upcommand (⌘)+b
Select Allcommand (⌘)+a
Renamecommand (⌘)+d
Switch Tabcommand(⌘)+1
Openenter
Navigate Leftleft
Navigate Rightright
Navigate Upup
Navigate Downdown
Select Multiple Items Forward (in Grid View)shift+left
Select Multiple Items Backward (in Grid View)shift+right
Select Multiple Items Forward (in List View)shift+up
Select Multiple Items Backward (in List View)shift+down
Select Multiple Items (with mouse)command (⌘)+click or shift+click

Building from Source

Requirements: Node.js v10, Git and Yarn package manager

Clone

$ git clone --depth 1 --single-branch --branch master https://github.com/ganeshrvel/openmtp.git$ cd openmtp

$ yarn

Run

A fresh clone might throw undefined state error. Run the following commands once to fix the issue.

# For Mac and Linux$ UPGRADE_EXTENSIONS=1 npm run dev# For Windows$ set UPGRADE_EXTENSIONS=1 && npm run dev

# Development$ yarn dev# Pre-production$ yarn start

Package

Setup the code signing to build, package and publish the app.

App Notarization for macOS (skip this section for non macOS builds)

Rename sample.env file as .envUpdate APPLEID in .env fileLog into your Apple AccountGoto Security > App-Specific PasswordsClick on Generate Password..., enter a password label and click CreateCopy the displayed app-specific-passwordRun

security add-generic-password -a "" -w -s "ELECTRON_NOTORIZE_PASSWORD"

Log into your Apple App Store Connect Account and accept the presented terms and conditionsThe statuses shall turn Active

Packaging Instructions: https://electron.build/code-signing

$ export GH_TOKEN=""

# For local platform$ yarn package# For multiple platforms$ yarn package-all

Technical Features

Built using Electron v6, React v16.8, Redux v4, Webpack v4, Babel v7 and Material UI v4.2 and highly modularLoadables, dynamic reducer injection, selectors for efficient code. splitting and performance/startup optimisationHot module reload (HMR) for instant feedbackInbuilt error logging and profile/settings managementIndustry standard state managementJSS, SASS/SCSS stylingPort assigned: 4642

Configurations

config/env/env.dev.js and config/env/env.prod.js contain the PORT number of the app.config/dev-app-update.yml file holds the GitHub repo variables required by electron-updater.config/google-analytics-key.js file contains the Google Analytics Tracking ID.package.json build.publish object holds the values for publishing the packaged application.app/constants folder contains all the constants required by the app.

Debugging

Debugging Guide

https://github.com/electron-react-boilerplate/electron-react-boilerplate/issues/400

Dispatching redux actions from the main process

https://github.com/electron-react-boilerplate/electron-react-boilerplate/issues/118

https://github.com/electron-react-boilerplate/electron-react-boilerplate/issues/108

VM112:2 Uncaught TypeError: Cannot read property 'state' of undefined error

# For Mac and Linux$ UPGRADE_EXTENSIONS=1 npm run dev# For Windows$ set UPGRADE_EXTENSIONS=1 && npm run dev

Troubleshooting

Notarizing Electron apps throws - “You must first sign the relevant contracts online. (1048)” error

https://stackoverflow.com/questions/58358449/notarizing-electron-apps-throws-you-must-first-sign-the-relevant-contracts-on

More repos

npm: electron-root-pathElectron React Redux Advanced BoilerplateTutorial Series by Ganesh Rathinavel

Credits

Sincere thanks to Vladimir Menshakov for android-file-transfer-linux c++ library and for all his help and support that were extended towards this project. Thanks to Ms Ayushi Bothra for contributing to the documentation and pages. This app is built upon https://github.com/ganeshrvel/electron-react-redux-advanced-boilerplate which is a heavily modified fork of https://github.com/electron-react-boilerplate/electron-react-boilerplate. The icons used in the app were made by Prosymbols, Nikita Golubev, Those Icons, Kiranshastry, Elias Bikbulatov & Pixel perfect and were distributed by flaticon.com which is licensed under CC 3.0 BY. The "no image found" icon was made by Phonlaphat Thongsriphong.

Contribute

If you are interested in fixing issues and contributing directly to the code base, please see the guidelines.

Support OpenMTP

Help me keep the app FREE and open for all. Paypal: paypal.me/ganeshrvel

Contacts

Please feel free to contact me at ganeshrvel@outlook.com

License

OpenMTP | Android File Transfer for macOS is released under MIT License.

Copyright © 2018-Present Ganesh Rathinavel

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:J2SE for Android (Swing for Android)- 在 Android 上运行 J2SE 应用程序
下一篇:校赛总结
相关文章

 发表评论

暂时没有评论,来抢沙发吧~