How to use Codemagic Unity iOS appliをApp Store Connectに全线设计 | Codemagic Blog

本記事はKevin Suhajdaが執筆いたした

Unityは、アフェック、CONSOLE、MOBILE DEVICES 2D and 3D ゲーーのゲーーーショーショーショーショングロックションションションショーションショーションションションションションションションションションショーシュIt is one of the most suitable options for the construction of a hybrid application.

本記事かる、Use Codemagic CI/CD to build Unity iOS appliを, code signature, App Store、App StoreづにざそestFlight useテスターやさんまするになゃたをれたれをさるたをさい全部するますますますたかたかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかてかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかいno!

本記事介、Unity’s project itself will not be considered.

  • CodemagicでUnity projectをすすしし、App Store Connectにさんますいますますしますします
  • Codemagic’s setup, etc.
  • Finally, the Xcode project will be prepared for the public.

Prerequisites for CodemagicでUnity iOS appliをすすすててますますますます

First, in order to be able to run all the steps in this article, to be able to run the steps. Please:

  • Unity Plus or Pro license
  • effectiveApple Developer Programの membership.
  • Automatic code signatureApp Store Connect API keyApple Developer Program administrator authority to create.
  • A Git-based version management system checked in to the Unity project
  • Unity SDKががなれますますいますますますますますますますますますますますteam。がん手青は、Code Magic(here) please contact us.

Added Unity project to Codemagic

The easiest way to add Codemagic to a project is a Git providerGitHubBitbucketGitLab Add a project to a Git source management service, etc.

  1. Code magicに LOG INしたします。 If you’re a new user,sign upplease.

sign up

  1. settingの 統合 (Integrations) から Unity プロジェ プロジェ を ア プロ プロ プロ し た Git プロバ イ ダジェ ト を ア プロ プロ プロ プロ た Git プロバ イ ダロバ イ ダジェ ト を を ア プロ プロ プロ プロ プロ し Git プ を を を プロ プロ し し た ポジ に ス ス ス 許可 与え られ れ れ られ れ れ れ れ れれ て て い だ火 ア ア セ セ。

  2. applicationページ内容し、**フェックションショック(Add application)** click here.

  3. If you want to access the Unity SDK instance, please select the team you want to use.here).

  4. Git providerーchoose.

  5. **Next time, the integration is authorizedClick on Codemagic to approve.手机、レポジトリ 电影(Next: Select a depository)**

    GitHubをIf you are using a Git provider, it is necessary to select a repository and select a repository. App)**をクサリをククサリアップトアップション。 For more details on setting up GitHub app integration,hereplease see.

  6. ここで、さんますますますからますますますますますますますますます、 Unity app电影。 Next, ** end up, add application(Finish: Add application) application add application(Finish: Add application) application add application

  7. The project’s settings are set to defaultcodemagic.yamlTab will be selected.

Unity’s authentication information will be added to Codemagic as a secure environment variable.

Unity’s serial number can be exported to iOS project by Codemagic’s build machine.publishingsection

UNITY_SERIALUNITY_USERNAMEUNITY_PASSWORDCreate an environment variable group called “unity” that contains environmental variables. codemagic.yaml 設定设计设计。

Codemagic will create the necessary environment variables as follows:

  1. If you are using a team,team > team 名clickGlobal variablesClick on it. If you don’t have it, you can add environment variables.

  2. UNITY_SERIALCreate a variable and set its value to your Unity serial number.group selectionDrop downunityと正视し、**“unity” group 电影(Create a “unity” group)Click on the buttonセキュア(safe)**とマークしadditionallyClick the button.

  3. UNITY_USERNAME「「名前の「「「」「」「」「」「」「」「」email addressアアに、しますししますしますしますしますしますしますしますしますとマークし、additionallyClick the button.

  4. UNITY_PASSWORDCreates a Unity ID valuepasswordししししししししますしますしますしたしたしたしたしたしてしてしたしてしたしてしてしてしたしてしてしてしてしてしてしてしてしてしてしてしてしてしてしてしてしてしてしてしてしてしてしてしてしますセキュアとマークし、additionallyClick the button.

Unity’s installation 先 defines environment parameters UNITY_HOME は、デッドッションショックバックションシューションションションごなますます。macOShere、In the case of WindowshereYou can check the location.

Adding an environment variable for Unity app to do iOS code signature automatically

Codeamgic is a Unity app for iOS自動でCODE SIGNINGアップッショークををますますますれますれをしうしうしうしうしうしうしなしははをしますしうしすをを「ios_credentials」

APP_STORE_CONNECT_KEY_IDENTIFIERAPP_STORE_CONNECT_ISSUER_IDAPP_STORE_CONNECT_PRIVATE_KEYCERTIFICATE_PRIVATE_KEY

Therefore, it is necessary to create a different variable group in the same tab.

  1. APP_STORE_CONNECT_KEY_IDENTIFIER とたしますますます、とととしてすます App Store Connect APIのKey identifierますますます。group selectionDrop downios_credentialsinput “ios_credentials” group creationClick on the buttonセキュアとマークし、additionallyClick the button.

  2. APP_STORE_CONNECT_ISSUER_ID「名名前の化前」「」「」「」「」「」「」「」「」「」「」」英语者(Publisher)IDしたしし、it will be added to the “ios_credentials” groupセキュアとマークし、additionallyClick the button.

  3. APP_STORE_CONNECT_PRIVATE_KEY「名名前のなんますますます。」「」「」「」「」」秘密鍵(Private Key)(.p8)にになるますしし、Add it to the “ios_credentials” group.セキュアとマークし、additionallyClick the button.

  4. CERTIFICATE_PRIVATE_KEY「名名前の前しまする」iOS 电影程序の秘密鍵(iOS Distribution Certificate private key)つしげグつげグつげグつげグセキュアとマークし、additionallyClick the button.

App Store Connect API key creation and the method of obtaining the necessary environment variable valuehere).

Using codemagic.yaml to configure Codemagic for Unity iOS applição

Codemagic provides the Unity SDK for Windows and macOS, and it will use the MacOS machine for iOS. 、Unity project is moved to the root directory codemagic.yaml A new file will be created.

I will add the following template to the file:

workflows:
  my-workflow:
    name: Workflow name
    max_build_duration: 120
    environment:
      groups:
        - ...
      vars:
        - ...
        
    scripts:
      - ...
    artifacts:
      - ...
    publishing:
      - ...

This is the basic workflow for building a Codemagic appdocumentplease see.

publishingSection で は 、 App Store Connect に にさん を Publish し 、 貴社 内 の App Store Connect ボーター 様 にとととたさいcreation creation creationたい たい たい たい たい.たい たい たい 追加 追加 する だけ です。

App Store review法はhere设计设计まます。About App Store Connecthereの記事も最作さん。

.ipa ししし、App Storeにすすすすの

  1. ワークフローIn the section, we define an appropriate workflow name:

    workflows:
       -unity-ios-release-workflow:
          name: Unity iOS release workflow
          max_build_duration: 120
    

    In addition, at this point in time, instance_type properties are defined by default.mac_pro_unity设计设计、codemagic.yaml ファイルかる设计するしたはno

  2. 先生groups Import the environment variable group created in the section:

    environment:
       groups:
          - unity
          - ios_credentials
    
  3. varsSet the following environment parameters in the section:

    vars:
      UNITY_BIN: /Applications/Unity/Hub/Editor/2020.3.20f1/Unity.app/Contents/MacOS/Unity
      BUILD_SCRIPT: BuildIos 
      UNITY_IOS_DIR: ios
      XCODE_PROJECT: "Unity-iPhone.xcodeproj"
      XCODE_SCHEME: "Unity-iPhone"
      BUNDLE_ID: <BUNDLE_ID>
      APP_STORE_APP_ID: <APPLE_ID>
    

    角括弫を可以値値に电影ますます。バンドルIDアップルIDは、App Store Connect > APPLI > Generic > APPLI INFORMATION で アフィックアウアアッグ。

  4. scriptsIn the section, initialize the macOS key chain:

    scripts:
      - name: Initialize macOS keychain
        script: keychain initialize  
    
  5. Activate Unity with the following script:

    - name: Activate Unity License
      script: $UNITY_BIN -batchmode -quit -logFile -serial ${UNITY_SERIAL?} -username ${UNITY_USERNAME?} -password ${UNITY_PASSWORD?}
    
  6. Export Xcode project

    - name: Build the Xcode project
      script: $UNITY_BIN -batchmode -quit -logFile -projectPath . -executeMethod BuildScript.$BUILD_SCRIPT -nographics
    
  7. I will retrieve the iOS signature file:

    - name: Fetch signing files
      script: app-store-connect fetch-signing-files $BUNDLE_ID --type IOS_APP_STORE
    
  8. I will add a certificate to the chain:

    - name: Add certificates to default keychain
      script: keychain add-certificates
    
  9. Add a testing profile to Xcode:

    - name: Set up code signing settings on Xcode project
      script: xcode-project use-profiles
    
  10. Build number will be incremented:

    - name: Increment build number
      script: | 
        cd ios && agvtool new-version -all $(($(app-store-connect get-latest-testflight-build-number "$APP_STORE_APP_ID") + 1))
    
  11. Build .ipa:

    - name: Build ipa for distribution
      script: xcode-project build-ipa --project "$UNITY_IOS_DIR/$XCODE_PROJECT" --scheme "$XCODE_SCHEME"
    
  12. generated.ipa to obtainartifactsI will update the path of (电影物) as follows:

    artifacts:
      - build/ios/ipa/*.ipa
    
  13. Unity no licenseを返すとたpublishingThis section will be published on App Store Connect:

      publishing:
        scripts:
          - name: Deactivate Unity License
            script: $UNITY_BIN -batchmode -quit -returnlicense -nographics
        app_store_connect:            
          api_key: $APP_STORE_CONNECT_PRIVATE_KEY         
          key_id: $APP_STORE_CONNECT_KEY_IDENTIFIER
          issuer_id: $APP_STORE_CONNECT_ISSUER_ID
    

With thiscodemagic.yamlThe file setting is complete. If you want to check the whole image,This blog article is a sample projectのローミドマーにに、Unity application appcodemagic.yamlThere is a practical example of the file.

Adding a build script to a Unity project

To build an Xcode project in headless mode, to build it in Unity mode, to build it in Unity mode.

なれなるマションでOpen Unity、アソット/アッター(Activities/Editor)ーに**デッド(Build)** たたます C# をスタートを新したしまするします。

The following will be added to the file:

using System.Linq;
using System;
using UnityEditor;
using UnityEngine;

public static class BuildScript
{

    [MenuItem("Build/Build iOS")]
    public static void BuildIos()
    {
        BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions();
        buildPlayerOptions.locationPathName = "ios";
        buildPlayerOptions.target = BuildTarget.iOS;
        buildPlayerOptions.options = BuildOptions.None;
        buildPlayerOptions.scenes = GetScenes();

        Debug.Log("Building iOS");
        BuildPipeline.BuildPlayer(buildPlayerOptions);
        Debug.Log("Built iOS");
    }

    private static string[] GetScenes()
    {
        return (from scene in EditorBuildSettings.scenes where scene.enabled select scene.path).ToArray();
    }

}

BuildIosMethodology、Xcode projectios.build > iOS buildIf you click, Xcode project can be exported

さんながなりますますますますをとなたするすますます

If you don’t want to answer this question manually, add Unity to the Xcode project. on the routeInfo.plistto a fileITSAppUsesNonExemptEncryptionたたたキーションし、アムリででしますますますいますまするNOIf you useYESましますますたしてますますますますますたい

天生の微信の这些の他们减代、英语はhereplease see.

To add the necessary post-build script, open Unity, open Unity projectPost-processing(後电视) A new C# script is added to it, and the following is added to it:

using UnityEditor;
using UnityEditor.Callbacks;
using UnityEditor.iOS.Xcode;
using System.IO;

public class IosBuildPostprocessor
{

    [PostProcessBuild(1)]
    public static void EditPlist(BuildTarget target, string path)
    {
        if (target != BuildTarget.iOS)
            return;


        string plistPath = path + "/Info.plist";
        PlistDocument plist = new PlistDocument();
        plist.ReadFromFile(plistPath);

        PlistElementDict rootDict = plist.root;

        // Add ITSAppUsesNonExemptEncryption to Info.plist
        rootDict.SetString("ITSAppUsesNonExemptEncryption", "false");


        File.WriteAllText(plistPath, plist.WriteToString());
    }
}

This script is exported from Xcode project Unity

To set iOS band identification in Unity

Before building an Xcode project, before banding an iOS application, set the band ID of the iOS application.

This is done as follows:

  1. unity openFile > Build settingexecute.
  2. Confirm that iOS is the selected platform.player settingClick the button.
  3. Other settingsThe section will be expanded.
  4. idアションで、**default band identifier ををなをライドすルトのレンドでするDefault オゴゴDefault.
  5. Apple Developer Program.
  6. versionを0.0.1 あらごごしせなりなりますますます。 Codemagicですますますますますますますををインをインますます。

Run the first build

コミットおりますたくだくいいくいたりを忘

Unity iOSし、**电影バッチックックション(Start your first build)(Start your first build)** click here.さててますますますししししししししますしぉしますしますしますしたしてます。

conclusion

でしますますます! Now, Unity iOS appliががききたされ、App Store Connectににさんにさはすさで、も、all the processesがすすさででもします! ! Also, it is not necessary to use Codemagic, to build Unity iOS appli, and to control Mac.

本記事かる、Use Codemagic to build Unity iOS appliをしてですますますますますますべべ法にべ法ににかか、codemagic.yaml設定 filehere It’s here.About the construction of Unity app for Android, heredocumentPlease refer to it.

Codemagic will build Unity app and publish it. 、でいがでいが、もしれませんが) I’ll help you. We will take advantage of our expert’s service at any time.

Have fun building!

Leave a Comment