GithubHelp home page GithubHelp logo

fastlane-community / fastlane-plugin-appicon Goto Github PK

View Code? Open in Web Editor NEW
335.0 10.0 52.0 1.9 MB

Generate required icon sizes and iconset from a master application icon.

License: MIT License

Ruby 100.00%

fastlane-plugin-appicon's Introduction

appicon plugin

fastlane Plugin Badge

Demo image

Getting Started

This project is a fastlane plugin. To get started with fastlane-plugin-appicon, add it to your project by running:

fastlane add_plugin appicon

Please note that this plugin uses minimagick, which requires either GraphicsMagick or ImageMagick library. If you have neither, you can install either via Homebrew:

brew install graphicsmagick

or

brew install imagemagick

The default CLI for the mini_magick gem is set to auto pick. It will first try to use GraphicsMagick (if you have it installed) otherwise it will use ImageMagick. If you want to be explicit about which CLI you use, set the minimagick_cli option to graphicsmagick or imagemagick. Not specifying this option will set MiniMagick to use auto which will choose what's available.

About appicon

Generate required icon sizes and iconset from a master application icon.

Since many apps use a single 1024x1024 icon to produce all the required sizes from, why not automate the process and save lots of time?

Example

Check out the example Fastfile to see how to use this plugin. Try it by cloning the repo, running fastlane install_plugins and bundle exec fastlane test.

Just specify the source image using the appicon_image_file. Optionally specify the devices using appicon_devices and the destination path using appicon_path.

We recommend storing the full-size picture at fastlane/metadata/app_icon.png so it can be picked up by deliver, as well as this plugin.

If you want to use this plugin to generate a app icon for Messages(sticker) extension, set messages_extension to true and add messages to the appicon_devices.

lane :basic do
  appicon(
    appicon_devices: [:ipad, :iphone, :ios_marketing],
    appicon_path: "MajorKey/Assets.xcassets"
  )
end

lane :test1 do
  appicon(appicon_image_file: 'spec/fixtures/Themoji.png',
             appicon_devices: [:ipad, :iphone, :ios_marketing])
end


lane :test2 do
  appicon(appicon_image_file: 'spec/fixtures/Themoji.png',
             appicon_devices: [:ipad, :iphone, :ios_marketing, :watch, :watch_marketing])
end

lane :test3 do
  # `appicon_image_file` defaults to "fastlane/metadata/app_icon.png"
  appicon(
    appicon_devices: [:iphone],
    appicon_path: 'wwdcfamily/Images.xcassets' # output path
  )
end

lane :test4 do
  appicon(appicon_image_file: 'spec/fixtures/Themoji.png',
             appicon_devices: [:macos])
end

lane :splash_screen do
  appicon(
    appicon_image_file: 'spec/fixtures/splash_screen.png',
    appicon_devices: [:universal],
    appicon_path: "ios/App/App/Assets.xcassets",
    appicon_name: 'Splash.imageset'
  )
end

lane :messages_extension do
  appicon(
    appicon_image_file: "fastlane/metadata/iMessageAppIcon.png",
    appicon_devices: [:iphone, :ipad, :ios_marketing, :messages],
    appicon_path: 'iMessageStickers/Stickers.xcassets',
    messages_extension: true
  )
end

# or

lane :android do
  android_appicon(
    appicon_image_file: 'spec/fixtures/Themoji.png',
    appicon_icon_types: [:launcher],
    appicon_path: 'app/res/mipmap'
  )
  android_appicon(
    appicon_image_file: 'spec/fixtures/ThemojiNotification.png',
    appicon_icon_types: [:notification],
    appicon_path: 'app/res/drawable',
    appicon_filename: 'ic_notification',
    generate_rounded: true
  )
  android_appicon(
    appicon_image_file: 'spec/fixtures/splash_base_image.png',
    appicon_icon_types: [:splash_port, :splash_land],
    appicon_path: 'app/res/drawable',
    appicon_filename: 'splash'
  )
end

Run tests for this plugin

To run both the tests, and code style validation, run

rake

To automatically fix many of the styling issues, use

rubocop -a

Issues and Feedback

For any other issues and feedback about this plugin, please submit it to this repository.

Troubleshooting

If you have trouble using plugins, check out the Plugins Troubleshooting doc in the main fastlane repo.

Using fastlane Plugins

For more information about how the fastlane plugin system works, check out the Plugins documentation.

About fastlane

fastlane is the easiest way to automate building and releasing your iOS and Android apps. To learn more, check out fastlane.tools.

fastlane-plugin-appicon's People

Contributors

adrum avatar alpennec avatar biolinh avatar cameronklein avatar ceyhun avatar cooksimo avatar davidair avatar dthuering avatar josh-m-sharpe avatar jschloer avatar krausefx avatar krzysztof-miemiec avatar mariohahn avatar neonichu avatar oskarn97 avatar patricknlt avatar rishabhtayal avatar tominsam avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fastlane-plugin-appicon's Issues

the generated macos app iconset is invalid

my Fastfile

lane :gen_appicon do
    appicon(
      appicon_image_file: 'iBackupExplorer/Resources/AppIcon512.png',
      appicon_devices: [:macos],
      appicon_path: 'iBackupExplorer/Resources/Assets.xcassets'
    )
  end

the generated appiconset

Snip20221119_33

I guess this is caused by the wrong param appicon_devices value [:macos], the right value should be [:mac].
If I changed the generated appiconset's Content.json, it turns to valid.

see #15

android_appicon command won't run in 0.11.0

I updated the plugin to 0.11.0 recently. When I try to run the android_appicon action like:

android_appicon(
      appicon_image_file: "src/assets/icon.png",
      appicon_devices: [:phone, :tablet],
      appicon_path: "android/app/src/main/res/mipmap"
)

it fails with the following message:

/usr/local/lib/ruby/gems/2.4.0/gems/fastlane-plugin-appicon-0.11.0/lib/fastlane/plugin/appicon/actions/android_appicon_action.rb:47:in `merge': [!] no implicit conversion of nil into Hash (TypeError)
        from /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-plugin-appicon-0.11.0/lib/fastlane/plugin/appicon/actions/android_appicon_action.rb:47:in `run'
        from /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.76.0/fastlane/lib/fastlane/runner.rb:253:in `block (2 levels) in execute_action'
        from /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.76.0/fastlane/lib/fastlane/actions/actions_helper.rb:50:in `execute_action'
        from /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.76.0/fastlane/lib/fastlane/runner.rb:231:in `block in execute_action'
        from /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.76.0/fastlane/lib/fastlane/runner.rb:227:in `chdir'
        from /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.76.0/fastlane/lib/fastlane/runner.rb:227:in `execute_action'
        from /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.76.0/fastlane/lib/fastlane/runner.rb:148:in `trigger_action_by_name'
        from /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.76.0/fastlane/lib/fastlane/fast_file.rb:148:in `method_missing'
        from Fastfile:215:in `block (2 levels) in parsing_binding'
        from /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.76.0/fastlane/lib/fastlane/lane.rb:33:in `call'
        from /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.76.0/fastlane/lib/fastlane/runner.rb:49:in `block in execute'
        from /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.76.0/fastlane/lib/fastlane/runner.rb:45:in `chdir'
        from /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.76.0/fastlane/lib/fastlane/runner.rb:45:in `execute'
        from /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.76.0/fastlane/lib/fastlane/lane_manager.rb:56:in `cruise_lane'
        from /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.76.0/fastlane/lib/fastlane/command_line_handler.rb:36:in `handle'
        from /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.76.0/fastlane/lib/fastlane/commands_generator.rb:108:in `block (2 levels) in run'
        from /usr/local/lib/ruby/gems/2.4.0/gems/commander-fastlane-4.4.5/lib/commander/command.rb:178:in `call'
        from /usr/local/lib/ruby/gems/2.4.0/gems/commander-fastlane-4.4.5/lib/commander/command.rb:153:in `run'
        from /usr/local/lib/ruby/gems/2.4.0/gems/commander-fastlane-4.4.5/lib/commander/runner.rb:476:in `run_active_command'
        from /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.76.0/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb:75:in `run!'
        from /usr/local/lib/ruby/gems/2.4.0/gems/commander-fastlane-4.4.5/lib/commander/delegates.rb:15:in `run!'
        from /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.76.0/fastlane/lib/fastlane/commands_generator.rb:337:in `run'
        from /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.76.0/fastlane/lib/fastlane/commands_generator.rb:42:in `start'
        from /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.76.0/fastlane/lib/fastlane/cli_tools_distributor.rb:94:in `take_off'
        from /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.76.0/bin/fastlane:20:in `<top (required)>'
        from /usr/local/bin/fastlane:23:in `load'
        from /usr/local/bin/fastlane:23:in `<main>'

I suppose it's a bug, because the same command works perfectly when run on 0.10.0.

Install fails

Running the command from the readme results in the following output:

[09:01:48]: Make sure to commit your Gemfile, Gemfile.lock and Pluginfile to version control
Installing plugin dependencies...
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    current directory: /Users/rwoverdijk/.fastlane/bin/bundle/lib/ruby/gems/2.2.0/gems/unf_ext-0.0.7.3/ext/unf_ext
/Users/rwoverdijk/.fastlane/bin/bundle/bin/ruby -r ./siteconf20170413-68829-6l16co.rb extconf.rb
checking for main() in -lstdc++... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
	--with-opt-dir
	--without-opt-dir
	--with-opt-include
	--without-opt-include=${opt-dir}/include
	--with-opt-lib
	--without-opt-lib=${opt-dir}/lib
	--with-make-prog
	--without-make-prog
	--srcdir=.
	--curdir
	--ruby=/Users/rwoverdijk/.fastlane/bin/bundle/bin/$(RUBY_BASE_NAME)
	--with-static-libstdc++
	--without-static-libstdc++
	--with-stdc++lib
	--without-stdc++lib
/Users/rwoverdijk/.fastlane/bin/bundle/lib/ruby/2.2.0/mkmf.rb:456:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.
	from /Users/rwoverdijk/.fastlane/bin/bundle/lib/ruby/2.2.0/mkmf.rb:541:in `try_link0'
	from /Users/rwoverdijk/.fastlane/bin/bundle/lib/ruby/2.2.0/mkmf.rb:556:in `try_link'
	from /Users/rwoverdijk/.fastlane/bin/bundle/lib/ruby/2.2.0/mkmf.rb:735:in `try_func'
	from /Users/rwoverdijk/.fastlane/bin/bundle/lib/ruby/2.2.0/mkmf.rb:966:in `block in have_library'
	from /Users/rwoverdijk/.fastlane/bin/bundle/lib/ruby/2.2.0/mkmf.rb:911:in `block in checking_for'
	from /Users/rwoverdijk/.fastlane/bin/bundle/lib/ruby/2.2.0/mkmf.rb:351:in `block (2 levels) in postpone'
	from /Users/rwoverdijk/.fastlane/bin/bundle/lib/ruby/2.2.0/mkmf.rb:321:in `open'
	from /Users/rwoverdijk/.fastlane/bin/bundle/lib/ruby/2.2.0/mkmf.rb:351:in `block in postpone'
	from /Users/rwoverdijk/.fastlane/bin/bundle/lib/ruby/2.2.0/mkmf.rb:321:in `open'
	from /Users/rwoverdijk/.fastlane/bin/bundle/lib/ruby/2.2.0/mkmf.rb:347:in `postpone'
	from /Users/rwoverdijk/.fastlane/bin/bundle/lib/ruby/2.2.0/mkmf.rb:910:in `checking_for'
	from /Users/rwoverdijk/.fastlane/bin/bundle/lib/ruby/2.2.0/mkmf.rb:961:in `have_library'
	from extconf.rb:6:in `<main>'

To see why this extension failed to compile, please check the mkmf.log which can be found here:

  /Users/rwoverdijk/.fastlane/bin/bundle/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-15/2.2.0-static/unf_ext-0.0.7.3/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in /Users/rwoverdijk/.fastlane/bin/bundle/lib/ruby/gems/2.2.0/gems/unf_ext-0.0.7.3 for inspection.
Results logged to /Users/rwoverdijk/.fastlane/bin/bundle/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-15/2.2.0-static/unf_ext-0.0.7.3/gem_make.out

Installing unf_ext manually works:

$ sudo gem install unf_ext -v '0.0.7.3'
Building native extensions.  This could take a while...
Successfully installed unf_ext-0.0.7.3
Parsing documentation for unf_ext-0.0.7.3
unable to convert "\xCA" from ASCII-8BIT to UTF-8 for lib/unf_ext.bundle, skipping
1 gem installed

Adjust the size of image used for splash screen

Hi,
Is there a way to adjust the size of the splash image, because the library does not resize it and I'm curious if there is a way to achieve this kind of result.

Here is the code I am running using Fastlane and the image is too big...

android_appicon(
appicon_image_file: 'src/assets/images/logos/development.png',
appicon_icon_types: [:splash_port, :splash_land],
appicon_path: 'android/app/src/development/res/mipmap',
appicon_filename: 'splash_icon'
)

Maybe some figured out how to solve this issue.

Generate iPhone notification and Spotlight icons

Does the plugin generate the iPhone notification and Spotlight icons? From the source code I don't think it does. Just want to confirm.

If not, I would be happy to implement this and create a PR. LMK. ๐Ÿ‘

Add support for Mac icons

I was able to add rough support for Mac icon sizes by modifying appicon/actions/appicon_action.rb to include the Mac dimensions, like this:

      def self.needed_icons
        {
          iphone: {
            '2x' => ['20x20', '29x29', '40x40', '60x60'],
            '3x' => ['20x20', '29x29', '40x40', '60x60']
          },
          ipad: {
            '1x' => ['20x20', '29x29', '40x40', '76x76'],
            '2x' => ['20x20', '29x29', '40x40', '76x76', '83.5x83.5']
          },
          mac: {
            '1x' => ['16x16', '32x32', '128x128', '256x256', '512x512'],
            '2x' => ['16x16', '32x32', '128x128', '256x256', '512x512']
          },
        }
      end

This worked for my purposes. I would submit a PR, however this isn't completely correct. Because of the double array loop where the resizing occurs, the script also writes out the iphone and ipad sizes, resulting in some Unassigned / unknown-trait-combination entries in the resulting xcassets file. A better solution would be to not export he iphone and ipad sizes for the mac device. I don't know enough about how necessary these are for the other devices to make the change myself.

Adaptive icon support?

Thank you for such a fantastic plugin! Runs great for me on iOS and Android. I was wondering if there were any plans for android adaptive icons? Android SDK 26+ allows for these types of icons. Users can now choose their icon style (circle or square), and the icons generated by this plugin result in a small square icon within a white circle if the user has their icons set as circular (see photo).

screen shot 2018-07-17 at 5 59 56 pm

Could not find action, lane or variable 'appicon'

It seems that the appicon action is not working on the iOS.

I have following lane:

  lane :icon do
    appicon(
      appicon_image_file: 'fastlane/metadata/logo-1024.png',
      appicon_devices: %i[ipad iphone ios_marketing watch watch_marketing],
      appicon_path: 'Images'
    )
  end

that results to Could not find action, lane or variable 'appicon'. Check out the documentation for more details: https://docs.fastlane.tools/actions when running bundle exec fastlane icon

[Swift] undefined method 'each' for nil:NilClass

Hey! I have installed this plugin and added it to my beta lane, but it seems to be throwing an error (more specifically, [21:35:23]: undefined method 'each' for nil:NilClass)

I'm assuming this only happens on Swift installs but I may be wrong. Code:
appicon(appiconImageFile: "fastlane/metadata/app_icon.png", appiconDevices: ["ipad", "iphone", "ios_marketing", "watch", "watch_marketing"])

GraphicsMagick still required?

This plugin uses mini_magic,

A ruby wrapper for ImageMagick or GraphicsMagick command line

Can I use ImageMagick only? If not, what are the limiting factors?

Using ImageMagick only would allow me to skip an install step on a CI machine, and cut down on build time, as ImageMagick is included in the VM's image, GraphicsMagick is not.

Icons generated with Alpha channel

The plugin should either show a warning, an error, or force the output of PNGs without the alpha channel to avoid:

iTunes Store Operation Failed

Error ITMS-90717: "Invalid App Store Icon. The App Store Icon in the asset catalog in 'YourApp.app' can't be transparent nor contain an alpha channel."

Create Android Play Icon

Suggesting adding a play_icon_path which will take the source image and generate the needed 512x512 image for google play (High res icon), when uploading the resource to the play store.

lane :android do
  android_appicon(
    appicon_image_file: 'spec/fixtures/Themoji.png',
    appicon_devices: [:phone, :tablet],
    appicon_path:'app/res/mipmap'
    play_icon_path: 'marketing/'
  )
end

Remove transparency from source PNG

As iOS icons cannot have transparency it would be nice to have an option to remove transparency from a source PNG, that way you could have the same source image for both iOS and Android, but iOS image could be flattened to remove transparent background.

New 1024x1024 image needed

Missing the new

    {
      "size" : "1024x1024",
      "idiom" : "ios-marketing",
      "filename" : "someImage.png",
      "scale" : "1x"
    }

this is required
image

not all images get created

Fastlane error:

/* com.apple.actool.errors */
/Users/xxxxxx/Projects/aaaaa/aaaaa.app/ios/Aaaaa/Images.xcassets: error: None of the input catalogs contained a matching stickers icon set or app icon set named  "AppIcon.development".
/* com.apple.actool.document.warnings */
/Users/xxxxxx/Projects/aaaaa/aaaaa.app/ios/Aaaaa/Images.xcassets:./AppIcon.development.imageset/[ios-marketing][][][1x][][][][][][][][][][][2d][aaaaa-development-1024x1024.png]: warning: The image set "AppIcon.development" has 14 unassigned children.
/Users/xxxxxx/Projects/aaaaa/aaaaa.app/ios/Aaaaa/Images.xcassets:./AppIcon.development.imageset/[ios-marketing][][][1x][][][][][][][][][][][2d][aaaaa-development-1024x1024.png]: warning: The image set "AppIcon.development" has 14 unassigned children.
/* com.apple.actool.compilation-results */
/Users/xxxxxx/Library/Developer/Xcode/DerivedData/Aaaaa-dtnedkkwumzrubbtpmnnjwwnkrbx/Build/Intermediates.noindex/ArchiveIntermediates/Aaaaa.Dev/InstallationBuildProductsLocation/Applications/Aaaaa Dev.app/Assets.car
/Users/xxxxxx/Library/Developer/Xcode/DerivedData/Aaaaa-dtnedkkwumzrubbtpmnnjwwnkrbx/Build/Intermediates.noindex/ArchiveIntermediates/Aaaaa.Dev/IntermediateBuildFilesPath/Aaaaa.build/Development.Release-iphoneos/Aaaaa.build/assetcatalog_generated_info.plist

Usage:

appicon(
  appicon_image_file: './src/assets/images/aaaaa-development.png',
  appicon_devices: [:ipad, :iphone, :ios_marketing],
  appicon_path: "ios/Aaaaa/Images.xcassets",
  appicon_name: 'AppIcon.development.imageset'
)

Xcode: see attached image
image

Instructions do not mention graphicsmagick

When trying to run the plugin out-of-the-box on a clean machine, I get the following error:

ImageMagick/GraphicsMagick is not installed

This can be addressed by something like brew install graphicsmagick

Can the instructions be updated to include this as a prerequisite?

Error loading plugin 'fastlane-plugin-appicon'

When I run this through my Bitrise CI enviroment I get the following error...

Error loading plugin 'fastlane-plugin-appicon': Unable to activate fastlane-plugin-appicon-0.14.1, because mini_magick-4.5.1 conflicts with mini_magick (>= 4.9.4, < 5.0.0)

I ran fastlane update_plugins locally but it didn't change anything. Is this something I should run in CI?

Any ideas?

Plugin always updated generated icons

I'd like to check in the generated icons so that when I build the app for development it still gets an icon. But every time I run the plugin the generated icons are updated on disk - even the MD5 of the file changes, so my git client gets unhappy.

Would it be reasonable to only generate icons if the target file is either not present or older than the source file?

An error occurred while installing json (2.1.0), and Bundler cannot continue.

I ran fastlane add_plugin appicon and got this result:

[20:27:54]: fastlane detected a Gemfile in the current directory
[20:27:54]: however it seems like you don't use `bundle exec`
[20:27:54]: to launch fastlane faster, please use
[20:27:54]: 
[20:27:54]: $ bundle exec fastlane add_plugin appicon
[20:27:54]: 
[20:27:54]: Get started using a Gemfile for fastlane https://docs.fastlane.tools/getting-started/ios/setup/#use-a-gemfile
[20:27:56]: Plugin 'fastlane-plugin-appicon' was added to './fastlane/Pluginfile'
[20:27:56]: Make sure to commit your Gemfile, Gemfile.lock and Pluginfile to version control
Installing plugin dependencies...
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    current directory: /Users/andreygordeev/.fastlane/bin/bundle/lib/ruby/gems/2.2.0/gems/json-2.1.0/ext/json/ext/generator
/Users/andreygordeev/.fastlane/bin/bundle/bin/ruby -r ./siteconf20180128-83207-1711sfk.rb extconf.rb
creating Makefile

current directory: /Users/andreygordeev/.fastlane/bin/bundle/lib/ruby/gems/2.2.0/gems/json-2.1.0/ext/json/ext/generator
make "DESTDIR=" clean

current directory: /Users/andreygordeev/.fastlane/bin/bundle/lib/ruby/gems/2.2.0/gems/json-2.1.0/ext/json/ext/generator
make "DESTDIR="
compiling generator.c
clang: warning: no such sysroot directory: '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk' [-Wmissing-sysroot]
In file included from generator.c:1:
In file included from ./../fbuffer/fbuffer.h:5:
In file included from /Users/andreygordeev/.fastlane/bin/bundle/include/ruby-2.2.0/ruby.h:33:
In file included from /Users/andreygordeev/.fastlane/bin/bundle/include/ruby-2.2.0/ruby/ruby.h:29:
/Users/andreygordeev/.fastlane/bin/bundle/include/ruby-2.2.0/ruby/defines.h:26:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
         ^~~~~~~~~
1 error generated.
make: *** [generator.o] Error 1

make failed, exit code 2

Gem files will remain installed in /Users/andreygordeev/.fastlane/bin/bundle/lib/ruby/gems/2.2.0/gems/json-2.1.0 for inspection.
Results logged to /Users/andreygordeev/.fastlane/bin/bundle/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-15/2.2.0-static/json-2.1.0/gem_make.out

An error occurred while installing json (2.1.0), and Bundler cannot continue.
Make sure that `gem install json -v '2.1.0'` succeeds before bundling.

I executed sudo gem install json -v '2.1.0' and reran the command, but got the same result

Add marketing image

This is a new apple requirement, the AppStore iOS marketing app icon which is 1024x1024.
At the moment I'm using this plugin then manually updating the the 1024pt icon

can not update fastlane because of mini_magick dependency

to be honest i now nothing about bundler, but i suspect this message is trying to tell me it can't update fastlane to the latest version because of conflicts in the required mini_magick dependency?

Bundler could not find compatible versions for gem "mini_magick":
  In Gemfile:
    fastlane (~> 2.127.2) was resolved to 2.127.2, which depends on
      mini_magick (< 5.0.0, >= 4.9.4)

    fastlane-plugin-appicon was resolved to 0.14.0, which depends on
      mini_magick (~> 4.5.1)

mini_magick 4.5.1 has a potential security vulnerability.

How to pass list of devices as arguments to the lane

Hi, I don't know ruby language and I'm trying to find a way to pass list of devices as arguments since values are not string.

current state

lane :test1 do
  appicon(
      appicon_image_file: 'spec/fixtures/Themoji.png',
      appicon_devices: [:ipad, :iphone, :ios_marketing])
end

expecting state

lane :test1 do |options|
  appicon(
      appicon_image_file: 'spec/fixtures/Themoji.png',
      appicon_devices: options[:devices]
  )
end

command:

bundle exec fastlane test1 devices:"[:iphone, :ipad, :ios_marketing]"

Thanks.

Support for Android App Icons?

Hello,

I am using this plugin in IOS apps and it is great. Today i wanted to use it in my Android app but as far as i see it does not support Android yet?

Best

Doesn't add 1024 x 1024 icon

Am I doing something wrong? The png I'm using to generate all the app icons is 1024x1024, yet the appicons plugin doesn't set this as the app icon for 1024x1024 in the asset catalog.

Some icon sizes are missed

Hi,

The next error getting while uploading ipa file to iTunes:

ERROR ITMS-90032: "Invalid Image Path - No image found at the path referenced under key 'CFBundleIconFiles': 'AppIcon57x57.png'"
ERROR ITMS-90032: "Invalid Image Path - No image found at the path referenced under key 'CFBundleIconFiles': '[email protected]'"
ERROR ITMS-90032: "Invalid Image Path - No image found at the path referenced under key 'CFBundleIconFiles': 'AppIcon72x72@2x~ipad.png'"
ERROR ITMS-90032: "Invalid Image Path - No image found at the path referenced under key 'CFBundleIconFiles': 'AppIcon72x72~ipad.png'"
๏ฟฝ[0m

The next config I'm using
appicon(appicon_devices: [:ipad, :iphone, :ios_marketing])

Fastlane version 2.62.0, appicon version 0.10

Could you help please

Generate Rounded Error

I'm trying to use the new generate_rounded: true

But I get this error:

`gm mogrify -alpha transparent -background none -fill white -draw roundrectangle 1,1,190,190,95,95 /var/folders/jt/w7z_82ns5n7fj1_2xjgl6r180000gn/T/mini_magick20200712-72378-8r1mmy.png` failed with error: (MiniMagick::Error)
gm mogrify: Unrecognized option (-alpha).

Screen Shot 2020-07-12 at 11 00 42 PM

0.10 generating blurry app icons

Hi,

we've used version 0.6 until now and everything worked fine. Today I wanted to update the plugin to the latest version (0.10) to support the :ios_marketing icon. Unfortunately after updating the plugin to the latest version the generated icons are looking very blurry. Re-generating the Icons with 0.6 is fine so I guess our source 1024x1024 image is OK. The Icon sizes seem to be correct for each entry (58x58 etc..).

Running bundle exec fastlane update_plugins appicon changes the following gems:

  • main plugin from 0.6 to 0.10
  • mini_portile2 from 2.2.0 to 2.1.0
  • nokogiri from 1.8.0 to 1.6.8.1

Any clue why it's downgrading these gems and why the generated Icons are blurry for us in the latest version?

Thanks!

Kind regards
Patrick

๐Ÿšซ fastlane environment ๐Ÿšซ

Stack

Key Value
OS 10.12.6
Ruby 2.4.0
Bundler? true
Git git version 2.13.5 (Apple Git-94)
Installation Source ~/.rvm/gems/ruby-2.4.0/bin/fastlane
Host Mac OS X 10.12.6 (16G29)
Ruby Lib Dir ~/.rvm/rubies/ruby-2.4.0/lib
OpenSSL Version OpenSSL 1.1.0f 25 May 2017
Is contained false
Is homebrew false
Is installed via Fabric.app false
Xcode Path /Applications/Xcode-9.app/Contents/Developer/
Xcode Version 9.0

System Locale

Error
No Locale with UTF8 found ๐Ÿšซ

fastlane files:

(stripped out)

`./fastlane/Fastfile`
# Customise this file, documentation can be found here:
# https://github.com/fastlane/fastlane/tree/master/fastlane/docs
# All available actions: https://docs.fastlane.tools/actions
# can also be listed using the `fastlane actions` command

# Change the syntax highlighting to Ruby
# All lines starting with a # are ignored when running `fastlane`

# If you want to automatically update fastlane if a new version is available:
# update_fastlane

# This is the minimum version number required.
# Update this, if you use features of a newer version
fastlane_version "2.20.0"

skip_docs

default_platform :ios
platform :ios do

  lane :build_icon do
    appicon(appicon_image_file: 'fastlane/metadata/Icon.png',
      appicon_devices: [:ipad, :iphone, :ios_marketing],
      appicon_path: 'Wearparts/Assets.xcassets')
  end

fastlane gems

Gem Version Update-Status
fastlane 2.59.0 โœ… Up-To-Date

Loaded fastlane plugins:

Plugin Version Update-Status
fastlane-plugin-appicon 0.10.0 โœ… Up-To-Date
Loaded gems
Gem Version
did_you_mean 1.1.0
io-console 0.4.6
CFPropertyList 2.3.5
i18n 0.8.6
minitest 5.10.3
thread_safe 0.3.6
tzinfo 1.2.3
activesupport 4.2.9
public_suffix 2.0.5
addressable 2.5.2
babosa 1.0.2
bundler 1.15.4
claide 1.0.2
clamp 0.6.5
fuzzy_match 2.0.4
nap 1.1.0
cocoapods-core 1.2.1
cocoapods-deintegrate 1.0.1
cocoapods-downloader 1.1.3
cocoapods-plugins 1.0.0
cocoapods-search 1.0.0
cocoapods-stats 1.0.0
netrc 0.7.8
cocoapods-trunk 1.2.0
cocoapods-try 1.1.0
colored2 3.1.2
escape 0.0.4
fourflusher 2.0.1
gh_inspector 1.0.3
molinillo 0.5.7
ruby-macho 1.1.0
nanaimo 0.2.3
xcodeproj 1.5.2
cocoapods 1.2.1
colored 1.2
highline 1.7.8
commander-fastlane 4.4.5
declarative 0.0.10
declarative-option 0.1.0
unf_ext 0.0.7.4
unf 0.1.4
domain_name 0.5.20170404
dotenv 2.2.1
excon 0.59.0
multipart-post 2.0.0
faraday 0.13.1
http-cookie 1.0.3
faraday-cookie_jar 0.0.6
faraday_middleware 0.12.2
fastimage 2.1.0
jwt 1.5.6
little-plugger 1.1.4
multi_json 1.12.2
logging 2.2.2
memoist 0.16.0
os 0.9.6
signet 0.7.3
googleauth 0.5.3
httpclient 2.8.3
mime-types-data 3.2016.0521
mime-types 3.1
uber 0.1.0
representable 3.0.4
retriable 3.1.1
google-api-client 0.13.6
json 2.1.0
mini_magick 4.5.1
multi_xml 0.6.0
plist 3.3.0
rubyzip 1.2.1
security 0.1.3
slack-notifier 1.5.1
terminal-notifier 1.8.0
unicode-display_width 1.3.0
terminal-table 1.8.0
tty-screen 0.5.0
word_wrap 1.0.0
rouge 2.0.7
xcpretty 0.2.8
xcpretty-travis-formatter 0.0.4
fastlane-plugin-appicon 0.10.0
mini_portile2 2.1.0
nokogiri 1.6.8.1
slather 2.4.3

generated on: 2017-09-26

Generated App Store icon is not assigned

4b282da renamed the ios-marketing key to ios_marketing.

Unfortunately, this updates the idiom inside the Contents.json file as well, resulting in an unassigned icon in Xcode.

Could we consider reverting this commit?

Could not find option 'appicon_devices' in the list of available options

When I run the following command from the example

android_appicon(
    appicon_image_file: "../appIconAssets/savvy/appIcon/app-icon.png",
    appicon_devices: [:phone, :tablet], # - does not exist on android
    appicon_path: '../../android/app/src/main/res/mipmap'
  )
Could not find option 'appicon_devices' in the list of available options:
appicon_image_file, appicon_icon_types, appicon_path, appicon_filename, appicon_custom_sizes

This is because inside the android app icon actions appicon_devices is not specified as an option.

I am not sure if this is a example error or a android action error.

https://github.com/KrauseFx/fastlane-plugin-appicon/blob/master/lib/fastlane/plugin/appicon/actions/android_appicon_action.rb

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.