Authoring Apple Help Book in 2019 - ios

I am trying to include a help book with my Mac OS application but I am unable to do so. When I click the 'Help' menu in my application, I get the search bar and a Help menu item but I get a 'content is currently unavailable' error.
I have tried using Jekyll but I couldn't get it to work. I have also referred to the Apple Help Book documentation but it is very difficult to follow. I have also read posts on StackOverFlow but none of them seem to work currently.
I just need a simple Help Book which displays my application name and says "This is my application".
I need help in understanding the Help Book directory structure, the Title HTML content and how to integrate it to my application using info.plist.
Any help is appreciated!

I hope you are not going to do a Help Book just to say to your users "This is my application," but you are going to do that just as a starting point for a serious help book that can help your users understand how to best use your app. If so, this is what I do:
Create a folder inside your project folder called MyAppHelp;
Create a folder called Contents inside the latter folder;
Inside this folder you should create the following:
Info.plist
PkgInfo containing the text BNDLhbwr inside
A folder called Resources
Thus, you should have a structure like this:
MyAppleHelp/
Contents/
Info.plist
PkgInfo
Resources/
en.lproj/
index.html
fr.lproj/
index.html
Then you can start editing your help book like any web site, using HTML and css. You can even share some of the code between your website and your help book. This structure also allows for you to have your help book localized in different languages. macOS will show the user the correct version of it automatically.
To know which keys you should use in the info.plist inside your help book, please see them here.
You should index your Apple Help book using Apple's own Help Indexer app, which you can download from your account at developer.apple.com (look for 'Additional tools for Xcode' in downloads). This will create .helpindex files inside each folder you created inside Contents, which will help your user search inside your help book. Important Update: From Mojave onwards, though, you must use the hiutil CLI utility to index your help pages in Spotlight help indices. These files will have the extension .cshelpindex instead.
You should change the name of the top folder from MyAppHelp to MyApp.help. This will create a package similar to a folder when you rename a top folder with the extension .app. From Monterey onwards you must have a PkgInfo file inside your help bundle to be recognized as such by the Finder.
To include any changes automatically into your app you should add your help book to your copy bundle resources build phase.
Finally, do not forget to add a Help Book directory name and Help Book identifier keys in the info.plist of your app to tell to the OS how your help book is called or is identified.
Good luck with your Apple Help Book authoring.

Related

iOS - Can users access App Bundle Contents (specifically the Bundle Resources)

I'm relatively new to iOS development. My question is quite simple but there seems to be a lot of un-complete answers out there.
For example, I have a few pictures that are used in my app and I don't want the users to have access to these pictures at all (due to copyright). I've included these into the "Bundle Resources" along with the "Image.cxassets" and other .xib files.
Will the user ever be able to access the pictures? (I understand that the user can't access the Library folder but it seems to be a pain to copy the pictures into the Library folder at app first launch.)
thanks ahead for answering.
I didn't understand what exactly you're asking, but for users to access your app bundle contents the file sharing for iTunes option should be set in .plist. See in the reference
Although you may put dot before file ".image.jpg" to make it hidden but it sounds like temporary solution.

iOS Facebook SDK localization

I am trying to change text in FBLoginView button but I have no luck so far. I've tried to read README from FacebookSDK and look at internet. I added 2 languages in project Localizations sections it creates 2 files in Supporting files for each language but I tried to change strings in there with example content of README (with changed string values) but even if I changed english file I always get default login string.
Then I tried to add some Bundle settings and change some files in there but with no luck too. Can someone tell me how can I achieve change facebook strings step by step? Thanks
Update:
The method described here is no longer applicable for the latest Facebook SDKs. So please refer to the answers given by #Erik van der Neut or #Ted, and use the bundle FacebookSDKStrings.bundle that ships with the SDK for string overrides.
The only way I found so far to localize/change the Facebook strings is described in their FAQ: https://developers.facebook.com/docs/ios/troubleshooting/
What I did was to copy the file FacebookSDKOverrides.bundle from the Scrumptious sample project that ships with the Facebook SDK. This is basically just a package that contains (can contain) different localization folders. If you want to add German strings, create a folder de.lproj within the bundle. This folder should contain a file Localizable.strings.
You can find a list of all overrideable strings in the file FacebookSDKResources.bundle.README. You can find it in the FacebookSDK folder:
FacebookSDK.framework/Resources/
or here: https://github.com/facebook/facebook-ios-sdk/blob/master/src/FacebookSDKResources.bundle.README
To add a German translation of the text of the login button, for example, you have to add the following to the file Localizable.strings in de.lproj:
"FBLV:LogInButton" = "Einloggen";
As a last step, you have to make sure that Facebook knows about the bundle. Therefore, you can add the following to your Info.plist:
<key>FacebookBundleName</key>
<string>FacebookSDKOverrides</string>
Alternatively, you can also specify this in code if you want to:
[FBSettings setResourceBundleName:#"FacebookSDKOverrides"];
This worked for me, although I would like to use my main bundle for overrides and just specify them in my normal app translations. This would come in more handy for the connection to translation tools as you don't need to translate multiple files per language.
As of Facebook SDK 4.9
If you have downloaded the Facebook SDK, theres a bundle named "FacebookSDKStrings.bundle"
add FacebookSDKStrings.bundle to your project
make sure you enable Base Internalization as described in Apple's documentation.
As an update to the accepted answer here from Flo:
For the latest Facebook SDK, the set of Facebook messages (and their identifying keys) has completely changed. For example, the "FBLV:LogInButton" key is no longer valid in the latest Fb SDK.
Because of this my Facebook strings were no longer getting localized, until I realized this and replaced all my Facebook messages with the latest FacebookSDKStrings.bundle (v4.2) from https://github.com/facebook/facebook-ios-sdk -- I simply removed my original FacebookSDKOverrides.bundle and included this whole bundle FacebookSDKStrings.bundle as is in my project (including the Resources sub folder in there), updated my project .plist files to point to it, and with that all the Facebook strings got localized again.
For example, the message for the default Login button label now looks like this:
/* The long label for the FBSDKLoginButton when the user is currently logged out */
"LoginButton.LogInLong" = "Log in with Facebook";
Luckily, Facebook's GitHub page now includes translations for these messages for lots of languages already (which in my case meant I no longer needed to run these past my translators).
I just copied all string from "FacebookSDK.strings" from folder of langauge you want like fr.lproj to my poject Localizable.strings (French) ...This way worked for me...

Online Addon Builder - How to display custom icon for the extension inside Firefox's Addon Manager

Online Addon Builder - How to display custom icon for the extension inside Firefox's Addon Manager?
I know that's a more general question and before I can even submit this someone is going to throw a link at me but I've been there trust me...
I've built my addon using the online addon builder but I'm not ready to submit it to AMO for review quite yet as I feel it needs more to be complete. I can't find specific information relevant to exactly what I want to do using to online addon builder. I've installed and configured the localized SDK that is utilized using a tool called cfx and of course theres tons of documentation!
The Question: What all notable values can be set using the package.json that determine how the addon is displayed inside Addon Manager? What notable material/configurations can't be set using package.json and how do I implement them?
I've removed all warning and errors from my code but I'm using a hardcoded path to a image whereas before I was passing it as an arguement within the PageMod object to a content script. Why? I'm not sure but I know one of you know how to configure the extension where I can specify chrome://ez-magnetz/data/icon16.png or somehing similar. Which is better than using a JUID in the path name that can change.
My widget has an icon but how do I specify a primary icon for the extension to be displayed in the AM? (package.json||chrome.manifest)
Using the latter of the two(chrome.manifest) how do I include that inside my addon so that its detected?(For the purpose of an Extension Icon using the online addon builder if possible)
Will someone please provide me with a chrome.manifest template for a basic addon?
Do I need the install.rdf and what has precedence over configuration is it like:
install.rdf>>>chrome.manifest>>>package.json
I noticed very similar settings amongst them.
I've been to XUL school I see that there is useful information it just seems outdated in the context of my addon.
I've read the basic info on the package.json and implemented simple prefs and of course the addon's description.
My understanding is that I've created a bootstrapped addon using
Mozilla's Online Addon Builder. Is that correct? The only thing I
wish to do now is to have a personal icon displayed for my extension
in the Addon Manager!
+ I'd like to know how I may have and option for users to donate on AMO!
Thanks for any help in advance
To add an icon, just follow these two steps:
upload the icon you want to use to the data directory of your add-on, eg 'data/icon.png'
Add the relative path to the png file as an extra JSON property in the add-on info dialog, for example this:
{
"icon": "data/icon.png"
}
See this screenshot for an example of what it should look like:
https://dl.dropbox.com/u/44296964/Screen%20Shot%202013-01-07%20at%202.15.49%20PM.png
Aside: please only ask one question per post.

How to create a new "templates" category on Xcode 4 and use my own file templates there?

I would like to start using my own templates for iOS applications. I don't want any significant changes, but simpler things like
add/remove some boilerplate code
add some pragma mark sections
hardcode my company's name and some comments for every file
change the indentation
etc etc etc
The idea is that we will share these templates when we create apps, but at the same time we want to keep the default template files that Xcode 4 already provides. So, in the following screenshot, how can I add a "CompanyName Application" section that contains exactly the same templates (Navigation-based, View-based etc), but with my own changes?
I found that I can add a folder under /Developer/Library/Xcode/Templates/ or /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/ but I'm a bit confused with what do I need to do exactly. I would really appreciate it if you could help me with that, as I have already messed up my folders twice with no luck. Thanks!
This blog post by borealkiss has detailed instructions. For starters:
If you add your own templates, the place you should use is under the following path:
~/Library/Developer/Xcode/Templates/
The problem is that it is quite hard to create a custom template.
For example, to copy and paste the
built-in template to your place will
not show up the template on Xcode 4
until you manually change its
identifier in TemplateInfo.plist.
I just found this article from Bob McCune "Creating Custom Xcode 4 File Templates" that is exactly what I needed, so I put it here for reference.

Adding a button in django !

I wanted to add buttons or a url adjacent to "ADD CUSTOMER" button as shown in the image. Please guide me regarding the same.Where should i be making the necessary changes ?
please find the image here >> http://img138.imageshack.us/img138/170/query.png
Thank you
You add buttons/make changes in the html file, or your CSS file if you have one. If you're using Django make the changes in the /templates directory of your project, its the directory that contains the html files.
In this case what you are looking at is the admin site. The templates for this are located somewhere like "python-path/lib/site-packages/django/contrib/admin/...", but you can override these templates in your project. I'm not sure how easy it is to do what you're trying to do, but you can see this link for more information.

Resources