fastlane: Can not generate a framed screen with a title.

Original issue by @olutsenko - Imported from fastlane/frameit#49

Hello,

I am trying to get the example working. I want to have two screenshots framed with a title on top. Bellow is my configuration + output for the ‘frameit --verbose’

screenshot 2015-09-18 08 46 47

Framefile.json

{
    "default": {
        "keyword": {
            "font": "./fonts/SF-UI-Display-Regular.otf",
            "supported": ["en-US"]
        },
        "title": {
            "font": "./fonts/SF-UI-Display-Regular.otf",
            "supported": ["en-US"],
            "color": "#545454"
        },
        "background": "./background.jpg",
        "padding": 50
    },

    "data": [
             {
             "keyword": {
             "color": "#d21559"
             }
             },
             {
             "keyword": {
             "color": "#feb909"
             }
             }
             ]
}

title.strings

"Brainstorming" = "Let Your Ideas Grow";
"Organizing" = "Think Content, Not Layout";

**keyword.strings**
"Brainstorming" = "BRAINSTORMING";
"Organizing" = "ORGANIZING";

Output

$ frameit --verbose
INFO [2015-09-18 08:44:19.03]: Parsing config file '/Users/oleg/Desktop/test/Framefile.json'
ERROR [2015-09-18 08:44:19.03]: no implicit conversion of nil into String
ERROR [2015-09-18 08:44:19.03]: Backtrace:
    /Library/Ruby/Gems/2.0.0/gems/frameit-2.2.1/lib/frameit/config_parser.rb:27:in `include?'
    /Library/Ruby/Gems/2.0.0/gems/frameit-2.2.1/lib/frameit/config_parser.rb:27:in `block in fetch_value'
    /Library/Ruby/Gems/2.0.0/gems/frameit-2.2.1/lib/frameit/config_parser.rb:27:in `each'
    /Library/Ruby/Gems/2.0.0/gems/frameit-2.2.1/lib/frameit/config_parser.rb:27:in `find'
    /Library/Ruby/Gems/2.0.0/gems/frameit-2.2.1/lib/frameit/config_parser.rb:27:in `fetch_value'
    /Library/Ruby/Gems/2.0.0/gems/frameit-2.2.1/lib/frameit/editor.rb:252:in `fetch_config'
    /Library/Ruby/Gems/2.0.0/gems/frameit-2.2.1/lib/frameit/editor.rb:83:in `should_add_title?'
    /Library/Ruby/Gems/2.0.0/gems/frameit-2.2.1/lib/frameit/editor.rb:16:in `frame!'
    /Library/Ruby/Gems/2.0.0/gems/frameit-2.2.1/lib/frameit/screenshot.rb:72:in `frame!'
    /Library/Ruby/Gems/2.0.0/gems/frameit-2.2.1/lib/frameit/runner.rb:29:in `block in run'
    /Library/Ruby/Gems/2.0.0/gems/frameit-2.2.1/lib/frameit/runner.rb:21:in `each'
    /Library/Ruby/Gems/2.0.0/gems/frameit-2.2.1/lib/frameit/runner.rb:21:in `run'
    /Library/Ruby/Gems/2.0.0/gems/frameit-2.2.1/bin/frameit:31:in `block (2 levels) in run'
    /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/command.rb:178:in `call'
    /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/command.rb:178:in `call'
    /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/command.rb:153:in `run'
    /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/runner.rb:428:in `run_active_command'
    /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/runner.rb:71:in `run!'
    /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/delegates.rb:15:in `run!'
    /Library/Ruby/Gems/2.0.0/gems/frameit-2.2.1/bin/frameit:55:in `run'
    /Library/Ruby/Gems/2.0.0/gems/frameit-2.2.1/bin/frameit:63:in `<top (required)>'
    /usr/bin/frameit:23:in `load'
    /usr/bin/frameit:23:in `<main>'
INFO [2015-09-18 08:44:21.42]: Parsing config file '/Users/oleg/Desktop/test/Framefile.json'
ERROR [2015-09-18 08:44:21.42]: no implicit conversion of nil into String
ERROR [2015-09-18 08:44:21.42]: Backtrace:
    /Library/Ruby/Gems/2.0.0/gems/frameit-2.2.1/lib/frameit/config_parser.rb:27:in `include?'
    /Library/Ruby/Gems/2.0.0/gems/frameit-2.2.1/lib/frameit/config_parser.rb:27:in `block in fetch_value'
    /Library/Ruby/Gems/2.0.0/gems/frameit-2.2.1/lib/frameit/config_parser.rb:27:in `each'
    /Library/Ruby/Gems/2.0.0/gems/frameit-2.2.1/lib/frameit/config_parser.rb:27:in `find'
    /Library/Ruby/Gems/2.0.0/gems/frameit-2.2.1/lib/frameit/config_parser.rb:27:in `fetch_value'
    /Library/Ruby/Gems/2.0.0/gems/frameit-2.2.1/lib/frameit/editor.rb:252:in `fetch_config'
    /Library/Ruby/Gems/2.0.0/gems/frameit-2.2.1/lib/frameit/editor.rb:83:in `should_add_title?'
    /Library/Ruby/Gems/2.0.0/gems/frameit-2.2.1/lib/frameit/editor.rb:16:in `frame!'
    /Library/Ruby/Gems/2.0.0/gems/frameit-2.2.1/lib/frameit/screenshot.rb:72:in `frame!'
    /Library/Ruby/Gems/2.0.0/gems/frameit-2.2.1/lib/frameit/runner.rb:29:in `block in run'
    /Library/Ruby/Gems/2.0.0/gems/frameit-2.2.1/lib/frameit/runner.rb:21:in `each'
    /Library/Ruby/Gems/2.0.0/gems/frameit-2.2.1/lib/frameit/runner.rb:21:in `run'
    /Library/Ruby/Gems/2.0.0/gems/frameit-2.2.1/bin/frameit:31:in `block (2 levels) in run'
    /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/command.rb:178:in `call'
    /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/command.rb:178:in `call'
    /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/command.rb:153:in `run'
    /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/runner.rb:428:in `run_active_command'
    /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/runner.rb:71:in `run!'
    /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/delegates.rb:15:in `run!'
    /Library/Ruby/Gems/2.0.0/gems/frameit-2.2.1/bin/frameit:55:in `run'
    /Library/Ruby/Gems/2.0.0/gems/frameit-2.2.1/bin/frameit:63:in `<top (required)>'
    /usr/bin/frameit:23:in `load'
    /usr/bin/frameit:23:in `<main>'

About this issue

  • Original URL
  • State: closed
  • Created 9 years ago
  • Comments: 20

Most upvoted comments

@zkirill commented

Had trouble with Xcode not saving in UTF-16 so I used TextWrangler. The setting is located on the status bar.

EDIT: Make sure your encoding says UTF-16 and not some other variant of UTF-16. Easy to miss.

screen shot 2015-12-02 at 3 12 43 pm

I know this issue is closed, but I will like to add the steps to resolve the problems with frameit with titles in top:

  1. copy files keywords.string and * title.string* from [https://github.com/fastlane/examples/tree/master/MindNode/screenshots/en-US]
  2. open and edit with TextWrangler, make sure the file is UTF-16 Little-Endian
  3. use Frameit.json from the same example and update with your own keywords

The most important thing is to edit the file in UTF-16 Little-Endian, and TextWrangler help me to do so (Sublime, or Atom Editor did not)

(https://github.com/fastlane/examples/tree/master/MindNode/screenshots/en-US)

@chinnawatp commented

For anyone having this eror Could not get title for screenshot " ". Please provide one in your Framefile.json" My solution is to put filed “text” in “title”:{} Framefile.json

*Example Framefile.json

 "title": {
      "text" : "My very long title\nwith line break",   
      "fonts": [
        {
          "font": "./fonts/DB HELVETHAICAMON X MED V3.2.TTF",
          "supported": ["de-DE", "en-US", "es-ES", "fr-FR", "it-IT", "nl-NL", "sv-SE", "pt-BR"]
        }
      ],
      "color": "#545454"
    }