Including External Packages in App for Jailbroken iOS Devices - ios

I am building an app that I eventually would like to release on Cydia, however I'm having trouble finding any good documentation on developing apps for jailbroken devices. So firstly, if you have any good links for developing for jailbroken iOS devices that would also be much appreciated!
My current problem is that for my app to work I would require tools from other packages on Cydia like otool and possibly some script interpreter (haven't decided which one yet). Is there a way that I can have these dependencies install alongside my current app in Cydia? I feel like I've seen it before downloading other apps.

Yes, absolutely.
When you build your app, you should make sure to bundle it as a Debian package. Some repositories will let you just give them a normal .app bundle, which they will then use to build a .deb file. But, if you want this, I'd recommend learning to build a .deb bundle yourself. More instructions from Saurik here.
Inside the .deb bundle, you will have a DEBIAN subdirectory, with a file inside named control:
DEBIAN/control
DEBIAN/postinst
DEBIAN/postrm
DEBIAN/preinst
The control file is where the Cydia store app description, the app version number (used by the store), and a bunch of other information goes. An optional field in the control file lets you specify that your app has dependencies. If you list another package as a dependency, that package will automatically get installed when Cydia installs your app. Something like this:
Depends: bigbosshackertools
This line is to specify a dependency on the BigBoss Recommended Tools package (which is a very large set of packages, so be aware that you're adding a large install set to your own app).
Or, you could try
Depends: odcctools
to use Saurik's Darwin CC Tools package.
I have been building jailbreak apps for a while, so I do it with homemade scripts, but there's now a tool for helping with this called iOSOpenDev. You could use that to build your package, and edit your control file, if you aren't already familiar with .deb packages, and don't want to bother (although I'd recommend learning).

Related

How to check if electron app is running a portable build?

I build an electron app that will be distributed as both portable and installable version.
I added electron-updater to get the installed version automatically updated. I see that portable version is downloading the update as well, even though it cannot update.
I am looking for a function isPortable() in electron to switch off autoupdater in portable app. For now i found out that I can check process.env.PORTABLE_EXECUTABLE_DIR for directory but I wonder if there is more straightforward option.

Electron-builder make simple executable instead of installer

I made an Electron app, but it is unnecessarily trying to install itself on some platforms. My app is very simple enough that it makes more sense to be a non-installing executable. Is there an option for this?
You can set target to portable . This will directly run your executable without any installer.
You can find more information here: https://www.electron.build/configuration/nsis#portable

Electron AppImage for linux doesn't start on systems with libgtk<3

it throws an error while starting that libgtk3 cannot be find.
Is it possible to build an electron app to work on systems with libgtk2?
Actually it would be perfect if AppImage included all nesessary lib dependencies(like fuse for example), even if it would be a big filesize of image.
According to issue #10780 on GitHub, Electron upgraded back in 2017 to Chrome 61, which requires GTK+ 3. Therefore it is not possible to run Electron on a system with only GTK+ 2 installed.
The idea of AppImages is that an application should contain all libraries it needs to run. However, libraries like GTK+ need to integrate deeply into the system (GTK+ requires libXrandr.so, libglib.so, etc. just to name a few) and have a ton of dependencies which would blow the package up. It is therefore pretty difficult to build an app which contains all different dependencies it has (and even imagine having three or more AppImages containing GTK+ and dependencies sitting on your hard drive).
And in the case of GTK+, it is in most use-cases not enough to just install libgtk (any version), because you might want to profit from dependencies which are just "recommended".

Instructions for how to lay out the Mac OS X and Linux versions of Electron apps?

I've just spent a very long time looking through everything on https://electron.atom.io/docs/ but I cannot find any mention of how to put the files for Mac and Linux. Only Windows, which I already have set up.
I remember that NW.js had such instructions, which I followed in the past, but it's obviously too ridiculous to accept that I should have to look at a competitor's manual to figure out how to distribute Electron apps.
I remember that at both Linux and Mac had some very fancy/weird packaging need, very unlike Windows.
I would recommend looking into electron-builder which would help you with generating packages for all of the mentioned systems (with auto-update and other goodies).
You can also take a look at electron-boilerplate to see how it can be nicely implemented (this boilerplate has a release command that allows you to generate packages).
For the mac version you can use electron packager to generate a .app file then you can use appdmg to generate a .dmg
For the linux version you can use electron packager to generate a executable although it comes with lots of other files.
I've tried electron-installer-debian but I couldn't install the output .deb

How should I distribute an OSX framework for use by developers of an application?

Let's say I'm building an application with a dependency on a third party library, but one I've built myself - say, Boost. I've packaged the dependency into a framework which is the OSX way of doing things.
How should I now distribute the framework to the developers of the dependent application? If this were Windows I'd probably use Nuget, or apt etc on Ubuntu. Python has pip for this kind of thing - is there a standard MacOS way of dealing with combined source & binary dependencies?
Cheers.
I can imagine 3 different ways to do this:
CocoaPods: This it the nearest thing to something like a "package manager" as you get.
Make a Github/Bitbucket Repository and use git for distribution
make a framework bundle and distribute it via download (e.g. zipped or packed in a .dmg) or email

Resources