Giter VIP home page Giter VIP logo

app-signer's People

Contributors

danielpaulus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

app-signer's Issues

"errSecInternalComponent" error during the test.txt signing phase

Hello daniel !

I was trying to use the app-signer out of curiosity, just to check how it works as it seems to be a really nice alternative to other toolings.

While trying it with a test ipa, i always met this error during the .txt signing test phase: error="exit status 1" output="Warning: unable to build chain to self-signed root for signer \"iPhone Developer: ################## (############)\"\n/var/folders/hb/ct389svx7yv43p_3s59mm4mw0000gn/T/pattern1559172448/sign/test.txt: errSecInternalComponent\n"

For troubleshooting i tried to:

  • check the permission of the .txt file
  • check the permission of the temporary keychain created
  • run the command as sudo
  • run the signing command independently by keeping a copy of the final keychain generated
  • check the content of the temporary keychain itself within the keychain access.app (seems to be always empty without any certificate inside. Not sure if it's expected)
  • changed the code so that it builds and created a signing workspace outside /var
  • Used it on two different mac machine running macOS 12.1, one with a M1 cpu, the other an intel one

None of the solutions worked so far so i'm probably sure i must have missed something along the way :(

Searching this error on the web, it mostly comes up when users are codesigning with the Default Keychain (login) which is password protected. It seems weird that it comes up here as we are using our own keychain.

Here is the stacktrace for reference:

INFO[0000] starting iOS appsigner                        args="[./app-signer --udid=<device_id> --p12password=<pwd> --profilespath=<path_to_folder_with_provisioning_file+p12> --ipa=<path_to_ipa> --output=<output_folder>]"
INFO[0000] cleaning workdir
INFO[0000] parsing profile '<path_to_folder_with_provisioning_file+p12>/########.mobileprovision'
INFO[0000] found 1 profiles
INFO[0000] extracting files for profile: ########
INFO[0000] extracting entitlements to: '/var/folders/hb/ct389svx7yv43p_3s59mm4mw0000gn/T/pattern1559172448/########-entitlements.plist'
INFO[0000] extracting signing certificate ############################# to: '/var/folders/hb/ct389svx7yv43p_3s59mm4mw0000gn/T/pattern1559172448/########-signingcert.p12'
INFO[0000] keychain created: /var/folders/hb/ct389svx7yv43p_3s59mm4mw0000gn/T/pattern1559172448/appsigner.keychain
INFO[0000] installing /var/folders/hb/ct389svx7yv43p_3s59mm4mw0000gn/T/pattern1559172448/########-signingcert.p12 to keychain
INFO[0000] codesign test signing failed                  cert=############################# cmd="/usr/bin/codesign -vv --keychain /var/folders/hb/ct389svx7yv43p_3s59mm4mw0000gn/T/pattern1559172448/appsigner.keychain --deep --force --sign ####################################### /var/folders/hb/ct389svx7yv43p_3s59mm4mw0000gn/T/pattern1559172448/sign/test.txt" error="exit status 1" output="Warning: unable to build chain to self-signed root for signer \"iPhone Developer: ################## (############)\"\n/var/folders/hb/ct389svx7yv43p_3s59mm4mw0000gn/T/pattern1559172448/sign/test.txt: errSecInternalComponent\n"
ERRO[0000] test signing failedexit status 1

The other question i had is more related to the code itself:
So far it seems we need to provide a reference device ID, even if our mobileprovision file was generated with multiple devices.
It seems to be related to this section at api/workspace.go:38 where we expect a folder with a list of .mobileprovision files instead of just one:

  • As and output, we have a table of profiles.
  • The udid is then only used as a reference to select the correct mobileprovision data here : codesign/profileparser.go:54. I'm not sure if this is the correct interpretation though.

I was wondering if it was something mandatory and if it's possible to expose another function to resign without a device id as reference ? (instead we can give the path to a single mobileprovision and p12 or maybe sign the same ipa with all the mobileprovision file available in the folder).

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.