ionic cordova xcode 9 构建开发团队和冲突的配置文件
ionic cordova xcode 9 build development team and conflicting provisionning profiles
我 运行 一个 2 年前开始的 Ionic 应用程序仍在使用 XCode7 构建,我决定转向最新版本的 XCode 即 9。我已经遇到了很多问题,阅读了很多书并尝试了一些东西,但我仍然陷入困境。当我使用 XCode 7 构建应用程序时一切正常,我可以在应用程序商店中构建和分发。
这是我使用 XCode 9 时遇到的问题:
需要 - DEVELOPMENT_TEAM 所以我添加了 build.json
开发团队人数。构建现在说我有 冲突
配置文件。 XCode7能做到,这怎么可能?
- 有人说,如果我设法构建(我现在还没有构建),推送通知也将停止工作,因为 xCode 9.
中的一些权利问题
我真的很担心,没有答案。 Ionic 用户,您是否设法从 XCode 7 移动到 XCode 8 或 9?如何?注意事项?示例项目 ?
Cordova CLI: 6.4.0
Ionic CLI Version: 2.2.3
Ionic App Lib Version: 2.2.1
ios-deploy version: 1.9.2
ios-sim version: 5.0.13
OS: macOS
Node Version: v7.10.0
Xcode version: Xcode 9.0.1 Build version 9A1004
如果您需要答案,请按以下方式解决。
首先,你必须知道我不能也不想使用自动签名,因为我有大量现有的配置文件,我正在使用 jenkins,不能在没有大量关于 ionic / cordova / 推送通知和自动签名的文档。
1) 您需要提供一个build.json。你必须。真的。
ionic build ios --buildConfig build.json
这是我的 build.json。
{
"ios": {
"debug": {
"codeSignIdentity": "iPhone Distribution",
"developmentTeam": "****",
"packageType": "ad-hoc",
"provisioningProfile" : "****"
},
"release": {
"codeSignIdentity": "iPhone Distribution",
"developmentTeam": "****",
"packageType": "app-store",
"provisioningProfile" : "***"
}
}
}
我遇到了很多问题,因为我为我的测试人员构建了一个 ad-hoc 版本,并且在 Whosebug/互联网博客上随处可见,它写着你必须使用 "iPhone Developer" 即使你构建分发。我不是这样的。如果你想要 ad-hoc 构建,你需要将代码签名设置为 "iPhone Distribution" 并添加你可以在 ~/Library/MobileDevice/Provisioning Profiles 中找到的配置文件时髦字符串。例如:ac073a34-****-****-****-623f0724c119。如果您不知道自己想要的是哪一个,可以使用您的应用 ID "grep" 他们。这意味着每次更新配置文件时,您都必须在构建配置中更改此数字...您一定会喜欢的。
2) 推送通知无法开箱即用
确保您的 cordova 推送插件是最新的。我的卡在版本 1 但最新的 "version 1" 似乎没问题。
ionic plugin add phonegap-plugin-push@1.10.6 --variable SENDER_ID=${sender_id}
仍然,推送通知功能在生成的 xcode 项目中不是 "ON"。当你从詹金斯构建时,你必须手动打开它,这是一个正确的痛苦。但它有效,所以解决方法有点 "acceptable"。如果有人知道如何在不打开 xcode 项目的情况下让插件切换功能 "ON",那就太好了!
3) 当你生成你的 ipa 时你必须提供一个 export.plist
事先不需要。使用 XCode 7,您可以使用 PackageApplication 执行 xcrun 并完成工作。那么,现在 PackageApplication 不可用并且在导出时需要更多工作。提醒一下,我想为我的测试人员构建 ad-hoc ipa。这可能与 testflight 不同。
在我的构建脚本中:
cd platforms/ios
xcodebuild \
-target "${PROJECT_NAME}" \
-scheme "${PROJECT_NAME}" \
-configuration Release \
-archivePath "build.xcarchive" \
clean archive
xcodebuild \
-exportArchive \
-archivePath "build.xcarchive" \
-exportOptionsPlist "export.plist" \
-exportPath "${EXPORT_DIRECTORY}"
Export.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>method</key>
<string>ad-hoc</string>
<key>teamID</key>
<string>*****</string>
<key>provisioningProfiles</key>
<dict>
<key>YOUR_APP_ID</key>
<string>PROVISIONING_PROFILE_FUNKY_STRING</string>
</dict>
</dict>
</plist>
我在具有多个环境和多个供应配置文件的同一项目上有多个目标,我可以告诉你我不高兴提供这样的细节,因为它以前不需要。如果有人知道如何减轻疼痛,我很乐意听取您的意见。
谢谢 Apple,你并没有让我的生活更轻松。
我 运行 一个 2 年前开始的 Ionic 应用程序仍在使用 XCode7 构建,我决定转向最新版本的 XCode 即 9。我已经遇到了很多问题,阅读了很多书并尝试了一些东西,但我仍然陷入困境。当我使用 XCode 7 构建应用程序时一切正常,我可以在应用程序商店中构建和分发。
这是我使用 XCode 9 时遇到的问题:
-
需要
- DEVELOPMENT_TEAM 所以我添加了 build.json 开发团队人数。构建现在说我有 冲突 配置文件。 XCode7能做到,这怎么可能?
- 有人说,如果我设法构建(我现在还没有构建),推送通知也将停止工作,因为 xCode 9. 中的一些权利问题
我真的很担心,没有答案。 Ionic 用户,您是否设法从 XCode 7 移动到 XCode 8 或 9?如何?注意事项?示例项目 ?
Cordova CLI: 6.4.0
Ionic CLI Version: 2.2.3
Ionic App Lib Version: 2.2.1
ios-deploy version: 1.9.2
ios-sim version: 5.0.13
OS: macOS
Node Version: v7.10.0
Xcode version: Xcode 9.0.1 Build version 9A1004
如果您需要答案,请按以下方式解决。
首先,你必须知道我不能也不想使用自动签名,因为我有大量现有的配置文件,我正在使用 jenkins,不能在没有大量关于 ionic / cordova / 推送通知和自动签名的文档。
1) 您需要提供一个build.json。你必须。真的。
ionic build ios --buildConfig build.json
这是我的 build.json。
{
"ios": {
"debug": {
"codeSignIdentity": "iPhone Distribution",
"developmentTeam": "****",
"packageType": "ad-hoc",
"provisioningProfile" : "****"
},
"release": {
"codeSignIdentity": "iPhone Distribution",
"developmentTeam": "****",
"packageType": "app-store",
"provisioningProfile" : "***"
}
}
}
我遇到了很多问题,因为我为我的测试人员构建了一个 ad-hoc 版本,并且在 Whosebug/互联网博客上随处可见,它写着你必须使用 "iPhone Developer" 即使你构建分发。我不是这样的。如果你想要 ad-hoc 构建,你需要将代码签名设置为 "iPhone Distribution" 并添加你可以在 ~/Library/MobileDevice/Provisioning Profiles 中找到的配置文件时髦字符串。例如:ac073a34-****-****-****-623f0724c119。如果您不知道自己想要的是哪一个,可以使用您的应用 ID "grep" 他们。这意味着每次更新配置文件时,您都必须在构建配置中更改此数字...您一定会喜欢的。
2) 推送通知无法开箱即用
确保您的 cordova 推送插件是最新的。我的卡在版本 1 但最新的 "version 1" 似乎没问题。
ionic plugin add phonegap-plugin-push@1.10.6 --variable SENDER_ID=${sender_id}
仍然,推送通知功能在生成的 xcode 项目中不是 "ON"。当你从詹金斯构建时,你必须手动打开它,这是一个正确的痛苦。但它有效,所以解决方法有点 "acceptable"。如果有人知道如何在不打开 xcode 项目的情况下让插件切换功能 "ON",那就太好了!
3) 当你生成你的 ipa 时你必须提供一个 export.plist
事先不需要。使用 XCode 7,您可以使用 PackageApplication 执行 xcrun 并完成工作。那么,现在 PackageApplication 不可用并且在导出时需要更多工作。提醒一下,我想为我的测试人员构建 ad-hoc ipa。这可能与 testflight 不同。
在我的构建脚本中:
cd platforms/ios
xcodebuild \
-target "${PROJECT_NAME}" \
-scheme "${PROJECT_NAME}" \
-configuration Release \
-archivePath "build.xcarchive" \
clean archive
xcodebuild \
-exportArchive \
-archivePath "build.xcarchive" \
-exportOptionsPlist "export.plist" \
-exportPath "${EXPORT_DIRECTORY}"
Export.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>method</key>
<string>ad-hoc</string>
<key>teamID</key>
<string>*****</string>
<key>provisioningProfiles</key>
<dict>
<key>YOUR_APP_ID</key>
<string>PROVISIONING_PROFILE_FUNKY_STRING</string>
</dict>
</dict>
</plist>
我在具有多个环境和多个供应配置文件的同一项目上有多个目标,我可以告诉你我不高兴提供这样的细节,因为它以前不需要。如果有人知道如何减轻疼痛,我很乐意听取您的意见。
谢谢 Apple,你并没有让我的生活更轻松。