kivyアプリをxcodeにいれる時につまづいた話

error

こんにちは.

kivyで作ったpythonアプリをxcodeに入れる際につまづいた話を書いていきます.


開発環境

  • macOS:Catalina(10.15.7)
  • Xcode:12.2
  • python 3.7.4
  • kivy:1.11.1

pythonは2系の方がいいという本の忠告をガン無視.BigSurも容量をとるためインストールせず.(こういうことをしているからエラーが起きるのでは,と思いつつ)

一応参考程度にmain.pyの中身だけ置いておきます.

from kivy.app import App from kivy.uix.boxlayout import BoxLayout from kivy.uix.button import Button from kivy.uix.camera import Camera import numpy as np class CaptureButton(Button): def __init__(self,**kwargs): super(CaptureButton, self).__init__() def on_press(self): print(self.parent.children[0]) self.parent.children[0].export_to_png('test.png') class Root(BoxLayout): """docstring for Root""" orientation = 'vertical' X3 = np.array([1,2,3]) def __init__(self,**kwargs): super(Root, self).__init__() btn = CaptureButton() cmr = Camera(resolution=[0,0]) self.add_widget(btn) self.add_widget(cmr) class TestTitle(App): """docstring for TestTitle""" def build(self): return Root() TestTitle().run()

カメラで写真を取れるアプリ.(ターミナル上ではちゃんと動く)

確認用なのでコードは適当,numpyとかも適当に入れました.


エラー1

building for iOS Simulator, but linking in object file built for iOS, file ‘/Users/…/kivy-ios-master/dist/lib/libnpysort.a’ for architecture arm64

のエラーが出た.

これはXcode12から起こるもので,arm64をアーキテクチャから除外しないといけないらしい.

Debugの部分から除外

リリースするときは上の画像の他にReleaseでも同じことをしなきゃいけないっぽい.

このエラーはこれで解決.


エラー2

targeted OS version does not support use of thread local variables in __PyArray_SigintHandler for architecture x86_64

こんなのが出てきた.なんやこいつは.

対象のOSではサポートされていない技術が使われてしまっているらしい.

iOS9.0に

ここが8.1になっていたので,9.0とすることで解決.


参考

  • https://stackoverflow.com/questions/52282646/build-error-targeted-os-version-does-not-support-use-of-thread-local-variables
  • https://stackoverflow.com/questions/63607158/xcode-12-building-for-ios-simulator-but-linking-in-object-file-built-for-ios

おしまい

コメント

タイトルとURLをコピーしました