It has been four months since I transferred from iOS development to iOS test development. From the beginning, I didn’t even know what Appium was, to the decisive abandonment, which was a tangled process of learning and practicing. At this point, I want to summarize the automation continuous integration that is being studied recently.

In the development process, the most headache is packaging, from Debug to Release, from a variety of tripartite library error, to a package at least 10 minutes, during this period of time, nothing can be done. So gather information bit by bit:

(1) making Jenkins + + Xcode + fir

(2) Jenkins + git + dandelion

(3) Jenkins, Git, CocoaPods, Fir

(4) Fastlane + Jenkins

(5) Fastlane realizes continuous integration

Because I have been using Fir. Im, and recently Fir updated a lot of tools, and support Jenkins automatic upload package (iOS automatic packaging), so I once tried to only use Fir to complete git pull update, automatic packaging and distribution package to the official website, of course, because it just came out, The official website provides very little information (FIR one-click package simple introduction), so I try to implement the process myself. The result is certainly not ideal, not to mention multiple targets, packaging error bizarre; And in the project that uses Application Extension, packaging cannot be completed.

So you had to find Fastlane to do the packaging. Whether it is from the official information to see the full sincerity (official documentation), relative to git (git address) on the tutorial is quite detailed, can say that fastlane itself for the function, the basic is enough.

So began the long journey of automatic packing.

[16:05:22]:▸❌ld: library not found for-lyymodel [16:05:22]:▸❌clang: error: Linker Command failed with exit Code 1 (UsE-V to see Invocation) so far there is no easy way to eliminate this error only by replacing clean engineering files constantly.

After spending some time from installation to implementation of packaging, it was natural to use Jenkins to complete automatic continuous integration. Sadly, despite referring to a large number of literatures and trying to solve the problem from error prompts, Jenkins’ automatic packaging still could not be realized. Of course, this is a work in progress, and hopefully a solution will be found once we have completed our recent understanding of the Ruby language scripting concept (Introduction to Ruby).