python + kivy 앱을 iPhone 실제 기기 전송시주의 사항
전제
이 기사 (필자 작성) 에서 pong.py
를 한 번 실기 전송했는데, pong.py
는 python2
계로 쓰여져 있기 때문에, python3
계의 앱이라면 조금 궁리가 필요한 것 같습니다.
본 기사에서는 비망을 위해서, 대처 내용을 기재합니다.
또한 lightning 케이블의 상태가 좋지 않아 python3系
의 자작 앱의 실제 기계 전송은 아직 되어 있지 않습니다.
그러나, XCode
의 iOSSimulator
에서는 기동을 확인할 수 있었기 때문에, 대략 OK라고 생각하고 있습니다.
실제 기계 전송할 수있었습니다!
참고 1 toolchain.py의 시방 수정
toolchain.py
의 시반에는 #!/usr/bin/env python
라고 기재되어 있습니다.
※ toolchain.py는 이쪽.
내 환경에서 env python
를 시작하면 python2.7.10
가 시작되었습니다.
즉, toolchain.py
를 기동하는 python
를 지정하지 않으면, python2
계에서 실행되어 버립니다.
해결 방법
env python
를 python3
계로 하는 것이 귀찮았던 방법을 모르기 때문에, toolchain.py
의 시반을 직접 python3
계의 python
로 수정했습니다.
참고 2 .kv 파일의 파일 이름에 대문자를 사용하지 않음
처음에는 bigApple.kv
와 같이 여러 단어를 Camel 케이스로 연결한 .kv
파일을 사용했습니다.
이것은 Mac
위의 기동에서는 아무 문제없이 움직입니다만, iOSSimulator
에서는 잘 움직이지 않았습니다.
증상으로 iOSSimulator
에서 앱을 시작한 후 새까만 화면이 계속 표시됩니다. 로그에는 특히 바뀐 것은 아무것도 출력되지 않고, 상당히 곤란했습니다. .
해결 방법
아마 대문자를 사용하고 있는 것이 문제이므로 bigapple.kv
이나 apple.kv
등으로 하면 해결합니다.
※당연히, if __name__ == '__main__':
내에서 run()
를 실행하는 클래스명과 일치시킬 필요가 있습니다.
비고
@dario_okazaki 님의 이 기사 에서 @taashi 님이 코멘트 되고 있는 내용과 같다고 생각합니다.
참고 3 .kv 파일에서 main import 방법
@dario_okazaki 님의 이 기사 에서 bookSearch.kv
의 첫 번째 줄에 #: import main main
라는 설명이 있습니다.
이렇게 하면 .kv
파일에서 .py
파일의 변수, 함수 등에 액세스할 수 있습니다.
이것도 Mac
위에서는 문제 없게 기동합니다만, iOSSimulator
그럼 main
모듈을 잘 찾을 수 없는 것 같아, 움직이지 않았습니다.
해결 방법
#: import main __main__
로 하여 해결했습니다.
참고 4 자체 제작 모듈 가져 오기
main.py
이외에 자작의 모듈을 준비해 읽어들일 수 있는 방법입니다만, iOSSimulator
그럼 잘 되지 않았습니다.
패스가 통과하지 않았기 때문이었습니다.
해결 방법
템플릿 파일을 수정하고 경로를 통과합니다.
수정 파일의 위치:.../kivy-ios/tools/templates/{{ cookiecutter.project_name }}-ios
수정 파일
수정 부분
수정 내용( main.py
과 같은 계층에 있는 모듈을 로드하고 싶은 경우)%@/YourApp
를 추가합니다.
해설
toolchain.py
에서 XCode
프로젝트를 create
그러면 (적어도 내 환경에서는) 아래 디렉토리에 파일들이 만들어집니다.~/Library/Developer/CoreSimulator/Devices/[UUID1]/data/Containers/Bundle/Application/[UUID2]/[アプリ名].app
※ [アプリ名].app
는 파일이 아니라 디렉토리
[アプリ名].app
는 상기의 main.m
로 말한다 %@
에 해당합니다. 따라서 패스가 통과하고 있습니다.
그러나, [アプリ名].app
에 들어 봐도, main.py
나 python
모듈은 보이지 않습니다.
그래서 [アプリ名].app
안의 YourApp
에 들어가 보면 main.pyc
또는 python
모듈을 찾을 수 있습니다.
즉, 여기에 패스를 통과하면 읽을 수 있습니다.
덧붙여서, kivy
의 라이브러리는 [アプリ名].app/lib/python3.7/site-packages/kivy
에 있으므로, 패스가 다니고 있어 사용할 수 있습니다.
# python
버전은 사람에 따라 다를 수 있습니다.
그 밖에 무엇인가 주의점을 발견하면 추기해 갑니다.
Reference
이 문제에 관하여(python + kivy 앱을 iPhone 실제 기기 전송시주의 사항), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tea63/items/fadf500167363ef28f5b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(python + kivy 앱을 iPhone 실제 기기 전송시주의 사항), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tea63/items/fadf500167363ef28f5b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)