How can I build a Mac package on linux? (BOM file problem) - ios

I'm running a business where we are creating email stationeries for people. We have some Mac users that currently have to download a zip file and manually copy that to their mail stationeries directory.
I want to automate that process and allow Mac users to download directly a package that will copy those files automatically.
I've build a sample package with PackageMaker, created script that will replace Archive.pax.gz with client's stationeries but go an error. I have realized I did not provide a mandatory BOM file. How can I create it on a non-mac platform? Or if I can't, is there any other way to create a Mac installer on a non-mac platform?

It is now possible to create BOM (bill-of-materials) files on linux. Someone created an open-source version of mkbom at:
http://hogliux.github.io/bomutils
The website also has an easy to follow step-by-step tutorial on creating a Mac OS X installer on Linux ( http://hogliux.github.io/bomutils/tutorial.html ).
My company regularly build Mac OS X installers on linux with this method and so far we haven't had any major problems.

Either you can find a package of this utility for your Linux: http://www.unix.com/man-page/All/8/mkbom/ or you can try to write it yourself, given the information available at Apple's website on BOM.

Finally I've created a postflight hook that is doing all the installation process

Related

How to bundle Electron application and windows service together?

I am very new with electron application. I need some help with election installation.
I have an Electron desktop application and a windows service.
I can start and stop my pre installed services by using sudo-prompt package.
I am creating windows installer by using electron-winstaller package.
But I want to bundle my windows service along with my electron application. My requirement is when I install my electron package then it should install my service also, when I uninstall my package then that service should be uninstalled.
Please help me out. Any clue, Any suggestions will be appreciated.
If you think this should be achieved with something else then please do suggest me.
Electron's windows installer packager strikes me a specific case tool that would likely hit limitations in scenarios like this. I would use a general case tool instead such as the Free and Open Source Windows Installer XML Toolset aka WiX. I would also use with that another FOSS application called Industrial Strength Windows Installer XML aka IsWiX.
WiX allows you to describe and build MSI databases using an XML/XSD domain specific language. It supports MSBuild for easy integration with your CI/CD pipeline. IsWiX* is a set of project templates and graphical designers that provide an opinionated project structuring (scaffolding) and greatly speeds up the learning curve and implementation. For example, this installer you describe could be done without writing a single line of XML.
For more information see: https://github.com/iswix-llc/iswix-tutorials
The desktop-application and windows-service tutorials should** show you everything you need to know to author this installer. Basically follow the desktop-application all the way through and then skip to the final portion of the windows-service tutorial where you define the windows service.
I'm the maintainer of IsWiX
** This assumes your service exe is a proper Windows service that interfaces with the windows service control manager. If it's really just a console app that runs as a service you will need to include a program such as srvany.exe. This will require one line of hand crafted XML to extended the service definition in the registry with the proper command line value to be passed to your exe. An example can be found here: Wix installer to replace INSTSRV and SRVANY for user defined service installation

Location of Xcode Bots configuration files

I need to copy and transfer integration settings (trigger script, actually) from one to another project, but since my development Mac isn't connected to OS X Server, I can't check out Bot settings and take that script from existing project.
Is there a way to find Bot's configuration files? And where they are actually stored at (dev machine or server)?
I tried to look at
~/Library/Developer/XcodeServer
but found only bunch of .log files for every integration
For those coming to this using the newer version of Xcode Server, even though Xcode Server now runs as a specific user, the configuration files are kept in /Library/Developer/XcodeServer. You can also hit the Xcode Server API to get information about your bots.
I don't really know that this approach can work properly, however, my suggestion would be "export and import XCode configuration file". That can be understood as after your project completed configuration, start exporting "xconfig" files and then import to your other projects.
This link might be helpful Is there a way export xcode build settings to .xcconfig file?

Locking/Unlocking a file remotely in Subversion

I have Subversion setup on a Windows machine for iOS development. The WIndows machine acts as the server and all the team members are working on Macs.
I use TortoiseSVN as the SVN client and I know you can lock files using that but you have to have access to the directory in the server to do that all the time. Therefore I'm looking for a way to do it remotely.
To explain further, when a team member starts editing a file, he should be able to issue a command through the terminal (I read that you cannot do this through Xcode though a feature like that would have been great!) to lock the file and again unlock it the same way.
How can I do this?
Thanks
svn lock <filename> on a file kept in a working copy is the equivalent of Tortoise's "Get Lock"

Packaging a custom DirectX redistributable installer

Following MS' advice we have stripped most files from the DX installer contents for our D3D9 application, getting it down to 5Mb in total.
But now I;d like to package these files into a single installer, like the redistributable installers MS themselves provide... so it can be run as part of our application install process, with /silent switch, without manually having to unpackage the files and delete them.
Is there a simple, standard way to do this so that the packaged DXSetup.exe is run?
Or is all this too complex and we should just unpack the files, run DXSetup.exe and then delete the files after installation?
Its better to use the installers that MS provide, usually is what Apps do, if the problem is space you could always use web installer its 300kb but will require the user to have an internet connection.
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&displaylang=en
On the other and if you're using DirectX SDK
there is a folder "redist"
and in it there are setup's of DX,
you can distribute them with your app,
and your Setup has to call the dxsetup.exe

BlackBerry Code Signing for Multiple OS'es

I wanted to do a couple of things and am wondering if they're possible, and if so, how to do them.
I was going to make a Virtual Machine to run code-signing in. That way if my computer dies I can hopefully minimize downtime by simply running the VM in a new system. I know the code keys are tied to the machine they're run on. If anyone has done code signing in a VM and switched the VM to another physical machine please let me know if the keys continued to work or not.
I also wanted to run more than one JDE in the VM to sign code for different OSes. From what I understand the code signing uses a code signing app located in each JDE's directory. Is it possible to run multiple JDE's on the same system and be able to sign code for a specific OS (I'm planning on having JDE 4.2.1, 4.5, 4.6.1, 4.7, and eventually 5.0 on the code-signing VM). If so, do I need multiple keys - one for each JDE version - or is there some way to use the same keys for the different versions?
Thanks for any help in answering this.
It's certainly possible to migrate the keys between machines - We have a set of keys that have been used on Windows XP, Mac OS X and Linux machines.
If you look in one of your BlackBerry JDE Component Package X.Y.Z\bin directories after you've used the signing tool manually you'll see these files:
sigtool.csk
sigtool.db
These are the files you need. Simply copy them to the equivalent location in the alternate JDE trees and you will be able to use them for 'multiple targets'. I've not done this with 4.7.0, but have with 4.6.0, 4.5.0, 4.3.0, and 4.2.1. We're run the signer using
java -jar bin/SignatureTool.jar
I'm not sure whether other methods would work.
Migrating to UNIX-like build machines introduces a twist, and this is why I think RIM say the keys are not portable - the SignatureTool application seems to not detect the operating system-specific directory path separator character. The upshot is that it looks for the key files in these locations, even on a UNIX machine (note the backslashes):
bin\sigtool.csk
bin\sigtool.db
when you'd think it would look for bin/sigtool.csk for example. A solution for this is simply to create soft links with these names that point to the actual files. In the component package top-level directory we do this:
ln -s bin/sigtool.db bin\\sigtool.db
ln -s bin/sigtool.csk bin\\sigtool.csk
I've only signed in one VM - a Windows XP image. It worked fine.
Another solution is to just fix the problem with SignatureTool (FYI, RAPC has similar issues), as this blog describes:
http://www.slashdev.ca/2008/03/16/using-sigtool-in-linux/

Resources