我正在构建一个iOS应用程序,我希望嵌入Python。我目前正在学习Beeware的教程,它只在我Mac上的iOS模拟器上工作。
当我尝试在我的iOS设备上运行它时,(当然)代码签名有一个问题:'file' not valid for use in process: mapped file has no cdhash, completely unsigned? Code has to be at least ad-hoc signed.
本教程提供了一个签名脚本添加到目标的“构建阶段”,这显然只适用于MacOS,所以我修改了一下,指向我的实际二进制文件。下面是脚本:
set -e
echo "Signing as $EXPANDED_CODE_SIGN_IDENTITY_NAME ($EXPANDED_CODE_SIGN_IDENTITY)"
find "$CODESIGNING_FOLDER_PATH/python-stdlib/lib-dynload" -name "*.so" -exec /usr/bin/codesign — force — sign "$EXPANDED_CODE_SIGN_IDENTITY" -o runtime — timestamp=none — preserve-metadata=identifier,entitlements,flags — generate-entitlement-der {} \;
但是当我尝试构建时,我得到了这个错误:
Signing as Apple Development: [email protected] (XXX) (XXXXXXXXX)
find: /Users/lg/Library/Developer/Xcode/DerivedData/MyApp-xxxxxxxxx/Build/Products/Debug-iphoneos/MyApp.app/python-stdlib/lib-dynload: Operation not permitted
Command PhaseScriptExecution failed with a nonzero exit code
我猜这不是正确的方法,那么我如何才能签署这些Python二进制文件呢?
在教程中,你可以找到这句话:
如果你在iOS上,你将能够部署到iOS模拟器,而无需指定开发团队;但是,您需要指定一个有效的开发团队来签署二进制文件,以便部署到物理设备上(或提交到App Store)。
我有一个“个人团队”,以前在我的iOS设备上运行应用程序没有问题。
1条答案
按热度按时间u91tlkcl1#
我发现我无法运行脚本,由于该项目被沙盒。我关闭了沙盒,并能够运行脚本。