使用 Fastlane(或任何其他方法)构建从 Expo 导出的 iPhone 应用程序
Building an iPhone app exported from Expo using Fastlane (or any other method)
我有一个要从 Expo 导出的 iPhone 应用程序,因此我可以使用自己的硬件进行构建。
简单地说,我先调用 exp detach
然后再调用
cert
sigh
gym
使用 fastlane beta
构建失败,因为它无法签署我的申请。错误是
[15:27:30]: ▸ === BUILD TARGET appname OF PROJECT appname WITH CONFIGURATION Release ===
[15:27:30]: ▸ Check dependencies
[15:27:30]: ▸ No profiles for 'com.getexponent.appname' were found: Xcode couldn't find a provisioning profile matching 'com.getexponent.appname'.
[15:27:30]: ▸ Code signing is required for product type 'Application' in SDK 'iOS 10.3'
很明显它正在从某处获取 com.getexponent.
。我在 app.json
.
中设置了正确的包名称
我也更新了我的 Fastfile
lane :beta do
update_app_identifier(
xcodeproj: '../ios/appname.xcodeproj',
plist_path:'./appname/Supporting/Info.plist',
app_identifier: "com.mycompany.appname"
)
cert
sigh
gym(
scheme: "appname",
workspace: '../ios/appname.xcworkspace'
)
end
但是我得到了同样的错误信息。
Expo detach 中有什么我可以更改的,或者我需要在 fastlane
中更改什么?
我已经在 Expo 存储库 here 上打开了一个关于此的问题。似乎 exp detach
命令并不是真正的部署友好...
我正在使用 Bitrise 进行部署,它包括一个修改 PROJECT_BUNDLE_IDENTIFIER
的步骤。您可以执行以下操作:
NEW_BUNDLE_IDENTIFIER="com.mynewbundle.identifier
PBXPROJ_FILE="path/to/project.pbxproj"
sed -i "" "s/\(PRODUCT_BUNDLE_IDENTIFIER = \).*\(;\)/${NEW_BUNDLE_IDENTIFIER}/" $PBXPROJ_FILE
(基于 this Bitrise step)。
最后,我将其添加到 Fastfile
步骤的开头
sh "sed -i '' 's/com.getexponent.allotmentlab/com.foam.allotmentlab/g' '../../ios/allotmentlab.xcodeproj/project.pbxproj'"
这是一个糟糕的解决方案,因为您必须知道错误的字符串是什么。您还需要知道从 Fastfile
到 project.pbxproj
的路线。但这是我能想到的最好的解决办法。
我有一个要从 Expo 导出的 iPhone 应用程序,因此我可以使用自己的硬件进行构建。
简单地说,我先调用 exp detach
然后再调用
cert
sigh
gym
使用 fastlane beta
构建失败,因为它无法签署我的申请。错误是
[15:27:30]: ▸ === BUILD TARGET appname OF PROJECT appname WITH CONFIGURATION Release ===
[15:27:30]: ▸ Check dependencies
[15:27:30]: ▸ No profiles for 'com.getexponent.appname' were found: Xcode couldn't find a provisioning profile matching 'com.getexponent.appname'.
[15:27:30]: ▸ Code signing is required for product type 'Application' in SDK 'iOS 10.3'
很明显它正在从某处获取 com.getexponent.
。我在 app.json
.
我也更新了我的 Fastfile
lane :beta do
update_app_identifier(
xcodeproj: '../ios/appname.xcodeproj',
plist_path:'./appname/Supporting/Info.plist',
app_identifier: "com.mycompany.appname"
)
cert
sigh
gym(
scheme: "appname",
workspace: '../ios/appname.xcworkspace'
)
end
但是我得到了同样的错误信息。
Expo detach 中有什么我可以更改的,或者我需要在 fastlane
中更改什么?
我已经在 Expo 存储库 here 上打开了一个关于此的问题。似乎 exp detach
命令并不是真正的部署友好...
我正在使用 Bitrise 进行部署,它包括一个修改 PROJECT_BUNDLE_IDENTIFIER
的步骤。您可以执行以下操作:
NEW_BUNDLE_IDENTIFIER="com.mynewbundle.identifier
PBXPROJ_FILE="path/to/project.pbxproj"
sed -i "" "s/\(PRODUCT_BUNDLE_IDENTIFIER = \).*\(;\)/${NEW_BUNDLE_IDENTIFIER}/" $PBXPROJ_FILE
(基于 this Bitrise step)。
最后,我将其添加到 Fastfile
步骤的开头
sh "sed -i '' 's/com.getexponent.allotmentlab/com.foam.allotmentlab/g' '../../ios/allotmentlab.xcodeproj/project.pbxproj'"
这是一个糟糕的解决方案,因为您必须知道错误的字符串是什么。您还需要知道从 Fastfile
到 project.pbxproj
的路线。但这是我能想到的最好的解决办法。