dlopen in enterprise distribution , dylib: file system sandbox blocked mmap()

We develop a system that can open frameworks which are located in document path in iPads by use "dlopen method" (iPadOS v15)

It works fine when we build the app in device or use "development method" to archive the APP.

But When we try to release our enterprise by use "in-house method" to archive the APP.

Then the error message shows "dylib: file system sandbox blocked mmap()" when our enterprise APP try to open the framework in the APP`s document sandbox.

Why it is able to use this dlopen method under "development method" but is not able to work in "in-house method" ?

Is there any restriction of use "dlopen" by distribution release of enterprise program?

Replies

This is very important, I must implement this function, but I do not know how to implement, can you provide some ideas

This is what we need to do in our project.

You need to talk to your management about your overall project’s design because the design you currently have is both unsupported and technically impossible [1].

can you provide some ideas

I already offered a suggestion here.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

[1] Modulo bugs in iOS’s security architecture.

How can I package the framework into the program in advance, but resources and other files downloaded to the sandbox

How can I package the framework into the program in advance, but resources and other files downloaded to the sandbox

Embedding a framework in an app is a standard workflow. The exact mechanics of how you do it depends on your build environment. In the simplest case, using Xcode for everything, you can just create a new framework target and Xcode will automatically embed it inside your app.

Having said that, if the framework was authored by you there’s typically not a lot of value in embedding it as a framework. Rather, you can just compile the code directly into your app.

As to resources, there’s three parts to that:

  • Downloading an archive containing your resources

  • Unpacking that archive

  • Accessing those resources

Which bit do you need help with?

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"