Cannot get module to work in Titanium Alloy JS - titanium

I've tried to add the TiSocial.Framework module into Titanium Alloy, and after reading several guides and questions, I still can't get it to work. What am I doing wrong?
Here are the steps I took:
Copied the unzipped module files into modules/iphone/TiSocial.Framework-master
Edited the TiApp.xml file with: <module platform="iphone">TiSocial.Framework-master</module>
Cleaned the build tried to run the app.
But I get the following error(s):
Could not find Titanium module id=TiSocial.Framework-master
version=latest platform=iphone deploy-type=development
Could not find all required Titanium Modules: id: TiSocial.Framework-master version:
latest platform: iphone deploy-type: development
I can't spot where I'm going wrong, in my TiApp.xml Overview screen, I the module appears to be installed just fine (see picture):
My addition to TiApp.xml looks like this:
<modules>
<module platform="iphone">TiSocial.Framework-master</module>
</modules>
I also tried doing the same as above but changing the name of the module, to dk.napp.social, because in the README on their GitHub account, it says to reference that in the TiApp.xml. So I tried that but it still didn't work.

TiSocial.Framework-master is not the name of the module, also you are not supposed to unzip the entire module plus souurce code and documentation into your modules/ folder, you ONLY want the compiled module binary.
Instead do this:
Inside Titanium Studio goto "Help->Install Mobile Module"
Enter this url: https://github.com/viezel/TiSocial.Framework/blob/master/dist/dk.napp.social-iphone-1.7.3.zip?raw=true
Choose your project, hit ok, and it should be installed now.

Related

Debugging QuickLook plug-in with 'bundle is damaged' error

We're adding a QuickLook plug-in to our project.
Everything is fine until macOS trying to invoke our plug-in, at which point we're getting the beloved The bundle couldn’t be loaded because it is damaged or missing necessary resources error.
We've checked with otool -L on the plug-in's binary that all dependencies are in place, however as soon as the OS is asking our plug-in for a preview for the file type supported by us we get:
22/04/17 12:03:05,716 quicklookd[55323]:
[QL] Can't load plug-in at file:///Users/myname/Library/Developer/Xcode/DerivedData/The_Project-gpihzjouhxvifqcslmywktktizer/Build/Products/Debug/MyApp.app/Contents/Library/QuickLook/SomeQuickLookPlugIn.qlgenerator/:
The bundle “SomeQuickLookPlugIn” couldn’t be loaded because it is damaged or missing necessary resources.
The one thing we're not quite sure about is the dependency to our internal frameworks.
We've set up the plug-in similar to our main app, i.e. the private framework dependency resolves to:
#executable_path/../Frameworks/MyFW.framework/Versions/A/MyFW (compatibility version 1.0.0, current version 1.0.0)
..which would work OK if #executable_path were either the main app's binary or the plug-in's main binary as we copied the frameworks in both places in the bundle.
Any thoughts?
Ideally we would like the OS to tell us which dependency it failed to resolve -
is there any debug flag that can be set..?
As per https://www.mikeash.com/pyblog/friday-qa-2009-11-06-linking-and-install-names.html and http://www.dribin.org/dave/blog/archives/2009/11/15/rpath/ you should
set the Installation Directory for your referenced framework(s) to #rpath
in the app set Runtime Search Paths to #loader_path/../Frameworks
and in the QuickLook plug-in set Runtime Search Paths to #loader_path/../../../../../Frameworks as suggested by catlan -
that way you don't need to duplicate referenced frameworks inside the QuickLook plug-in
Compile, run, and everything should just work if everything else is set up correctly.
In addition you might want to check the code-signing settings in your plug-in to make sure there's no problems there.
One thing you can do is remove (or turn-off) code signing from your app and then see if it will load the plug-in…
To check if code-signing is the problem you can turn it off temporarily for your app using the Terminal to codesign --remove-signature YourApp.app and see if it works..
Run Search Paths should be #loader_path/../../../../../Frameworks because it is installed into Main.app/Contents/Library/QuickLook/QuickLookPlugin.qlgenerator/Contents/Mac/QuickLookPlugin, so we need to go five folders down from the #loader_path to find the frameworks folder.

Appcelerator module cannot be found

I have created a new Appcelerator project as I'm updating an old Appcelerator to a new one.
I'm having trouble with it recognising a module though. The module is:
var map = require('bencoding.map');
And it's included in the '/modules/iphone/bencoding.map/' folder.
I did include the module in the tiapp.xml file: <module platform="iphone">bencoding.map</module>
Anyone got any ideas why?
It appears bencoding.map hasn't been updated in 4 years! It probably is no longer supported.
However, the build in ti.map has polygon support just like bencoding.map tried 4 years ago. Just look at the doc here: http://docs.appcelerator.com/platform/latest/#!/api/Modules.Map
ti.map is included in the SDK. But should you need a download (to pin a version/include it in repo) just download it from their Git repo

Extending Titanium WebViewProxy for Android - Build error

I need to extend Titanium's Android Webview with some additional functionality, however I'm not able to build my titanium project after including my created module.
My module has the titanium-ui.jar on it's build path and I have copied the original Titanium WebViewProxy.java into my module project. I haven't added any custom code to WebViewProxy.java yet.
This is the project hierarchy of my module, together with the build.properties file.
When building the module, I get an exception but the module seems to get built anyway, this must have something to do with the final problem. When I remove the WebViewProxy.java and keep the titanium-ui.jar on my build path, building the module and including it in my titanium project works fine.
Here's the full console log of the build script of the module: http://pastebin.com/G2LSkFLF
This is what happens when I try to run my titanium project using the generated module (the one, that threw the exception while building)
Does anyone know how to solve this? Maybe some different approach at all? I have some special url schemes in my app and I need to handle them. I have already a similar module for iOS, which works fine.
Thanks.
Ok, I finally found the solution. It was so easy... The WebViewProxy.java had to be adjusted a little bit.
#Kroll.proxy(creatableInModule=UIModule.class, propertyAccessors = {
has to be
#Kroll.proxy(creatableInModule=CustomwebviewModule.class, propertyAccessors = {
UIModule.class has to be replaced with the class name of your Module.

Setting the type of a NetBeans Module

I have been developing a couple of NetBeans modules in parallel using the NetBeans IDE. Yesterday (Dec. 12, 2012) the IDE updated and now I can not get any of them to manifest when I run the platform. The platform loads up with no errors but my modules do not appear. If I attempt to explicitly enable them I get:
java.lang.IllegalArgumentException: Not all requested modules can be enabled: [StandardModule:com.foo jarFile: D:\bar.jar]
at org.netbeans.ModuleManager.enable(ModuleManager.java:1024)
I see that the module.xml file looks like this:
<?xml version="1.0" encoding="UTF-8"?>
<nbm>
<!--
<moduleType>autoload</moduleType>
<codeNameBase>com.foo/1</codeNameBase>
<licenseName>Apache License, Version 2.0</licenseName>
<licenseFile>license.txt</licenseFile>
-->
</nbm>
This is all auto-generated and it looks to be commented out, but it looks like it was attempting to set the module as an autoload module. This is odd because it looks to me like the module is behaving as an autoload module.
So my question, which seems like it should be simple but I can't seem to figure out, how do I explicitly define the type of a module?
I think, that problem may be between module dependencies.
Open your module project
Remove all module dependencies
Check your selected NB platform (or change)
Add all your module dependencies
Clean and build and install your module again

How do you install a Appcelerator Titanium Module in OSX

I cannot find any instructions on how to install modules into Titanium
I have downloaded a trial version of the TVOut module from the Appcelerator webpage
https://developer.appcelerator.com/package/28/tv-out/media
however it doesn't say how to install this into Titanium?
I know it needs to end up in /Library/Application Support/Titanium/Modules but just unzipping into this location is not enough.
What is the command line script which I can run on the zip which will allow me to use it?
thx
here are the guides. if you build your module successfully you need to put the zip in root/Library/Application Support/titanium/. (not /users/name/Library/..). you need to add the module within your tiapp.xml like that
....
<modules>
<module version="0.1">nameOfYourModule</module>
</modules>
</ti:app>
now the titanium preprocessor should build your module while building your project.
EDIT - In Titanium Studio, just go to Help > Install Mobile Module...
This brings up a dialog that lets you browse your filesystem for the module file. Find the zip file inside the downloaded module folder ( example: ti.imagefactory-iphone-1.1.1.zip ) and it should work magically.
This is the most up to date guide for using and installing modules:
http://docs.appcelerator.com/titanium/latest/#!/guide/Using_a_Module
You can also read complete instructions here:
https://wiki.appcelerator.org/display/tis/Using+Titanium+Modules