#getMobileprovisionUUID.sh

#!/bin/bash
if [ $# -ne 1 ]
then
 echo "Usage: getmobileuuid the-mobileprovision-file-path"
 exit 1
fi
# mobileprovision_uuid=`grep UUID -A1 -a $1 | grep -o "[-A-Z0-9]\{36\}"`
mobileprovision_uuid=`/usr/libexec/PlistBuddy -c "Print UUID" /dev/stdin <<< $(/usr/bin/security cms -D -i $1)`
echo "UUID is:"
echo ${mobileprovision_uuid}
${scriptPath}/getMobileprovisionUUID.sh ${provisionPath}/${provisionName}.mobileprovision
UUID is:
UUID 결과값
반응형

| 현상

 

macOS 업데이트 후, il2cpp 빌드 중 clang++와 같은 ndk 관련 툴 사용 중 위와 같은 에러가 발생

stdout:
Building libil2cpp.so with AndroidToolChain
    Output directory: /Users/<usr>/.jenkins/workspace/<job>/Temp/StagingArea/assets/bin/Data/Native/armeabi-v7a
    Cache directory: /Users/<usr>/.jenkins/workspace/<job>/Library/il2cpp_android_armeabi-v7a/il2cpp_cache
ObjectFiles: 998 of which compiled: 371
    Time Compile: 74211 milliseconds Il2CppTypeDefinitions.cpp
    Time Compile: 68481 milliseconds Il2CppMethodPointerTable.cpp
    Time Compile: 55285 milliseconds Il2CppAttributes.cpp
    Time Compile: 41421 milliseconds Il2CppMetadataUsage.cpp
    Time Compile: 26292 milliseconds Il2CppInvokerTable.cpp
    Time Compile: 17629 milliseconds Il2CppGenericMethodPointerTable.cpp
    Time Compile: 12918 milliseconds Il2CppGenericClassTable.cpp
    Time Compile: 10404 milliseconds Bulk_Assembly-CSharp_26.cpp
    Time Compile: 9629 milliseconds Bulk_Assembly-CSharp_49.cpp
    Time Compile: 9063 milliseconds Bulk_Assembly-CSharp_144.cpp
Total compilation time: 98643 milliseconds.
il2cpp.exe didn't catch exception: Unity.IL2CPP.Building.BuilderFailedException: /Users/<usr>/Library/Android/sdk/ndk/android-ndk-r16b/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ @"/var/folders/wp/pskqw4ns3cn27r6k10158xkc0000gn/T/tmpWedXj6.tmp" -o "/Users/<usr>/.jenkins/workspace/<job>/Library/il2cpp_android_armeabi-v7a/il2cpp_cache/linkresult_6F0877EF66902EFEC137A171BB702A20/libil2cpp.so" -shared -Wl,-soname,libil2cpp.so -Wl,--no-undefined -Wl,-z,noexecstack -Wl,--gc-sections -Wl,--build-id --sysroot "/Users/<usr>/Library/Android/sdk/ndk/android-ndk-r16b/platforms/android-16/arch-arm" -gcc-toolchain "/Users/<usr>/Library/Android/sdk/ndk/android-ndk-r16b/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64" -target armv7-none-linux-androideabi -Wl,--wrap,sigaction -L "/Users/<usr>/Library/Android/sdk/ndk/android-ndk-r16b/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a" -lgnustl_static -llog -rdynamic -fuse-ld=gold
 
clang++: error: unable to execute command: Killed: 9
clang++: error: linker command failed due to signal (use -v to see invocation)
 
 
   at Unity.IL2CPP.Building.CppProgramBuilder.PostprocessObjectFiles(HashSet`1 objectFiles, CppToolChainContext toolChainContext)
   at Unity.IL2CPP.Building.CppProgramBuilder.Build(IBuildStatistics& statistics)
   at il2cpp.Program.DoRun(String[] args)
   at il2cpp.Program.Run(String[] args)
   at il2cpp.Program.Main(String[] args)
stderr:
 
Unhandled Exception: Unity.IL2CPP.Building.BuilderFailedException: /Users/<usr>/Library/Android/sdk/ndk/android-ndk-r16b/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ @"/var/folders/wp/pskqw4ns3cn27r6k10158xkc0000gn/T/tmpWedXj6.tmp" -o "/Users/<usr>/.jenkins/workspace/<job>/Library/il2cpp_android_armeabi-v7a/il2cpp_cache/linkresult_6F0877EF66902EFEC137A171BB702A20/libil2cpp.so" -shared -Wl,-soname,libil2cpp.so -Wl,--no-undefined -Wl,-z,noexecstack -Wl,--gc-sections -Wl,--build-id --sysroot "/Users/<usr>/Library/Android/sdk/ndk/android-ndk-r16b/platforms/android-16/arch-arm" -gcc-toolchain "/Users/<usr>/Library/Android/sdk/ndk/android-ndk-r16b/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64" -target armv7-none-linux-androideabi -Wl,--wrap,sigaction -L "/Users/<usr>/Library/Android/sdk/ndk/android-ndk-r16b/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a" -lgnustl_static -llog -rdynamic -fuse-ld=gold
 
clang++: error: unable to execute command: Killed: 9

 

 

| 원인

 

macOS Catalina 업데이트 후 보안이 강화되었다.

확인되지 않은 개발자의 앱을 열려는 경우, 경고 팝업이 발생.

 

 

| 해결방법

 

차단된 앱을 허용하기 위해선 시스템 환경 설정 > 보안 및 개인 정보 보호 > 일반 > 확인 없이 허용 버튼을 눌러서 차단을 해제하는 방법도 있지만 NDK에서 새로운 앱을 사용할때마다 차단을 하나하나 해줘야하는 번거로움이 있습니다.

보안엔 안좋을 수 있지만, 아래 방법을 통해서 앱에 해당 보안 설정을 모두 허용해주도록 합니다.

sudo spctl --master-disable

해당 명령어를 터미널에서 입력 후 적용을 위해서 재부팅 필요.

 

반응형

| 플러그인 설치

 

  • Jenkins > Jenkins 관리 > 플러그인 관리 > Available plugins > S3 검색
  • S3 Publisher 설치

 

| 환결성정

 

  • Jenkins > Jenkins 관리 > 시스템 설정 > Amazon S3 profiles > '추가' 버튼 클릭
  • 아래와 같이 Profile name / Access key / Secret key를 입력

 

| JOB 설정

 

  • 사용할 Profile을 선택
  • Source: 업로드할 파일의 경로를 입력 (ant glob syntax를 따름)
  • Exclude: 제외되어야 할 파일 경로 혹은 패턴
  • Destination bucket: 파일을 업로드할 위치
  • Storage class: 아마존 S3 스토리지 클래스 [자세히 알아보기]
  • Bucket Region: ap-northest-2 [Asia Pacific (Seoul) Region]

 

| 참고

 

 

 

객체 스토리지 클래스 – Amazon S3

 

aws.amazon.com

 

 

아시아 태평양(서울) 리전 - AWS CloudFormation

이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.

docs.aws.amazon.com

 

 

FileSet Type

erroronmissingdir Specify what happens if the base directory does not exist. If true a build error will happen, if false, the fileset will be ignored/empty. Since Apache Ant 1.7.1 No; defaults to true (for backward compatibility reasons)

ant.apache.org

 

반응형

| 현상

UnityException: Error
mainTemplate.gradle file is using the old aaptOptions noCompress property definition which does not include types defined by unityStreamingAssets constant.

 

 

| 해결방법

android {
	aaptOptions {
		noCompress = ['.unity3d', '.ress', '.resource', '.obb'] + unityStreamingAssets.tokenize(', ')
	}
}

 

반응형

| 현상

 

Android AAR 플러그인을 유니티 프로젝트에 추가, 유니티 빌드 시 아래와 같은 에러를 마주하는 경우가 있다.

Failed to install the following Android SDK packages as some licences have not been accepted.

위 에러는 SDK에 라이센스가 없어서 발생하는 문제인데, 해당 이슈의 전체 에러 콘솔로그이다.

 

 

| 해결

 

안드로이드 스튜디오를 통해 SDK가 설치된 경로를 확인하면 아래와 같다.

C:\Users\${User}\AppData\Local\Android\Sdk

위 경로에 licenses 디렉토리를 유니티의 SDK가 설치된 경로에 복사해준다.

C:\Program Files\Unity\Hub\Editor\${Unity}\Editor\Data\PlaybackEngines\AndroidPlayer\SDK

복사 후 재빌드 시 해당 문제는 해결된 것을 확인할 수 있다.

반응형

| 패키치 설치

 

brew install akamai

특정 버전 설치의 경우: brew install akamai@{version} 
e.g. brew install akamai@1.2.1

패키지 설치 후 커맨드도 별도로 설치가 필요하다

 

Usage:
  akamai [global flags] command [command flags] [arguments...]
 
Commands:
  config
  install (alias: get)
  list
  search
  uninstall
  update
  upgrade
  help
 
Global Flags:
  --edgerc value, -e value                 Location of the credentials file [$AKAMAI_EDGERC]
  --section value, -s value                Section of the credentials file [$AKAMAI_EDGERC_SECTION]
  --accountkey value, --account-key value  Account switch key [$AKAMAI_EDGERC_ACCOUNT_KEY]
  --help                                   show help (default: false)
  --bash                                   Output bash auto-complete (default: false)
  --zsh                                    Output zsh auto-complete (default: false)
  --proxy value                            Set a proxy to use
  --version                                Output CLI version (default: false)
 
Copyright (C) Akamai Technologies, Inc

 

 

| 커맨드 설치

 

akamai install purge

 

 

| Authentication credentials 만들기

 

 

Create authentication credentials

Follow these steps to create an authentication credential that contains the client token and client secret required to authenticate Akamai API, CLI, or Terraform requests.👍In order to complete these steps, you need access to Akamai Control Center and a

techdocs.akamai.com

 

 

| 자격증명 설정

 

cli를 실행하기 위해선 위에서 만든 인증 자격증명 파일을 이용해 인증을 하게 된다. 
(이때 커스텀 HTTP 요청 서명 프로토콜인 EdgeGrid를 이용)

인증 자격증명 파일은 클라이언트 토큰/시크릿 , 호스트, 액세스 토큰 등의 내용이 기입된다.

 

[ccu]
client_secret = {client_secret}
host = {host}
access_token = {access_token}
client_token = {client_token}

 

 

| 젠킨스 설정

 

 

  1. 젠킨스 > 잡 > 설정 
  2. 파라미터 추가 > 문자열 파라미터 CACHE_URL 추가
  3. 빌드 스탭 > Exectue Shell 추가
  4. akamai purge delete $CACHE_URL 기입
반응형

| 현상

 

젠킨스에서 Subversion 플러그인으로 체크아웃을 받는 도중 E175002 SVNException 에러가 발생하는 현상

ERROR: Failed to check out https://URL@REVISION
org.tmatesoft.svn.core.SVNException: svn: E175002: Connection reset
svn: E175002: REPORT request failed on '/svn/REPO/!svn/vcc/default'
    at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:112)
    at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:96)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:765)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:352)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:340)
    at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:910)
    at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.doReport(DAVConnection.java:363)
    ...중략...
Caused by: java.net.SocketException: Connection reset
    at java.base/sun.nio.ch.NioSocketImpl.implRead(NioSocketImpl.java:323)
    at java.base/sun.nio.ch.NioSocketImpl.read(NioSocketImpl.java:350)
    at java.base/sun.nio.ch.NioSocketImpl$1.read(NioSocketImpl.java:803)
    at java.base/java.net.Socket$SocketInputStream.read(Socket.java:966)
    at java.base/sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:478)
   ...중략...
Caused: org.tmatesoft.svn.core.SVNException: svn: E175002: Connection reset
svn: E175002: REPORT request failed on '/svn/REPO/!svn/vcc/default'
    at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:112)
    at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:96)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:765)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:352)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:340)
    ...중략...
Caused: java.io.IOException: Failed to check out https://URL@REVISION
    at hudson.scm.subversion.CheckoutUpdater$SubversionUpdateTask.perform(CheckoutUpdater.java:150)
    at hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:168)
    at hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:176)
    at hudson.scm.subversion.UpdateUpdater$TaskImpl.perform(UpdateUpdater.java:191)
    at hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:168)
    ...중략...
Archiving artifacts
Finished: FAILURE

 

| 해결방법

 

1. /usr/local/opt/jenkins 혹은 /usr/local/Cellar/jenkins 폴더에서 homebrew.mxcl.jenkins.plist 파일 열기

(homebrew 설치 기준)
2. ProgramArguments에 위 사진과 같이 옵션 입력
3. 젠킨스 재시작

반응형

'Workspace > Jenkins' 카테고리의 다른 글

[Jenkins] AWS S3 통합 가이드  (2) 2023.08.21
[Jenkins] akamai cli 통합 가이드  (0) 2023.08.18
[Jenkins] AppCenter 연동  (0) 2023.03.27
[Jenkins] akamai cli 통합 가이드  (0) 2023.03.24
[Jenkins] 원결 빌드 유발  (0) 2023.03.23

나들이겸 식사로 울산 강동몽돌해변에 있는 '공간나인'이란 곳을 방문했다.

날이 좋지 않지만, 강동몽돌해변 전경
어무이랑 한컷

 

| 메뉴

 

 


바질크림 리조또

느끼한듯 짠듯 오묘한 간, 그래도 맛있게 먹었다.

 

로제파스타

해물이 곁들여져있는 로제 파스타

 

불고기피자

메뉴판의 이미지에 비해 토핑이 부족해보이는 건 기분탓이겠죠?

 


점심시간 가족단위 손님들이 몰리면서 음식 나오는 시간이 꽤 걸려 아쉬웠다.
음식이 나오자마자 폭풍흡입해서 먹는 시간보다 기다린 시간이 더 길었던...

 

 

| 위치

 

 

주차공간의 경우, 아래층 카페와 같이 쓰는 듯 했다.
어린이날 연휴 임에도 비가 와서인지 빈자리가 많아서 문제없이 주차할 수 있었다.

반응형

+ Recent posts