Skip to content

Moved to frameworks + extract list of commands

Compare
Choose a tag to compare
@holzschu holzschu released this 27 Mar 20:11
· 399 commits to master since this release

Release 2.1 of the ios_system libraries:

Contains a precompiled version of all the libraries and frameworks associated with ios_system:

https://github.com/holzschu/ios_system
https://github.com/holzschu/lib-tex
https://github.com/holzschu/ctags
https://github.com/holzschu/python_ios
https://github.com/holzschu/network_ios
https://github.com/holzschu/lua_ios

Three major changes:

  • we now use frameworks instead of dynamic libraries; apparently naked dynamic libraries are forbidden on the AppStore (see issue #103 in OpenTerm: louisdh/openterm#103 )
  • the list of commands and their associated libraries has been moved outside of the source code. So adding new commands can be done without having to recompile the ios_system framework.
  • we removed calls to private APIs (there is now an automatic check on app submission).

Smaller changes:

  • New global variable: sideLoading. It is supposed to be false if you plan to release through the AppStore, true if you're downloading software to your own device. If false, we load a smaller number of commands and output less debugging information.

  • The command "groups" was removed.

  • There are two lists of commands, both of them under Resources: commandDictionary.plist and extraCommandsDictionary.plist. The former is always loaded, the latter only if sideLoading is true.

Both files have the following format:

        <key>chksum</key>
        <array>
                <string>files.framework/files</string>
                <string>chksum_main</string>
                <string>o:</string>
                <string>file</string>
        </array>

As before, 2 versions of pre-compiled binaries available:

  • release = iOS_system.framework and all the associated libraries. Useful when you're building an application, like shell, ivim...
  • smallRelease = ios_system.framework + openssl.framework + libssh2.framework. Useful when you need to compile a new library.

The TeX libraries and ctags have not been converted to frameworks, as no application on the AppStore is using them currently. It might change in the future.