iOS 通过github自动打包ipa

iOS 通过github自动打包ipa

1.在apple的developer里创建好identifiers
在这里插入图片描述
2.在终端输入fastlane init (初始化)
3.终端输入 vim fastlane 然后选择appfile
在这里插入图片描述
4.在其中增加一下两行:

app_identifier("com.tech.OnePass") # The bundle identifier of your app
apple_id("audrieherreslmw32@gmail.com") # Your Apple email address

把matchfile的代码改成以下格式:

git_url("git@gitlab.com:applesoftware/fastlane-certificates.git")
git_branch("wanghai")
storage_mode("git")

type("development") # The default type, can be: appstore, adhoc, enterprise or development
app_identifier(["com.tech.OnePass"])
username("audrieherreslmw32@gmail.com")
# app_identifier(["tools.fastlane.app", "tools.fastlane.app2"])
# username("user@fastlane.tools") # Your Apple Developer Portal username

# For all available options run `fastlane match --help`
# Remove the # in the beginning of the line to enable the other options

# The docs are available on https://docs.fastlane.tools/actions/match

5.在终端输入fastlane match development(初始化的时候不用输–readonly)——创建debug的证书
6.先把别的目录的device.txt拷贝到这个文件下:

cp ../tomato-clock-ios/devices.txt .

这段命令的意思是:
-‘cp’就是拷贝copy
-’…/tomato-clock-ios/devices.txt’这个文件
-’.’ 到当前目录下
7.在终端输入vim fastlane/Fastfile,把以下代码加入其中,是跑fastlane的时候刷设备号,跑真机用的:

desc "Add devices"
  lane :devices do
    register_devices(devices_file: "./devices.txt")
    match(type: "development", force_for_new_devices: true)
  end

7.在终端输入fastlane match appstore——创建relase的证书
8.改一下fastlane中Fastfile的文件内容,主要是以下几点:
8.1 把Apple Distribution改成当前的开发者——code_sign_identity: “Apple Distribution: hai wang (9ZX5JT86V6)”
8.2 把app的名字改成当前的名字 targets: “OnePass”,
8.3 把team ID也改成当前的9ZX5JT86V6

default_platform(:ios)
platform :ios do
  desc "Add devices"
  lane :devices do
    register_devices(devices_file: "./devices.txt")
    match(type: "development", force_for_new_devices: true)
  end
  
  desc "match"
  lane :setup_match do
    setup
    match(
      type: "appstore",
      readonly: true,
      keychain_name: "action.keychain",
      keychain_password: ENV["MATCH_PASSWORD"]
    )
  end

  desc "build"
  lane :build do
    setup_match

    app_store_connect_api_key(
      key_id: ENV["KEY_ID"],
      issuer_id: ENV["ISSUER_ID"],
      key_content: ENV["AUTHKEY"],
      duration: 1200,
      in_house: false,
      is_key_content_base64: true
    )

    update_code_signing_settings(
      use_automatic_signing: false,
      path: "OnePass.xcodeproj",
      team_id: "9ZX5JT86V6",
      targets: "OnePass",
      code_sign_identity: "Apple Distribution: hai wang (9ZX5JT86V6)"
    )

    build_app(
      workspace: "OnePass.xcworkspace",
      scheme: "OnePass",
      export_method: "app-store",
      output_directory: "ipas",
      clean: true,
      export_team_id: "9ZX5JT86V6",
      output_name:   "OnePass.ipa",
      export_options: {
        method: "app-store",
        signingCertificate: "Apple Distribution: hai wang (9ZX5JT86V6)",
        teamID: "9ZX5JT86V6",
        signingStyle: "manual",
        provisioningProfiles: {
          "com.tech.OnePass" => "match AppStorecom.tech.OnePasss",
        }
      }
    )

    upload_to_testflight(skip_submission: true, skip_waiting_for_build_processing: true)
    slack_message(targets: "OnePass")
  end

  #### Private ####
  private_lane :setup do
    create_keychain(
      name: "action.keychain",
      password: ENV["MATCH_PASSWORD"],
      default_keychain: true,
      unlock: true,
      timeout: 3600,
      lock_when_sleeps: false,
      require_create: true
    )

    sh("security list-keychains -d user")
    sh("security default-keychain -d user")
    sh("security find-identity -v -p codesigning action.keychain")
  end

  private_lane :slack_message do |options|
      build_number = get_build_number(xcodeproj: "OnePass.xcodeproj")
      slack(
        message: "App successfully uploaded to iTunesConnect.",
        success: true,
        slack_url: ENV["SLACK_URL"],
        attachment_properties: {
          fields: [
              {
                  title: "Build number",
                  value: build_number,
              },
              {
                  title: "Targets",
                  value: options[:targets],
              }
          ]
      })
  end
end

8.在终端输入ag hai
9.在github上创建一个这个邮箱的账号,新建一个仓库
10.在gitlab中选择设置,点击repositories,选择Mirroring repositories,按照以下格式输入:
在这里插入图片描述
在这里插入图片描述

11.在终端输入(必须要输入):

cp -r ../loancalc-ios/.github .

12.在终端输入(必须要输入):

cp ../tomatolifeios/Gemfile .
bundle

13.在github新建的仓库中选中setting,然后选中secrets,新建仓库的secret:
在这里插入图片描述

  1. AUTHKEY:
cat ~/Downloads/AuthKey_XXXXX.p8|base64|pbcopy
  1. ISSUER_ID & KEY_ID:
    在这里插入图片描述

  2. MATCH_PASSWORD:

123123
  1. SLACK_URL:
https://hooks.slack.com/services/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
  1. SSH_PRIVATE_KEY:
 cd tomatolifeios
 cd ssh
 cat id_rsa|pbcopy

输入完之后,将代码git push完之后,输入git tag build-1就会自动打包了(git tag build - X)X是当前的build号
之后在github上就可以找到这个提交的代码了
在这里插入图片描述
在action里查看打包的进程:
在这里插入图片描述

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ipapy 是 iOS项目自动打包脚本1.脚本自动打包2.上传到fir.im3.发送邮件给测试人员需要安装的相关指令软件:1.python 2.72.xcode3.fir.im指令使用方法:1.安装xcode2.安装fir.im的指令,安装方法见 https://github.com/FIRHQ/fir-cli/blob/master/README.md3.配置相关信息 python ipa.py -c 或者 python ipa.py --configtargetName:工程的名称,如:我的工程是BossZP.xcodeproj,所以我的targetName就是BossZPgitPath:工程的git地址,如:我的git地址是http://git.xxx.org/xxxxxx/xxxxxx.gitcertificateName:证书名称,如:我的是iPhone Developer: YANG YU (7XC3UZCAZM)firToken:在fir.im上创建应用后的token,如:我的是2ac8uf3j9z3ur98d7gxxxxxxxx下面的是邮件设置:emailFromUser:我的邮箱,如:xxxxxx@163.comemailToUser:测试人员的邮箱,如 xxxxxx@163.comemailPassword:我的邮箱的密码emailHost:邮箱的host,可以去邮箱网页查看,如:我的是smtp.163.comkeychainPassword:(选填)远程SSH连接打包的话需要设置这个参数,内容为你电脑的密码4.配置完信息,可以通过 --help 或者 -h 查看基本的使用方法-h, --help            查看帮助信息-c, --config          配置基本信息-s, --showTags        显示git上所有的版本-t TAG, --tag=TAG     设置打包时的版本● 如果你不喜欢我把放在Documents下面,你可以把脚本的第28行改成你喜欢的目录,如:target_path = "/Users/yuyang/clone/BossZP"你可以这样使用:python ipa.py -hpython ipa.py --helppython ipa.py -cpython ipa.py --configpython ipa.py -spython ipa.py --showTagspython ipa.py -t v3.0 (打包时候这样使用,后面的v3.0参数可以使用python ipa.py -s获取)python ipa.py -tag v3.0 (打包时候这样使用,后面的v3.0参数可以使用python ipa.py -s获取)python ipa.py (tag不写,默认是master) 标签:Ipapy
回答: 在GitHub项目中进行打包的步骤如下: 1. 首先,完成代码的提交和推送到GitHub仓库。使用以下命令将代码提交到仓库: ``` git add . git commit -m "feat: 第一次发布部署" git push ``` 注意,这只是提交了代码的记录,并不会触发自动化构建部署。 2. 接下来,我们需要为代码打上一个版本标签。使用以下命令进行版本标记: ``` git tag v0.1.0 git push origin v0.1.0 ``` 这将把本地标签推送到远程仓库,并触发自动构建部署。 3. 在项目中创建一个名为`vue.config.js`的文件,并添加以下代码: ```javascript module.exports = { assetsDir: 'static', parallel: false, publicPath: './', devServer: { port: 5000, open: true, }, }; ``` 这个配置文件可以用来自定义Vue项目的一些配置,比如静态资源目录、并行构建等。 4. 最后,我们需要生成一个GitHub Actions Token。可以通过以下链接生成Token:\[https://github.com/settings/tokens\](https://github.com/settings/tokens)。在生成Token时,需要勾选`repo`权限,并保存生成的Token(请注意,该Token只显示一次,如果忘记了就需要重新生成)。 完成以上步骤后,GitHub Actions将自动进行打包部署到服务器。 #### 引用[.reference_title] - *1* *3* [利用GitHub Actions自动打包部署服务器](https://blog.csdn.net/qq_35374262/article/details/108127204)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [项目打包部署到githubGitHub Pages(静态网页)](https://blog.csdn.net/zuo_kaizheng/article/details/121659587)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值