I am facing the following challenge: my electron project uses native modules that have no prebuilt versions for macOs and Windows, so currently I have to build it on different machines and can't utilize automatic build pipelines. Is there a way to prebuild native modules and have them "available" so I could do my windows build from a mac, my mac build from windows or both with a linux build machine?
I am not the owner or maintainer of these native modules.
Related
I'm installing Bazel so I can install mediapipe for Python on Windows 10. It says in the Bazel requirements:
The Windows SDK contains header files and libraries you need when
building Windows applications.
So I downloaded WinSDK and found out that the full installation requires 3.4GB. Is there a minimal set of features that I need to install from WinSDK for Bazel to work, so I can avoid installing the whole 3.4GB? This is the list of the WinSDK features:
Windows Performance Toolkit
Debugging Tools for Windows
Application Verifier For Windows
.NET Framework 4.8 Software Development Kit
Windows App Certification Kit
Windows IP Over USB
MSI Tools
Windows SDK Signing Tools for Desktop Apps
Windows SDK for UWP Managed Apps
Windows SDK for UWP C++ Apps
Windows SDK for UWP Apps Localization
Windows SDK for Desktop C++ x86 Apps
Windows SDK for Desktop C++ amd64 Apps
Windows SDK for Desktop C++ arm Apps
Windows SDK for Desktop C++ arm64 Apps
Windows SDK for Desktop C++ x86 Apps was enough (it auto selects its dependency packages as well).
I use a Debian Linux computer as my main development computer for Flutter apps for Android with Android Studio.
When I want to test an app on iOS, I need to pull the Flutter app source code from my source control system (GitLab) on my Apple macOS computer, build, deploy and run from there using Android Studio.
What I would like to do, is avoid the source control pull step in the process and initiate the iOS build, deploy and run on the Apple computer from the Android Studio on the Linux computer.
I consider the build, deploy and execute steps in Android studio as commands. I believe that those commands can be configured maybe through Gradle configuration files. If so, it should be possible to configure Android Studio and Gradle so that my Android Studio on Linux makes use of a remote Apple computer for the build, deploy and run either through an Xcode server or through an SSH server installed on the Mac.
At the moment, when I try a flutter build ios on my Linux machine, I get this expected error message:
Building for iOS is only supported on the Mac.
Does anyone have a solution to make this remote?
I know that Appollo does this for building apps. It's a python CLI tool that lets you connect to remote Macs. The CLI tool is open source so maybe you can find how they connect to the MacOS machines in their source code : https://github.com/Appollo-CLI/Appollo
I'm creating an app using electron and nodejs, when I try to build it with electron-builder using following command:
electron-builder --mac --linux --win --x64
it builds native modules only for my current os. Is there a way to build native modules for all operating systems?
you can't. https://www.electron.build/multi-platform-build
If your app has native dependency,
it can be compiled only on the target platform unless prebuild is not used.
prebuild is a solution, but most node modules don't provide prebuilt binaries.
macOS Code Signing works only on macOS. Cannot be fixed.
I was wondering if it's possible to build an iOS app with the cordova framework on a cross-platform Windows Build Agent : https://github.com/Microsoft/vsts-agent/blob/master/README.md
I'm using the Cordova build task: https://github.com/Microsoft/vsts-cordova-tasks, but I can't seem to run this on Windows.
Which prerequistes do I need to install on my Windows agent, or is it mandatory to have an OSX installation?
Thanks in advance,
Tim
You have to use an OSX agent to build iOS app. A more detailed instruction for this task can be found here: Build Apache Cordova apps and you can refer to Building iOS on OSX section for details.
I tried running command cordova platform add ios but when the command is executed always appears an error like in the picture.
How do I fix this?
Note:
I use NodeJS v0.10.25
Prerequisites
Before running any command-line tools, you need to install SDKs for each platform you wish to target.
To add support or rebuild a project for any platform, you need to run the command-line interface from the same machine that supports the platform's SDK. The CLI supports the following combinations:
iOS (Mac)
Android (Mac, Linux)
Blackberry (Mac, Windows)
Windows Phone 7 (Windows)
Windows Phone 8 (Windows)
http://docs.phonegap.com/en/edge/guide_platforms_ios_index.md.html