출처 : http://webcheatsheet.com/sql/Fix_Cannot_load_from_mysql.proc._The_table_is_probably_corrupted.php



After upgrading MySQL from version 5.0 to 5.5 I started getting the following message trying to edit table structure in Navicat:

Cannot load from mysql.proc. The table is probably corrupted

Luckily there is an easy fix. Run the following command from the command prompt (on Windows you might need to run it from MySQL's bin directory).

mysql_upgrade

In some cases you will need specify mysql root password and --force option (if you run upgrade procedure already).

mysql_upgrade.exe -uroot -p --force


안정적인 DNS서비스 DNSEver DNS server, DNS service
Posted by 키르히아이스
,

>> 프로시져 생성 권한 확인

SHOW VARIABLES LIKE '%log_bin_trust_fuction_creators%';

>> 프로시져 생성 권한 변경

SET GLOBAL log_bin_trust_function_creators = 1;

===================================================================

>> 프로시져 생성 및 테스트

참고 : https://mariadb.com/kb/en/mariadb/mariadb-documentation/sql-commands/data-definition/create/create-procedure/



DELIMITER //

DROP PROCEDURE IF EXISTS usp_hello //

CREATE PROCEDURE usp_hello( )

BEGIN

    SELECT 'hello';

END//

DELIMITER ;

CALL usp_hello();

===================================================================

>> 프로시져 목록 확인

show procedure status;

>> 프로시져 스크립트 확인

show create procedure usp_hello;

>> 프로시져 수정 (삭제후 재 생성)

DROP PROCEDURE IF EXISTS usp_hello //

CREATE PROCEDURE usp_hello( )

본문 내용 ~~~~


안정적인 DNS서비스 DNSEver DNS server, DNS service
Posted by 키르히아이스
,

이전 포스트 : 

MAC OS + Jenkins + Unity3d + Bitbucket 안드로이드 iOS 자동 빌드 및 Testflight를 이용한 웹 배포 (1)

  


7.    애플 개발자 페이지 어플 및 인증서 설정

Ø  iOS Dev Center (https://developer.apple.com/devcenter/ios/index.action)

Ø  Certificates, Identifiers & Profiles

 

Ø  iOS Certificates 등록 (배포를 위한 Ad hoc용 인증서)

 

²  맥에서 만든 인증서 업로드

ü  맥 키체인 접근 -> 인증서 지원 -> 인증 기관에서 인증서 요청

 

ü  사용자 이메일 주소 메일 주소

ü  요청 항목 디스크에 저장됨본인이 키 쌍 정보 지정

 

ü  인증서 저장

 

ü  CertificateSigningRequest.certSignningRequest 업로드

 

ü  Certificates -> Production 확인

 

ü  Certificates 다운로드 : Xcode 빌드 구성에서 해당 인증서 사용


 

Ø  배포할 앱 등록


 

Ø  개발자 기계 등록

 

²  UUID 확인은 구글 검색을 이용 아이튠즈에 기계 붙여서 확인

 

Ø  Provisioning Profiles 등록






 

²  Provisioning Profiles Download

ü  다운로드 한 Provisioning 파일로 Testflight Provisioning 구성



매뉴얼 작업 중 뒤로 갈 수록 귀차니즘이 천만배 발동하여 대부분 설명 없이 스샷으로 대체함...

중간중간에 Xcode 빌드 및 Testflight설정등에서 인증관련된 부분이 누락되었을 수 있음

처음 셋팅 할때 인증관련 확인 창이 나왔던것 같은데 초기화 하고 재 설치 하자니 시간 관계상...


혹시 이 포스트를 보고 설정하시는 분들 중에서 궁금하신 점이나 안되는 부분 있으면 댓글 남겨 주시면 제가 삽질했던 한도 내에서 답변 드리도록 하겠습니다.

안정적인 DNS서비스 DNSEver DNS server, DNS service
Posted by 키르히아이스
,

참고 : http://la-stranger.blogspot.kr/search/label/Unity3d


1.    설치

Ø  Jenkins 홈페이지에서 설치파일 다운로드 (http://jenkins-ci.org/)

Ø  GIT 저장소 bitbucket 사용 (https://bitbucket.org/)

²  bitbucket 외에 GitHub 등 다른 저장소를 사용해도 무방함 (구글님의 도움을 받으면 됨)

Ø  다음 다음 다음 다음

²  설치 완료

 

2.    Plugin Manager

Ø  Jenkins 관리 -> 플러그인 관리

Ø  설치 가능 탭에서 아래 플러그인 설치

²  GIT plugin

²  Bitbucket OAuth Plugin

²  Unity3d Plugin

²  Email Extension Plugin

²  Token Macro Plugin

²  Xcode integration (OS X 에서 IOS 용 컴파일 시 추가)

²  Testfilght Plugin (iOS 빌드 후 웹 배포)

 

3.     시스템 설정

Ø  Jenkins 관리 -> 시스템 설정

²  Git


²  Unity3d

ü  Name : 각자 알아서 설정 (유니티 버전 이름으로 하면 알아보기 쉬움)

ü  Installation directory : 유니티 실행파일 경로 (윈도우 / Linux / OS X 각각 설정)

 

²  Xcode Builder

ü  OS X Xcode 설치 시 알아서 기본 설정 됨 (Keychains 설정 안함)

 

²  Jenkins Location

ü  Jenkins URL : 젠킨스 설치 URL

ü  System Admin e-mail address : 젠킨스 관리자 e-mail

 

²  Git plugin

ü  Global Config user.name Value : Git User Name

ü  Global Config user.email Value : Git User e-mail

 

²  Extended E-mail Notification

ü  Default Content Type : HTML (text/html)

ü  Default Recipients : 젠킨스 기본 메일 받을 사람 (개인 메일은 “,”로 구분)

ü  Default Subject : 젠킨스 기본 메일 발송 제목

ü  Default Content : 젠킨스 기본 메일 발송 내용

 

²  E-mail로 알려줌

ü  SMTP 서버메일 서버

ü  Default user e-mail suffix : 기본 메일 주소

 

²  Test Flight

ü  Token Pair Name : 알아보기 쉬운 이름으로 설정

ü  API Token : TestFilghtApp 계정 생성 및 APP 생성 후 API Token 입력

ü  Team Token : 팀 생성 후 Team Toket 입력

 

²  Testflight 회원 가입 (https://testflightapp.com)

ü  Account Settings -> Upload API : API Token

 

ü  Team Edit Info -> Team Token : Team Token

²  iOS 앱 추가

ü  Add Application

A.     App Name : 어플 이름

B.      BundleID : 빌드 시 유니티에서 설정한 BundleID (com.company.appname)

C.      Platform : 당연히 iOS

²  테스터 추가 및 배포 리스트 추가

ü  계정 아이콘 -> Invite Teammate

ü  People -> Add Distribution List

A.     List Name : 배포 그룹 리스트 이름 (job 설정 시 입력할 내용)

B.      Teammates : 배포 그룹에 포함될 테스터

 

²  업로드 된 앱 설정

ü  Apps -> 업로드 앱 선택 -> Permissions

ü  모든 유저 및 개발자 기계로 등록된 UDID 선택 후 업데이트

ü  Update Provisioning Profile 에 애플 개발자 사이트에서 다운로드한 Provisioning 파일로 개발자 기계 추가 수정 삭제 가능 (Xcode 빌드 시에도 변경된 Provisioning 파일을 사용 해야 함)



  

4.    Configure Global Security

Ø  Jenkins 관리 -> Configure Global Security

²  Enable security : Check

ü  Security Realm : Bitbucket OAuth Plugin

 

ü  Global Bitbucket OAuth Settings

A.     ClientID / Client Secret 입력

B.      Bitbucket -> Manage Account -> ACCESS MANAGEMENT -> OAuth -> Add consumer


 

C.      Add OAuth consumer

 

D.     Key 복사 후 ClientID 에 입력

E.      Secret 복사 후 Client Secret 입력

 

Ø  Butbucket SSH keys 설정

²  Bitbucket -> Manage Account -> SECURITY -> SSH keys -> Add key

 

²  Add SSH key

ü  Label : SSH 인증 라벨 (알아서 설정)

ü  Key (안되면 여러 번 생성 인증 생성 인증 하다보면 됨…;;)

A.    https://confluence.atlassian.com/pages/viewpage.action;jsessionid=BD9794B7C2F22CA8DB28263FA9914CF7?pageId=270827678

B.      OS X / Linux : 로그인 계정 루트에서 ssh-keygen 실행

C.      걍 다 엔터 엔터 엔터 기본

D.     완료 후 ~/.ssh/id_rsa.pub 내용을 Bitbucket SSH key에 추가

 

 

5.    Job 설정

Ø  새로운 Item

²  Item 이름 : Job 이름 입력

²  Build a free-style software project : Check

 

Ø  설정

²  오래된 빌드 삭제 : Check

ü  빌드 이력 유지 기간() : 알아서 설정 (30일 정도)

ü  보관할 최대갯수 : 알아서 설정 (30일 정도)

 

²  고급

ü  산출물 보관 일수 : 알아서 설정 (30일 정도)

ü  Max # of builds to keep with artifats : 알아서 설정 (30일 정도)

Ø  Jenkins Slave Agent 노드 설정 (로그인 계정으로 설정 할 경우 패스)

Ø  참고 : http://la-stranger.blogspot.kr/2013/10/unity-os-jenkins-2.html

²  OS X 설치 시 Jenkins 계정으로 컴파일 에러남으로 노드 설정

ü  Restrict where this project can be run : Check

ü  Label Expression : 생성한 노드 첫 글자 입력 시 자동 완성

 

Ø  Jenkins 를 로그인 계정으로 실행

²  Jenkins 를 로그인한 계정으로 실행 하기 위한 설정

ü  sudo vi /Library/LaunchDaemons/org.jenkins-ci.plist



ü  UserName을 로그인한 계정으로 수정 <string>로그인한계정</string>

ü  Jenkins 가 설치된 /Users/Shared/Jenkins 폴더의 소유권 변경 (하위폴더 포함)

A.     sudo chown –R 로그인한계정:계정그룹 /Users/Shared/Jenkins/

ü  /etc/newsyslog.d/Jenkins.conf 수정

A.     sudo vi /etc/newsyslog.d/Jenkins.conf

B.      /var/log/Jenkins/Jenkins.log  로그인한계정:계정그룹  644  3  *  $D0  J

ü  /varlog/Jenkins 소유권 변경 (하위폴더 포함)

A.     sudo chown –R 로그인한계정:계정그룹 /var/log/jenkins

ü  Jenkins 재시작

A.     sudo launchctl unload /Library/LaunchDaemon/org.jenkins-ci.plist

B.      sudo launchctl load /Library/LaunchDaemon/org.jenkins-ci.plist

 

Ø  소스 코드 관리

²  Git

ü  Repositories URL : Git 저장소 주소 입력

ü  Branch Specifier (blank for ‘any’) : origin/master

 

Ø  빌드 유발

²  자동 빌드 시간 설정

²  Build periodically : 정해진 시간에 변경 내용 있던 없던 무조건 빌드 진행

²  Poll SCM : 정해진 시간에 pull 체크해서 변경 내용 있을 경우 빌드 진행

ü  분 시 일 월 주

ü  0 23 * * 1-5 : ~ 금요일까지 매월 매일 23 00분에 빌드

ü  MINUTES Minutes in one hour (0-59)

ü  HOURS Hours in one day (0-23)

ü  DAYMONTH Day in a month (1-31)

ü  MONTH Month in a year (1-12)

ü  DAYWEEK Day of the week (0-7) where 0 and 7 are sunday

 

Ø  Build

²  Add build step -> Invoke Unity3d Editor (IOS 컴파일 시 빌드 추가하고 IOS 빌드 설정)

ü  Unity3d installation name : 시스템 설정에서 설정한 Unity 선택

ü  Editor command line arguments

A.     –quit –batchMode –executeMethod Unity3dBuilder.PerformAndroidBuild

B.      –quit –batchMode –executeMethod Unity3dBuilder.PerformiOSDebugBuild

C.      유니티 프로젝트의 Editor 폴더에 Unity3dBuilder.cs 추가 

Unity3dBuilder.cs

D.     참고 : http://la-stranger.blogspot.kr/search/label/Unity3d

 

²  Xcode 빌드 설정

ü  Add build step -> Xcode 추가

ü  General build settings -> Settings 버튼 클릭

ü  Code signing & OS X keychain options -> Code signing settings 버튼 클릭

ü  Advanced Xcode build options -> Advanced build settings 버튼 클릭

 

²  General build settings

ü  Testfilght 를 이용한 웹 배포를 위해서 Xcode 프로젝트 빌드 구성 설정

ü  Configuration : Ad hoc (또는 Xcode 프로젝트에서 추가한 빌드 구성)

ü  Pack application and build .ipa? : 체크

ü  .ipa filename pattern : .ipa 생성 파일이름 입력

 

²  Code signing & OX X keychain options

ü  Unlock Keychain? : 체크

ü  Keychain path : ${HOME}/Library/Keychains/login.keychain

ü  Keychain password : 키체인 패스워드

 

²  Advanced Xcode build options

ü  Xcode Project Directory : _Build/iOS (유니티 빌드 후 Xcode 프로젝트 생성 위치)

ü  Build output directory : ${WORKSPACE}/_Build/iOS/ (Xcode 빌드 후 ipa 생성 위치)

 

Ø  빌드 후 조치

²  빌드 후 조치 추가


²  Archive the artifacts : 산출물 보관

ü  Files to archive : 보관할 산출물 위치 (폴더 또는 파일명)

 

²  Upload to Testflight : 빌드 완료 후 Testfilght에 업로드

ü  Token Pair : Jenkins 설정에서 추가한 Testflight 구성

ü  IPA/APK Files (optional) : **/*.ipa (TestflightApp 에서 예전엔 apk도 지원하였으나 201403월 이후 apk는 지원 안한다고 함)

ü  Build Notes : $BUILD_ID$BUILD_DISPLAY_NAME (빌드시간#빌드번호)

ü  Append changelog to build notes : 체크

ü  Distribution Lists : TestflightApp 에서 추가한 Distribution Lists

ü  Notify Team : 체크

 

²  Editable Email Notification : 메일 알림

ü  Project Recipient List : 메일 받을 사람 목록 (개인별 메일 “,”로 구분)

ü  Content Type : HTML (text/html)

ü  Default Subject : 메일 제목

ü  Default Content : ${JELLY_SCRIPT,template="html-with-health-and-console.jelly"}

A.     JELLY SCRIPT 이용한 html 문서 (TestflightApp 설치 URL 메일에 추가)

<div class="content">

          <h1>iOS Build Distribution</h1>

          <ul>

                     <li>Testflight Install URL : <a href="$TESTFLIGHT_INSTALL_URL">Touch Me Install !!!</a></li>

                     <li>Testflight Config URL : <a href="$TESTFLIGHT_CONFIG_URL">Touch Me Configure !!!</a> </li>

          </ul>

</div>

<br>

${JELLY_SCRIPT,template="html-with-health-and-console.jelly"}

B.      $Jenkins_HOME/email-templates 에 템플릿 html 저장 (/Users/Shared/Jenkins/Home/email-templates)

C.      알아서 편집해서 사용 

html-with-health-and-console.jelly

D.     또는 아래 경로에서 맘에 드는 템플릿 받아서 사용

E.      https://github.com/jenkinsci/email-ext-plugin/tree/master/src/main/resources/hudson/plugins/emailext/templates

ü  Attachments : 메일 발송 시 첨부 파일

A.     **/*.apk (Jenkins workspace 폴더 내에 모든 apk 파일 첨부)

ü  Attach Build Log : Compress and Attach Build Log (메일 발송 시 빌드 로그 첨부)

 

²  Triggers 추가

ü  상황에 맞는 Trigger 설정

 

ü  Send To : Recipients / Developers (메일 받을 사람 선택)

 

6.    Unity 빌드 및 Xcode ad hoc 설정 / 빌드

Ø  Jenkins Job 실행 전 Unity 빌드 실행 하여 정상 빌드 되는지 체크

²  Unity3dBuilder.cs 추가 후 메뉴에서 빌드 실행

ü  CI -> Build Android

ü  CI -> Build iOS Debug

 

ü  iOS 최초 빌드 시 스크립트 수정 필요

A.     최초 빌드 시 BuildOptions.AcceptExternalModificationsToPlayer; 제거 하고 빌드

 

B.      최초 빌드 이후 BuildOptions.AcceptExternalModificationsToPlayer; 추가

 

Ø  Xcode 빌드

²  /Users/Shared/Jenkins/Home/jobs/잡이름/workspace/_Build/iOS/Unity-iPhone.xcodeproj 실행

 

²  Xcode 설정

ü  Targets -> Project 로 변경

 

ü  All / Combined / Build Settings 선택

ü  Build Options -> Debug Information Format : DWARF 로 수정

 

ü  Info 선택 후 Configurations -> + -> Duplicate “Release” Configuration -> Ad hoc 추가

 

ü  Basic / Combined / Build Settings 선택

ü  Code Signing -> Code Signing Identity -> Ad hoc : 애플 개발자 사이트에서 발급한 Ad hoc 용 인증서로 변경

 

ü  Unity-iPhone -> Edit Scheme

 

ü  Archive -> Build Configuration : Ad hoc 으로 변경

 

ü  메뉴 -> Product -> Archive 실행

 

ü  메뉴 -> Window -> Organizer 선택

 

ü  정상 빌드 여부 확인



포스트 한개에 이미지 파일 50개 제한이라서 포스트를 2개로 나눔...


다음 포스트 : 

MAC OS + Jenkins + Unity3d + Bitbucket 안드로이드 iOS 자동 빌드 및 Testflight를 이용한 웹 배포 (2)

안정적인 DNS서비스 DNSEver DNS server, DNS service
Posted by 키르히아이스
,