plugin for iOS framework with bundle

I’d like to write UE4 plugin which links to iOS framework which uses iOS bundle.
The bundle is outside that framework and to use this framework in Xcode project i would have to add both to project.

I know i can add frameworks to plugins but what about that bundle.
Can UE4 plugin contain such bundle?
And does Unreal Build Tool know how to handle it?

More details:
that bundle contains xcdatamodel for Core Data purposes.

additional info: A bundle is a directory with a standardized hierarchical structure that holds executable code and the resources used by that code.

We don’t have proper generalized support for plugins containing stuff like that - it’s on the list for the next month or two. We have extra bundle support in the TapJoy plugin (Engine\Plugins\Runtime\Advertising\IOSTapJoy), you might be able to start there. It’s a bit kludgey, but it does work.

I cant get IOSTapJoy to work.
When i run puzzle game example or top down example i get message
"Plugin ‘IOSTapJoy’ failed to load because module IOSTapJoy could not be found. "

I just created new project, enabled plugin in Window plugins, restarted editor.

Engine version 4.5.1. Xcode 6.1.
I run it on device ipad3 ios7.1.2.

How to get it run in some example?

Can you verify that you have these settings in either your Config\DefaultEngine.ini or the Config\IOS\IOSEngine.ini (in your project):

[Advertising]
DefaultProviderName=IOSTapJoy

[Plugins]
+EnabledPlugins=“IOSTapJoy”

I didn’t have those settings.
So I added them to ConfigDefaultEngine.ini (in project) but it still the same.
Log shows:
LogPlayLevel:Display: env: LogModuleManager:Warning: ModuleManager: Module ‘IOSTapJoy’ not found - its StaticallyLinkedModuleInitializers function is null.

I also verified that .uproject file has:
“Plugins”: [
{
“Name”: “IOSTapJoy”,
“Enabled”: true
}
]

The ConfigIOSIOSEngine.ini is absent in my project but i found it in engine src.
I also added blueprints to show banner and they show iads.
btw. I run OSX 10.9.5.

You don’t need the IOSEngine.ini in your project, it’s optional.

When you compile for IOS, I guess you aren’t seeing the TapJoy module being compiled?

Right, no TapJoy compilation in log - only packaging.
Importat thing:
I noticed its not just IOSTapJoy problem becouse i get this plugin-not-found message for more plugins: IOSApsalar, even for refactored blank plugin.

Okay, there is something keeping it from compiling. I currently don’t have source code access (on a plane), but I would suggest debugging (or adding logging to) the UnrealBuildTool code in Plugin.cs (I believe) that looks over the plugins and see why it’s not being compiled.

Im really gratefull for your guidance. Currently Im figuring out how to debug UBT. Do you have some more suggestions :slight_smile: ?

I didnt mention i used Blueprints example projects. So i tried with code projects - build fails with error:

clang: error: no such file or directory: '/Users/Shared/UnrealEngine/4.5/Engine/Plugins/Runtime/Advertising/IOSTapJoy/Binaries/IOS/IOSTapJoy-Static.a' 

same error for IOSApsalar plugin.

My steps for code projects:

  1. Updated settings in IOSEngine.ini
  2. Enabled plugins in Editor
  3. Verified settings in IOSEngine.ini
  4. Generated Xcode Project from .uproject
  5. Attempted to run in both editor and xcode

Ahhh, you weren’t compiling code, yeah, plugins can’t work with the pre-made executables because iOS doesn’t technically support DLLs. There is a hack for it to support .dylib files, but you can’t ship a game with it.

As for the missing TapJoy static library, I will have to ask around about that one.

Josh

Yes, that library was missing from the subscription binaries. I am working on getting a .a compiled with 4.5, but we should be good to go with 4.6 going forward (no more missing plugin libs).