YueChen-C / py-ios-device

IOS Professional Performance Testing Tool . You can get CPU, GPU, Memory , Lifecycle and other metrics from real iOS devices . iOS 性能测试工具
GNU General Public License v3.0
667 stars 183 forks source link

Unable to use py-ios-device on m1 mac #69

Closed kandji-joel closed 2 years ago

kandji-joel commented 2 years ago

When installing via poetry, cryptography==3.3.2 (which is required by py-ios-device) fails to install on m1 mac. I can install on intel mac without problem. It looks like the m1 mac is trying to install 37.0.2 of cryptography

kandji-joel commented 2 years ago

@YueChen-C any thoughts on this?

YueChen-C commented 2 years ago

I think we can delete the cryptography dependence, because pyOpenSSL will install the latest Cryptography (cryptography>=35.0)

kandji-joel commented 2 years ago

Thanks @YueChen-C -- I confirmed this fixes the install issue, however when using the package on m1 mac I'm seeing more errors that do not occur in the same environment on an intel mac -- I can log a separate issue for this

ImportError: dlopen(/Users/user/Library/Caches/pypoetry/virtualenvs/tarsus-EUALYFTg-py3.9/lib/python3.9/site-packages/_cffi_backend.cpython-39-darwin.so, 0x0002): symbol not found in flat namespace '_ffi_prep_closure'

user@Users-MacBook-Pro tarsus % poetry run pyidevice devices
Traceback (most recent call last):
  File "/Users/user/Library/Caches/pypoetry/virtualenvs/tarsus-EUALYFTg-py3.9/bin/pyidevice", line 5, in <module>
    from ios_device.main import cli
  File "/Users/user/Library/Caches/pypoetry/virtualenvs/tarsus-EUALYFTg-py3.9/lib/python3.9/site-packages/ios_device/main.py", line 2, in <module>
    from ios_device.cli.instruments import cli as instruments_cli
  File "/Users/user/Library/Caches/pypoetry/virtualenvs/tarsus-EUALYFTg-py3.9/lib/python3.9/site-packages/ios_device/cli/instruments.py", line 11, in <module>
    from ios_device.cli.base import InstrumentsBase
  File "/Users/user/Library/Caches/pypoetry/virtualenvs/tarsus-EUALYFTg-py3.9/lib/python3.9/site-packages/ios_device/cli/base.py", line 9, in <module>
    from ios_device.servers.Installation import InstallationProxyService
  File "/Users/user/Library/Caches/pypoetry/virtualenvs/tarsus-EUALYFTg-py3.9/lib/python3.9/site-packages/ios_device/servers/Installation.py", line 29, in <module>
    from ..servers.afc import AFCClient
  File "/Users/user/Library/Caches/pypoetry/virtualenvs/tarsus-EUALYFTg-py3.9/lib/python3.9/site-packages/ios_device/servers/afc.py", line 41, in <module>
    from ..util.lockdown import LockdownClient
  File "/Users/user/Library/Caches/pypoetry/virtualenvs/tarsus-EUALYFTg-py3.9/lib/python3.9/site-packages/ios_device/util/lockdown.py", line 22, in <module>
    from .ca import make_certs_and_key
  File "/Users/user/Library/Caches/pypoetry/virtualenvs/tarsus-EUALYFTg-py3.9/lib/python3.9/site-packages/ios_device/util/ca.py", line 5, in <module>
    from OpenSSL.crypto import X509, TYPE_RSA, X509Req, PKey, FILETYPE_PEM as PEM, X509Name, X509Extension
  File "/Users/user/Library/Caches/pypoetry/virtualenvs/tarsus-EUALYFTg-py3.9/lib/python3.9/site-packages/OpenSSL/__init__.py", line 8, in <module>
    from OpenSSL import crypto, SSL
  File "/Users/user/Library/Caches/pypoetry/virtualenvs/tarsus-EUALYFTg-py3.9/lib/python3.9/site-packages/OpenSSL/crypto.py", line 11, in <module>
    from OpenSSL._util import (
  File "/Users/user/Library/Caches/pypoetry/virtualenvs/tarsus-EUALYFTg-py3.9/lib/python3.9/site-packages/OpenSSL/_util.py", line 5, in <module>
    from cryptography.hazmat.bindings.openssl.binding import Binding
  File "/Users/user/Library/Caches/pypoetry/virtualenvs/tarsus-EUALYFTg-py3.9/lib/python3.9/site-packages/cryptography/hazmat/bindings/openssl/binding.py", line 14, in <module>
    from cryptography.hazmat.bindings._openssl import ffi, lib
ImportError: dlopen(/Users/user/Library/Caches/pypoetry/virtualenvs/tarsus-EUALYFTg-py3.9/lib/python3.9/site-packages/_cffi_backend.cpython-39-darwin.so, 0x0002): symbol not found in flat namespace '_ffi_prep_closure'
kandji-joel commented 2 years ago

Related ^ https://stackoverflow.com/a/66055389

(my colleague has the m1 mac, mine is intel -- I will confirm with them next week if solution above resolves the issue)