Will Appstore Reviewers Allow Us to Use Dynamic Library in iOS8

Will Appstore reviewers allow us to use dynamic library in iOS8?

App Store Review Guidelines explicitly prohibit that in 2.4.5 Apps that download code in any way or form will be rejected https://developer.apple.com/app-store/review/guidelines/

Are iOS 8 apps with embedded dylibs allowed on the App Store?

It seems that there is still the limit that only statically linked ios applications are allowed on App store. You can read in the App Store Review Guidelines :

2.7 Apps that download code in any way or form will be rejected

2.8 Apps that install or launch other executable code will be rejected

That's not a technical limitation but a legal one. It's banned because of the security reasons since a dynamic library can be loaded and unloaded at runtime you could download additional executable code and load it (like a plug-in). So Apple strictly controls dynamic linking which is a security issue for apparently secure operating systems like ios.

After all you need to have a commercial license to deploy Qt on App store. You can buy Indie Mobile license and skip the challenges created by third party application stores. That means you can distribute your application via whatever third party application store you wish.

Can you build dynamic libraries for iOS and load them at runtime?

At the time this question was asked, Dynamic libraries were not supported by iOS and will result in your app getting rejected. Only static libraries are allowed.

However, in iOS8 you can use dynamic libraries and frameworks. It should "just work"

can I use libicucore.dylib in ios8, is this a private library?

You can use libicucore.dylib in your iOS app. For example: It's required library for Google Maps SDK.

iOS: staic framework and dynamic framework?

Dynamic frameworks are extremely common in AppStore apps. What you're probably seeing in posts is that you cannot manually load frameworks at runtime on iOS (i.e. there's no access to dlopen). They all have to be loaded at link time. You also cannot ship "shared" frameworks, where multiple apps share a single copy (like Apple's system frameworks). Each app must contain all of its custom frameworks.

But you can certainly ship dynamic frameworks in your bundle.

can I use libicucore.dylib in ios8, is this a private library?

You can use libicucore.dylib in your iOS app. For example: It's required library for Google Maps SDK.

dart/flutter: How to ship iOS apps using flutter frontend vs. C/C++ backend to App Store?

The answers saying you can't use dynamic libraries on iOS date to before iOS 8, when support for user-provided dynamic libraries was added.

Nothing in 2.5.2 days you can't use dynamic libraires as long as they are shipped as part of your app. So:

As of the date when I post this (2020), does this say that I could never ship an app using this architecture to App Store?

No it doesn't, as long as "this architecture" refers to using a dynamic library that you link to at build time and bundle into your application.

CONFIGURATION_AppStore. What is this?

It looks like these are preprocessor macros. You can find them in the build settings of your project or target, under Apple LLVM 6.1 Preprocessing -> Preprocessor macros.

You can also define these with

#define CONFIGURATION_AppStore 1

somewhere in your code, but this is not likely for these names.

App store link for rate/review this app

For versions lower than iOS 7 use the old one:

itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=YOUR_APP_ID

This works on my end (Xcode 5 - iOS 7 - Device!):

itms-apps://itunes.apple.com/app/idYOUR_APP_ID

For iOS 8 or later:

itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=YOUR_APP_ID&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software

Code snippet (you can just copy & paste it):

#define YOUR_APP_STORE_ID 545174222 //Change this one to your ID

static NSString *const iOS7AppStoreURLFormat = @"itms-apps://itunes.apple.com/app/id%d";
static NSString *const iOSAppStoreURLFormat = @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%d";

[NSURL URLWithString:[NSString stringWithFormat:([[UIDevice currentDevice].systemVersion floatValue] >= 7.0f)? iOS7AppStoreURLFormat: iOSAppStoreURLFormat, YOUR_APP_STORE_ID]]; // Would contain the right link

is dlopen use inside a static library in iOS allowed

dlopen is not allowed on the iOS versions < iOS 8. See e.g. here.



Related Topics



Leave a reply



Submit