*jios 903.2* is now available on App Store.

Please study its App Store shop-window for the latest details.

Search App Store for: *j901* (its deprecated name)

Depending on your device *settings*, your installed app may or may not
update automatically.


This update is suitable for all users running iOS/iPadOS version 16.2 or
later. Formerly there was an issue with the app automatically overwriting
folders in the sandbox, thereby losing your edits. This issue has now been
fixed.


Do not alter your device settings to delay updating the app. It is
unnecessary and could be harmful. Apple recommends for security's sake
always running your device with the latest version of iOS [iPadOS].


There's a lot I need to put on record about jios. For now, only two things
matter:


[1] Your scripts in the app sandbox – a.k.a. *On My iPhone [iPad]*

[2] Changes to the app's name.


*[1] Your scripts in the app sandbox*


Ignore this section if you have not yet downloaded jios (a.k.a j901) – or
have deleted it from your iPhone [iPad].


Provided you have not edited any files in the app sandbox, or there are no
edits you want to retain, the neatest way for all but advanced users to get
everything factory-fresh is to delete *jios* (aka *j901*) and download it
afresh from App Store.


This deletes all existing files and user defaults belonging to the app.

It thereby forces the app to perform a maiden run. The app confirms it is
doing a maiden run by emitting a hunting-horn sound when launched: (*ta-rah,
ta-rah!*)


However the app will appear to run ok without you doing this.

In which case manually update these sandbox folders a.s.a.p, in order of
importance:

   - j/system
   - j/tools
   - j/assets
   - j/addons (sorry, all or nothing)

If you don't, you will start to notice odd things happening.


QUICK CHECK: the welcome message should show the line:

*Welcome to J (903.2 57)*

…If you see anything else, e.g. containing "J for iOS/iPadOS" then you are
running an out-of-date version of the j/system folder.


See below: Updating your sandbox to get the latest factory scripts.


*[2] Changes to the app's name*


App Store knows this release as: *j901 Version 1.2*. But the screen name
now shows as: *jios 903.2*. The *screen name* is the name you see under the
app icon.


Apple has complained to me that the names don't match (Bad UX). But they
approved this release, insisting that the two names must be converged at
the next app update. This gives the J community an opportunity to discuss
what the app should really be called.


Over the weekend I will update *Guides/iOS* on jwiki once I have checked
everything is hunky-dory.


==========


*EXTRA: Updating your sandbox to get the latest factory scripts*


On iOS [iPadOS] every app has its own sandbox (aka: jail, as in:
jailbreaking). *Files* app lets you see the sandbox contents of every
running app in the left sidebar under the heading: *On My iPhone [iPad].*


Without acquiring one of a carefully guarded, time-limited collection of
permissions, an app cannot read/write/move a file outside its own sandbox.
Developers undertake to abide by Apple guidelines, which forbid submitting
an app that grants these permissions invisibly to anyone, even the user.
The upshot is that jios cannot be shipped with:

   - j-to-j
   - sockets
   - pacman
   - dylib files
   - macros or scripts for moving scripts about
   - any fancy way of moving files (scripts) to and fro which is not under
   the total conscious control of the end-user.

Apple offers alternative safer ways to support these familiar J features,
which jios will support in due course.


The sandbox for jios is effectively a single folder: j/ -subdivided into:

   - j/addons
   - j/assets
   - j/config
   - j/plotf
   - j/slate
   - j/system
   - j/temp
   - j/test
   - j/tools
   - j/user

The app itself contains a hidden collection of factory files you can
optionally unbundle. But, for security reasons, you can only unbundle an
entire folder from the above list, not individual files. And you must do it
manually.


WARNING: Unbundling a given folder overwrites its existing contents.


Example: to unbundle *j/system*, launch jios and enter the following
dot-command (case-sensitive):


   .U system


Example(2): to unbundle the entire j/ folder, enter the dot-command:


   .U


NOTE: in this release, *plot* and *viewmat* are part of jios.app itself,
and as such are tested and supported. Similarly named code inside j/addons
is bundled in jios.app for reference only. Avoid using require'plot' or
require'viewmat' in your own code, which will corrupt the jios versions of
plot and viewmat, with undefined results. All other JAL addons are
untested. Any that use Windows Driver (wd) will not work as they stand.


NOTE(2): The folder j/addons is a redacted copy of
/Applications/j903/addons from the macOS release of jqt903 (to match the JE
engine). It is up-to-date as of April 2023. Some files/folders have been
removed to comply with App Store requirements, notably all dylibs. No one
can stop you putting them back on your own device, but neither is there any
guarantee they will work. If they are not built for arm64 architecture they
won't. iOS may detect a security violation (in this or a future version of
iOS) and kill the app without logging diagnostics. For this reason alone,
jios is not to be used for anything mission-critical.

Ian Clark
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to