Uploaded image for project: 'Titanium SDK/CLI'
  1. Titanium SDK/CLI
  2. TIMOB-24565

iOS CLI: Improve the way dist-appstore build works

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: Release 6.1.0
    • Component/s: CLI
    • Environment:

      Titanium 6.0.3.GA

    • Story Points:
      3
    • Sprint:
      2017 Sprint 08 Tooling

      Description

      First some background. I created TiFastlane as a way to be able to use Fastlane with Titanium development. To be able to use Fastlane when archiving a build it needs to be into an .ipa archive, the way I used to do that is by a small hack, using dist-adhoc with an App Store profile. This worked until XCode 8.3 in which the Legacy API was disabled.

      This puts me in the current situation to which I need some assistance.

      The way I'm looking to solve it is to:

      1. Create the .archive: appc run -p ios -T dist-appstore
      2. Use the XCode exporter to export the archive into an ipa xcodebuild -exportArchive -archivePath "~/Library/Developer/Xcode/Archives/2017-04-06/My App 2017-04-06 10-24-57.xcarchive" -exportPath "./dist" -exportOptionsPlist "./build/iphone/Info.plist"

      I tested this manually and it works, but there are some issues I'm encountering to be able to have this work as real CLI option.

      Missing method export option in the plist

      The plist generated by the CLI is missing the method, which then has xcodebuild fail when doing the export because it defaults to development so the code signing is wrong. To fix this the correct method needs to be present in the plist:

      <key>method</key>
      <string>app-store</string>
      

      This issue doesn't happen on 6.0.1.GA, only in the latest version.

      XCode Archiver Launch

      The other issue is that when the dist-appstore build finishes, it automatically tries to launch the XCode archive manager. This makes it necessary to have an extra human intervention in the step, which breaks the whole automatic process.

      It would be great if we could have a way to override that feature, so that when the build finishes it doesn't do anything else.

      I'm more than willing to help out in doing changes or tests on the CLI to achieve this, but this is my first time hacking the Ti CLI so I'm a bit lost on what goes where.

      Aside from these fixes, it might be worth it to add a --export-ipa option on the build process so that the CLI automatically does the second step of calling the exporter so we end up with an ipa ready to use for the App Store.

        Attachments

          Activity

            People

            • Assignee:
              cbarber Chris Barber
              Reporter:
              ulizama Uriel Lizama
              Tester:
              Abir Mukherjee
            • Watchers:
              6 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Backbone Issue Sync

                • Backbone Issue Sync is enabled for your project, but we do not have any synchronization info for this issue.

                  Git Source Code